c语言课程设计报告-小型图书购销管理系统_第1页
c语言课程设计报告-小型图书购销管理系统_第2页
c语言课程设计报告-小型图书购销管理系统_第3页
c语言课程设计报告-小型图书购销管理系统_第4页
c语言课程设计报告-小型图书购销管理系统_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机程序设计基础课程设计报告项目名称小型图书购销管理系统学生姓名李晞月学院信息科学与工程学院指导教师穆帅目录目录1第一章系统描述1第二章功能模块结构1第三章数据结构设计1第四章主要模块的算法说明1第五章运行结果1第六章课程设计总结1参考文献1附录1第一章系统描述系统说明本程序采用VISUALC60编译器编译。系统运行之前需要保证在“CCDESIGN”目录下有以下四个TXT文件,名为JIBENXINXITXT、KUCUNXINXITXT、BUYTXT、SELLTXT系统的基本功能用户界面采用文本菜单界面,设有欢迎界面。各级菜单层次分明,切换方便。系统的功能可实现循环连续操作,直至用户选择返回或退出。重要操作之前会有确认提示。若输入不合法,有出错原因提示。出错提示以及查询结果输出后可按任意键继续,以便用户有停顿时间来阅读。系统采用四个文件分别保存以下信息图书基本信息、库存信息、采购纪录、出售纪录。实现图书基本信息的录入及保存。信息录入时可限制编号不重复。可查询文件中保存的图书基本信息。输入书名(或编号、作者、价格)可调出符合的信息,也可全部显示。其中按价格查询时,输入一个范围可将在范围内的信息都显示出来。具有图书采购功能输入要采购的图书编号能自动把该书的基本信息显示出来,输入采购数量能自动得出采购所需金额,确认采购后,显示购买成功。执行完采购功能后可实现对库存信息的添加和修改,以及向文件中添加采购纪录。可随时查询保存在文件中的采购纪录。具有图书出售功能输入要采购的图书编号能显示出该书信息及库存数量,输入出售数量能自动得出出售所得金额,确认出售后,显示出售成功。执行完出售功能后可实现对库存信息的删除和修改,以及向文件中添加出售纪录。可随时查询保存在文件中的出售纪录。利润统计功能,可动态显示运行系统以来的采购总金额、销售总金额及总利润。有库存信息查询功能,可将库存中的全部书籍信息逐条显示出来。第二章功能模块结构功能模块划分本系统主要由六大模块构成图书基本信息录入模块,图书基本信息查询模块,图书采购模块,图书销售模块,利润统计模块,库存信息查询模块。大模块下再划分小的模块。其中图书基本信息查询模块下又分为五个查询模块,图书采购模块下又分为购书和历史查询两个模块,图书销售模块同样也由售书和历史查询两部分组成。功能模块结构图小型图书购销管理系统基本信息录入基本信息查询库存信息查询利润统计按书名查找按编号查找按作者查找按价格查找图书采购历史购书纪录购书图书销售历史售书纪录售书全部显示各模块的功能描述一图书基本信息录入模块1在主菜单选择“1”后出现欢迎辞并要求输入图书编号,当输入的编号已经存在则提示另输入一个编号。2编号输入合法时则依次提示输入后面的信息,输入结束后将信息保存入文件。3输入完后询问是否继续录入下一本书的信息,是则继续,否则返回主菜单。二图书基本信息查询模块1在主菜单选择“2”后出现欢迎辞并出现基本信息查询二级菜单,有按书名、按编号、按作者、按价格和全部显示五种查找方式。选择“0”可返回主菜单,有其他非法输入则提示出错,按任意键后可继续进行二级菜单的选择。2在二级菜单选择“1”后按书名查找,提示输入书名。若基本信息中没有,则提示查无此书并返回二级菜单,否则将符合此书名的书籍信息逐条罗列出来。3在二级菜单选择“2”或“3”则分别按编号和按作者查找,功能类似2。4在二级菜单选择“4”后按价格查找,任意输入两个数字确定一个范围,可将在此价格范围内的书籍信息全部显示出来。5在二级菜单选择“5”后将全部的图书基本信息以清单形式列出,按任意键返回二级菜单。三图书采购模块1在主菜单选择“3”后出现欢迎辞并出现图书采购二级菜单,有开始购书、历史记录和返回的选择。选择“0”可返回主菜单,有其他非法输入则提示出错,按任意键后可继续进行二级菜单的选择。2在二级菜单选择“1”后开始购书,提示输入要购买的书的编号。若基本信息中没有,则提示查无此书并返回二级菜单,否则调出该书基本信息并提示输入采购数量。3输入采购数量后,自动得出采购所需金额,然后询问是否确认购买,若否便询问是否购买其他书,是则提示购买成功,并增加库存量、纪录购买信息,以及修改利润值和总采购金额值,然后询问是否继续购买。若不继续购买则返回二级菜单。4在二级菜单选择“2”后可查询历史购买纪录,将以往全部的购买纪录以清单形式列出,按任意键返回二级菜单。四图书销售模块1在主菜单选择“4”后出现欢迎辞并出现图书销售二级菜单,有开始售书、历史记录和返回的选择。选择“0”可返回主菜单,有其他非法输入则提示出错,按任意键后可继续进行二级菜单的选择。2在二级菜单选择“1”后开始售书,提示输入要出售的书的编号。若库存信息中没有,则提示尚无进购并返回二级菜单,否则调出该书基本信息及库存量并提示输入出售数量。3输入采购数量后,若库存不足则提示不足,然后询问是否继续卖书。若数量合法则自动得出出售所得金额,然后询问是否确认出售,若否便询问是否出售其他书,是则提示出售成功,并减少库存量、纪录销售信息,以及修改利润值和总销售金额值。然后询问是否继续卖书。若不,则返回二级菜单。4在二级菜单选择“2”后可查询历史出售纪录,将以往全部的出售纪录以清单形式列出,按任意键返回二级菜单。五利润统计模块1在主菜单选择“5”后便可看到系统运行以来的购销情况,显示有购书总支出、售书总收入以及销售总利润。2程序列出结果后按任意键方继续,返回主菜单。六库存信息查询模块1在主菜单选择“6”后可查询库存信息,系统将库存中的全部书籍信息以清单形式罗列出来,最末一行显示库存总量。2程序列出结果后按任意键方继续,返回主菜单。第三章数据结构设计程序采用结构体、文件以及结构体数组实现数据的输入输出、保存和删改。系统采用四个文件保存数据,包括1图书基本信息文件图书编号、书名、作者、出版社、出版日期、定价。2库存信息文件图书编号、书名、作者、出版社、出版日期、定价、库存数量。3历史采购纪录文件图书编号、采购数量、单价、采购金额。4历史出售纪录文件图书编号、销售数量、单价、销售金额。构造了如下两个结构体,分别用于储存图书基本信息和购销信息STRUCTBOOKCHARNUM10CHARBOOKNAME30CHARAUTHOR20CHARPRESS30CHARTIME10FLOATPRICEINTAMOUNT图书基本信息的输入和输出使用了STRUCTBOOK结构体。图书采购模块中,利用STRUCTDEAL结构体存储购书纪录,用到的计算公式有本次采购金额定价采购数量;库存量采购数量;利润采购金额;采购总金额本次采购金额图书销售模块中,利用STRUCTDEAL结构体存储售书纪录,用到的计算公式有本次出售金额定价出售数量150;库存量出售数量;利润出售金额;出售总金额本次出售金额利润统计中直接将以上计算好的利润、采购总金额和销售总金额打印输出。库存信息查询中,库存总量是库存信息中每部书籍的数量相加的总和。STRUCTDEALCHARNUM10FLOATPRICEINTAMOUNTFLOATMONEY第四章主要模块的算法说明各模块功能的实现是通过对各函数的调用完成的,每个函数能够完成相应独立的任务,按一定规则顺序调用这些函数就组成了解决问题的模块因此,模块化的程序设计主要是靠设计和调用函数来实现的以下按模块对本系统中各函数进行简单介绍。一图书基本信息录入模块此模块调用了一个函数ADD,此函数用于录入图书基本信息,并保存入文件。定义了一个文件指针变量,指向文件JIBENXINXITXT。先从键盘输入信息存在结构体变量中,再利用FWRITE函数将变量的数据存入文件,利用DOWHILE循环实现连续输入。在写文件之前有一个判断语句,将文件中的编号与输入的编号比较,若能找到相同的则用CUNTINUE跳过此次输入进入下一轮循环,以此实现限制编号不重复的功能。二图书基本信息查询模块定义了五个查询函数,通过选择语句分别进行调用。五个查询函数的算法大同小异,就以按价格查询函数加以说明。定义一个文件指针变量并指向文件JIBENXINXITXT,定义一个变量COUNT初值为零,依次输入两个数分别存在MIN和MAX变量中,若MINMAX则交换两变量的值。利用循环语句和FREAD函数将文件信息依次读出并判断是否符合大于MIN且小于MAX的条件,有符合的则向屏幕输出,并使COUNT值为1。若循环结束后COUNT仍为零则打印“查无此书”。显示全部的查询函数则是不做判断,读文件后直接输出。三图书采购模块整个模块最主要的函数是BUYBOOK函数。定义了三个文件指针变量,分别控制基本信息文件、库存信息文件和一个临时文件。首先用了STRCMP函数查找与输入编号相符的书籍信息,定义了一个变量用于计算金额。确认购买后,对库存信息文件的修改如下用两个指针分别指向库存信息文件和临时文件,用FOR循环将库存文件中的信息逐条读出并且逐条写入临时文件,在FOR循环过程中利用IF语句判断,当读到与输入编号相同的那条信息时,增加库存数量之后再写入临时文件,若未读到与输入编号相同的信息,则在FOR循环结束后向临时文件添加购买的书籍信息和购买数量,最后以只写方式再次打开库存信息文件并将临时文件的信息写入其中。由此可实现对库存信息文件的修改和添加。四图书销售模块此模块最主要的是SELLBOOK函数。定义了两个文件指针变量,用以控制库存信息文件和临时文件。出售后对库存信息的修改与采购模块的修改方法类似,不同的是当库存为零时可删除库存信息。删除的方法与修改方法类似,依旧利用临时文件,只是当读到与输入编号相同的信息时,库存数量减少后若值为零则直接CONTINUE跳过,不写入临时文件,把临时文件的信息重新导回库存信息文件后则可实现删除目的。五利润统计模块由于利润和采购总金额、出售总金额是在采购模块和销售模块就一并计算的,所以此模块只是简单地将这三个变量打印出来。库存信息查询模块此模块是对库存信息文件的查询。定义了一个文件指针变量并指向库存信息文件,利用循环语句和FREAD函数,将信息逐条存入结构体变量并用PRINTF打印输出。定义一个SUM变量存储所有信息数量之和,然后输出SUM的值即为库存总量。第五章运行结果主菜单基本信息录入基本信息查询菜单图书采购菜单购书界面购书纪录查询图书销售菜单销售界面利润统计界面库存信息查询界面退出界面第六章课程设计总结整个系统的开放过程都是我自己完成的,并未求助于学长,更没有抄袭他人的作品。作为一个初学者,由于技术和经验的不足,在程序开发的过程中遇到了各种各样的问题。在程序编写的初期,编译的时候经常会检查出一连串的错误,而且程序运行以后也会出现很多问题,总是不能按照规定要求进行。这其中有很多是非常低级的错误,比如变量的定义没有放在最开始,又如输入实型数据时错用了“D”,或者用SCANF函数输入时用了“N”转义字符,导致运行时出现错误而无法继续等等。为此,我不得不把C语言的课本以及上课的笔记拿出来,把那些最基础的知识好好地再看一遍。我发现那些最简单的知识却是最容易被忽略的,也正是最容易让人栽跟斗的,基础要是不牢固那么什么大的程序都是编不好的。在编程的中期,低级错误不断的毛病已经基本能够克服。但是随着编程难度的增加,我遇到了一些比较大的困难,有一些功能无法很好的实现。其中最大的一个问题就是采购和销售模块中对库存量的修改,要实现文件中某条信息的修改和删除。开始只能实现对文件添加纪录,但不能将原来已有纪录进行修改删除,后来翻阅参考资料以及利用网络资源,学习和借鉴了他人的一些思想方法,利用一个临时文件实现了对原文件的修改和删除。但是本人认为此法虽然能实现所需功能,但依旧欠妥,应该还有其他效率更高的方法,有待以后继续思考。还有比如无法实现输入“Y”或“N”达到选择控制的目的,后来通过与同学互相交流解决了问题。由此我体会到,自学能力是一项必须具备的重要技能,这是一个人不断充实自我、提高自我、战胜自我的重要途径,而高效的信息获取和资源检索能力又显得尤为重要。在学习的过程中与他人的合作交流也是很有必要的,能达到事半功倍的效果。在编程后期,主要是对系统的调试、功能的完善、细节的修改以及界面的美化。这个过程我也遇到了一些问题。比如增强系统对非法输入的处理能力,借鉴了其他的一些成功案例,做了小小的一些改动实现了我的要求。在后期的调试修改过程中,我也体会到了这个过程对于一个程序的开发有多么重要,程序编好了也许工作只是完成了一半,后期的很多工作需要更多的耐心和细致,行百里者半九十,只有一丝不苟地坚持到最后才能把工作做完美。次程序设计实践给了我很大的锻炼,使我在C语言编程方面能力有了很大的提高,对编程也有了更为深刻的认识。这是从课堂走向实际生活、从理论学习走向实际运用的一个重要的经历。课程设计也使我对编程产生了更浓厚的兴趣,也让我认识到,要想掌握C语言编程或者说任何一门编程语言,光是上课听老师讲是远远不够的,必须自己亲自动手去编、去想、去解决实际编程中遇到的问题,只有这样才能真正提高自己的编程能力,进而达到熟练掌握的境界。目前我的编程能力还是有待提高的,我的程序在模块化方面就不够完善,我知道在实际的程序项目开发中模块化非常重要,这利于程序的修改以及团队成员的合作工作等。今后,在学习编程的过程中,我要不断地巩固基础知识,多为自己争取项目实践的机会,更好的利用图书馆和网络资源获取信息不断加强自学能力,加强与人合作的团体精神。希望在编程之路上能够取得不断进步。参考文献1C语言程序设计/李丽娟,牛莉主编北京中国铁道出版社,200672C语言程序设计实验教程/李丽娟,马淑萍主编北京中国铁道出版社,200673C大学教程第五版/(美)DEITEL,PJ等著;苏小红等译北京电子工业出版社,20082附录(程序源代码)INCLUDE“STDIOH“INCLUDE“STRINGH“STRUCTBOOKCHARNUM10CHARBOOKNAME30CHARAUTHOR20CHARPRESS30CHARTIME10FLOATPRICEINTAMOUNTINF,BOOK50STRUCTDEALCHARNUM10FLOATPRICEINTAMOUNTFLOATMONEYDEALFLOATLIRUN0,BMONEY0,SMONEY0INPUTPRINTF“请输入书名“SCANF“S“,INFBOOKNAMEPRINTF“请输入作者“SCANF“S“,INFAUTHORPRINTF“请输入出版社“SCANF“S“,INFPRESSPRINTF“请输入出版日期“SCANF“S“,INFTIMEPRINTF“请输入定价“SCANF“F“,OUTPUTPRINTF“编号SN“,INFNUMPRINTF“书名SN“,INFBOOKNAMEPRINTF“作者SN“,INFAUTHORPRINTF“出版社SN“,INFPRESSPRINTF“出版时间SN“,INFTIMEPRINTF“定价2F元N“,INFPRICEBUYBOOKFLOATBMONEY2FILEFP1,FP2,FP3CHARN10,BINTX,I,COUNT0,COUNT20FP1FOPEN“CCDESIGNJIBENXINXITXT“,“R“PRINTF“请输入书籍编号“SCANF“S“,NWHILE1FREADIFFEOFFP1BREAKIFSTRCMPINFNUM,N0FCLOSEFP1/在基本信息中查找/COUNT1OUTPUTPRINTF“N请输入采购数量“SCANF“D“,BMONEY2XINFPRICEPRINTF“所需金额为2F元N“,BMONEY2PRINTF“N确认购买Y/NT“SCANF“S“,IFBY|BYFP2FOPEN“CCDESIGNKUCUNXINXITXT“,“R“FP3FOPEN“CCDESIGNLINSHITXT“,“W“FORI0FREADIIFSTRCMPBOOKINUM,N0/购买后修改库存量/BOOKIAMOUNTX/如原来已有纪录则修改原纪录/FWRITECOUNT21CONTINUEFWRITEIFCOUNT20/若尚无纪录则添加纪录/INFAMOUNTXFWRITEFCLOSEFP2FCLOSEFP3FP2FOPEN“CCDESIGNKUCUNXINXITXT“,“W“FP3FOPEN“CCDESIGNLINSHITXT“,“R“FORI0FREADIFWRITEFCLOSEFP2FCLOSEFP3FP3FOPEN“CCDESIGNLINSHITXT“,“W“/清空临时文件/FCLOSEFP3FP3FOPEN“CCDESIGNBUYTXT“,“A“STRCPYDEALNUM,INFNUMDEALPRICEINFPRICEDEALAMOUNTXDEALMONEYBMONEY2FWRITEFCLOSEFP3LIRUNBMONEY2BMONEYBMONEY2PRINTF“N购买成功NN“BREAKELSEBREAKIFCOUNT0PRINTF“N查无此书NN“FCLOSEFP1SELLBOOKFLOATSMONEY2FILEFP2,FP3CHARN10,BINTX,I,COUNT0FP2FOPEN“CCDESIGNKUCUNXINXITXT“,“R“PRINTF“请输入书籍编号“SCANF“S“,NWHILE1FREADIFFEOFFP2BREAKIFSTRCMPINFNUM,N0/在库存中找到后输出欲售书籍信息及数量/FCLOSEFP2COUNT1OUTPUTPRINTF“库存量D本N“,INFAMOUNTPRINTF“N请输入出售数量“SCANF“D“,IFXMAXINTTTMINMINMAXMAXTWHILE1FREADIFFEOFFP1BREAKIFINFPRICEMINPRINTF“3、4、N“PRINTF“5、6、N“PRINTF“0、N请输入06数字选择“SCANF“S“,IFA1PRINTF“N“PRINTF“N欢迎进入基本信息录入系统“PRINTF“NN“ADDELSEIFA2PRINTF“N“PRINTF“N欢迎进入基本信息查询系统“PRINTF“NN“WHILE1CHARBPRINTF“N请选择查询方式N“PRINTF“1、2、N“PRINTF“3、4、N“PRINTF“5、0、N请输入04数字选择“SCANF“S“,IFB1FINDBOOK1ELSEIFB2FINDBOOK2ELSEIFB3FINDBOOK3ELSEIFB4FINDBOOK4ELSEIFB5FINDBOOK5ELSEIFB0BREAKELSEPRINTF“N输入错误NN任意键继续N“GETCHELSEIFA3PRINTF“N“PRINTF“N欢迎进入图书采购系统“PRINTF“NN“WHILE1CHARB,CPRINTF“N请选择操作类型N“PRINTF“1、N2、N0、N“PRINTF“请输入02数字选择“SCANF“S“,IFC1DOBUYBOOKPRINTF“您还要买书吗Y/NT“SCANF

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论