您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 78《C语言程序》课程设计_图书管理系统[1]
《C语言程序》课程设计报告书设计题目:图书管理专业:电子信息工程班级:学生姓名:学号:指导教师:2010年5月信息工程学院1目录摘要―――――――――――――――――-02第一章绪论――――――――――――――-04第二章问题定义(或系统分析)―――――----05第三章总体设计与详细设计―――――――--07第四章编码实现―――――――-――--―---09第五章调试与测试―――――――――――-11总结与心得――――――――――――――--12附录:1源代码――――――――――――――――--132参考资料―――――――――――――――--232摘要当今计算机应用在生活中可以说是无处不在,因此作为二十一世纪的大学生来说掌握程序开发技术是十分重要的.而C语言又是最常见的,功能最强大的一种语言.因此,做好C语言课程设计是非常必要的.课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程。从拿到题目到完成整个编辑的几个星期里,不仅巩固了以前学过的知识,还可以学到很多新的东西。我做的图书资料管理系统,虽然是一个小程序,但对我这样一初学者来说确实是一个很大的困难,以至于好几节课程设计下来还是没什么太大的进展。在图书管理系统中,要为每一个借阅者建立一个帐户,并给借阅者发放借阅卡,帐户中存储借阅者的个人信息,借阅信息,以及预定信息。持有借阅卡的借阅者可以借阅书刊,反还书刊,查询书刊信息,预定书刊并取消预定,但这些操作都是通过图书管理员进行的,即借阅者不直接与系统交互,而是图书管理员充当借阅者的代理与系统交互。在借阅书刊时,需要输入所借阅的书刊的名字,书刊的ISBN/ISSN号,然后输入借阅者的图书卡号和借阅者名,完成后提交所添表格,系统验证借阅者是否有效,3若有效,借阅请求被接受,系统查询数据库系统,看借阅者所借阅书刊是否存在,若存在,则借阅者可以借阅书刊,建立并在系统中存储借阅记录。借阅者还书后,删除关于所还书刊的借阅记录。如果借阅者所借阅的书刊已被借出,借阅者还可以预定该书,一旦借阅者预定的书刊可以获得,就将书刊直接寄给预定人。这个程序主要考察了学生对结构体,指针,文件的操作,以及C语言算法的掌握,所以完成此道题目要求较强的设计能力,尤其是一种大局意识。如何调试程序也非常重要,通过这个程序可以学到以前调试短程序没有的的经验。【关键字】1图书管理2图书查找3图书借还4图书的新增与修改4第一章绪论1.1选题背景随着社会的发展及知识经济时代的到来,管理信息系统在各行各业发挥着越来越重要的作用。但在高校的图书管理中,避免了手工操作而带来的一些不必要的问题。1.2系统目标本系统的目标是将高校图书管理工作实现计算机管理,从而大幅度提高工效率,提高实施管理的准确性、科学性;使担负管理的工作人员从繁杂的手工劳作中解脱出来,更好实施针对图书借阅管理在手工操作遇到的问题。1.3系统目的通过本项课程设计,可以培养独立思考、综合运用所学有关相应知识的能力,能更好的巩固《C语言程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!更加了解了c语言的好处和其可用性!同时增加了同学之间的团队合作精神!更加也体会到以后在工作中团队合作的重要性和必要性!5第二章问题定义(或系统分析)2.1题目分析一、目的要求本课程设计任务的目的是要求学生按照分析、设计、编码、调试和测试的软件开发过程独立完成管理系统设计,以及C语言算法的掌握,并能最终实现本系统的功能要求,通过这个程序可以学习到以前调试短程序没有的的经验。【题目要求】(1)为各项操作功能设计一个菜单。应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目;(2)要求以上功能分别用函数实现。并要求用C语言的文件操作语句将以上所有结果保存在文件XX.out。【输入/输出要求】(1)应用程序运行后,先显示一个菜单,然后用户根据需要选择相应的操作项目。进入每个操作后,根据程序的提示输入相应的信息;(2)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。菜单中的每一个选项都对应一个子程序,子程序的算法几乎囊获了所有C语言学过的技巧。6目前社会管理系统发展飞快,教务管理信息系统也是有了很大的发展。本系统完全独立开发,力求使系统功能简明,但功能全易操作。它适应了时代发展,适应了我国教育深化改革、全面实施素质教育的需要;从技术角度分析,这项开发工作所涉及的专业技术如下:操作系统采用Windows2000以上的版本;在数据管理系统上,我们可采用了MicrosoftOfficeAccess,开发工具选用MicrosoftVisualBasic.NET2003;从经济角度分析,采用计算机管理不但可以提高工作效率,而且还可以节省人力、物力、财力,降低了人工处理产生的错误7第三章总体设计与详细设计图书数据:书号,书名,作者,出版时间,价格,册数,页数借书人信息:姓名,单位,所借书目,借阅时间等1.借书模块:输入书名编号借书证号(如书库中有书并且册数大于0,则进行借书,借书日期由系统时间提供)2.还书模块:登记借书证号进行还书操作同时提供有无超时有则给予罚款处理。3.图书管理:对书库中书进行管理新书入库旧书删除对库存量进行统计和查询4.查询模块:对书库中书进行查询根据书名进行查询8根据书号进行查询根据出版社进行查询对借阅书进行查询对一段时间或某书进行查询和统计9第四章编码实现增加图书功能,id自动排号根据图书类型和图书状态,显示用户信息intadd_books(Book*head,Book*book_for_add){Book*p=head;if(!p)return-1;while(p-_next){p=p-_next;};p-_next=book_for_add;book_for_add-_id=p-_id+1;book_for_add-_prev=p;book_for_add-_next=NULL;book_for_add-_count=0;book_for_add-_status=0;return0;};查找书名称,返回查找到的数量,书名可能有重复的,一本书可能也有很多本,但是ID却是唯一的intsearch_books_by_name(Book*book_head,char*name){intcount=0;Book*p=book_head;while(p){if(strcmp(p-_name,name)==0){print_book(p);++count;}p=p-_next;10}returncount;}借书,返回该书的指针,否则就返回NULL,可能不存在图书,或者已经被借走了Book*borrow_books(Book*book_head,intid){Book*p=book_head;while(p){if(p-_id==id)break;p=p-_next;}if(!p)/*不存在*/returnNULL;还书,正常归还就返回该书的指针,否则就返回NULL还书要登记Book*return_books(Book*book_head,intid){Book*p=book_head;while(p){if(p-_id==id&&p-_status!=0){p-_status=0;11第五章调试与测试运行的结果说明:在VisualC++6.0在此环境下运行比较好,其界面十分友好并且能正常运行。12第六章总结与心得首先我觉得,用到的程序段不必太高级,因为天下事皆有高低之分,决定优劣的不是集体中的某部分的强弱,起决定作用的是组合内各元素的和谐,要能在一个集体中各尽其用,每个人都能发挥自己的长处,避免自己的短处,那么这个集体的组合能量是最优的。选择什么等级的C语言就是关键,最后我决定运用文件,我的理解是;必须建立一个文件,它能够保存新的录入文挡,又能在提示语的要求下读出文档。然而,这只是万里长征的第一步,后面的路还很长,困难还有很多,可是我能成功的编译一个程序,能够在思路卡壳的情况下,继续前进,我在此很感谢给予我耐心解答的老师和同学,是他们为我小程序的成功起到了关键性的作用,那么多个日夜,如此多的困难,同学们勤恳塌实,从开始到结束,始终热情高涨,我感谢这种氛围,感谢学校提供的良好条件。在课程设计过程中,我学到了很多人生哲理,懂得怎么样去制定计划,怎么样去实践计划,并掌握了在执行过程中13附录源代码汉字菜单的编写可参照以下代码:#includestdio.h.main(){charc;inti;do{clrscr();for(i=0;i80;i++)printf(*);printf(\t1:addbooks\n);printf(\t2:listbooks\n);printf(\t3:sreachbooks\n);printf(\t4:borrowbooks\n);printf(\t5:returnbooks\n);printf(“\t6:exit\n”)printf(\t请选择输入选项[1\\2\\3\\4\\5\\6]:\n);do{c=getchar();}while(c!='1'&&c!='2'&&c!='3'&&c!='4'&&c!='5'&&!=’6’);getchar();switch(c){case'1':input();break;case'2':del();break;case'3':find();break;case'4':arrange();break;case‘5’:right();break;case'6':exit(0);}printf(按任意键返回主菜单:\n);getchar();14clrscr();}while(1);}#includestdio.h#includestdlib.h#includestring.h#defineBORROWED1#defineNOBORROW0/*定义图书结构*/structBook{int_id;//编号,唯一char_name[32];//图书的名称,不唯一int_type;//图书的类型,不唯一int_status;//图书的状态,借出/没有借出int_count;//图书借出的次数structBook*_next;//下一本书structBook*_prev;//上一本书};/*定义图书类型*/typedefstructBookBook;/*操作的目录提示*/charbook_menu[][32]={addbooks,listbooks,15searchbooks,borrowbooks,returnbooks,exit,,};/*操作的目录提示1*/charbook_menu_sub[][32]={searchbooksbyname,searchbooksbytype,,};/*添加图书类型,用户信息显示*/charbook_types[][32]={type0,type1,type2,,};/*添加图书状态,用户信息显示*/charbook_status[][32]={noborrow,borrowed,,};/*增加图书,id自动排号*/intadd_books(Book*head,Book*book_for_add){Book*p=head;if(!p)return-1;while(p-_next)16{p=p-_next;};p-_next=book_for_add;book_for_add-_id=p-_id+1;book_for_add-_prev=p;book_for_add-_next=NULL;book_for_add-_count=0;book_for_add-_status=0;return0;};/*建立图书管理链表*/Book*create_list(Book*book_hea
本文标题:78《C语言程序》课程设计_图书管理系统[1]
链接地址:https://www.777doc.com/doc-4428149 .html