您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 宁波工程学院《C语言程序设计》课程设计报告(图书信息管理系统设计)
1宁宁波波工工程程学学院院2013~2014学年第二学期电信学院C语言课程设计报告题目:图书信息管理系统设计班级:计科13-2姓名:傅天一学号:13401010222指导教师:洪立2014年6月2目录目录...............................................................................................21、系统功能和结构..................................................................31.1系统设计目的...................................................................31.2系统功能分析...................................................................31.3系统结构分析...................................................................32、核心技术介绍......................................................................63、函数功能介绍......................................................................84、设计体会及总结..................................................................9参考文献:.................................................................................10附录一:.....................................................................................1131、系统功能和结构1.1系统设计目的为了满足图书管理的要求,通过计算机技术给图书管理人员和读者借、还书带来便利。使用c语言编写了图书管理系统。本系统主要实现图书信息管理的功能,通过此系统可对图书馆库存图书信息进行管理和维护操作。实现了图书馆内管理的一般功能,包括查询、借书、还书、添加、删除、修改图书信息等。所设计的系统以菜单方式工作,为用户提供清晰的使用提示,依据用户的选择来进行各种处理,并且在此过程中能够尽可能的兼容用户使用过程中可能出现的异常情况。图书信息包括编号、书名、作者、出版社、出版日期、价格、在库状态等。图书信息的录入和显示要求有一定的规范格式,录入的图书信息用文件形式保存,并可以对其进行浏览、查询、修改、删除等基本操作。整个程序实现链表操作,对图书信息的操作逐个地进行,一个图书信息的更改不应影响其他的图书记录。这种系统设计的人很多,也有很多种系统。总的感觉他们做的界面不够人性化,不够美观。所以我在功能完善的前提下要做到界面更加美观和人性化。整个系统制造的而过程中,涉及了较多C语言知识点,对于不同的数据类型、程序控制结构、数据结构作以分析和总结,并结合这个课题进行综合的应用,在一定程度上做到了对所学知识融会贯通。进一步加深、巩固了所学的专业的基本理论知识,培养了综合分析问题、解决问题的能力。在设计程序时,实现了程序的模块化、结构化。在主函数中调用各种子函数,操作界面简单,易操作。1.2系统功能分析(系统提供主界面,各种功能操作以独立的函数为基础,运用对链表操作的技术来实现通讯录的管理,同时对操作结果在计算机中做永久保存。)整个系统可以分为信息录入、信息浏览、信息查询、信息排序、信息删除和信息修改的功能。系统提供主界面,各种功能操作以独立的函数为基础,运用对链表操作的技术来实现图书信息的管理,同时对操作结果在计算机中做永久保存。41.3系统结构分析程序总体结构图选择0程序层次图012345678开始菜单页面输入数字编号选项进入选择子页面结束开始选择数字编号图书信息录入图书信息浏览图书信息查询图书信息修改图书信息删除图书信息排序图书信息保存退出图书管理系统图书信息增加5程序流程图0102030405060708开始图书信息浏览图书信息增加图书信息查询图书信息修改图书信息录入图书信息排序图书信息删除图书信息保存退出图书管理系统62、核心技术介绍简单选择排序技术:基本思想:每一趟在后面n-i个待排记录中选取排序码最小的记录作为有序序列中的第i个记录。排序过程:①首先通过n-1次关键字比较,从n个记录中找出关键字最小的记录,将它与第一个记录交换。②再通过n-2次比较,从剩余的n-1个记录中找出关键字次小的记录,将它与第二个记录交换。③重复上述操作,共进行n-1趟排序后,排序结束实现代码为:voidbookpaixu(structbook*p,intn){intj,i,k;charc1;structbooktemp;printf(\n排序前图书的信息记录为:\n);printf(\n%9s%9s%9s%9s%9s%9s%9s\n,登录号,书名,作者名,分类号,出版单位,出版时间,价格);for(i=0;in;i++)printf(\n%10s%10s%10s%10s%10s%10s%10s\n,(p+i)-no,(p+i)-name,(p+i)-author,(p+i)-fenlei,(p+i)-putfrom,(p+i)-puttime,p[i].price);printf(\n按登录号排序(D),还是按作者名排序(A)?);//选择排序的方式c1=getchar();getchar();if(c1=='d'||c1=='D')//选择登录号由小到大排序{for(i=0;in-1;i++){k=i;for(j=i+1;jn;j++)if(strcmp(p[k].no,p[j].no)0)//使用选择法进行排序k=j;if(k!=i)//如果最小熟不熟默认的p[i],再交换,{temp=p[k];p[k]=p[i];p[i]=temp;}}printf(\n排序后图书的信息记录为:\n);//输出排序后图书的信息printf(\n%9s%9s%9s%9s%9s%9s%9s\n,登录号,书名,作者名,分类号,出版单位7,出版时间,价格);for(i=0;in;i++)printf(\n%10s%10s%10s%10s%10s%10s%10s\n,(p+i)-no,(p+i)-name,(p+i)-author,(p+i)-fenlei,(p+i)-putfrom,(p+i)-puttime,p[i].price);}elseif(c1=='a'||c1=='A')//选择作者名由小到大排序{for(i=0;in-1;i++){k=i;for(j=i+1;jn;j++)if(strcmp(p[k].author,p[j].author)0)k=j;if(k!=i)//使用选择法进行排序{temp=p[k];p[k]=p[i];p[i]=temp;}}printf(\n排序后图书的信息记录为:\n);printf(\n%9s%9s%9s%9s%9s%9s%9s\n,登录号,书名,作者名,分类号,出版单位,出版时间,价格);//输出排序后图书的信息for(i=0;in;i++)printf(\n%10s%10s%10s%10s%10s%10s%10s\n,(p+i)-no,(p+i)-name,(p+i)-author,(p+i)-fenlei,(p+i)-putfrom,(p+i)-puttime,p[i].price);}elseprintf(\n您输入的为非法字符!\n);}83、函数功能介绍stdlib.h是包含文件stdlib头文件即standardlibrary标准库头文件。stdlib头文件里包含了C、C++语言的最常用的系统函数。该文件包含了的C语言标准库函数的定义。stdlib.h里面定义了五种类型、一些宏和通用工具函数。类型例如size_t、wchar_t、div_t、ldiv_t和lldiv_t;宏例如EXIT_FAILURE、EXIT_SUCCESS、RAND_MAX和MB_CUR_MAX等等;常用的函数如malloc()、calloc()、realloc()、free()、system()、atoi()、atol()、rand()、srand()、exit()等等。系统使用的主要函数voidmenu();intbookluru(structbook*p,intn);(录入图书信息)voidbookliulan(structbook*p,intn);(图书信息浏览)voidbookchaxun(structbook*p,intn);(图书信息查询)voidbookxiugai(structbook*p,intn);(图书信息修改)intbookzengjia(structbook*p,intn);(图书信息增加)intbookshanchu(structbook*p,intn);(图书信息删除)voidbookpaixu(structbook*p,intn);(图书信息排序)voidDLsearch(structbook*p,intn);(按登入号查询)voidAUsearch(structbook*p,intn);(按作者名查询)intbookzairu(structbook*p,intn);(图书信息文件储存)voidgoout();(退出程序)intbookbaocun(structbook*p,intn);(图书信息保存)voidmain()系统使用的主要数据结构structbook{//定义一个book类结构体。charno[L];charname[L];charauthor[L];charfenlei[L];charputtime[L];charputfrom[L];charprice[L];}94、设计体会及总结这次课程设计让我掌握了许多的有用知识。首先通过不断地学习和锻炼更加熟练地掌握应用软件MicrosoftVisualC++6.0了。设计正确及合适的程序对于我们初学者来说是很大的难题,出现一丁点儿错误就得非很大的努力去修改,正式者一步步一点点的努力让我对C语言游乐更深的认识。同时我掌握了解决问题的方法,这无论是对以后的学习、生活都有无比重要的价值通过两周的课程设计,第一次我试着用所学的C语言知识去编制生活中常用的程序。我们是小组选择编辑图书信息管理系统程序。由于分工合作,我负责的是查询和排除模块。起初对知识掌握的不够全面,在整个设计过程中遇到很多问题。比如,编译出现错误,对于格式的掌握还不够透彻;在分界面运行完后,回不到系统的主界面,出现了死循环;在删除信息的板块中,删除了要保留的;运行时,屏幕显示的字之间无空格。后来,通过小组互相帮组讨论,查阅书籍,改善了程序。首先把原程序中的运用scanf()输入字符,改为getchar(),排除了接受回车键所出现的问题,能够顺利的返回主界面。其次,printf()中字符串控制的长度拉宽。最后还是能如期的完成此次实训。当然,由于初次接触图书管理系统的设计,程序还是存在缺陷。比如操作起来不够简便、连贯,同时也没考虑到实际问题。如图书的价格要取大于等于零的数等。总之,此次的课程设计还是对我们的专业很有帮助。既巩固了我们的C语言知识,让我们对一部分函数的功能有了更加深刻的理解,把所学运用到实际,也使我们在系统设计领域有了新的拓展,开发我们的思维。10参考文献:[1]黄明等编著《C语言课程设计》北京:电子工业出版社[2]郭翠英编著《C语言课程设计案例精编》北京:中国水利水电出版社[3]宁正
本文标题:宁波工程学院《C语言程序设计》课程设计报告(图书信息管理系统设计)
链接地址:https://www.777doc.com/doc-4004404 .html