学院销售管理课件设计分析报告

上传人:豆*** 文档编号:126530099 上传时间:2022-07-28 格式:DOC 页数:39 大小:286KB
收藏 版权申诉 举报 下载
学院销售管理课件设计分析报告_第1页
第1页 / 共39页
学院销售管理课件设计分析报告_第2页
第2页 / 共39页
学院销售管理课件设计分析报告_第3页
第3页 / 共39页
资源描述:

《学院销售管理课件设计分析报告》由会员分享,可在线阅读,更多相关《学院销售管理课件设计分析报告(39页珍藏版)》请在装配图网上搜索。

1、湖北汽车工业学院电气与信息工程学院 C语言程序设计课设报告 项目: 商品销售管理 班级: 姓名: 成绩: 一、需求分析1、问题根据需求,该系统所应涉及的信息有如下某些:商品的基本信息:商品编号,商品名称,商品产地,商品库存。顾客的基本信息:顾客代码,购买数量,销售日期根据需求,该系统所应实现的功能有如下某些:多种基本数据的录入。如:销售基本信息录入。基于多种数据的查询。例如输入张三姓名,查询顾客张三的销售信息。数据导出:将销售中信息导出到指定文献。2、系统 采用C语言实现,开发环境为VC,可以运营在操作系统windows98及以上皆可。3、运营规定 能不受限制的录入销售信息 界面和谐,操作以便

2、,例如删除前需要提示顾客与否删除 容错性强,例如数据导出时,如果文献不存在需要提示顾客。 二、总体设计1、系统流程设计根据系统规定,设计如下的系统流程2、系统模块设计根据系统的功能设计,如下模块销售系统输入顾客购买货品的信息并保存根据产品编号查询产品的销售历史计算时间段内各个产品的销售总额根据顾客姓名查询购买历史显示所有顾客的姓名读入货品目前库存信息并显示主界面模块:完毕系统菜单的显示功能选择模块:根据顾客的选择,完毕其相应的功能。商品信息录入:完毕顾客从文献读入库存信息。销售信息录入:完毕顾客从界面输入销售信息。根据编号查询历史:完毕顾客从界面输入商品编号,在系统查询符合条件的销售信息,并在

3、界面上显示的功能。根据顾客查询历史:完毕顾客从界面输入顾客姓名,查询该客户的购买历史。显示顾客姓名:完毕顾客从界面查看所有顾客姓名。三、具体设计1、数据构造设计根据系统规定,系统中需要保存的数据有商品,销售和顾客的信息,其构造如下:数据项名称数据项系统表达数据类型数据长度备注产品编号num整型4产品名称name字符串20产品价格price浮点型4产品产地prodplace字符串40产品库存amount整型4初始1000由于懂得商品有10种,则采用构造体数组来保存商品信息使用C语言创立的构造体(和构造体数组)如下:struct production_listint num;char name20

4、;float price;char prodplace40;int amount;production10;为了能实现不受限制的保存和查看销售信息,采用链表的构造保存销售的信息,在增长销售的基本信息时,创立一种销售的节点,将其插入到链表中,其数据构造如下:数据项名称数据项系统表达数据类型数据长度备注顾客代码num整型4顾客姓名name字符型10产品名称pro_name字符型20销售数量amount整型4销售日期time字符型10使用C语言创立的构造体如下:struct sell_information int num;char name10;char pro_name20;int amount

5、; char time10; struct sell_information *next;2、界面设计主界面:根据系统规定,设计一种字符界面,显示系统的菜单,为了体现和谐性,将在每个菜单前显示该菜单项相应的数字顾客输入菜单项前面的数字,主菜单消失,进入该模块的相应界面,进行相应的操作,完毕后,回到主界面。读入产品信息界面: 在光标下输入销售的信息,用空格将信息隔开销售界面:输入销售信息,保存在链表中。根据产品编号查询产品销售历史界面:计算各个时段的销售额界面: 输入起始时间和终结时间计算销售额根据顾客姓名查询购买历史界面:输入顾客姓名,即导出顾客购买信息。顾客姓名显示:选择该功能将显示所有顾客

6、姓名3、模块实现主界面实现:主函数中用printf(tt*T1023-9徐孟玲*tt”);printf(tt*T1023-9徐孟玲*tt”);printf(tt*t1.读入产品目前库存信息并显示 *nn);printf(tt*t2.键盘输入顾客购买产品的信息并保存 *nn);printf(tt*t3.根据产品编号查询产品销售历史 *nn);printf(tt*t4.计算各时间段产品销售总额 *nn);printf(tt*t5.根据顾客姓名查询购买历史 *nn);printf(tt*t6.显示所有顾客姓名 *nn);printf(tt*t7.显示目前仓库信息 *nn);printf(tt*t0.

7、退出查询系统 *nn);printf(tt*n);printf(nn);printf(tt请输入你的选择:);实现。scanf(%d,&choice);printf(n*n);switch(choice)case 1:system(cls);Readdata();break;case 2:system(cls);head=sell(head);break;case 3:system(cls);getshopingdata(head);break;case 4:system(cls);sell_total(head);break;case 5:system(cls);getnamedata(he

8、ad);break;case 6:system(cls);list_custome(head);break;case 7:system(cls);list_store();break;进行功能选择。定义新节点打印主界面选择功能实现各个功能退出程序模块流程:相应函数:void main()读入产品目前库存模块实现:模块阐明:从文献中读取已经写好的产品信息,存入数组production10模块流程:打开产品信息文献数据写入相应成员关闭文献回主菜单i10假真 相应函数:void Readdata()键盘输入顾客购买产品的信息模块实现:模块阐明:从键盘按提示输入销售信息,并且存入链表中,在输入的时候调

9、用判断函数来判断输入数据的合法性,以保证数据存储的对的性。模块流程:代入头结点存入结点回主菜单flag假真键入销售信息continue真假相应函数:struct sell_information * sell(struct sell_information *head)判断输入信息模块实现:模块阐明:对输入的数据进行合法性判断,若不合法,提示顾客重新输入模块流程:代入销售信息判断编号判断日期判断每月的天数判断闰年全真有假flag=1flag=0返回flag判断库存相应函数:int DateAmountProname(struct sell_information *p)判断编号模块:模块阐明:

10、对销售功能中输入的编号与productin10.num进行对比,如果存在,返回1,不存在则返回0。编号存入a10i=0回主菜单i10假真c= strcmp(a,productioni.namec真假flag=1flag=0模块流程:相应函数:int judge_proname(char *p)判断库存量模块:模块阐明:对当期仓库信息进行判断,若超过库存量返回0,否则返回1。库存量存入a10i=0回主菜单i10假真c= strcmp(a,productioni.namec真假flag=1flag=0相应函数:int jugde_amount(int amount,char *p)判断日期模块:模

11、块阐明:把日期的年月日进行分别判断,尚有对每月,以及闰年对二月的影响等做出相应的判断。年月日分别存入all_year,all_month,all_day回主菜单all_month=1,3,5,7,8,10,12假真all_day=31all_month=2真假all_day=28all_day=30all_year闰年all_day=29真假flag=1flag=0真假相应函数:int Judge_date(char *p)int NumberDay(int Complete_year,int Complete_month,int Complete_day)int Isleapyear(int

12、 year)根据产品编号查询产品销售历史模块:模块阐明:输入产品编号,查看该产品销售的历史信息,若商品存在会显示相应信息,若不存在则会提示出错。模块流程:输入客户姓名打销售信息存在真假返回主菜单输入产品编号打印产品信息存在真假返回主菜单相应函数:void getshopingdata(struct sell_information *head)根据顾客姓名查询购买历史模块:模块阐明:输入产顾客姓名,查看该顾客的购买历史信息,若鼓了存在会显示相应信息,若不存在则会提示出错。模块流程:相应函数:void getnamedata(struct sell_information *head)计算各时间

13、段产品销售总额模块:模块阐明:输入需要查询总额的时间起始点和终结点,计算这段时间销售的总额。模块流程:sum=0输入起始日期和终结日期查找符合日期的节点sum+=相应商品销售量*价格输出sum返回主菜单相应函数:void getnamedata(struct sell_information *head)显示所有顾客姓名模块:sum=0输入起始日期和终结日期查找符合日期的节点sum+=相应商品销售量*价格输出sum返回主菜单四、测试成果1、录入销售测试 测试数据:输入小样 湖北汽车工业学院, ,8241470 测试成果:程序运营浮现错误,如下 因素 电话输入的长度超过了电话表达的长度测试数据:

14、输入张吴波 湖北汽车工业学院, 测试成果:程序运营正常,对的的插入到链表的最后位置测试数据:输入:张吴波 湖北汽车工业学院 8241470 425测试成果:程序运营不正常,可以将张吴波 湖北汽车工业学院, 8241470插入到链表的最后位置,但是425不能保存因素:使用了scanf(“%s”),将空格作为截止符2、修改销售测试 测试数据:在系统中存在4个名称为li的销售 测试成果:输入修改的姓名 li ,显示了第一种姓名为li的销售信息,输入修改后的信息:张吴波 湖北汽车工业学院 将第一种姓名为li的销售修改成功测试数据:在系统中不存在名称为张三的销售,输入后,提示姓名不存在,如下图3、导入销

15、售测试 测试数据:输入C:dd.tst途径(系统中不存在该文献) 测试成果:提示不能打开文献,不能导入回车后程序结束因素:不能打开文献文献使用了exit函数测试数据:输入C:data.txt途径(系统中该文献,格式符合程序规定)测试成果:提示能将文献中的数据对的导入data.txt的文献内容如下:12li xing 88888 zhang xxx 1222 zhou yi 88999 li xing 88888 zhang xxx 1222 zhou yi 88999 li xing 88888 zhang xxx 1222 zhou yi 88999 li xing 88888 zhang

16、xxx 1222 zhou yi 88999 测试数据:输入C:data1.txt途径(系统中该文献,格式不符合程序规定)测试成果:提示能将文献中的数据对的导入,但导入的数据不对的查询成果,数据未对的导入data1.txt文献内容如下:li xing zhang xxx 1222 zhou yi zhou ccccccc 88999 查询模块测试: 略删除模块测试 略五、实训总结: 实训感想对系统开发的总结(设计亮点,存在的局限性,需要改善的地方)(略)六、附录程序源代码/头文献#include#include#includestruct production_listint num; cha

17、r name20; float price; char prodplace40; int amount;production10;struct timeint year;int month;int day;ymd;struct sell_informationchar name10;char pro_name20;int amount; char time10;/*(-01-02)*/ struct sell_information *next;/*链表指针指向下一种*/;void Readdata();struct sell_information * sell(struct sell_in

18、formation *head);void getnamedata(struct sell_information *head);void getshopingdata(struct sell_information *head);int n10=1000,1000,1000,1000,1000,1000,1000,1000,1000,1000;int DateAmountProname(struct sell_information *p);/*1.读入货品目前库存信息并显示*/void Readdata()FILE *fp; int i=0;if(fp=fopen(productions

19、information.txt,r)=NULL)printf(文献打开错误!n);exit(0);while(inext!=NULL)p1=(struct sell_information *)malloc (sizeof (struct sell_information);p3=head-next; head-next=p1;p1-next=p3;elsep3=p1=p2=(struct sell_information *)malloc (sizeof (struct sell_information);head-next=p1; p2-next=NULL;doprintf(tttt请输入

20、顾客信息:n); printf(*n); printf(请输入顾客姓名t:); scanf(%s,&p1-name); printf(请输入顾客所购货品名称t:); scanf(%s,p1-pro_name); printf(请输入顾客购物数量:); scanf(%d,&p1-amount); printf(请输入顾客购物时间:); scanf(%s,p1-time);printf(n); if(DateAmountProname(p1) printf(输入对的!请按0继续下面的环节!n);scanf(%d,&n); else printf(输入错误!请重新输入!); if(n=0) brea

21、k;while(1);printf(*n);printf(如果想停止购买,请按0,如果要继续入库,请按其他数字键n);scanf(%d,&m);if(m=0)break;while(1);return head;/*判断输入信息与否对的*/int DateAmountProname(struct sell_information *p)int Judge_date(char *p);int judge_proname(char *p);int jugde_amount(amount,pro_name); if(Judge_date(p-time)&judge_proname(p-pro_nam

22、e)&jugde_amount(p-amount,p-pro_name)return 1;else return 0;/*判断编号*/int judge_proname(char *p)int i=0,flag;char a10;while(*p)ai+=*p+; ai=0; for(i=0;i10;i+) if(strcmp(a,productioni.name)=0) flag=1; break; if(i=10)flag=0;return flag;int jugde_amount(int amount,char *p) int i=0;int flag;char a10;while(*

23、p)ai+=*p+; ai=0;for(i=0;i0)return 1;elsereturn 0;/*判断日期与否合法*/int Judge_date(char *p) int i=0; char s5; char m3; char n3;int NumberDay(int Complete_year,int Complete_month,int Complete_day);int all_year;int all_month;int all_day;char date10;while(*p)datei+=*p+; datei=0; if(i=10 & date4=- & date7=-) f

24、or(i=0; i4; i+ ) si=datei;si=0; all_year=atoi(s); /*把前4位保存到年里*/ for(i=5; i7; i+ ) mi-5=datei;mi-5=0; all_month=atoi(m); /*把第5-7位转化保存到月成员中*/ for(i=8; i10; i+ ) ni-8=datei;ni-8=0; all_day=atoi(n); /*把后两位保存到日成员中*/ else printf(日期格式有误请从新输入!n); return 0; if(NumberDay(all_year,all_month,all_day) return 1;

25、else printf(输入的天数或年份或月份有误请历来!n); return 0;/*功能:判断每月的天数与否合法*/int NumberDay(int Complete_year,int Complete_month,int Complete_day)int Isleapyear(int year);/*判断闰年函数*/ int t13=0,31,28,31,30,31,30,31,31,30,31,30,31; /*定义数组*/if(Isleapyear(Complete_year)if(Complete_month!=2)if(Complete_month=12&Complete_da

26、y=tComplete_month)return 1;elsereturn 0;elseif(Complete_month=12&Complete_day=tComplete_month+1)return 1;else return 0;elseif(Complete_month=12&Complete_daynext;else printf(产品代号不存在!); while(p1!=NULL)/*链表的遍历过程*/if(strcmp(s,p1-pro_name)=0) printf(*n);printf(tttt顾客购买信息为n);printf(顾客姓名: 产品名称: 购物数量: 购物时间:

27、n); printf(%-10s%-20s%-10d%-10sn,p1-name,p1-pro_name,p1-amount,p1-time);printf(*n);elseprintf(产品未发售,没有销售记录!);p1=p1-next;int Judge_proname(int p, char *b) int i;int flag=0; for(i=0;i10;i+) if(productioni.num=p)flag=1;strcpy(b,productioni.name); break;return flag;/*4.计算各时间段产品销售总额*/void sell_total(stru

28、ct sell_information *head)struct sell_information *p1=head;int s_year,s_month,s_day,e_year,e_month,e_day,i,j;char s5;char m3;char n3;int all_year;int all_month;int all_day;char date10;float sum=0; printf(请输入起始日期:);scanf(%d-%d-%d,&s_year,&s_month,&s_day); printf(请输入终结日期:);scanf(%d-%d-%d,&e_year,&e_mo

29、nth,&e_day); while(p1!=NULL)/*链表的遍历过程*/ for(i=0; itimei; for(i=0; i4; i+ ) si=datei;si=0; all_year=atoi(s); /*把前4位保存到年里*/ for(i=5; i7; i+ ) mi-5=datei;mi-5=0; all_month=atoi(m); /*把第5-7位转化保存到月成员中*/ for(i=8; is_year&all_yeare_year|all_years_year&all_year=e_year&all_monthe_month|all_year=s_year&all_ye

30、ars_month|all_year=s_year&all_year=e_year&all_months_month&all_monthe_month|all_year=s_year&all_year=e_year&all_months_day|all_year=s_year&all_year=e_year&all_month=e_month&all_months_month&all_day=s_day&all_day=e_day)for(j=0;jpro_name)=0) sum+=p1-amount*productionj.price;p1=p1-next; if(sum=0) print

31、f(这个时间段没有销售记录!n); else printf(这个时间段的销售总额为%.0f,sum);/*5.根据顾客姓名查询购买历史*/void getnamedata(struct sell_information *head)char name10;int count=0;struct sell_information *p2=head;printf(请输入顾客姓名:);scanf(%s,&name);while(p2!=NULL)if(strcmp(name,p2-pro_name)=0)count+;printf(*n);printf(tttt该顾客的购买信息为);printf(顾客

32、姓名: 产品名称: 购物数量: 购物时间:); printf(%-10s%-20s%-10d%-10sn,p2-name,p2-pro_name,p2-amount,p2-time);printf(*n);p2=p2-next;if(count=0)printf(没有该顾客的购买记录!);/*6.显示所有顾客姓名*/void list_custome(struct sell_information *head)struct sell_information *p1=head;printf(所有顾客:n);if(p1-name=NULL)printf(没有购买记录!n); return ;els

33、ewhile(p1-next!=NULL) p1=p1-next; printf(%sn,p1-name);void main()int choice;struct sell_information *head=NULL;head=(struct sell_information*)malloc(sizeof(struct sell_information);head-next=NULL;doprintf(n* 货品销售查询系统 *nn); printf(1.读入货品目前库存信息并显示nn); printf(2.键盘输入顾客购买货品的信息并保存nn); printf(3.根据产品编号查询货品销

34、售历史nn); printf(4.计算各时间段产品销售总额nn); printf(5.根据顾客姓名查询购买历史nn); printf(6.显示所有顾客姓名nn); printf(0.退出查询系统nn); printf(*n);printf(nn);printf(请输入你的选择:);scanf(%d,&choice);switch(choice)case 1:system(cls);Readdata();break; case 2:system(cls);head=sell(head);break; case 3:system(cls);getshopingdata(head);break; case 4:system(cls);sell_total(head);break; case 5:system(cls);getnamedata(head);break; case 6:system(cls);list_custome(head);break;while(choice!=0);printf(谢谢您使用本系统!请按任意键退出!n);

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!