汽车销售管理系统C语言版.docx
《汽车销售管理系统C语言版.docx》由会员分享,可在线阅读,更多相关《汽车销售管理系统C语言版.docx(39页珍藏版)》请在冰豆网上搜索。
汽车销售管理系统C语言版
优选文档
西安郵電大學
C语言课程设计报告
题目:
汽车销售管理系统
院系名称:
专业名称:
班级:
学生姓名:
学号(8位):
指导教师:
设计起止时间:
.
优选文档
一.设计目的
1.对c语言基本知识的牢固和综合运用。
熟练使用基本数据种类,基本控制结构,数组,
函数,指针等。
2.增强上机着手能力,在理论和实践的基础进步一步牢固《C语言程序设计》课程学习的
内容,掌握工程化软件设计的基本方法。
3.学会将知识应用于本质的方法,提高解析和解决问题的能力,增加综合能力。
4.为后续各门计算机课程的学习打下牢固基础。
5.《汽车销售管理系统》的设计与实现,此次程序设计主要利用c语言的基础知识开发一个
简单的汽车销售管理系统。
汽车销售管理系统是一个企业不能缺少的一部分,它利用计算机
对汽车销售进行一致管理,实现汽车销售管理工作的系统化、规范化和自动化,为企业提高工作效率。
二.设计内容
主要利用c语言的文件操作能力设计开发一个小型的管理信息系统,主要功能有:
1.能够实现对新车的入库工作。
2.能够更正汽车信息。
3.能按销售新车来管理汽车销售信息。
4.能够盘问汽车信息。
5.能够删除汽车信息。
6.显示汽车库存信息。
7.能够实现对汽车品牌、汽车进价、姓名的排序。
8.能够实现退出系统。
三.大纲设计
1.功能模块图;
登录系统
输入密码
.
优选文档
欢迎界面
汽车销售管理系统
菜单
入修销查删显排退
库改售找除示序出
2.各个模块详细的功能描述。
1.能够实现对新车的入库工作。
创办汽车产品信息文件,依照提示输入若干汽车的信息,并将这些信息保存至一个文件中。
2.能够更正汽车信息。
提示用户输入要进行更正操作的产品名称和产品型号,若是在产品信息文件中有该息存在,则将提示用户输入要更正的选项,并将结果保存至原产
品信息文件,并提示用户选择可否连续进行更正操作。
3.能按销售新车来管理汽车销售信息。
创办一个销售记录文件,每达成一次销售,就按销售信息的要求输入各项数据,并将该次的销售信息增加到文件中,同时更正相应
的汽车产品信息文件(主若是更正其库存数量)。
4.能够盘问汽车信息。
输入产品名称,在汽车产品信息文件中查找相应的汽车信息并输出。
5.能够删除汽车信息。
提示用户输入要进行删除操作的产品名称和产品型号,若是在产品信息文件中有该信息存在,则将对应的汽车信息删除,否则输出提示信息,并提示用户选择可否连续进行删除操作。
6.显示汽车库存信息。
打开汽车信息文件,输出文件内汽车信息。
7.能够实现对汽车品牌、汽车进价、姓名的排序。
按不同样条件进行排序操作,输出满足条件的笔录本电脑信息。
8.能够实现退出系统。
.
优选文档
四.详细设计
1.各功能函数的流程图
主函数
Switchcase语句
入库管理(case‘1’)
更正数据(case‘2’)
销售管理(case‘3’)
盘问管理(case‘4’)
删除管理(case‘5’)
显示库存(case‘6’)
排序管理(case‘7’)
结束管理(case‘8’)
入库管理
输入入库汽车信息
.
优选文档
输入达成
返回主菜单
输
显
入
示
要
汽
修
修
车
改
改
的
管
汽
基
理
车
本
存在
的
信
品
息
牌
型
号
提示更正项
进
售
辆
价
价
数
修改完成可否连续
.
优选文档
返回主菜单
销
输入要销
输出利润
售
显示现有
售汽车的
管
库存
品牌型号
理
辆数
盘问模块
输入要盘问的汽车品牌型号
输出盘问的汽车的信息
连续盘问按1,退出盘问按2
返回主界面
否
返
回
是否
主
连续
菜
单
.
输
入
要
删
删
除除
的
管
品
理
牌
型
号
显示模块
判断文件可否存在
是
否导入文件
输出对应汽车信息
结束
优选文档
显
确认
显示
示
删除
删除
删
后所
除
有汽
信
车的
息
信息
1
是
否
继
续
2
返回主菜单
.
优选文档
选
按品牌排序
否
排
择
是
返
序
排
否
回
按进价排序
主
管
序
继
理
方
续
菜
式
单
按利润排序
是
2.重点设计及编码
structcarmarket
{
charcarname[15];//品牌名
charmodel[10];//型号
floatsaleprice;//进价
floatsoldprice;//售价
intnum;//数量
floatgain;//盈利
}
car[1000];
voidmain()
.
优选文档
{
charselect=0;
chartemp1[15],temp2[10];
structcarmarketcarname_order;
structcarmarketprice_order;
floatsum;
FILE*fp;
intm,n,i,j,k,temp3;
intx=3;
intflag=0;
chars[8];
system("color1b");
五.测试数据及运行结果
1.正常测试数据和运行结果
1:
入库管理
.
优选文档
2:
更正管理
3:
销售管理
.
优选文档
2.异常测试数据及运行结果
1:
盘问管理
2:
删除管理
.
优选文档
六.调试情况,设计技巧及领悟
1.改进方案
程序大体上还算成功,其中的几个模块都达到了我预期想要的收效,条理也较清楚,这是我比较满意的地方。
但是也有不足之处,就是密码不能够进行更正的操作,而可是简单的事永远
是使用原始密码,这是有待完满的,而且有些地方用起来不大方便,不好操作,需要进一步完满。
2.领悟
1)对C语言的编程实践有所认识。
2)在遇到程序调试不经过时,会经过减小范围的解析来锁定问题所在。
3)经过此次实验,熟悉了从自然语言变换成伪代码再变换为流程图的过程。
各功能函数的流程图
4)在程序中设定合适的全局变量,能够简化程序的编写难度。
5)经过本次C语言上机实验,我对这个介于人类与非人类之间的计算机编程语言有了必然的体验。
跟实在验的成功与报告的达成,有点轻轻的成就感令人难忘。
陪同着学习的深入,我发现高明的东西还有很多很多,等待着我自己去挖掘。
对C语言的学习,我会加倍努力。
七.参照文件
《C语言程序设计》(王曙燕/主编科学初版社)
《C程序设计》(谭浩强/主编清华大学初版社)
《C语言程序设计习题解析与应用案例解析》(黄维通谢孟荣编著)
八.附录:
源程序
#include
#include
#include
#include
structcarmarket
{
charcarname[15];//品牌名
charmodel[10];//型号
floatsaleprice;//进价
floatsoldprice;//售价
intnum;//数量
floatgain;//盈利
}
car[1000];
charpassword[7]="000000";//定义初始密码
voidmain()
{
charselect=0;
chartemp1[15],temp2[10];
structcarmarketcarname_order;
structcarmarketprice_order;
.
优选文档
floatsum;
FILE*fp;
intm,n,i,j,k,temp3;
intx=3;
intflag=0;
chars[8];
system("color1b");
do
{
printf("请输入密码:
\n");
scanf("%s",s);
if(!
strcmp(s,password))/*进行密码考据*/
{printf("PASS\n\n\n");
flag=1;break;
}
else
{printf("密码错误,请重新输入:
\n");
x--;
}
}
while(x>0);
if(!
flag)
{
printf("你已经输入三次错误密码!
");
exit(0);
}
back:
//goto点0
system("cls");//清屏包含在头文件中,执行清屏操作
//系统菜单
puts("
");
puts("
");
puts("
********************************************");
puts("
$
$");
puts("
$
欢迎使用汽车销售管理系统
$");
puts("
$
$");
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
包含在
头文件中
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+方式打开
.
优选文档
gotoback;//返回点0
}
for(m=0;!
feof(fp);m++)//从文件读入数据
fscanf(fp,"%s%s%f%f%d%f\n",car[m].carname,car[m].model,&car[m].saleprice,&car[m].soldprice,&car[m].num,&car[m].gain);
system("cls");//清屏
printf("录入新车请按1.\n\n");
scanf("%d",&temp3);//
输入选项
if(temp3==1)
{
system("cls");
printf("
要录入的汽车有几种:
");
scanf("%d",&n);//输入要录入的汽车有几种
for(i=0;i依次录入库存
{
system("cls");
printf("
请输入汽车信息\n品牌名:
");
scanf("%s",car[m+i].carname);
printf("\n
型号:
");
scanf("%s",car[m+i].model);
printf("\n
进价:
");
scanf("%f",&car[m+i].saleprice);
printf("\n
售价:
");
scanf("%f",&car[m+i].soldprice);
printf("\n
辆数:
");
scanf("%d",&car[m+i].num);
}
for(i=0;i将文数据件写入文件中
fprintf(fp,"%7s
%7s
%7d
0.00\n",car[m+i].carname,car[m+i].model,car[m+i].saleprice,car[m+i].soldprice,car[m+i].num);//
格式控制
为
盈利值
fclose(fp);//
关闭文件
printf("
您的操作已经达成!
\n");
printf("
品牌
型号进价售价
辆数\n");//
在屏幕上输出录入的信息
for(i=0;i左对齐输出
printf("%-7s
%-7s
%-7d
\n",car[m+i].carname,car[m+i].model,car[m+i].saleprice,car[m+i].soldprice,car[m+i].num);
printf("
请按任意键返回主菜单\n");
getch();
}
gotoback;//
返回点0
}
case'2':
//
更正数据
{
fp=fopen("C:
\\car.txt","r+");//打开文件
for(m=0;!
feof(fp);m++)//读入数据
fscanf(fp,"%s%s%f%f%d%f\n",car[m].carname,car[m].model,&car[m].saleprice,&car[m].soldprice,&car[m].num,&car[m].gain);
back2:
//goto
点1
system("cls");//
清屏
printf("
品牌
型号
进价
售价
辆数\n");
for(k=0;k输出原来汽车库存的信息
printf("%-7s
%-7s
%-7d
\n",car[k].carname,car[k].model,car[k].saleprice,car[k].soldprice,car[k].num);
printf("\n请输入品牌名:
");//输入要改变库存量的信息
scanf("%s",temp1);
printf("\n请输入型号:
");
scanf("%s",temp2);
for(k=0;kif(strcmp(car[k].carname,temp1)==0&&strcmp(car[k].model,temp2)==0)
.
优选文档
break;
if(k==m)//若是不存在
{
printf("您输入的汽车不存在。
\n");
printf("\n请返回重新输入按任意键...");
getch();
gotoback2;//返回点1
}
printf("
品牌
型号进价售价辆数\n");
printf("%-7s
%-7s
%-7d
\n",car[k].carname,car[k].model,car[k].saleprice,car[k].soldprice,car[k].num);//
输出未改变从前的信息
printf("\n
请输入改变的进价:
");
scanf("%f",&car[k].saleprice);
printf("\n请输入改变的售价:
");
scanf("%f",&car[k].soldprice);
printf("\n请输入改变的辆数:
");
scanf("%d",&car[k].num);
remove("c:
\\car.txt");//删除原文件
fp=fopen("c:
\\car.txt","w+");//创办新文件
for(i=0;ifprintf(fp,"%7s%7s%7.2f%7.2f%7d%7.2f\n",car[i].carname,car[i].model,car[i].saleprice,car[i].soldprice,car[i].num,car[i].gain);
fclose(fp);
printf("更正成功\n\n");
printf("品牌型号进价售价辆数\n");
printf("%-7s%-7s%-7d
\n\n",car[k].carname,car[k].model,car[k].saleprice,car[k].soldprice,car[k].num);//输出改变此后的信息
printf("更正已达成。
\n\n1(连续)\n\n2(退出)\n");
scanf("%d",&temp3);
if(temp3==1)
gotoback2;
else
gotoback;
}
case'3':
//销售管理
{
fp=fopen("C:
\\car.txt","r+");//打开文件
for(m=0;!
feof(fp);m++)//读入数据
fscanf(fp,"%s%s%f%f%d%f\n",car[m].carname,car[m].model,&car[m].saleprice,&car[m].soldprice,&car[m].num,&car[m].gain);
back3:
//goto
点2
system("cls");
printf("
品牌
型号进价
售价
辆数盈利\n");
sum=0;//
算总盈利之用
for(k=0;k{//
在屏幕上输出库存信息
printf("%-7s
%-7s
%-7d
\n",car[k].carname,car[k].model,car[k].saleprice,car[k].soldprice,car[k].num,car[k].gain);
sum=sum+car[k].gain;//
计算总盈利
}
printf("\n
总盈利:
%.2f\n\n",sum);//
输出总盈利
printf("
请输入卖出汽车信息\n\n品牌名:
");//
输入信息
scanf("%s",temp1);
printf("\n型号:
");
scanf("%s",temp2);
for(k=0;kif(strcmp(car[k].carname,temp1)==0&&strcmp(car[k].model,temp2)==0)
break;
if(k==m)//若是不存在
{
printf("您输入的汽车不存在。
\n\n");
printf("请返回重新输入按任意键...");
get