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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C语言图书信息管理系统实验报告.docx

1、C语言图书信息管理系统实验报告课程报告课程名称:程序设计实践专业班级:学生姓名:学号:任课教师:阎娟学期:2011-2012 学年第二学期课程报告任务书题 目图书信息管理系统开发一个图书信息管理系统, 图书信息包括: 图书编号、 书名、 作者、出版社、 类别、 出版时间、价格等基本信息(也可以根据自己情况进行扩充,比如是否借出、库存量 等)。使之能提供以下 基本功能 :( 1)图书信息录入功能 (图书信息用文件保存 )输入 (2)图书信息浏览功能输出主要 ( 3)查询功能 (至少一种查询方式 )、排序功能 (至少一种排序方式 ):内容 按书名查询 按作者名查询 按照价钱排序 按出版时间排序等等

2、 (4)图书信息的删除与修改扩展功能 :可以按照自己的程度进行扩展。比如( 1)简单的权限处理 ( 2)报表打印功能( 3)甚至根据自己情况,可以加上学生信息,并扩充为图书借阅系统。 ( 4)模糊查询 ( 5)综合查询 (6)统计功能 比如统计处某一类别的图书信息 或 筛 选出小于指定数量库存的图书信息等等,总之,可以根据自己需求进行分析功能。、提交材料应包括: (1)系统源代码 ( 2)课程报告、整个设计过程具体要求( 1)需求分析 要求学生对案例系统进行分析,设计出需要完成的功能,完善 任务 各个模块的调用关系;要求 ( 2)设计过程 要求学生进一步明确各模块调用关系, 进一步完善模块函数

3、细节(函数名、参数、返回值等)( 3)实现过程 要求学生养成良好的编码习惯、完成各个模块并进行测试,最终 完成系统整体测试;( 4)总结阶段 按照要求完成系统设计和实现报告,并进行总结、答辩。成绩评定报告撰写情况( 30 分)系统完成情况 (30 分)答辩情况( 40 分)内容20 分规范程度5分程序测试5分基本功能20 分扩展功能10 分自述情况10 分答辩情况30分成绩评定教师:1需求分析随着当今社会发展,信息化水平逐步提高,对图书管理有了新的要求,因此,编写一个 信息管理系统是十分必要的。为了满足图书管理的要求,通过计算机技术给图书管理人员和读者借、还书带来便利。 使用 C 语言编写图书

4、管理系统。本系统主要实现图书信息管理的功能,通过此系统可对图书 馆库存图书信息进行管理和维护操作。实现了图书馆内管理的一般功能,包括查询、添加、 删除、修改图书信息等。所设计的系统以菜单方式工作,为用户提供清晰的使用提示,依据 用户的选择来进行各种处理,并且在此过程中能够尽可能的兼容用户使用过程中可能出现的 异常情况。图书信息包括编号、书名、作者、出版社、出版日期、价格、库存数量等。图书 信息的录入和显示要求有一定的规范格式,录入的图书信息用文件形式保存,并可以对其进 行浏览、查询、修改、删除等基本操作。整个程序实现链表操作,对图书信息的操作逐个进 行,一个图书信息的更改不应影响其他的图书记录

5、。2概要设计1 ,设计表示:(1)、整个系统除了主函数外,另外还有各种功能子函数,利用无限次循环语句 while()和选择语句 swithch() 实现各个子函数的调用,系统根据输入的数字选项来调用相应的函数, 以实现相应的功能。主要实现了图书的密码设置、录入、存储、查询、添加、删除、修改、 排序等功能。(2)void Main_menu() ;这是一个指针函数,它主要实现了链表的创建,并且在创建过 程中从文件读取信息到链表中,以用于后面其他函数的操作。(3)void mainFind() 、 void Delete() 、void change() 、void write() 、struct

6、 node * read() 、void Sorting_order() 、#define S 123 、#define A 123456 这六个函数时整个图 书管理系统的全部菜单函数。 void Delete() 、void change() 、void write() 、struct node * read() 、在此可以选择删除、修改、保存,读取图书,排序等操作。 void mainFind(); 为 查询系统的菜单,在此可以选择按书名、编号、作者等方式进行查询图书。 #define S 123 、#define A 123456 分别是学生登陆和管理员登陆的密码。(4)void Pri

7、nt(); 这个函数为图书的遍历,浏览所有的图书。(5)void Find_booknumber() 、 void Find_bookname() 、 void Find_author() 、 void Find_press(); 这三个函数为查询图书信息函数, void Find_booknumber(); 按书号查询、 ; void Find_bookname() 按书名查询、 void Find_author() ; 按作者查询、 void Find_press() ;按出版社查找。(6)void Sorting_booknumber(), 按书号排序。 void Sorting_pri

8、ce() ,按价格排序。 void Sorting_publication_date() ,按出版日期排序。 void Sorting_number() ,按馆藏数 量排序。3实现注释:这个实用的小型图书管理程序程序以链表操作完成,并实现文件信息的录入和保存等功 能。实现了图书管理的基本功能,包括了图书的录入、存储、查询、添加、删除、修改、排 序等功能。查询时可按书名、编号、作者等方式查询,找到后输出这本书的所有信息。在添 加图书信息后,还增加了链表排序操作,并输出整个链表,方便用户检查信息。系统中主要 的数据结构就是图书的信息,包含编号、书名、作者、出版社、出版时间、价格、馆藏数量 等,在处

9、理过程中各项可以作为一本图书的不同属性来进行处理。3详细设计1-1 定义变量struct nodeint book_number;/ 书号char book_name25;/ 书名char press50;/ 出版社char author20;/ 作者int price;/ 价格char publication_date20;/ 出版日期int number;/ 馆藏数量struct node * next;struct node * head = NULL;/ 在此定义一个全局变量 head, 其它函数就不需要再返回 head; 但这样做,程序中的函数的可用性就不是太高 int Total

10、= 0; / 记录图书总数1-2 函数的定义void Creat();/ 录入图书信息插入图书信息struct node* Insert(struct node* p,struct node* head0);/void Delete();/ 删除图书信息void change();/ 修改图书信息void write();/ 保存图书信息struct node * read();/ 读取图书信息void amend(struct node * p);/ 辅助修改选项 void Print();/ 遍历图书信息void Print_by_one(struct node * p);/ 单项遍历vo

11、id Main_menu();/ 登陆界面void Administrator_menu0();/ 第一次进入系统的管理员菜单void Administrator_menu1();/ 第 n 次进入系统的管理员菜单void Student_menu();/ 学生菜单void mainFind();/ 查找菜单void Find();/ 精确查找图书void Find0();/ 模糊查找图书int str(char a,char b);/ 模糊查找函数void Find_booknumber();/ 按书号查找void Find_booknumber0();/ 按书号模糊查找void Find_

12、bookname();/ 按书名查找void Find_bookname0();/ 按书名模糊查找void Find_author(); / 按作者查找void Find_author0(); / 按作者模糊查找void Find_press(); / 按出版社查找void Find_press0(); / 按出版社模糊查找char *transform(char str ,int n);/ 将整数转化为字符存入字符数组返回void Sorting_order();/ 排序void Sorting_help(struct node* p1,struct node* p2);/ 辅助排序void

13、 Sorting_booknumber();/ 按书号排序void Sorting_price();/ 按价格排序void Sorting_publication_date();/ 按出版日期排序void Sorting_number();/ 按馆藏数量排序 #define S 123 / 学生密码#define A 123456/ 管理员密码int T = 0;/ 选择菜单1-3 信息的录入void Creat()/ 录入图书信息struct node *tail,*p;int book_number;/ 书号char choice;n);printf( 该操作将清除书库中所有书目的信息!

14、printf(nttt 你想继续操作吗 ?(Y/N)n); while(1)printf( 请选择: ); if(scanf(%c,&choice) getchar();if(choice = Y|choice = y) system(cls);break;else if(choice = N|choice = n) system(cls); return;elseprintf( 请按要求输入! n); continue; elseprintf( 输入的不是字母,请按照要求重新输入! n); continue;printf(ttt 提示:请输入你要输入的数据,当书号为数字 0 时结束! nn)

15、; printf( 请输入书号 :);scanf(%d,&book_number);getchar();/ 吸收回车符,清空缓冲区,这样才能正常执行清屏操作 while(book_number != 0)p = (struct node *)malloc(sizeof(struct node);printf( 请输入书名 :); scanf(%s,p-book_name);getchar();printf( 请输入作者 :); scanf(%s,p-author);getchar();printf( 请输入出版社 :); scanf(%s,p-press);getchar();printf(

16、请输入价格 :); scanf(%d,&p-price);getchar();printf( 请输入出版时间 :); scanf(%s,p-publication_date);getchar();printf( 请输入馆藏数量 :);scanf(%d,&p-number);getchar();putchar(n);p-book_number = book_number;p-next = NULL;if(head = NULL)head = tail = p;else tail-next = p; tail = p;Total+;printf( 请输入书号 :);scanf(%d,&book_n

17、umber);printf(tttt 图书信息录入成功! nn);1-4 按编号查询void Find_booknumber()/ 按书号查找int book_number;struct node *p1,*p2;printf( 请输入你要查找的图书书号: );scanf(%d,&book_number);printf(ttn 你要找的书为: n);printf(tt n);printf(tt| 书号| 书名| 作者| 出版社| 价格| 出版时间| 馆藏数量 |n);printf(tt n);if(head-book_number = book_number) Print_by_one(hea

18、d);p1 = head;p2 = head-next;while(p2 != NULL)if(p2-book_number = book_number)Print_by_one(p2);p1 = p2;p2 = p2-next;elsep1 = p2;p2 = p2-next;1-5 按出版时间排序void Sorting_publication_date()/ 按出版日期排序struct node *p1,*p2,*p3,*p4,*p5,*p6,*p7;int x=1;for(p1=head;p1-next!=NULL;p4=p1,p1=p1-next)p3=p1;for(p2=p1-ne

19、xt,p5=p7=p2;p2!=NULL;p7=p2,p2=p2-next)if(strcmp(p3-publication_date , p2-publication_date) 0)p3=p2;p5=p7;if(p3!=p1)if(x&p1=head)p6=p1-next;p1-next=p3-next;p3-next=p6;p5-next=p1;head=p3;p1=p3;x=0;elsep6=p1-next;p1-next=p3-next;p3-next=p6;p4-next=p3;p5-next=p1;p1=p3;4调试分析问题 1:对于函数是否返回函数值,并怎样返回指针?解答:对于

20、 void 开头的函数,没有返回值,在程序中可以直接调用。有指针返回值的函 数,直接返回指针名。问题 2:在使用变量前,指针变量和一般变量如何初始化? 解答:在使用一般变量前,忘记初始化,例如:定义 n,在下面程序循环中,没有替 n附初值,结果导致乱码。指针变量 *p,在不同情况下, p值要赋予 NULL或 head。问题 3:指针之间的传递赋值如何辨别顺序?最终返回值又是哪一个? 解答:指针的传递赋值是从赋值号的右端赋值于赋值号的左端。例如: p=head, 表示指针 p 指向 head 的位置。最终的返回值应该是赋值号左端的指针。5 测试结果登录系统图书的查找图书信息的录入按价格排序浏览图

21、书信息6 课程心得总结在这一个学期的实践中, 通过编写这个图书管理系统, 我体会到了 c 语言学习的实用性。将理论和实践结合在一起,用先进的计算机工具方便人们的生活。C 语言程序的编写首先要从大局考虑,把自己编写整个程序的思想都写在草稿上,这样 有助于自己编写程序,在编写时要完善注释,方便其他人理解程序。编写的程序从理论上来 说并没有错,但以上机就问题不断。甚至有些课本上的知识照搬不变,也不能得到正确的结 果。有时一个程序改了一遍又一遍,但就是不能成功,编程显得枯燥乏味,看似简单的程序 题,在调试时却屡屡出错。经反复的修改后,结果正确了,这时所有的乏味都显得那么无力, 一切都是值得的。开发一套系统,最重要的是细心,并且思考要全面,结合实际,充分考虑到客户的需求 和现实意义。不管什么系统,只用运用到实际应用中,才具有先现实意义。 所以 c 语言程序 的实用性很强,我们以后还要更加努力认真地学习编程语言。

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

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