您好,欢迎访问三七文档
(一)、设计内容与设计要求1.设计内容:设计课题四:销售管理系统一、问题描述:通过本系统实现对N个销售员信息的录入、显示、添加、删除,以及对产品销售额的排序等操作的管理。二、功能描述:1、本系统采用一个包含n个数据的结构体数组,每个数据的结构应当包括:姓名、身份、产品1销售额、产品2销售额、总产品销售额。2、本系统显示这样的菜单:销售管理系统1、销售员信息输入2、销售员信息输出3、删除销售员4、添加销售员5、销售额排序6、统计产品销售额7、保存销售额信息0、退出系统3、执行一个具体的功能之后,程序将重新显示菜单。4、将系统信息保存在文件中。三、算法提示:1、数据结构:结构体类型数组2、数据库结构:下表构成该系统的基本数据库姓名身份产品1销售额产品1销售额总产品销售额charintintintint四、测试数据:记录数20。2.设计要求:1).设计正确,方案合理。2).界面友好,使用方便。3).程序精炼,结构清晰。4).设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。5).上机演示。(二)、进度安排第一周课题讲解,查阅资料总,体设计,详细设计周日:8:00——12:0014:00-—18:00周一:8:00——12:00周三:14:00——18:00第二周编程,上机调试,修改程序,完善程序,答辩撰写课程设计报告周二:8:00——12:00周五:14:00——18:00附:课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。正文总字数要求在5000字以上(不含程序原代码)目录一、需求分析………………………………………………………1二、概要设计………………………………………………………1三、详细设计………………………………………………………5四、调试分析以及设计体会………………………………………6五、使用说明………………………………………………………6六、附录……………………………………………………………7一、需求分析1、程序的功能。程序要完成的功能有:(1)销售员信息录入(2)销售员信息显示(3)销售额信息保存(4)产品总销售额由大到小排序(5)统计产品销售额信息(6)插入销售员及其信息(7)删除销售员及其信息(0)退出销售管理系统2、输入输出的要求。输入运用了scanf和gets函数;输出运用了printf函数。二、概要设计1、程序由哪些模块组成以及一个模块之间的层次结构、模块的调用关系;每个模块的功能。程序由主函数voidmain()、输入voidinput()、显示voidshow()、删除voiddel()、排序voidsort()、添加voidinsert()、统计voidstatistic()、保存voidsave()、退出voidexit()等九个模块组成。本系统涉及的知识点:分支,循环,函数,数组,结构体,文件等。各个函数模块的实现如下:(1)关于voidmain():采用switch分支控制语句,通过键盘输入值作为开关值,用以调用主菜单各大函数,从而实现主控职能。C语言的函数调用遵循先定义后引用的原则,在程序的最开始就定义了众多的全局变量,如inti。其调用关系如下:switch(i){case0:printf(o退出销售管理系统o\n);exit(0);break;case1:printf(-----销售员信息录入-----\n);input();break;case2:printf(-----销售员信息显示-----\n);show();break;case3:printf(-----销售额信息保存-----\n);save();break;case4:printf(-----总销售额信息排序-----\n);sort();break;case5:printf(-----统计产品销售额信息-----\n);statistics_sailer();break;case6:printf(-----插入销售员及其信息-----\n);insert();break;case7:printf(-----删除销售员及其信息-----\n);del();break;default:printf(输入错误,请重新选择!!);break;}}}(2)录入函数voidinprint()的实现:由主菜单按‘1’键进入。利用循环方式,将相关信息存入结构体数组,结构体组根据实际的纪录条数,建立销售员信息。按照要求,分步依次录入信息:销售员个数,销售员姓名,销售员工号,产品一销售额,产品二销售额,实现途径为:voidinput(){inti;printf(请输入销售员个数\n);scanf(%d,&n);for(i=0;in;i++){printf(输入销售员姓名:\n);scanf(%s,seller[i].name);printf(输入销售员工号:\n);scanf(%s,seller[i].num);printf(请分别输入产品一和产品二的销售额:\n);scanf(%d%d,&seller[i].sailerl,&seller[i].sailerm);}system(cls);}(3)显示函数voidshow()的实现:该功能是输出销售员中的所有信息:voidshow(){structseller*p;system(cls);printf(姓名工号产品一销售额产品二销售额:\n);for(p=seller;pseller+n;p++)printf(%-8s%2s%6d%12d\n,p-name,p-num,p-sailerl,p-sailerm);printf(\n\n);}(4)排序函数voidsort()的实现:voidsort(){structsellertemp;inti,j;for(i=0;in;i++)seller[i].sum=seller[i].sailerl+seller[i].sailerm;for(j=0;jn-1;j++)for(i=0;in-1-j;i++)if(seller[i].sumseller[i+1].sum){temp=seller[i];seller[i]=seller[i+1];seller[i+1]=temp;}system(cls);printf(姓名工号产品一销售额产品二销售额产品总销售额:\n);for(i=0;in;i++)printf(\n%s\t%s\t%d\t%8d\t%8d\n,seller[i].name,seller[i].num,seller[i].sailerl,seller[i].sailerm,seller[i].sum);}(5)统计函数voidstatistics_sailer()的实现:运用的语句是:voidstatistics_sailer(){inti,sum1,sum2,sum;sum1=0;sum2=0;sum=0;for(i=0;in;i++){sum1+=seller[i].sailerl;sum2+=seller[i].sailerm;sum=sum1+sum2;}system(cls);printf(产品一的销售额:%d\n,sum1);printf(产品二的销售额:%d\n,sum2);printf(产品总的销售额:%d\n,sum);}(6)保存函数voidsave()运用以下语句实现:voidsave(){FILE*fp;inti;fp=fopen(seller.txt,w);for(i=0;in;i++)fwrite(&seller[i],sizeof(structseller),1,fp);system(cls);printf(\n\n);printf(保存成功!\n);printf(\n\n);}(7)删除函数voiddel()的实现:输入要删除的销售员的姓名。运用的语句是:voiddel(){charseller_name[20];inti,j;printf(输入要删除销售员的姓名:);fflush(stdin);scanf(%s,seller_name);for(i=0;in;i++){if(strcmp(seller_name,seller[i].name)==0){for(j=i;jn;j++)seller[i]=seller[i+1];n=n-1;}break;}save();system(cls);}2、此程序的数据库存储的数据为:销售员的姓名、工号(身份)、产品一的销售额、产品二的销售额、产品总的销售额。三、详细设计1、采用C语言定义相关的数据类型。structseller{charnum[10];charname[20];intsailerl;intsailerm;intsum;}seller[200];2、画出函数的调用关系图。开始主函数(main)销售员信息显示(show)销售员信息输入(input)保存销售额信息(save)统计产品销售额statistic添加销售员(insert)删除销售员(del)退出(exit)四、调试分析以及设计体会1、问题以及解决问题的方法。在开始编程时我就遇到了问题,首先是心理问题,心里感到一个系统那么复杂要编出来真是太难了。然后在程序编写过程中我遇到了函数没有定义就运行的问题,一开始我还不知道,但通过向老师和同学询问终于改正了这个问题。后来又遇到运行时出现删除一个销售员的信息,显示时又出现它的问题,通过查询原来是因为删除后没有保存,在删除模块中调入save()后就解决了2、课程设计过程经验教训、心得体会。开始时我感到要我编一个程序真是太难了,但经过看书、问老师和问同学将问题一个一个解决后我感觉收获很大,这不仅仅是编了一个程序,而是感觉到了战胜困难的一种快感,也增加了我学习C语言的信心。五、使用说明。用户使用手册:欢迎使用本人开发的销售管理系统。本系统具有以下功能菜单:(0)退出销售管理系统(1)销售员信息录入(2)销售员信息显示(3)销售额信息保存(4)产品总销售额由大到小排序(5)统计产品销售额信息(6)插入销售员及其信息(7)删除销售员及其信息进入此界面后请选择数字0——8进行操作。1.录入功能:在主菜单按下‘1’,按照提示输入录入要录入的销售员人数,销售员的姓名,工号,产品一的销售额,产品二的销售额以ENTER键结束输入,输入完后自动返回主菜单,再按键‘1’,则继续录入信息。2.显示功能:在主菜单界面按下键‘2’再按下ENTER键就会显示全部销售员信息及出现主菜单。3.保存功能:在主菜单按下‘3’,再按下ENTER键,会出现“保存成功”字样,并出现主菜单。4.排序功能:在主菜单界面按下键‘4’再按下ENTER键,就会显示按产品总销售额排序后的全部销售员信息并出现主菜单。5.统计功能:在主菜单按下‘5’,再按下ENTER键,所有销售员产品一的销售额、产品二的销售额、产品总的销售额,并出现主菜单。6.插入功能:在主菜单界面按下键‘6’再按下ENTER键,会显示“请输入销售员的姓名”等提示,根据提示输入销售员的姓名、工号、产品一的销售额、产品二的销售额,输入完成后会显示“是否继续输入(Y/N)”如果继续输入按‘Y’不继续输入按‘N’如果按‘N’会显示主菜单。7.删除功能:在主菜单界面按下键‘6’再按下ENTER键,会显示“请输入要删除的销售员的姓名”等提示,输入要删除的销售员的姓名后按下ENTER键,就删除了要删除的销售员的信息。8.操作结束后请按‘3’保存,再按‘0’推出系统。六、附录1、参考书目:C程序设计(第三版)2、源程序清单#includestdio.h#inc
本文标题:C语言销售管理系统
链接地址:https://www.777doc.com/doc-6197604 .html