1、西安郵電大學C语言课程设计汇报题 目:汽车销售管理系统院系名称: 专业名称: 班 级: 学生姓名: 学号(8位):指导老师: 设计起止时间:一. 设计目标1. 对c语言基础知识巩固和综合利用。熟练使用基础数据类型,基础控制结构,数组,函数,指针等。2. 强化上机动手能力,在理论和实践基础上深入巩固C语言程序设计课程学习内容,掌握工程化软件设计基础方法。3. 学会将知识应用于实际方法,提升分析和处理问题能力,增加综合能力。4. 为后续各门计算机课程学习打下坚实基础。5.汽车销售管理系统设计和实现,此次程序设计关键利用c语言基础知识开发一个简单汽车销售管理系统。汽车销售管理系统是一个企业不可缺乏一
2、部分,它利用计算机对汽车销售进行统一管理,实现汽车销售管理工作系统化、规范化和自动化,为企业提升工作效率。二. 设计内容关键利用c语言文件操作能力设计开发一个小型管理信息系统,关键功效有:1.能够实现对新车入库工作。2.能够修改汽车信息。3.能按销售新车来管理汽车销售信息。4.能够查询汽车信息。 5.能够删除汽车信息。6.显示汽车库存信息。 7.能够实现对汽车品牌、汽车进价、姓名排序。 8.能够实现退出系统。三概要设计1功效模块图; 登 录 系 统 输入密码 欢迎界面 汽车销售管理系统 菜 单销售退出入库修改查找排序删除显示2各个模块具体功效描述。1.能够实现对新车入库工作。创建汽车产品信息文
3、件,依据提醒输入若干汽车信息,并将这些信息保留至一个文件中。2.能够修改汽车信息。提醒用户输入要进行修改操作产品名称和产品型号,假如在产品信息文件中有该息存在,则将提醒用户输入要修改选项,并将结果保留至原产品信息文件,并提醒用户选择是否继续进行修改操作。3.能按销售新车来管理汽车销售信息。创建一个销售统计文件,每完成一次销售,就按销售信息要求输入各项数据,并将该次销售信息添加到文件中,同时修改对应汽车产品信息文件(关键是修改其库存数量)。4.能够查询汽车信息。输入产品名称,在汽车产品信息文件中查找对应汽车信息并输出。 5.能够删除汽车信息。提醒用户输入要进行删除操作产品名称和产品型 号,假如在
4、产品信息文件中有该信息存在,则将对应汽车信息删除,否 则输出提醒信息,并提醒用户选择是否继续进行删除操作。6.显示汽车库存信息。打开汽车信息文件,输出文件内汽车信息。 7.能够实现对汽车品牌、汽车进价、姓名排序。按不一样条件进行排序操作,输出满足条件笔记本电脑信息。 8.能够实现退出系统。四具体设计1各功效函数步骤图 主函数 Switch case 语句 入库管理(case 1) 修改数据(case 2) 销售管理(case 3) 查询管理(case 4) 删除管理(case 5) 显示库存(case 6) 排序管理(case 7) 结束管理(case 8) 入库管理 输入入库汽车信息 输入完
5、成 返回主菜单显示汽车基础信息输入要修改汽车品牌型号 修改管理 存在提醒修改项 辆数售价 进价 是否继续 修 改 完 成 否 返回主菜单返回主菜单销售管理输入要销售汽车品牌型号辆数是否继续输出利润显示现有库存查询模块输入要查询汽车品牌型号 输出查询汽车信息继续查询按1,退出查询按2 返回主界面输入要删除品牌型号是否继续显示删除后全部汽车信息确定删除显示删除信息删除管理12返回主菜单 显示模块 判定文件是否存在是否 导入文件 输出对应汽车信息 结束按品牌排序选择排序方法否返回主菜单是否继续排序管理按进价排序按利润排序 是2关键设计及编码struct carmarketchar carname15
6、;/品牌名char model10;/型号float saleprice;/进价float soldprice;/售价int num;/数量float gain;/盈利car1000;void main() char select=0;char temp115,temp210;struct carmarket carname_order;struct carmarket price_order;float sum;FILE *fp;int m,n,i,j,k,temp3; int x=3; int flag=0; char s8; system(color 1b);五测试数据及运行结果1正常测
7、试数据和运行结果1: 入库管理 2: 修改管理 3: 销售管理 2异常测试数据及运行结果1: 查询管理2: 删除管理六调试情况,设计技巧及体会1改善方案程序大致上还算成功,其中多个模块全部达成了我预期想要效果,条理也较清楚,这是我比较满意地方。不过也有不足之处,就是密码不能进行修改操作,而只是简单事永远是使用原始密码,这是有待完善,而且有些地方用起来不大方便,不好操作,需要深入完善。2体会1) 对C语言编程实践有所认识。2) 在碰到程序调试不经过时,会经过缩小范围分析来锁定问题所在。3) 经过这次试验,熟悉了从自然语言转换成伪代码再转换为步骤图过程。各功效函数步骤图4) 在程序中设定适宜全局变
8、量,能够简化程序编写难度。5) 经过此次C语言上机试验,我对这个介于人类和非人类之间计算机编程语言有了一定体验。伴随试验成功和汇报完成,有点微微成就感使人难忘。伴伴随学习深入,我发觉高深东西还有很多很多,等候着我自己去挖掘。对C语言学习,我会加倍努力。 七参考文件 C语言程序设计(王曙燕/主编 科学出版社) C程序设计(谭浩强/主编 清华大学出版社) C语言程序设计习题解析和应用案例分析(黄维通 谢孟荣 编著)八附录:源程序#include#include#include#includestruct carmarketchar carname15;/品牌名char model10;/型号flo
9、at saleprice;/进价float soldprice;/售价int num;/数量float gain;/盈利car1000;char password7=000000;/定义初始密码void main() char select=0;char temp115,temp210;struct carmarket carname_order;struct carmarket price_order;float sum;FILE *fp;int m,n,i,j,k,temp3; int x=3; int flag=0; char s8; system(color 1b); doprintf
10、(请输入密码:n); scanf(%s,s); if(!strcmp(s,password)/*进行密码验证*/ printf(PASSnnn); flag=1;break; else printf(密码错误,请重新输入:n); x-; while(x0); if(!flag) printf(你已经输入三次错误密码!); exit(0); back: /goto点0system(cls);/清屏 包含在stdlib.h头文件中,实施清屏操作/系统菜单 puts( ); puts( );puts( *); puts( $ $);puts( $ 欢迎使用汽车销售管理系统 $);puts( $ $)
11、;puts( $ 1.入库管理 $); puts( $ $); puts( $ 2.修改数据 $); puts( $ $);puts( $ 3.销售管理 $); puts( $ $);puts( $ 4.查询信息 $); puts( $ $); puts( $ 5.删除管理 $); puts( $ $);puts( $ 6.显示库存 $); puts( $ $);puts( $ 7.排序管理 $); puts( $ $);puts( $ 8.退出系统 $); puts( $ $);puts( *);printf(请选择(1-8):);select=getch();/输入选择选项 getch包含
12、在conio.h头文件中switch(select)case 1: /打开资料文件if(fp=fopen(C:car.txt,r+)=NULL)printf(n文件不存在!n按任意键新建一个.n); /假如文件不存在,提醒新建一个getch(); /吃掉任意键fp=fopen(c:car.txt,w+);/创建新文件fclose(fp); /建完关闭,方便用r+方法打开goto back;/返回点0for(m=0;!feof(fp);m+)/从文件读入数据fscanf(fp,%s %s %f %f %d %fn ,carm.carname,carm.model,&carm.saleprice,
13、&carm.soldprice,&carm.num,&carm.gain);system(cls);/清屏printf(录入新车请按1.nn); scanf(%d,&temp3); / 输入选项 if(temp3=1)system(cls);printf(要录入汽车有多个:);scanf(%d,&n);/输入要录入汽车有多个for(i=0;in;i+)/依次录入库存system(cls);printf(请输入汽车信息n品牌名: );scanf(%s,carm+i.carname);printf(n型号:);scanf(%s,carm+i.model);printf(n进价:);scanf(%f
14、,&carm+i.saleprice);printf(n售价:);scanf(%f,&carm+i.soldprice);printf(n辆数:);scanf(%d,&carm+i.num);for(i=0;in;i+)/将文数据件写入文件中fprintf(fp,%7s %7s %7.2f %7.2f %7d 0.00n,carm+i.carname,carm+i.model,carm+i.saleprice,carm+i.soldprice,carm+i.num);/格式控制 0.00为盈利值fclose(fp);/关闭文件printf(您操作已经完成!n);printf(品牌型号进价售价辆
15、数n);/在屏幕上输出录入信息 for(i=0;in;i+)/左对齐输出printf(%-7s %-7s %-7.2f %-7.2f %-7d n,carm+i.carname,carm+i.model,carm+i.saleprice,carm+i.soldprice,carm+i.num);printf(请按任意键返回主菜单n);getch(); goto back;/返回点0 case 2:/修改数据 fp=fopen(C:car.txt,r+);/打开文件 for(m=0;!feof(fp);m+)/读入数据 fscanf(fp,%s %s %f %f %d %fn ,carm.car
16、name,carm.model,&carm.saleprice,&carm.soldprice,&carm.num,&carm.gain); back2:/goto点1system(cls);/清屏 printf(品牌型号进价售价辆数n);for(k=0;km;k+)/输出原来汽车库存信息printf(%-7s %-7s %-7.2f %-7.2f %-7d n,cark.carname,cark.model,cark.saleprice,cark.soldprice,cark.num);printf(n请输入品牌名: );/输入要改变库存量信息scanf(%s,temp1);printf(n
17、请输入型号:);scanf(%s,temp2);for(k=0;km;k+)/数据进行比较是否存在if(strcmp(cark.carname,temp1)=0&strcmp(cark.model,temp2)=0)break;if(k=m)/假如不存在printf(您输入汽车不存在。n);printf(n请返回重新输入 按任意键.);getch();goto back2;/返回点1 printf(品牌型号进价售价辆数n);printf(%-7s %-7s %-7.2f %-7.2f %-7d n,cark.carname,cark.model,cark.saleprice,cark.sold
18、price,cark.num);/输出未改变之前信息printf(n请输入改变进价:);scanf(%f,&cark.saleprice);printf(n请输入改变售价:); scanf(%f,&cark.soldprice);printf(n请输入改变辆数:);scanf(%d,&cark.num); remove(c:car.txt); /删除原文件fp=fopen(c:car.txt,w+); /创建新文件for(i=0;im;i+)/在新文件中写入fprintf(fp,%7s %7s %7.2f %7.2f %7d %7.2fn,cari.carname,cari.model,car
19、i.saleprice,cari.soldprice,cari.num,cari.gain); fclose(fp);printf(修改成功nn); printf(品牌型号进价售价辆数n);printf(%-7s %-7s %-7.2f %-7.2f %-7d nn,cark.carname,cark.model,cark.saleprice,cark.soldprice,cark.num);/输出改变以后信息printf(修改已完成。nn1(继续)nn2(退出)n); scanf(%d,&temp3); if(temp3=1) goto back2; else goto back;case
20、3:/销售管理fp=fopen(C:car.txt,r+);/打开文件for(m=0;!feof(fp);m+)/读入数据fscanf(fp,%s %s %f %f %d %fn ,carm.carname,carm.model,&carm.saleprice,&carm.soldprice,&carm.num,&carm.gain); back3:/goto点2system(cls);printf(品牌型号进价售价辆数盈利n);sum=0;/算总盈利之用for(k=0;km;k+) /在屏幕上输出库存信息printf(%-7s %-7s %-7.2f %-7.2f %-7d %-7.2f n
21、,cark.carname,cark.model,cark.saleprice,cark.soldprice,cark.num,cark.gain);sum=sum+cark.gain;/计算总盈利printf(n总盈利:%.2fnn,sum);/输出总盈利printf(请输入卖出汽车信息nn品牌名: ); /输入信息scanf(%s,temp1);printf(n型号:);scanf(%s,temp2); for(k=0;km;k+)/对数据进行比较if(strcmp(cark.carname,temp1)=0&strcmp(cark.model,temp2)=0)break;if(k=m)
22、/假如不存在printf(您输入汽车不存在。nn);printf(请返回重新输入 按任意键.);getch();goto back3;/返回点2 printf(品牌型号辆数n);printf(n%-7s %-7s %-7d n,cark.carname,cark.model,cark.num);/输出要销售汽车信息printf(n请输入卖出辆数:);scanf(%d,&temp3);cark.num=cark.num-temp3;/计算件数cark.gain=cark.gain+(cark.soldprice-cark.saleprice)*temp3;/计算盈利remove(c:car.tx
23、t); /删除原文件 fp=fopen(c:car.txt,w+); /创建新文件for(i=0;im;i+)/在新文件中写入数据fprintf(fp,%7s %7s %7.2f %7.2f %7d %7.2fn,cari.carname,cari.model,cari.saleprice,cari.soldprice,cari.num,cari.gain);fclose(fp); printf(品牌型号辆数n);printf(%-7s %-7s %-7d n,cark.carname,cark.model,cark.num);/输出销售后汽车信息printf(您操作已经完成!nn);prin
24、tf(品牌型号进价售价辆数盈利n);sum=0;for(k=0;km;k+) /在屏幕上输出库存信息printf(%-7s %-7s %-7.2f %-7.2f %-7d %-7.2f n,cark.carname,cark.model,cark.saleprice,cark.soldprice,cark.num,cark.gain);sum=sum+cark.gain;/计算总盈利printf(n总盈利:%.2fnn,sum);/输出总盈利printf(销售已完成。nn1(继续)nn2(退出)n); scanf(%d,&temp3); if(temp3=1) goto back3; else
25、 goto back; case 4:/查询 if(fp=fopen(C:car.txt,r+)=NULL)/打开文件printf(文件打不能打开!n);/提醒文件打不开getch();exit(1);for(m=0;!feof(fp);m+)/读入数据fscanf(fp,%s %s %f %f %d %fn ,carm.carname,carm.model,&carm.saleprice,&carm.soldprice,&carm.num,&carm.gain); back4: system(cls);printf(请输入要查询汽车信息nn);/输入要查询汽车信息printf(品牌:);sc
26、anf(%s,temp1);printf(n型号:);scanf(%s,temp2);for(k=0;km;k+)/数据进行比较if(strcmp(cark.carname,temp1)=0&strcmp(cark.model,temp2)=0)break;if(k=m)/假如不存在printf(您输入汽车信息不存在。n);printf(n请返回重新输入 按任意键.);getch();goto back4; printf(品牌型号进价售价辆数盈利n);printf(n%-7s %-7s %-7.2f %-7.2f %-7.d %-7.2f n,cark.carname,cark.model,c
27、ark.saleprice,cark.soldprice,cark.num,cark.gain); printf(是否要继续查询?nn1(继续)nn2(退出):);scanf(%d,&temp3);if(temp3=1)goto back4;elsegoto back;case 5:/删除管理if(fp=fopen(C:car.txt,r+)=NULL)/提醒文件打不开printf(文件打不能打开!n);getch();exit(1);for(m=0;!feof(fp);m+)/输入数据fscanf(fp,%s %s %f %f %d %fn ,carm.carname,carm.model,
28、&carm.saleprice,&carm.soldprice,&carm.num,&carm.gain); back5:/goto点5system(cls);printf(品牌型号进价售价辆数盈利n);sum=0;/在屏幕上输出库存for(k=0;km;k+)printf(%-7s %-7s %-7.2f %-7.2f %-7.d %-7.2f n,cark.carname,cark.model,cark.saleprice,cark.soldprice,cark.num,cark.gain);sum=sum+cark.gain;/计算总盈利printf(n总盈利:%.2fnn,sum);p
29、rintf(请输入要删除汽车信息nn);/输入要删除汽车信息printf(品牌:);scanf(%s,temp1);printf(n型号:);scanf(%s,temp2);for(k=0;km;k+)/数据进行比较if(strcmp(cark.carname,temp1)=0&strcmp(cark.model,temp2)=0)break;if(k=m)/假如不存在printf(您输入汽车信息不存在。n);printf(n请返回重新输入 按任意键.);getch();goto back5; printf(品牌型号辆数n);printf(n%-7s %-7s %-7d n,cark.carn
30、ame,cark.model,cark.num);printf(n是否要删除?nn1(删除)nn2(不删除):);scanf(%d,&temp3);/选择是否要删除if(temp3=1)/假如要删除remove(c:car.txt); /删除原文件fp=fopen(c:car.txt,w+); /创建新文件printf(n品牌型号进价售价辆数盈利n);/删除完后在文件夹中写入和在屏幕显示剩下汽车信息for(i=0;im;i+)if(i!=k)fprintf(fp,%7s %7s %7.2f %7.2f %7d %7.2fn,cari.carname,cari.model,cari.salepr
31、ice,cari.soldprice,cari.num,cari.gain);printf(%-7s %-7s %-7.2f %-7.2f %-7.d %-7.2f n,cari.carname,cari.model,cari.saleprice,cari.soldprice,cari.num,cari.gain);printf(n删除已完成n);else/不删除printf(n删除未完成n);fclose(fp);printf(n按任意键返回菜单.);getch();goto back;/返回主菜单 case 6:/显示库存if(fp=fopen(C:car.txt,r+)=NULL)/打开文件printf(文件打不能打开!n);/提醒文件打不开getch();exit(1);for(m=0;!feof(fp);m+)/读入数据fscanf(fp,%s %s %f %f %d %fn ,carm.carname,carm.model,&carm.saleprice,&carm.soldprice,&carm.num,&carm.gain);system(cls);printf(序