您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 书店图书销售系统c语言课设
沈阳航空工业学院课程设计学号200604021089班级6402103姓名刘斯文指导教师刘成2007年9月18日沈阳航空工业学院课程设计任务书电子工程系电子信息工程专业6402103班学号200604021089一、课程设计题目:书店图书销售系统二、课程设计工作自2007年9月10日起至2007年9月14日止三、课程设计内容:用C语言编写软件完成以下任务:模拟书店经营业务,主要指“购进图书”和“出售图书”两种业务。由于图书的出售价格高于图书的购进价格,所以系统能够计算累计利润。要求:①“购进图书”和“出售图书”2方面信息只用1个文件(MyFile.txt)存储,文件中每行数据遵循如下顺序:图书编号,图书名称,出版社,购进册数,购进价格,出售册数,出售价格。四、课程设计要求:程序质量:贯彻结构化程序设计思想。用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。用户界面中的菜单至少应包括“创建文件1”、“创建文件2”、“判断相似性”、“退出”4项。代码应适当缩进,并给出必要的注释,以增强程序的可读性。课程设计说明书:课程结束后,上交课程设计说明书(打印稿和电子稿),其内容如下:封面课程设计任务书目录需求分析(分析题目的要求)程序流程图(总体流程图和主要功能模块流程图)核心技术的实现说明及相应程序段个人总结参考资料源程序及适当的注释指导教师:____________________学生签名:____________________沈阳航院设计用纸I目录一、需求分析............................................................1二、程序流程图........................................................2三、核心技术的实现说明及相应程序段...............6四、个人总结............................................................7五、参考文献............................................................8六、源程序................................................................9沈阳航院设计用纸1一、需求分析经过对程序设计题目的分析可知,整个程序的设计实现大致分为六个模块,其中每一个模块对应一个函数,他们的功能分别是:读取原始数据(save),买书(mai),购进图书(goujin),计算利润(lirun),书库现状(booknow)以及售出状况(sellnow)。1、读取原始数据(save)主要功能是读取书店状况以及库存的原始数据;2、买书(mai)主要是实现顾客买书功能;3、购进图书(goujin)实现书店购进新书的功能;4、计算利润(lirun)实现书店计算经营净利润的功能。5、书库现状(booknow)主要功能是查看书店现有图书、售出,进价,售价等。6、售出状况(sellnow)主要功能是查看书店卖出图书的状况。除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要沈阳航院设计用纸2终止程序的执行。将文件1和文件2分别存到D盘的text1.txt和text2.txt中,并永久保存。二、程序流程图1、程序总体结构图当t!=4t=1真假创建文件1t=2真假创建文件2t=3真假判断两文件相似性t=4真假退出错误定义结构体变量输出选项读取原始信息进书售书计算利润书库现状开始出售现状退出沈阳航院设计用纸32、读取原始数据模块3、售书模块Inti,j;Fp=fopen(“d:\\Myfile.txt”,“r”);j从1到4for(i=0;i4;i++)输出原始数据从文件中得到原始数据FILE*fp;printf(编号名字出版社进价售价\n);printf(你想买哪本书:);scanf(%d,&num);for(i=0;iSIZE;i++)是num==book[i].num1否printf(编号名字出版社售价\n);book[i].num2--;book[i].num3++;Inti输出:book[i].num1,book[i].name,book[i].publish,book[i].price2);沈阳航院设计用纸44、进书模块5、计算利润模块INT:IPRINTF(输入编号:);scanf(%d,&num);for(i=0;iSIZE;i++)是num==book[i].num1否book[i].num2+=j;printf(这本书在商店里的数目是:%d\n,book[i].num2);floatsum;inti;floata=0;inti;floata=0;for(i=0;iSIZE;i++)sum=book[i].num3*(book[i].price2-book[i].price1);a=a+sum;printf(利润:%f\n,a);沈阳航院设计用纸56、书库现状模块7、出售现状模块printf(编号剩余售出名字出版社进价售价\n);for(i=0;iSIZE;i++)输出:book[i].num1,book[i].num2,book[i].num3,book[i].name,book[i].publish,book[i].price1,book[i].price2);inti;inti;printf(编号出售名字出版社\n);for(i=0;iSIZE;i++)输出:book[i].num1,book[i].num3,book[i].name,book[i].publish);沈阳航院设计用纸6三、核心技术的实现说明及相应程序段本程序主要由六个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。在这些函数当中,相似性判断是程序中较为核心的部分,下面进行关键技术说明。结构体定义:structbook{intnum1;intnum2;intnum3;charname[20];charpublish[20];floatprice1;floatprice2;}book[SIZE];利用循环输出所有信息:for(j=0;j4;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;iSIZE;i++){sum=book[i].num3*(book[i].price2-book[i].price1);a=a+sum;}沈阳航院设计用纸7四、个人总结这是我自学习以来,第一次经历课程设计。过去的初高中学习,只是纯理论知识的教育,上了大学,有了这种将所学只是融入实践的机会,我不禁迫不及待的想体验。但是自己动手了才发现原来课程设计不象自己想象的那么简单,原来本以为几天就可以做完,做了才知道,不仔细研究,不动脑筋,那是不可能完成的。以前的C语言学的不是很好,对很多地方不是特别懂,甚至对有些概念都还很模糊,虽然,我的编程题目很简单,但是,在这两周的时间里,经过不断的与同学之间进行探讨,还有学长的指导,还是使我的C语言编程能力有了质的飞跃。前几天的课设过程中,我对所要设计的课题完全摸不到头脑,更不知如何下手。但我并没有灰心放弃。每一次我都进行新的尝试,希望可以找到正确的解决方法。工夫不负苦心人,我渐渐成功的着手做起。可是,仍旧有一些细小的问题困扰我。幸好有同学们的帮助,每当我遇到困沈阳航院设计用纸8难时,周围的同学都会热心的帮我解围,指出我的问题所在。因此,我才不断完善了自己的设计,最终做出了令我自己比较满意的程序。虽然程序做好了,可以运行出来课程设计所要求的结果,但老师说一个好的程序,它的界面也是很重要的,有了好的界面,人们才会想用它,爱用它,于是我开始设置自己的程序界面,经过1天的努力,终于做出了自己想要的界面。通过这几天的努力,使我学到了很多东西,从一个只懂理论的高中生成为了一个自己也能研究简单课题的大学生,明白了C语言对程序,对电脑的重要性,增加了我对C语言学习的兴趣,更增进了我对它的信心,我会更加努力的学习他,学懂他,学透他,成为自己身上的一项技能。五、参考文献1谭浩强.C程序设计.北京:清华大学出版社,20052刘成等.C语言程序设计实验指导与习题集.北京:中沈阳航院设计用纸9国铁道出版社,2006六、源程序#includestdio.h#includeconio.h#includestdlib.h#defineSIZE4structbook{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;i4;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;j4;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);}沈阳航院设计用纸10mai(){inti;intnum;printf(你想买哪本书:);scanf(%d,&num);for(i=0;iSIZE;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;iSIZE;i++)if(num==book[i].num1){book[i].num2+=j;printf(这本书在商店里的数目是:%d\n,book[i].num2);}}lirun(){floatsum;inti;floata=0;for(i=0;iSIZE;i++){sum=book[i].num3*(book[i].price2-book[i].price1);a=a+sum;}printf(利润:%f\n,a);沈阳航院设计用纸11}booknow(){inti;printf(编号剩余售出名字出版社进价售价\n);for(i=0;iSIZE;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(编号
本文标题:书店图书销售系统c语言课设
链接地址:https://www.777doc.com/doc-6295155 .html