《笔记本销售管理系统.pdf》由会员分享,可在线阅读,更多相关《笔记本销售管理系统.pdf(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1.课程设计的目的和要求(代码在下面)目的:通过 C+课程设计,使学生能更全面的掌握所学的知识,将课本的全部内容联系起来,使学生把所学的知识用到具体的工作和学习中。通过课程设计,能够提高学生分析问题、解决问题,从而运用所学知识解决实际问题的能力,并培养基本的、良好的程序设计技能。要求:1.明确课设任务,复习与查阅有关资料。2.设计报告要清楚明了,带有明确注释。3.本次课程设计按照教学要求需要在三周时间内独立完成,学生要发挥自主学习的能力,充分利用课余时间,完成设计题目,不断测试,优化。2.课程设计任务内容 笔记本电脑产品信息包括:产品名称、品牌(或厂商)、产品型号、进价、库存数量。笔记本电脑销
2、售信息包括:产品名称、品牌、产品型号、销售数量、售价、总金额(销售数量*售价)、销售日期(年.月.日)、客户名称。系统的主要功能包括:1.创建笔记本电脑产品信息文件,根据提示输入若干笔记本电脑的信息,并将这些信息保存至一个文件中。2.增加笔记本电脑信息,在原有笔记本电脑产品信息文件的基础上增加新的笔记本电脑信息,并保存至原产品信息文件中。3.删除笔记本电脑信息,提示用户输入要进行删除操作的产品名称和产品型号,如果在产品信息文件中有该信息存在,则将对应的笔记本电脑信息删除,否则输出提示信息,并提示用户选择是否继续进行删除操作。4.修改笔记本电脑信息,提示用户输入要进行修改操作的产品名称和产品型号
3、,如果在产品信息文件中有该息存在,则将提示用户输入要修改的选项,并将结果保存至原产品信息文件,并提示用户选择是否继续进行修改操作。5.笔记本电脑销售管理,创建一个销售记录文件,每完成一次销售,就按销售信息的要求输入各项数据,并将该次的销售信息添加到文件中,同时修改相应的笔记本电脑产品信息文件(主要是修改其库存数量)。6.按不同条件进行查询操作,输出满足条件的笔记本电脑信息。(1)输入产品名称,在笔记本电脑产品信息文件中查找相应的笔记本电脑信息并输出。(2)输入产品名称,在销售记录文件中进行查找,输出该笔记本电脑的所有销售信息。(3)输入一个日期,输出该天所有笔记本电脑的销售信息。(4)输入客户
4、名称,输出与该客户有关的所有销售信息。7.按不同条件进行统计工作。(1)输入一个日期(年.月.日),在销售记录文件中统计该天笔记本电脑的总销售量、总销售金额,并计算该天的销售利润。(2)输入一个日期(年.月),在销售记录文件中统计该月笔记本电脑的总销售量、总销售金额。(3)输入一个日期(年.月),在销售记录文件中统计该月中各个品牌的笔记本电脑的总销售量,并按总销售量从高到低的顺序输出笔记本电脑品牌名称。(4)输入品牌名称,在销售记录文件中统计其不同型号的销量,并输出销量最高的那个型号的笔记本电脑的信息。3.详细设计说明 该题目要求将电脑的信息和销售信息全部存入文件,并且在用的时候从文件中调用。
5、从文件中调用时应用到结构体数组,应注意到结构体数组的引用方式。对电脑信息进行删除、修改时,应注意把修改后的信息保存到原文件中,以供查询和统计功能对信息的使用。每一项功能都包含在一个函数中,这些函数在主函数中调用。4.软件使用说明 第一次运行时需要先建立一个infor.txt,sel.txt的空文件,然后进行创建。以后执行就不需要了,直接用原来文件中的信息。通过提示信息进行操作。5.设计心得与体会 通过课程设计,使自己认识到了自己的不足,对C+的运用还不熟悉,综合应用的能力不强。有些知识点记不牢,编程时要不断的翻课本。还出现一些低级错误,导致程序无法执行。我们要提高自己的实践能力,解决一些实际问
6、题。6.参考文献 C+程序设计 7.附录:代码实现#include#include#include struct information /定义结构体 char name15;char brand15;char model15;int inprice;int num1;struct sell char name15;char brand15;char model15;int num2;int outprice;int sumprice;struct date int year;int month;int day;date1;char person20;int n,s,i,cn=0,sn=0;s
7、truct information infor1000;/定义结构体数组 struct sell sel1000;void inputOnecomputer(void)/输入电脑信息存入文件 FILE*fp;n=0;i=0;printf(产品名称:n);scanf(%s,infori.name);while(strcmp(infori.name,*)!=0)printf(品牌:);scanf(%s,infori.brand);printf(产品型号:);scanf(%s,infori.model);printf(进价:);scanf(%d,&infori.inprice);printf(库存数
8、量:);scanf(%d,&infori.num1);printf(n);n+;i+;printf(产品名称:);scanf(%s,infori.name);if(fp=fopen(infor.txt,wb)=NULL)/创建文件 printf(can not open the file!);exit(0);for(i=0;in;i+)fwrite(&infori,sizeof(struct information),1,fp);/将电脑信息写入文件 fclose(fp);void add()/添加电脑信息 FILE*fp;if(fp=fopen(infor.txt,ab+)=NULL)pri
9、ntf(can not open the file!);exit(0);printf(n请输入产品名称n);scanf(%s,infori.name);printf(n请输入品牌n);scanf(%s,infori.brand);printf(n请输入产品型号n);scanf(%s,infori.model);printf(n请输入进价n);scanf(%d,&infori.inprice);printf(n请输入库存量n);scanf(%d,&infori.num1);fwrite(&infori,sizeof(struct information),1,fp);fclose(fp);pri
10、ntf(添加完成,继续选择nn);void del()/删除笔记本电脑信息 FILE*fp;int x=1,j;char name15,model15;while(x)if(fp=fopen(infor.txt,rb+)=NULL)printf(can not open the file!);exit(0);for(i=0;in;i+)fread(&infori,sizeof(struct information),1,fp);/读取电脑信息 printf(请输入要删除的产品名称);scanf(%s,name);printf(请输入要删除的产品型号);scanf(%s,model);i=0;w
11、hile(strcmp(infori.name,name)!=0)|(strcmp(infori.model,model)!=0)/找到名字和型号相同的电脑 i+;printf(显示该电脑信息:n);printf(%s%s%s%d,infori.name,infori.brand,infori.model,infori.inprice);for(j=i+1;j=n)printf(无该产品名称);rewind(fp);for(i=0;in;i+)fwrite(&infori,sizeof(struct information),1,fp);printf(n已完成操作n继续删除请输入1,否则输入0
12、);scanf(%d,&x);fclose(fp);struct information chname1;void modify()/修改电脑信息 FILE*fp;int m=1,i,x=1;while(x)printf(请输入要修改的产品名称);scanf(%s,chname1.name);printf(请输入要修改的产品型号);scanf(%s,chname1.model);if(fp=fopen(infor.txt,rb+)=NULL)printf(can not open the file!);exit(0);for(i=0;in;i+)fread(&infori,sizeof(str
13、uct information),1,fp);for(i=0;i=0&m=n)printf(未找到该产品n);rewind(fp);for(i=0;in;i+)fwrite(&infori,sizeof(struct information),1,fp);printf(继续修改请输入1,否则输入0n);scanf(%d,&x);/end while fclose(fp);void manage()/创建笔记本电脑销售信息,存入文件。FILE*fp1,*fp;i=0;s=0;if(fp=fopen(infor.txt,rb+)=NULL)printf(can not open the file!
14、);exit(0);printf(请输入产品名称);scanf(%s,seli.name);while(strcmp(seli.name,*)!=0)printf(请输入品牌);scanf(%s,seli.brand);printf(请输入产品型号);scanf(%s,seli.model);printf(请输入销售数量);scanf(%d,&seli.num2);infori.num1=infori.num1-seli.num2;printf(请输入销售价格);scanf(%d,&seli.outprice);printf(请输入销售日期);printf(请输入年份);scanf(%d,&s
15、eli.date1.year);printf(请输入月份);scanf(%d,&seli.date1.month);printf(请输入天);scanf(%d,&seli.date1.day);printf(请输入客户名称);scanf(%s,seli.person);printf(n);i+;s+;printf(请输入产品名称);scanf(%s,seli.name);if(fp1=fopen(sell.txt,wb+)=NULL)printf(can not open the file!);exit(0);for(i=0;is;i+)fwrite(&seli,sizeof(struct s
16、ell),1,fp1);for(i=0;in;i+)fwrite(&infori,sizeof(struct sell),1,fp);fclose(fp1);fclose(fp);printf(添加完成,继续选择nn);void search()/按不同要求在信息记录和销售记录中查找 FILE*fp1;char name115,name215,person15;int m=0;i=0;int year,month,day;while(1)printf(n 按产品名称查询笔记本电脑信息请输入1n);printf(n 按产品名称查询销售信息请输入2n);printf(n 按日期查询请输入3n);p
17、rintf(n 按客户名称查询请输入4n);printf(n 查询结束请输入5n);scanf(%d,&m);getchar();switch(m)case 1:/按名称在信息记录中查 printf(请输入要查询的产品名称n);scanf(%s,name1);for(i=0;i=n)printf(不存在该产品名称n);break;case 2:/按名称在销售记录中查 printf(请输入要查询的产品名称n);scanf(%s,name2);if(fp1=fopen(sell.txt,rb+)=NULL)printf(can not open the file!);exit(0);for(i=0
18、;i=n)printf(未出售该产品n);break;case 3:/按日期查询 printf(请输入要查询的销售日期n);printf(请输入要查询的年份n);scanf(%d,&year);printf(请输入要查询的月份n);scanf(%d,&month);printf(请输入要查询的号数n);scanf(%d,&day);if(fp1=fopen(sell.txt,rb+)=NULL)printf(can not open the file!);exit(0);for(i=0;i=n)printf(此日期无销售产品!);break;case 4:/按客户名称查询 printf(请输入
19、要查询的客户名称n);scanf(%s,person);if(fp1=fopen(sell.txt,rb+)=NULL)printf(can not open the file!);exit(0);for(i=0;i=n)printf(不存在该客户!);break;case 5:printf(查询完成,继续选择n);return;default:printf(按键错误,请重新选择);/end switch /end while struct sell paixu100,temp1,zuida100;void sell()/根据不同要求同记笔记本电脑信息 FILE*fp1,*fp;int m=0
20、,a=0,b=0,s1=0,s2=0,s3,s4=0,year,month,day,j=0,k=0;char name15;i=0;while(m!=5)printf(*输入年月日,在销售记录文件中统计该天笔记本电脑的总销售量,总销售金额,销售利润,请按1n);printf(n);printf(*输入年月,统计销售总量,总销售金额,请按2n);printf(n);printf(*输入一个日期(年.月),在销售记录文件中统计该月中各个品牌的笔记本电脑的总销售量,并按总销售量从高到低的顺序输出笔记本电脑品牌名称,请按3n);printf(n);printf(*输入品牌名称,在销售记录文件中统计其不
21、同型号的销量,并输出销量最高的那个型号的笔记本电脑的信息请按4n);printf(n);printf(*输入结束,请按5n);printf(n);scanf(%d,&m);if(m=1&m=5)switch(m)case 1:printf(输入年:);scanf(%d,&year);printf(输入月:);scanf(%d,&month);printf(输入日:);scanf(%d,&day);if(fp=fopen(infor.txt,rb+)=NULL)printf(can not open the file!);exit(0);if(fp1=fopen(sell.txt,rb+)=NU
22、LL)printf(can not open the file!);exit(0);for(j=0;jn;j+)fread(&inforj,sizeof(struct information),1,fp);for(i=0;is;i+)fread(&seli,sizeof(struct sell),1,fp1);if(seli.date1.year=year)&(seli.date1.month=month)&seli.date1.day=day)s1=s1+seli.outprice*seli.num2;s2=s2+infori.inprice*seli.num2;a=a+seli.num2;
23、s3=s1-s2;printf(销售量是%d,a);printf(n);printf(成本是%d,s2);printf(总销售金额是%d,s1);printf(n);printf(销售利润是%d,s3);printf(n);a=0;s1=0;s2=0;fclose(fp1);fclose(fp);break;case 2:printf(输入年:);scanf(%d,&year);printf(输入月:);scanf(%d,&month);if(fp1=fopen(sell.txt,rb+)=NULL)printf(can not open the file!);exit(0);for(i=0;
24、is;i+)fread(&seli,sizeof(struct sell),1,fp1);if(seli.date1.year=year)&(seli.date1.month=month)s4=s4+seli.outprice*seli.num2;b=b+seli.num2;printf(销售总量是%d,b);printf(n);printf(总销售金额是%d,s4);printf(n);b=0;s4=0;fclose(fp1);break;case 3:printf(输入年:);scanf(%d,&year);printf(输入月:);scanf(%d,&month);if(fp1=fope
25、n(sell.txt,rb+)=NULL)printf(can not open the file!);exit(0);for(i=0;is;i+)fread(&seli,sizeof(struct sell),1,fp1);if(seli.date1.year=year)&(seli.date1.month=month)strcpy(paixuk.name,seli.name);paixuk.num2=seli.num2;k+;for(i=0;ik;i+)for(k=0;kj-i;k+)if(paixuk.num2paixuk+1.num2)temp1=paixuk;paixuk+1=pai
26、xuk;paixuk=temp1;for(i=0;ik;i+)printf(%s,paixui.name);break;case 4:printf(输入电脑名称:);scanf(%s,name);if(fp1=fopen(sell.txt,rb+)=NULL)printf(can not open the file!);exit(0);for(i=0;is)printf(无此品牌电脑!);for(i=0;ij;i+)if(zuidai.num2zuidai+1.num2)zuidai=zuidai+1;printf(%s%s%s%d%d%d%d%d%s,zuidai.name,zuidai.b
27、rand,zuidai.model,zuidai.num2,zuidai.outprice,zuidai.date1.year,zuidai.date1.month,zuidai.date1.day,zuidai.person);break;case 5:break;/end switch /end if /end while /=/int loadComputer()/从文件中读取电脑信息 FILE*fp;int cn=0;fp=fopen(infor.txt,ab+);if(!fp)printf(file cant openn);exit(0);while(!feof(fp)fread(&
28、inforcn+,sizeof(struct information),1,fp);fclose(fp);return cn;/=int loadSell()/从文件中读取笔记本电脑销售信息。FILE*fp1;int sn=0;fp1=fopen(sell.txt,ab+);if(!fp1)printf(file cant openn);exit(0);while(!feof(fp1)fread(&selsn+,sizeof(struct information),1,fp1);fclose(fp1);return sn;/=void main()/主函数 int m=1;n=loadComp
29、uter();s=loadSell();if(n=0)printf(电脑信息为空,请先创建!n);while(1)printf(n *笔记本电脑销售管理系统*n);printf(n*创建,请按1 *);printf(n*追加,请按2 *);printf(n*删除,请按3 *);printf(n*修改,请按4 *);printf(n*笔记本电脑销售管理,请按5 *);printf(n*查询,请按6 *);printf(n*统计,请按7 *);printf(n*退出,请按0 *n);scanf(%d,&m);getchar();switch(m)case 1:inputOnecomputer();/调用创建函数 break;case 2:add();/调用添加函数 break;case 3:del();/调用删除函数 break;case 4:modify();/调用修改函数 break;case 5:manage();/调用创建笔记本电脑销售函数 break;case 6:search();/调用查找函数 break;case 7:sell();/调用统计函数 break;case 0:exit(0);break;default:printf(按键错误,请重新选择!n);/end switch/end while
限制150内