c书店图书销售系统.docx
- 文档编号:10928751
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:13
- 大小:105.49KB
c书店图书销售系统.docx
《c书店图书销售系统.docx》由会员分享,可在线阅读,更多相关《c书店图书销售系统.docx(13页珍藏版)》请在冰豆网上搜索。
c书店图书销售系统
沈阳航空工业学院
课程设计
学号
班级
姓名
指导教师
年月日
沈阳航空工业学院
课程设计任务书
一、课程设计题目:
书店图书销售系统
二、课程设计工作自
三、课程设计内容:
用C语言编写软件完成以下任务:
模拟书店经营业务,主要指“购进图书”和“出售图书”两种业务。
由于图书的出售价格高于图书的购进价格,所以系统能够计算累计利润。
要求:
①“购进图书”和“出售图书”2方面信息只用1个文件(MyFile.txt)存储,文件中每行数据遵循如下顺序:
图书编号,图书名称,出版社,购进册数,购进价格,出售册数,出售价格。
四、课程设计要求:
程序质量:
●贯彻结构化程序设计思想。
●用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。
●用户界面中的菜单至少应包括“创建文件1”、“创建文件2”、“判断相似性”、“退出”4项。
●代码应适当缩进,并给出必要的注释,以增强程序的可读性。
课程设计说明书:
课程结束后,上交课程设计说明书(打印稿和电子稿),其内容如下:
●封面
●课程设计任务书
●目录
●需求分析(分析题目的要求)
●程序流程图(总体流程图和主要功能模块流程图)
●核心技术的实现说明及相应程序段
●个人总结
●参考资料
●源程序及适当的注释
指导教师:
____________________
学生签名:
____________________
目录
一、需求分析1
二、程序流程图2
三、核心技术的实现说明及相应程序段3
四、个人总结5
五、参考文献5
六、源程序6
一、需求分析
经过对程序设计题目的分析可知,整个程序的设计实现大致分为六个模块,其中每一个模块对应一个函数,他们的功能分别是:
读取原始数据(save),买书(mai),购进图书(goujin),计算利润(lirun),书库现状(booknow)以及售出状况(sellnow)。
1、读取原始数据(save)主要功能是读取书店状况以及库存的原始数据;
2、买书(mai)主要是实现顾客买书功能;
3、购进图书(goujin)实现书店购进新书的功能;
4、计算利润(lirun)实现书店计算经营净利润的功能。
5、书库现状(booknow)主要功能是查看书店现有图书、售出,进价,售价等。
6、售出状况(sellnow)主要功能是查看书店卖出图书的状况。
除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。
将文件1和文件2分别存到D盘的text1.txt和text2.txt中,并永久保存。
二、程序流程图
1、程序总体结构图
当t!
=4
t=1
真
假
创建文件1
t=2
真
假
创建文件2
t=3
真
假
判断两文件相似性
t=4
真
假
退出
错误
2、读取原始数据模块
3、售书模块
4、进书模块
5、计算利润模块
6、书库现状模块
7、出售现状模块
三、核心技术的实现说明及相应程序段
本程序主要由六个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。
在这些函数当中,相似性判断是程序中较为核心的部分,下面进行关键技术说明。
结构体定义:
structbook
{intnum1;
intnum2;
intnum3;
charname[20];
charpublish[20];
floatprice1;
floatprice2;
}book[SIZE];
利用循环输出所有信息:
for(j=0;j<4;j++)
printf("%d%d%d%s%s%6.2f%6.2f\n",book[j].num1,book[j].num2,book[j].num3,
book[j].name,book[j].publish,book[j].price1,book[j].price2);
对相应变量进行加减:
if(num==book[i].num1)
{book[i].num2--;
book[i].num3++;
利用循环求出利润:
for(i=0;i {sum=book[i].num3*(book[i].price2-book[i].price1); a=a+sum;} 四、个人总结 这是我自学习以来,第一次经历课程设计。 过去的初高中学习,只是纯理论知识的教育,上了大学,有了这种将所学只是融入实践的机会,我不禁迫不及待的想体验。 但是自己动手了才发现原来课程设计不象自己想象的那么简单,原来本以为几天就可以做完,做了才知道,不仔细研究,不动脑筋,那是不可能完成的。 以前的C语言学的不是很好,对很多地方不是特别懂,甚至对有些概念都还很模糊,虽然,我的编程题目很简单,但是,在这两周的时间里,经过不断的与同学之间进行探讨,还有学长的指导,还是使我的C语言编程能力有了质的飞跃。 前几天的课设过程中,我对所要设计的课题完全摸不到头脑,更不知如何下手。 但我并没有灰心放弃。 每一次我都进行新的尝试,希望可以找到正确的解决方法。 工夫不负苦心人,我渐渐成功的着手做起。 可是,仍旧有一些细小的问题困扰我。 幸好有同学们的帮助,每当我遇到困难时,周围的同学都会热心的帮我解围,指出我的问题所在。 因此,我才不断完善了自己的设计,最终做出了令我自己比较满意的程序。 虽然程序做好了,可以运行出来课程设计所要求的结果,但老师说一个好的程序,它的界面也是很重要的,有了好的界面,人们才会想用它,爱用它,于是我开始设置自己的程序界面,经过1天的努力,终于做出了自己想要的界面。 通过这几天的努力,使我学到了很多东西,从一个只懂理论的高中生成为了一个自己也能研究简单课题的大学生,明白了C语言对程序,对电脑的重要性,增加了我对C语言学习的兴趣,更增进了我对它的信心,我会更加努力的学习他,学懂他,学透他,成为自己身上的一项技能。 五、参考文献 1谭浩强.C程序设计.北京: 清华大学出版社,2005 2刘成等.C语言程序设计实验指导与习题集.北京: 中国铁道出版社,2006 六、源程序 #include #include #include #defineSIZE4 structbook {intnum1; intnum2; intnum3; charname[20]; charpublish[20]; floatprice1; floatprice2; }book[SIZE]; voidsave() {inti,j; FILE*fp; fp=fopen("d: \\MyFile.txt","r"); for(i=0;i<4;i++) fscanf(fp,"%d%d%d%s%s%f%f",&book[i].num1,&book[i].num2,&book[i].num3, book[i].name,book[i].publish,&book[i].price1,&book[i].price2); printf("编号剩余售出名字出版社进价售价\n"); for(j=0;j<4;j++) printf("%d%d%d%s%s%6.2f%6.2f\n",book[j].num1,book[j].num2,book[j].num3, book[j].name,book[j].publish,book[j].price1,book[j].price2); } mai() {inti; intnum; printf("你想买哪本书: "); scanf("%d",&num); for(i=0;i if(num==book[i].num1) {book[i].num2--; book[i].num3++; printf("编号名字出版社售价\n"); printf("%d%s%s%6.2f\n",book[i].num1,book[i].name, book[i].publish,book[i].price2); } } goujin() {inti,j; intnum; printf("输入编号: "); scanf("%d",&num); printf("输入数量: "); scanf("%d",&j); for(i=0;i if(num==book[i].num1) {book[i].num2+=j; printf("这本书在商店里的数目是: %d\n",book[i].num2); } } lirun() {floatsum; inti; floata=0; for(i=0;i {sum=book[i].num3*(book[i].price2-book[i].price1); a=a+sum;} printf("利润: %f\n",a); } booknow() {inti; printf("编号剩余售出名字出版社进价售价\n"); for(i=0;i printf("%d%d%d%s%s%6.2f%6.2f\n",book[i].num1,book[i].num2,book[i].num3, book[i].name,book[i].publish,book[i].price1,book[i].price2); } sellnow() {inti; printf("编号出售名字出版社\n"); for(i=0;i printf("%d%d%s%s\n",book[i].num1,book[i].num3,book[i].name,book[i].publish); } main() {printf(“┏━━━━━━━━┊图书销售系统┋━━━━━━━━━┓\n”) printf("┃***************按0读取原始信息******************┃\n"); printf("┃***************按1进书**************************┃\n"); printf("┃***************按2售书**************************┃\n"); printf("┃***************按3计算利润**********************┃\n"); printf("┃*************按4书库现状************************┃\n"); printf("┃*************按5出售现状************************┃\n"); printf("┃*************按6退出****************************┃\n"); printf(“┗━━━━━━━━━━━━━━━━━━━━━━━━━┛\n”) aa: switch(getch()) {case'0': save();break; case'1': goujin();break; case'2': mai();break; case'3': lirun();break; case'4': booknow();break; case'5': sellnow();break; case'6': exit(0); } gotoaa; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 书店 图书 销售 系统