1、使用 c 语言编写了图书管理系统。 本系统主要实现图书信息管理的功能, 通过此系统可对图 书馆库存图书信息进行管理和维护操作。 实现了图书馆内管理的一般功能, 包括查询、 借书、还书、添加、删除、修改图书信息等。所设计的系统以菜单方式工作,为用户提供清晰的使用提示, 依据用户的选择来进行各种处理, 并且在此过程中能够尽可能的兼容用户使用过程中可能出现的异常情况。图书信息包括编号、书名、作者、出版社、出版日期、价格、在库 状态等。图书信息的录入和显示要求有一定的规范格式,录入的图书信息用文件形式保存, 并可以对其进行浏览、查询、修改、删除等基本操作。整个程序实现链表操作,对图书信息 的操作逐个地
2、进行,一个图书信息的更改不应影响其他的图书记录。这种系统设计的人很多, 也有很多种系统。 总的感觉他们做的界面不够人性化,不够美观。所以我在功能完善的前提下要做到界面更加美观和人性化。整个系统制造的而过程中,涉及了较多 C 语言知识点,对于不同的数据类型、程序控制结构、 数据结构作以分析和总结, 并结合这个课题进行综合的应用, 在一定程度上做到了对所学知识融会贯通。 进一步加深、 巩固了所学的专业的基本理论知识, 培养了综合分析问题、解决问题的能力。在设计程序时,实现了程序的模块化、结构化。在主函数中调用各种子函数,操作界面简单,易操作。1.2 系统功能分析(系统提供主界面, 各种功能操作以独
3、立的函数为基础, 运用对链表操作的技术来实现通讯录的管理,同时对操作结果在计算机中做永久保存。 )整个系统可以分为信息录入、信息浏览、信息查询、信息排序、信息删除和信息修改的功能。 系统提供主界面, 各种功能操作以独立的函数为基础, 运用对链表操作的技术来实现图书信息的管理, 同时对操作结果在计算机中做永久保 存。1.3 系统结构分析程序总体结构图开始菜单页面输入数字编号选项进入选择子页面结束选择 0程序层次图选 择 数 字编号0 1 2 3 4图书信息录入图书信息浏览图书信息查询 图书信息修改退出图书管理系统5 6 7 8图书信息增加图书信息删除图书信息排序图书信息保存程序流程图123456
4、782、 核心技术介绍简单选择排序技术:基本思想:每一趟在后面 n-i 个待排记录中选取排序码最小的记录作为有序序列中的第 i 个记录。排序过程: 首先通过 n-1 次关键字比较,从 n 个记录中找出关键字最小的记录, 将它与第一个记录交换。 再通过 n-2 次比较,从剩余的 n-1 个记录中找出关键字次小的记录, 将它与第二个记录交换。 重复上述操作,共进行 n-1 趟排序后,排序结束实现代码为:void bookpaixu(struct book*p,int n)int j,i,k; char c1;struct book temp;printf(n 排序前图书的信息记录为: n);n %
5、9s%9s%9s%9s%9s%9s%9sn, 登录号 书名 作者名 分类号 出版单位 出版时间 价格 for(i=0;ino,(p+i)-name,(p+i)-author,(p+i)-fenlei,(p+i)-putfrom,(p+i)-puttime,pi.price);n 按登录号排序( D ),还是按作者名排序( A )? /选择排序的方式c1=getchar();getchar();if(c1=d|c1=D) /选择登录号由小到大排序n-1;k=i; for(j=i+1;j0) /使用选择法进行排序k=j;if(k!=i) /如果最小熟不熟默认的 pi ,再交换,temp=pk; p
6、k=pi; pi=temp;n 排序后图书的信息记录为: / 输出排序后图书的信息printf( 出版单位 for(i=0;else if(c1=aA) / 选择作者名由小到大排序if(strcmp(pk.author,pj.author)0) k=j;=i) / 使用选择法进行排序 出版单位 价格 /输出排序后图书的信息elsen 您输入的为非法字符!3、 函数功能介绍stdlib.h 是包含文件 stdlib 头文件即 standard library标准库头文件。 stdlib 头文件里包含了 C、C+语言的最常用的系统函数。 该文件包含了的 C 语言标准库函数的定义。 stdlib.h
7、 里面定义了五种类型、一些宏和通用工具函数。 类型例如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() 等等。系统使用的主要函数void menu();int bookluru(struct book*p,int n); (录入图书信息) void bookliulan(str
8、uct book*p,int n); (图书信息浏览) void bookchaxun(struct book*p,int n);(图书信息查询) void bookxiugai(struct book*p,int n); (图书信息修改) int bookzengjia(struct book*p,int n); (图书信息增加) int bookshanchu(struct book*p,int n); (图书信息删除) void bookpaixu(struct book*p,int n); (图书信息排序) void DLsearch(struct book*p,int n); (按登
9、入号查询) void AUsearch(struct book*p,int n); (按作者名查询)int bookzairu(struct book*p,int n); (图书信息文件储存 )void goout(); (退出程序) int bookbaocun(struct book*p,int n); (图书信息保存) void main()系统使用的主要数据结构struct book /定义一个 book 类结构体。char noL; char nameL; char authorL; char fenleiL; char puttimeL;char putfromL; char pr
10、iceL;4、 设计体会及总结这次课程设计让我掌握了许多的有用知识。 首先通过不断地学习和锻炼更加熟练地掌握应用软件 Microsoft Visual C+ 6.0 了。设计正确及合适的程序对于我们初学者来说是很 大的难题, 出现一丁点儿错误就得非很大的努力去修改, 正式者一步步一点点的努力让我对C语言游乐更深的认识。同时我掌握了解决问题的方法,这无论是对以后的学习、生活都有无比重要的价值通过两周的课程设计,第一次我试着用所学的 C 语言知识去编制生活中常用的程序。 我们是小组选择编辑图书信息管理系统程序。 由于分工合作, 我负责的是查询和排除模块。 起初对知识掌握的不够全面, 在整个设计过程
11、中遇到很多问题。比如,编译出现错误,对于格式的掌握还不够透彻;在分界面运行完后, 回不到系统的主界面,出现了死循环;在删除信息的板块中,删除了要保留的; 运行时,屏幕显示的字之间无空格。后来,通过小组互相帮组讨论,查阅书籍, 改善了程序。首先把原程序中的运用 scanf()输入字符,改为 getchar(),排除了接受回车键所出现的问题,能够顺利的返回主界面。其次, printf ()中字符串控制的长度拉宽。最后还是能如期的完成此次实训。当然,由于初次接触图书管理系统的设计, 程序还是存在缺陷。 比如操作起来不够简便、 连贯, 同时也没考虑到实际问题。 如图书的价格要取大于等于零的数等。总之,此次的课程设计还是对我们的专业很有帮助。既巩固了我们的 C 语言知识,让我们对一部分函数的功能有了更加深刻的理解,把所学运用到实际,也使我们在系统设计领域有了新的拓展,开发我们的思维。参考文献:1 黄明等编著 C 语言课程设计北京:电子工业出版社2 郭翠英编著 C 语言课程设计案例精编北京:中国水利水电出版社3 宁正元数据结构( c 语言)南京:东南大学出版社。 2000 年 6 月第 1 版4 严蔚敏等 数据结构( c 语言版) 北京:清华大学出版社, 1997 年 4 月第 1 版5 谭浩强编著 C 程序设计题解与上机指导 (第 3 版)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1