销售管理系统综合设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息技术学院课程设计(大作业)任务书
设计报告
一、需求分析
根据任务要求进行分析,本系统主要包括销售及销售员信息录入、销售及销售员信息查询、销售及销售员信息删除、销售及销售员信息修改功能。具体要说明如下:
1. 销售及销售员信息录入
(1)货物及销售员编号不可以重复。
(2)随时添加销售信息。
2. 销售及销售员信息浏览
(1)只可以浏览不可以修改。
(2)同时输出所有的有关信息。
3. 销售及销售员信息查询
(1只输出所需信息,不可修改。
4. 销售及销售员信息删除
(1)首先调用print输出所有信息,方便知道自己要删除的信息。
(2)输入编号,信息整条删除。
(3)再次调用print,方便查看删除效果。
5. 销售及销售员信息修改
(1)首先调用print输出所有信息,方便知道自己要修改的编号。
(2)输入编号,可修改除编号外的信息。
(3)再次调用print,方便查看修改后效果。
6、销售及销售员的信息的保存
二. 总体设计
1.系统总模块设计
根据系统总模块设计系统需求分析设计总模块如图1所示。
图1信息管理系统功能结构
2.各功能模块说明
根据上述的分析,将系统按功能分为以下模块
主程序模块tel.cpp;调用各模块中的函数实现对通讯录的管理。
头文件模块tel.h;定义相关结构,定义常量及全局变量,声明所有模块的函数。
文件模块file.cpp;读文件及建立链表的函数,将链表写入磁盘文件。
浏览模块print1.cpp;输出产品信息。
Print2.cpp;输出销售员信息。
查询模块search.cpp;查询商品信息。
found.cpp;销售员管理查询
录入模块insert.cpp;销售信息的录入。
查询模块found.cpp;按销售员管理查询。
search.cpp;查询商品信息
删除模块delate.cpp;按编号删除销售员信息。
del.cpp;删除产品信息。
修改模块chang.cpp;按编号修改产品信息。
mod.cpp;修改销售员姓名
排序模块sortbypid1.cpp;对产品进行排序。
sortbypid2.cpp;对销售员排序
三、详细设计
1.系统流程图描述系统总流程如图2所示
2.模块设计
(1)主要结构设计
系统主要功能销售员信息,销售员信息的结构体定义如下:
3.控制结构设计
(1)主程序模块first.cpp
first模块有主函数main。
主函数 main流程图如图2所示。
5
图 2 主函数处理流程
四、代码实现
#include
#include
#include
#define LEN1 sizeof(PROD1)
#define LEN2 sizeof(PROD2)
void saveprod1();
void del();
void search();
void print1();
void sortbypid1();
void change();
int add_sale();
void saveprod2();
int add_saleman();
void sortbypid2();
void print2();
void mod();
void delate();
typedef struct sale
{
int pid; //产品编号
char name[20]; //产品名称
float price; //产品价格
}PROD1;
typedef struct sale2
{
int sid; //销售员编号
char pname[20]; //销售员名字
}PROD2;
PROD1 sale[5];
PROD2 sale2[5];
int pn=0;
int sn=0;
int i,j;
int add_sale() //添加商品信息
{
int pid,w,z;
float price;
char name[20];
FILE *fp;
if((fp=fopen("f:\\price.dat","rb"))==NULL) {
printf("cannot open file!\n");
exit(0);
}
for(w=0;w<3;w++)
{
if(fread(&sale[w],LEN1,1,fp)!=1)
{
printf("error!");
break;
}
}
for(pn=0;sale[pn].pid!=0;pn++);
z=3-pn;
printf("已有%d个商品信息,请再输入%d组数据\n",pn,z);
while(pn<3)
{
printf("请输入产品编号:");
scanf("%d",&pid);
sale[pn].pid=pid;
if(sale[pn].pid==sale[pn-1].pid||sale[pn].pid==sale[pn-2].pid)
{
printf("已有该编号!\n");
continue;
}
printf("请输入产品名称和价格:");
scanf("%s %f",name,&price);
sale[pn].price=price;
strcpy(sale[pn].name,name);
pn++;
}
sortbypid1();
return pn;
}
void saveprod1() //把信息保存在磁盘上
{
FILE *fp;
int i;
if((fp=fopen("f:\\price.dat","wb"))==NULL) //从磁盘打开文件
{
printf("File can't open!\n");
exit(0);
}
for(i=0;i<3;i++)
if(fwrite(&sale[i],LEN1,1,fp)!=1)
printf("file write error\n");
fclose(fp);
}
void search() //查询商品信息
{
FILE *fp;
if((fp=fopen("f:\\price.dat","rb"))==NULL)
{
printf("cannot open file!\n");
exit(0);
}