




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
湖北汽车工业学院电气与信息工程学院C 语言程序设计实训报告实训题目:销售管理记录专业:软件工程班级:姓名:成绩:一、 需求分析1、问题根据需求,该系统所包含的信息有以下一些:销售记录的基本信息:销售编号、产品编号、销售日期、销售数量。根据需求,该系统所包含的信息有以下一些:各种基本数据录入。如:销售管理基本信息录入。各种基本数据修改。如:允许对已经录入的数据重新进行编辑、修改。例如,修改销售管理张三的基本信息。各种基本数据删除。如将张三的信息从销售管理中删除。各种数据的查询。如输入张三的姓名,查询张三的电话和地址。数据导出:将销售管理的信息导入指定文件。数据导入:从指定文件中导入销售管理中。2、系统采用C语言实现,开发环境为VC,可以运行操作系统windows98以上皆可。3、运行要求能不受限制录入销售管理信息界面友好,操作方便,如删除需要提示用户是否删除错容性强,如数据导出时,如果文件不在需要提示用户二、 总体设计1、 系统流程设计根据系统要求,设计如下系统流程2、系统模块设计根据系统的功能设计,如下模块:销售管理主界面显示功能选择销售管理信息输入销售管理信息修改销售管理信息查询销售管理信息导入销售管理信息导出销售管理信息删除主界面的显示:完成系统菜单的显示功能选择模块:根据用户的选择,完成相应的功能销售管理信息的录入:完成用户从界面输入销售管理信息,保存入系统的功能销售管理信息的修改:完成用户从界面输入销售管理信息,在系统中查询定位,并将录入的数据保存入系统的功能销售管理信息的查询:完成用户从界面输入的条件,在系统中查询符合条件的销售信息,并在界面上显示的功能销售管理信息的导入:完成用户从界面输入需要导入的文件路径名称,读取该文件的内容,保存入系统,并在界面上显示导入内容的功能销售管理信息的导出:完成用户从界面输入需要导出的文件路径名称,将系统中销售管理信息保存入文件中销售管理信息的删除:完成用户从界面输入需要的销售管理信息的姓名,并将其从系统中删除三、 详细设计1、 数据结构设计根据系统要求,系统中需要保存的数据有销售管理信息,其结构如下:数据名称姓名性别销售员编号产品代号产品名称销售价格销售日期销售数量产品编号为了能实现不受限制的增加销售信息,采用链表的结构保存销售管理的信息,在增加销售管理的基本信息时,创建一个销售管理节点,将其插入到链表中,示意图如下:销售管理基本信息1 销售管理基本信息1 销售管理基本信息1 销售管理基本信息1 2、 界面设计主界面:根据系统要求,设计一个字符界面,显示系统菜单,为了一线友好性,将在每个菜单前面显示该菜单相对应的数字用户输入菜单项前的数字,主菜单消失,进入该模块的相应界面,进行相应的操作,完成后,回到主界面。输入界面:输入员工信息只能输入4个员工的信息。性别如果不对要重新输入:查询销售员信息:输入销售产品信息有五种产品的信息:查询输入商品的信息:输入销售信息可以输入自己想输入的个数,然后将数据将保存。如果时间不对会再次输入直到对了为止:保存销售记录:根据销售员编号查询销售员信息:根据销售员编号删除销售员信息:3.模块实现主界面实现:模块说明:调用printf()函数,在屏幕上打印需要显示的字符信息,需要在显示之前调用system(“cls”)函数将前面的界面清空。 对应的实现函数menu_show();功能选择模块实现:模块说明:接受从键盘输入的菜单选择,判断并调用相应的功能函数,完成其对应的功能,实现功能选择。对应的函数:menu_select();管理系统信息录入模块实现:模块说明:从键盘接收输入的管理系统信息表,在动态存储区中创建管理系统信息表的节点,遍历链表,将其插入到管理系统信息表的最后位置。模块流程:清屏遍历链表,找到最后一个节点创建一个新的节点从键盘给节点赋值将新节点连接到链表的最后一个节点上对应函数:void create_sell_doc()管理系统信息删除模块实现:模块说明:从键盘输入需要删除的销售信息,可以根据销售员编号;产品编号;或者日期。遍历链表,判断节点的销售员编号或者产品编号或者日期是否输入的销售员编号或者产品编号或者日期相等,如果相等,就删除此节点然后将上一节点连接到下一节点,最后将删除后的链表的头结点返回。对应函数:int judge() int judge_data(char *data1)int judge_data(char *sells)清屏遍历链表,找到最后一个节点遍历链表,找到所要找的结点删除此结点 将此结点的空间释放将上一个结点指向下一个结点 返回头指针判断日期是否正确:模块说明:当输入日期的时候可以判断日期的对错与否,格式为YYYY-XX-ZZ;如果错误的话则会自动让使用者在次输入相关函数:int judge_data(char *data1);销售信息报表模块:模块说明:输入起始日期和中止日期。实现了显示每个销售员销售某个产品的总和。每个产品销售数量总和,和总共销售的和。对应函数:void excel()清屏判断链表中对应结点的日期是否在所对应的范围内建立二维数组保存所计算对应的数据输出对应的数据结束4 测试结果:如界面所示。5、 实训总结在编写这个程序时,大量的指针运用,让我更进一步了解c语言尤其是链表的链接,指针的变化,动态内存的申请,都对我很大的启发。当然,在开始的时候,一直有很多的错误,时常的编译乱码,还找不到错误的原因。这让我非常郁闷,而且,有时很不想做,不过还是坚持下来了。编写这个程序花费了很长时间,所以要有耐心,有信心,更要有恒心,我相信三心齐聚,一定会在这个专业上走得更远。六、附录程序源码:#include stdio.h /*I/O函数*/#include stdlib.h /*标准库函数*/#include string.h/*字符串函数*/#include ctype.h /*字符操作函数*/#include time.h /*时钟函数*/#include cstdlib#include conio.h#define LEN sizeof(struct person)#define LON sizeof(struct sell)int x,k;/*定义全局变量用于保存当前商品种类*/*定义销售员结构*/struct person int sp_num; /*销售员编码*/char name10; /*销售员姓名*/char sex10;/*销售员性别*/struct person * next;_person4,person14;/*定义商品数据结构*/struct product int num; /*产品代号*/char name20; /*产品名称*/float price; /*销售价格*/struct product * next;_product5,_product15;/定义主结构体数组和备用结构体数组/*定义日期结构体*/struct dataint year,month,day;/*定义销售数据结构*/struct sell int sp_num; /*销售员编号*/int num; /*商品编号*/char data112;/*日期*/int sells;/*销售数量*/struct sell * next;sell15;struct person *head_p1=NULL,*qq,*p,*tail_p1,*p;/*定义结构体指针head_p1 为头指针,*qq 为输入数据缓存空间指针,tail_p1为尾指针*/struct product *head_p2=NULL, *pp1,*tail_p2,*p1;struct sell *head_s=NULL,*pp,*tail_s,*p2;void main();/主函数void load_person();/写入销售员信息void display_person();/显示销售员信息void load_product();/写入商品信息void display_product();/显示商品信息int judge_data(char *data1);/细节判断函数,用于判断日期是否合法int judge();/主体判断函数void create_sell_doc();/新建销售信息记录void load_sell();/写入销售信息void search_sell_sp_num();/根据销售员编号查询销售信息void delete_sell_person();/根据销售员编号删除销售信息void excel();/销售信息报表/*主函数*/void main()int choice;int size = sizeof(struct sell);head_p1=malloc(sizeof(struct person);/申请动态存储空间head_p1-next=NULL;head_p2=malloc(sizeof(struct sell);/申请动态存储空间head_p2-next=NULL;doprintf(*欢迎使用商品销售管理系统!*nn);printf( 1. 输入销售员信息n);printf( 2. 显示销售员信息n);printf( 3. 输入商品信息n);printf( 4. 显示商品信息n);printf( 5. 新建销售信息记录n);printf( 6. 保存写入销售信息记录n);printf( 7. 根据销售员编号查询销售信息n);printf( 8. 根据销售员编号删除销售信息n);printf( 9. 销售信息报表n);printf( 0. 退出n);printf(*n);printf(请选择,输入09的数字n);scanf(%d,&choice);system(cls);switch(choice)case 1:load_person();system(cls);break;case 2:display_person();system(cls);break;case 3:load_product();system(cls);break;case 4:display_product();system(cls);break;case 5:create_sell_doc();system(cls);break;case 6:load_sell();system(cls);break;case 7:search_sell_sp_num();system(cls);break;case 8:delete_sell_person();system(cls);break;case 9:excel();system(cls);break;case 0:printf(nnnn);printf(谢谢使用!nnnn);break;while(choice0&choice=11);/*输入销售员信息*/void load_person()int n=0,i;FILE *fp; /指向文件的指针if(fp=fopen(销售员信息.txt,w)=NULL)/打开文件printf(打开文件错误,请确认文件路径!n); /不能打开exit(0); /退出*/printf(请输入销售员信息n);printf(编号,姓名,性别n);for(i=1;i*nnn);printf( 销售员编号 销售员信息 销售员性别n);if(fp=fopen(销售员信息.txt,r)=NULL)printf(打开文件错误,请确认文件路径!nn);while(a=fgetc(fp)!=EOF)printf(%c,a);getchar();printf(n查询完毕,请按任意键继续.);getch();system(cls);/*输入商品信息*/void load_product()int n=0,i;FILE *fp; /指向文件的指针if(fp=fopen(商品信息.txt,w)=NULL)/打开文件printf(打开文件错误,请确认文件路径!n); /不能打开exit(0); /退出*/printf(请输入商品信息n);printf(编号 名称 价格n);for(i=1;i10000|year12|month31|day30)n=0;if(month=2&day=29)n=0;if(month=4|month=6|month=9|month=11)if(day30) n=0;return n;/*主体判断函数*/int judge()int i,flag=1;for(i=0;isellsdata1)=0)return 0;/判断日期elsereturn 1;/完全正确void create_sell_doc()/新建销售信息int n,i=0,m,code,k; pp=(struct sell *)malloc(sizeof(struct sell);/申请动态存储空间并将指针转变为结构类型 qq=(struct person *)malloc(sizeof(struct person);/申请动态存储空间并将指针转变为结构类型 srand(time(0); code=rand(); pp-next=NULL; qq-next=NULL; system(cls); /*清屏*/if(head_s!=0)p2=head_s;while(p2-next!=NULL)p2=p2-next;getchar();printf(n 销售信息记录已建立,按任意键返回.:n);getchar();system(cls); /*清屏*/p2-next=pp=(struct sell*)malloc(LEN);elsehead_s=pp=(struct sell*)malloc(LEN);pp-next=NULL;printf(nn 请输入希望建立的销售基本信息条数n:n);scanf(%d,&n);/*开始建立n条销售基本信息记录*/printf(n 销售员号 产品代码 销售时间 产品数量:n );head_s=pp;pp=(struct sell *)malloc(LON); /*开辟一个新单元*/pp-next=NULL;for(i=0;isp_num,&pp-num,pp-data1,&pp-sells);k=(int)pp-sells;while(1)m=judge();/判断商品编号 数量 日期是否正确if(m=1)printf(tt销售信息输入成功!按任意键继续.n);getch();system(cls);break;else if(m=2)system(cls);printf(商品销售数量错误!请重新输入!);printf(请输入销售数量nnn); /*提示输入记录*/printf(销售数量:n);scanf(%d,&pp-sells); /*输入记录*/continue;else if(m=0)system(cls);printf(销售日期不合法,请重新输入销售日期:nnn);/*提示输入记录*/printf(销售日期n);scanf(%s,pp-data1); /*输入记录*/continue;i+;printf(n商品信息输入成功!n按任意键继续.n);getch();system(cls);tail_s=(struct sell *)malloc(LON); /*开辟一个新单元*/pp-next =p2;p2=pp;pp=tail_s;pp-next =NULL;free(tail_s);p2-next=NULL;printf(n %d项信息输入完毕,按任意键返回.n,n);getchar();getchar();system(cls); /*清屏*/void load_sell()FILE *fp;struct sell *p;if(fp=fopen(销售信息.txt,r)=NULL)printf(打开文件错误,请确认文件路径!nn);exit(0);elsep=head_s;while(p!=NULL)fprintf(fp,销售员编号 产品编号 销售日期 销售数量 n); fprintf(fp,%4d%4d%4s%4d,&p-sp_num,&p-num,p-data1,&p-sells); p=p-next;printf(销售信息已保存!);fclose(fp);getchar();getchar();system(cls);void search_sell_sp_num()int sp_num_1;pp=head_s;printf(nn 输入销售员编号:n);scanf(%d,&sp_num_1);while(pp!=NULL)if(&pp-sp_num-sp_num_1=0)printf(t该销售员销售信息如下:n);printf(t 商品编码:);printf(%dn,pp-num );printf(t 销售日期:);printf(%sn,pp-data1 );printf(t 销售数量:);printf(%dn,pp-sells );break;elsepp=pp-next;if(pp=NULL)printf(nn找不到该销售员信息!n);printf(n 按任意键返回.n);getch();system(cls); /*清屏*/void delete_sell_person()int sp_num_1;if(head_s=NULL) getchar();printf(n 无销售信息,按任意键将返回:n);getchar();system(cls); /*清屏*/return;pp=head_s;printf(nn请输入要删除的销售员号:n);scanf
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农村住宅设计合同范本
- 高级管家服务合同范本
- 2025年心脏外科冠脉搭桥手术技巧实操考核答案及解析
- 赣县区有关部门下属事业单位2025年第二批公开选调工作人员备考练习试题及答案解析
- 2025黑龙江绥化绥棱县招聘急需紧缺专业工作人员2人考试参考试题及答案解析
- 成都高新区街道面向社会公开招聘2025年第一批次编外聘用人员备考练习试题及答案解析
- 2025年康复医学功能康复方案设计答案及解析
- 2025嘉兴海宁市斜桥镇中心幼儿园公开招聘劳动合同制教职工12人考试参考试题及答案解析
- 2025年内科心力衰竭的心电图表现及临床特征模拟测试卷答案及解析
- 2025年介入放射学血管造影技术操作规范考核试卷答案及解析
- 大学意识形态安全教育
- 原材料不合格预防措施
- 2024-2025年江苏专转本英语历年真题(含答案)
- 高压氧护理进修汇报
- 中国神经病理性疼痛诊疗指南(2024版)解读
- 2024年微信小程序开发与代运营合同
- 2024国有企业与私营企业之间的混合所有制改革合作协议
- 【电气施工】工业厂房机电安装工程施工组织设计方案
- 电商平台知识产权保护与维权服务合同
- 《数据结构》期末考试试卷试题及答案
- 工商企业管理毕业论文范文(4篇)
评论
0/150
提交评论