ImageVerifierCode 换一换
格式:DOCX , 页数:51 ,大小:144.26KB ,
资源ID:8491408      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8491408.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言 图书管理系统 课程设计正文.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言 图书管理系统 课程设计正文.docx

1、C语言 图书管理系统 课程设计正文学生信息管理系统的设计与实现1 实习目的1 通过课程设计,加深对结构化程序设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。 2 通过课程设计,进一步掌握C有并重要的数据结构。掌握并熟练运用指针、链 表、结构体、文件等数据结构。 3 通过课程设计,提高程序开发能力,能运用合理的控制流编写清晰高效的程序。 4 通过课程设计,培养C语言知识运用和自学能力,真正的把课堂上获得的知识 运用起来,培养自己对程序编写的兴趣,并能独立设计和实现一个中小型系统。 5. 通过课程设计,加强了自己的程序分析能力6. 通过本课程设计巩固C语言程序设计课程教学成果,深入理

2、解结构体、指针、链表、动态分配内存和文件操作等C程序设计中的中高级技术,熟练掌握C语言的调试方法,初步培养良好的编程习惯和编程风格,初步学习程序文档的撰写方法。2 需求分析图书管理系统采用的开发工具是Visual C+,主要用于对大量的图书信息,包括图书编号、书名、类型、作者名、出版日期、等进行增加、查询、排序、修改等操作。同时也包括对用户的管理。为保存信息,系统将图书信息存储在文件中,每次启动系统时,先将数据从文件中读到单链表中,进行增、删、改、查等操作,在系统推出前,再将单链表中的数据保存到文件中,有效地将数据进行保存。系统为用户提供了简单的人机界面,使用户可以提供提示,输入操作项,调用系

3、统提供的管理功能。2.1 主要功能需求描述如下2.11 用户登录首先提示用户输入用户名和密码。调用文件中存储的用户信息进行校验,只有用户名和密码都匹配时才允许用户使用该系统。用户可以完成所有操作,可以进行图书的管理,修改,排序等。2.12 系统主控制平台用户登录以及退出系统两大功能模块。用户登录中包括添加图书信息、删除图书信息、查询图书信息、图书列表、对图书进行排序、修改图书、录入数据和保存图书信息等。2.13 添加图书信息处理用户根据提示输入图书的书名、作者、出版社、出版日期、类别、编号、等添加数据。输入完一条图书信息后,可根据提示继续输入下一条图书信息或继续其他操作,允许输入多条图书信息记

4、录。输入完图书信息后,以单链表的形式暂时保存在单链表中,等待下一步操作。系统退出之前,将单链表中的全部图书信息保存到文件中。2.14 删除图书信息处理首先提示用户输入要修改的图书的编号、类型、书名、作者名、出版时间,用户根据输入的信息在单链表中查找。如果该图书存在,则首先显示图书的基本信息,并提示用户是否进行删除操作,用户确认删除后,直接删除;如果没找到,系统会给出提示信息。2.15 图书排序信息处理在选择了图书排序信息后,将图书信息按类型选择排序,然后从内存中调出来显示,最后提示是否显示排序结果。如果没有查询都任何信息,系统会给出提示信息。2.16 图书列表信息处理在选择了图书列表信息后,将

5、图书信息从内存中调出来显示,最后提示是否查看图书信息。如果没有查询到任何信息,系统会给出提示信息。2.17 查询图书信息处理首先提示用户输入要查找的编号,根据用户输入的编号从单链表中对图书信息进行查询。查询成功后,显示该图书信息,并提示是否对根据用户输入的信息可以完成对图书的查询。如果没有查询到任何信息,系统会给出提示信息。2.18 修改图书信息处理首先要提示用户输入要修改的图书编号,根据用户输入的编号从单链表对图书信息进行查询。根据菜单输入要修改的图书信息的编号。然后将内存中输入的信息进行修改。2.19 录入数据信息处理用户根据提示输入图书的书名、作者、出版社、出版日期、类别、编号、等数据。

6、输入完一条图书信息后,可根据提示继续输入下一条图书信息或继续其他操作,允许输入多条图书信息记录。输入完图书信息后,以单链表的形式暂时保存在单链表中,等待下一步操作。系统退出之前,将单链表中的全部图书信息保存到文件中。3 概要设计图 14 详细设计图书管理设置用户登录,用户的身份登录可以对系统中的所有功能模块进行操作。整个系统的功能模块的是图书信息管理。系统启动时,主函数中调用对用户模块进行初始化的操作,即设定最初的管理员的用户名(为“admin”)和密码(为“1234”),并对文件进行初始设置,即用户文件不存在,则创建用户文件。用函数system(color 03)来控制整个程序的颜色。录入数

7、据主要完成图书文件的初始设置,即图书文件不存在,则创建图书文件。下面对模块的功能做简单介绍。1.登录系统系统用选择结构(switch)语句来完成登录操作。首先提示用户输入用户名和密码,接着判断密码是否正确。如果密码错误,给出密码输入错误的提示信息;如果密码都正确则进入主程序。在主程序中完成程序的判断。2.添加图书信息系统调用struct book *addbook(struct book *head)函数以增加图书信息,将用户输入的信息添加到图书单链表中,输入完成后提示用户是否继续增加图书信息的操作,如果用户输入“Y”或“y”,则再次调用该函数,实现继续增加图书信息的操作;如果用户输入“N”或

8、“n”,则返回主菜单界面。3.删除图书信息系统调用void deletebook(struct book *head)完成图书信息的操作。首先提示用户输入图书的编号,在单链表中查询该图书信息是否存在,如果图书不存在,给出图书不存在的提示信息。如果图书存在,系统提示是否确认删除,如果用户输入“Y”或“y”,则删除该图书信息,否则返回主菜单界面。4.图书列表信息系统调出void print_book(struct book *head)函数来输出图书列表信息,将图书链表中的图书信息按指定的格式显示出来,显示完成后,提示用户是否再次浏览,如果用户输入“Y”或“y”,则再次显示单链表中的图书信息;否则

9、,返回主菜单界面。5.图书排序信息系统调出void Sort_Book(struct book *head)函数来对图书信息进行排序,选择子菜单,可以分别按编号、出版时间、价格、书名、作者名进行排序。将图书链表中的图书信息按指定的排序格式显示出来。 (1) 按图书编号排序调用void Num_Sort(struct book *head)函数按图书编号进行排序。(2) 按出版时间排序调用void Time_Sort(struct book *head)函数,按出版时间对图书信息进行排序。(3) 按图书价格排序调用void Price_Sort(struct book *head)函数,按出版时

10、间对图书信息进行排序。(4) 按图书名排序调用void BName_Sort(struct book *head)函数,按图书名对图书信息进行排序。(5) 按作者名排序调用void WName_Sort(struct book *head)函数,按作者名对图书信息进行排序。 6.查询图书信息 系统调出void Search(struct book *head)函数来对图书信息进行查询,选择子菜单,可以分别按编号、出版时间、价格、书名、作者名进行查询。将图书链表中的图书信息按指定的查询格式显示出来(1) 按图书编号查找 调用void Num_Search(struct book *head)函数

11、按图书编号进行查找。(2) 按出版时间查找调用void Time_Search(struct book *head)函数,按出版时间对图书信息进行查找。(3) 按图书名查找调用void BName_Search(struct book *head)函数,按图书名对图书信息进行查找。(4) 按作者名查找调用void WName_Search(struct book *head)函数,按作者名对图书信息进行查找。(5)按类别查找调用void Class_Search(struct book *head)函数,按类别对图书信息进行查找。7.修改图书信息系统调用void Revise(struct b

12、ook *head)函数来修改图书信息,可以根据编号对图书进行修改,包括全部修改和放弃修改。8.退出系统退出系统时,首先提示用户是否确定退出,如果用户输入“Y”或“y”,将用户链表中的数据保存到用户文件,用户输入“N”或“n”,则不退出。5 调试与测试结果分析 1. 登录系统系统运行后提示用户输入编号,选择要用户登录还是退出系统。选择用户登录,系统首次运行时的用户名为“admin”,密码是“1234”,以用户的身份登录系统,进入主菜单界面,登录界面如图2所示,主菜单界面如图3所示。图 2图 32. 添加图书在主菜单界面中,输入数字1进入输入添加图书界面,用户可以根据提示信息输入图书的基本信息,

13、输入”y”保存图书信息按回车键返回主菜单界面,输入信息情况如图4。图 43. 删除图书信息在主菜单界面中,输入数字2进入输入删除图书界面,用户可以根据提示信息输入图书的编号信息,输入”y”确定删除图书信息按回车键返回主菜单界面,输入信息情况如图5。图 54. 图书列表在主菜单界面中,输入数字3进入图书列表界面,系统会显示图书的基本信息,按回车键返回主菜单界面,图书列表信息情况如图6。图 65. 查询图书在主菜单界面中,输入数字5进入查询图书界面,用户可以根据提示信息输入图书的基本信息,来查询图书信息,并查看查找的图书。按回车键返回主菜单界面,查找图书信息情况如图7.图 76. 修改图书在主菜单

14、界面中,输入数字6进入修改图书界面,用户可以根据提示信息修改图书的基本信息,输入”y”保存修改后的图书信息按回车键返回主菜单界面,输入信息情况如图8图 87. 录入数据在主菜单界面中,输入数字7进入录入图书信息界面,用户可以根据提示信息输入图书的基本信息,输入”y”保存图书信息按回车键返回主菜单界面,输入信息情况如图9图 96 总结(1)程序设计思路一定要清晰,主函数尽量简洁,这样在调试过程中若出现错误,只要沿着主函数的思路逐个排查即可。一个条理清楚的框架结构有利于编译过程中查找并解决问题。(2)编译、调试时最好分模块进行。我第一次调试时是在整个程序编辑完后一次性编译,一下子出现了很多处错误。

15、分模块调试,检查错误是最快的方法。(3)细节处一定要注意,我刚刚编程时很容易丢落“;”“”等符号,而这会对程序的编译造成极大的不便。一个优秀的程序员应时刻注意细节,养成细心的良好品质。(4)本次C语言课程设计我是通过程序设计课本加上别的参考文献来完成的,其中虽然还存在比较多的瑕疵,但我都是一饱满的热情、认真的态度去对待本次课程设计的。通过这次课程设计我对完全靠现有的知识,是很难编写出来的。所以要有读除课本以外的参考书的习惯,可以学习更多的知识。参考文献1 谢延红,王付山.C语言程序设计教程M.北京:国防工业出版社,2010.152-171.2 梁旭,谷晓琳.C语言课程设计-3版.北京:电子工业

16、出版社,2013.83 张福祥. C语言程序设计M. 辽宁大学出版社,2008.1 4 张福祥,王萌C语言程序设计习题解答与实验实沈阳:辽宁大学出版社,2008 5 牛莉,刘远军等计算机等级考试辅导教程M北京:中国铁道出版社,20086 石柱,何新贵.优序法在软件评价中的应用J.计算机工程与设计,2002,23(2):45-46.附录#include #include #include struct book int num; char bname50; char wname20; char press50; char sort50; int time; float price; struct

17、 book *next; ; struct book *creatbook(); /创建链表 struct book *addbook(struct book *head); /添加图书 int is_exist(struct book *head,int m); /验证新添加的图书编码是否已存在 void deletebook(struct book *head); /删除图书 void fprint(struct book *head); /将链表写入文件 struct book *load(); /从文件中读取信息并建成链表 void print_book(struct book *he

18、ad); /将链表信息输出 void Search(struct book *head); /查询图书信息 void Num_Search(struct book *head); /按图书编号查询图书 void WName_Search(struct book *head); /按作者名查询图书 void Class_Search(struct book *head); /按类别查询图书 void Time_Search(struct book *head); /按出版时间查询图书 void BName_Search(struct book *head); /按图书名查询图书 void Rev

19、ise(struct book *head); /修改图书信息 void Sort_Book(struct book *head); /对图书进行排序 void Num_Sort(struct book *head); /按图书编号排序 void Time_Sort(struct book *head); /按图书出版时间排序 void Price_Sort(struct book *head); /按图书价格排序 void BName_Sort(struct book *head); /按图书名排序 void WName_Sort(struct book *head); /按作者名排序 in

20、t main() system(color 03); /控制颜色 int choice,n,x,y=1,c,c1=1234; char a,d,b10,b110=ycl; struct book *head=NULL; while(y) system(cls); /清屏 printf(nnnnnnn); puts( * 欢迎光临 *n); printf( * 图书信息管理系统 *nnn); printf(nn); printf( =1-用户登录=n); printf( =0-退出系统=n); printf( 请输入您的选择:); scanf(%d,&n); printf(n); getchar

21、(); switch(n) case 0: y=0; break; case 1: printf( 请输入您的用户名:); gets(b); printf(n); printf( 请输入您的密码:); scanf(%d,&c); printf(n); if(strcmp(b,b1)!=0|c!=c1) printf( 验证失败,请重新输入!n); scanf(%c,&d); getchar(); system(cls); else printf( 验证通过!请按Enter键进入!n); scanf(%c,&d); getchar(); x=1; while(x) system(cls); pr

22、intf( -n); printf( *图书信息管理系统*n); printf( -nn); printf( *nn); printf( *nn); printf( | 1-添加图书 2-删除图书 |nn); printf( | 3-图书列表 4-图书排序 |nn); printf( | 5-查询图书 6-修改图书 |nn); printf( | 7-录入数据 0-退出系统 |nn); printf( *nn); printf( *nn); printf(请输入所选择的序号:); scanf(%d,&choice); getchar(); system(cls); switch(choice)

23、 case 0: x=0;break; case 1: head=load(); if(head=NULL) printf(文件为空,请先录入数据!n); getchar(); break; else head=addbook(head); printf(添加成功!n); printf(是否将新信息保存到文件?(y/n)n); scanf(%c,&a); getchar(); switch(a) case n: break; case y: fprint(head); printf(保存成功!n); getchar(); break; break; case 2: head=load(); i

24、f(head=NULL) printf(文件为空,请先录入数据!n); getchar(); break; else deletebook(head); getchar(); break; break; case 3: head=load(); if(head=NULL) printf(文件为空,请先录入数据!n); getchar(); break; else print_book(head); getchar(); break; case 4: head=load(); if(head=NULL) printf(文件为空,请先录入数据!n); getchar(); break; else

25、Sort_Book(head); getchar(); break; case 5: head=load(); if(head=NULL) printf(文件为空,请先录入数据!n); getchar(); break; else Search(head); getchar(); break; case 6: head=load(); if(head=NULL) printf(文件为空,请先录入数据!n); getchar(); break; else Revise(head); getchar(); break; break; case 7: printf(注意:输入图书编码为0时结束!n)

26、; head=creatbook(); printf(是否将输入的信息保存到文件以覆盖文件中已存在的信息?(y/n)n); getchar(); scanf(%c,&a); getchar(); switch(a) case n: break; case y: fprint(head); printf(保存成功!n); getchar(); break; break; default: printf(您的输入有误,请重新输入!n); getchar(); break; break; default: printf( 您的输入有误! 请重新输入!n); getchar(); break; /录入

27、数据并形成链表 struct book *creatbook() struct book *head,*tail,*p; int num,time,n; char bname50,wname20,press50,sort50; float price; int size=sizeof(struct book); head=tail=NULL; printf(请输入图书编号:); scanf(%d,&num); printf(请输入图书名:); scanf(%s,bname); getchar(); printf(请输入作者名:); scanf(%s,wname); getchar(); printf(请输入出版社:); scanf(%s,press); getchar(); printf(请输入类别:); scanf(%s,sort); getchar(); printf(请输入出版时间:); scanf(%d,&time); getchar(); printf(请输入价格:); scanf(

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1