c语言课程设计报告及源代码图书馆管理系统剖析.docx
- 文档编号:2370694
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:28
- 大小:364.57KB
c语言课程设计报告及源代码图书馆管理系统剖析.docx
《c语言课程设计报告及源代码图书馆管理系统剖析.docx》由会员分享,可在线阅读,更多相关《c语言课程设计报告及源代码图书馆管理系统剖析.docx(28页珍藏版)》请在冰豆网上搜索。
c语言课程设计报告及源代码图书馆管理系统剖析
目录
1设计内容、任务及基本要求………………………………………………………2
1.1设计内容………………………………………………………………………2
1.2设计任务………………………………………………………………………2
1.3设计基本要求…………………………………………………………………2
2总体设计思路………………………………………………………………………4
2.1系统功能………………………………………………………………………4
2.2各个模块之间的主要关系……………………………………………………4
2.3总体程序框图…………………………………………………………………5
2.4系统的总体流程图……………………………………………………………5
3功能模块的具体设计………………………………………………………………7
3.1main()函数模块………………………………………………………………7
3.2查询所有图书信息函数模块……………………………………………………8
3.3查询一本图书信息函数模块……………………………………………………8
3.4添加图书信息函数模块…………………………………………………………9
3.5删除图书信息函数模块…………………………………………………………10
3.6借阅图书模块……………………………………………………………………12
4功能模块的调试与测试……………………………………………………………13
4.1主菜单运行界面…………………………………………………………………13
4.2查询所有图书信息模块运行界面………………………………………………13
4.3查找某一本图书信息模块运行界面……………………………………………14
4.4添加图书信息模块运行界面……………………………………………………16
4.5删除图书信息模块运行界面……………………………………………………17
4.6借阅图书模块信息运行界面……………………………………………………79
5总结……………………………………………………………………………………22
6致谢……………………………………………………………………………………23
7参考文献………………………………………………………………………………24
9程序清单………………………………………………………………………………25
1.设计内容、任务以及基本要求
1.1设计内容
主要利用c语言的文件操作能力设计开发一个小型的图书管信息管理系统,至少具有如下功能:
查寻所有图书信息、通过输入图书编号来完成查找某一本图书信息、添加图书信息、删除图书信息以及通过学生学号实现图书借阅功能。
操作界面要符合用户的一般习惯,界面易于读者明白理解,图形或文本界面都可以。
1.2设计任务
要求:
明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识;提高学生用高级语言进行程序设计的能力,重点提高用C语言进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤;提高撰写技术文档的能力。
掌握模块化编程的基本方法与步骤;巩固和加深学生对C语言课程基本知识的理解与掌握,培养学生利用C语言进行软件操作的能力和技巧。
1.3基本要求
(1)通过提示菜单选择可以进行的操作。
(2)将图书的信息存入文件中,并命名为BookInfo.txt。
(3)将图书借阅情况信息存入文件中,并命名为SendInfo.txt。
(4)在本系统中可以进行管理系统包含的基本操作,其中包括
a)查看所有图书的信息。
b)输入一本图书的图书编号,从当前图书中进行查找,如果找到则显示该图书的相关信息,如果没有找到则给出提示信息。
c)添加一本图书的基本信息,通过输入图书编号,首先查找是否存在该图书编号的图书,如果存在则提示重新输入,否则将该图书按照顺序插入到相应位置。
d)删除一本图书的基本信息,通过输入图书编号,首先查找是否存在该图书编号的图书,如果存在则将该图书删除,否则给出提示信息,提示该图书不存在。
e)借阅一本图书,需要给出学号和图书编号,如果图书编号不存在则重新输入,直到输入正确为止,并将学号和相应的图书编号存入SendInfo.txt文件中。
(5)图书基本信息包括图书编号、书名、作者、出版社和价钱这些简单信息。
(6)图书信息文件中每一行存放一本图书的信息。
(7)借阅信息文件中每一行存放一本书的借阅情况。
2总体设计思路
2.1系统功能
图书管理在生活中运用非常广泛,因此需要用许多的程序来对它们进行管理。
此程序包含了图书信息的录入、图书信息的浏览、图书的查询和排序、图书信息的删除与修改,借书,还书,统计等。
通过编译一个C语言函数,其中包含一个主函数,多个子函数,主函数调用其余的子函数实现人们能够简易、快捷的了解并找到自己所学要的信息的功能。
1、查询所有图书信息:
将所有图书信息包括编号、书名、出版社、作者、价格等显示在屏幕上。
2、查找一本图书的信息:
通过输入图书编号完成图书信息的查找,并在屏幕上显示。
3、修改图书信息:
通过输入编号,判断此图书是否存在,若不存在则提示用户重新输入图书编号。
4、删除图书信息:
通过输入编号,判断此图书是否存在,若存在,则提示用户是否显示删除后的信息,若不存在则提示用户重新输入图书编号。
5、借书:
通过输入图书编号,判断此图书是否存在,若不存在则提示用户重新输入图书编号,若图书已借出则提示用户是否继续借书,若没借出则将此图书的编号和学生的学号存入图书借阅文件中。
6、退出系统:
返回主页面。
2.2各个模块之间的主要关系
图书信息管理系统可划分为5个模块:
查询所有图书模块、查找一本图书信息模块、修改图书信息模块、删除图书信息模块、借阅图书模块。
各模块之间均有着或多或少的联系,比如:
查找一本图书信息模块、修改信息模块、删除信息模块、借阅图书模块都需要先判断该图书是否存在,然后再进行其它操作。
理解了各模块之间的主要关系有利于程序的设计与完成,使程序的层次结构清晰,便于程序的编写、阅读和调试。
2.3总体程序框图
图2.1系统总框架图
2.4系统的总体流程图
图2.2系统总流程图
3功能模块的具体设计
3.1main()函数模块
根据图书馆信息管理系统的要求,可设计一个主函数,及定义多个用户自定义函数。
在主函数中定义全局变量,即是在函数外部定义的变量,其不属于某一个函数,而属于一个源程序文件,在整个程序内可以多次被引用。
通过将switch语句与break语句联合使用来实现多分支选择结构程序的设计。
运用fscanf语句在主函数中将文件中的内容赋给结构体变量,便于在自定义函数中对结构体的调用。
具体如下:
在主函数中定义一个存放图书信息的结构体
structlist{
charnum[20];/*图书编号*/
charname[40];/*书名*/
charauthor[40];/*作者*/
charpublish[40];/*出版社*/
doubleprice;/*价格*/
};
以及各函数的申明
voidsearch_allinformation(structlistb[]);/*查看全部图书信息*/
voidcheck_bookinformation(structlistb[]);/*查找图书信息*/
voidadd_bookinformation(structlistb[]);/*添加图书信息*/
voiddelete_bookinformation(structlistb[]);/*删除图书信息*/
voidborrow_book(structlistb[]);/*借阅图书*/
通过将switch语句与break语句联合使用来实现多分支选择结构程序的设计。
switch(choice1)
{case1:
search_allinformation(b);
break;
case2:
check_bookinformation(b);
break;
case3:
add_bookinformation(b);
break;
case4:
delete_bookinformation(b);
break;
case5:
borrow_book(b);
break;
case0:
break;
}
3.2查询所有图书信息函数模块
voidsearch_allinformation(structlistb[])
通过printf()语句将所有的图书信息包括包括编号、书名、出版社、作者、价格等信息显示在屏幕上。
运用for语句加printf()实现图书信息的循环输出显示。
3.3查询一本图书信息函数模块
voidcheck_bookinformation(structlistb[])
用户先输入图书编号后,先用strcmp(s1,s2)函数进行比较两个字符串数组的大小,从而查找出该图书是否存在,若不存在则提示用户是否要继续查找,运用switch语句,若继续则再次调用函数本身进行第二次查找,直到找到为止,若否则结束循环,不再进行查找。
通过将switch语句与break语句联合使用来实现多分支选择结构程序的设计。
运用fscanf语句在主函数中将文件中的内容赋给结构体。
其主要流程图如下:
关键代码:
strcmp(比较字符串)case….break(判断)printf(输出信息)
switch(实现选择功能分支)
3.4添加图书信息函数模块
voidadd_bookinformation(structlistb[])
输入图书的基本信息包括编号、书名、出版社、作者、价格,由于原有的图书信息是按照编号的大小顺序排列的,所以只需运用for循环和strcmp函数找出输入的图书
应该插入的位置,再将所添加的图书信息插入即可。
其主要流程图如下:
关键代码:
printf(输出信息)
scanf(输入信息)
switch(实现多分支结构程序设计)
case-break(实现功能的选择)
3.5删除图书信息函数模块
voiddelete_bookinformation(structlistb[])
用户输入所要删除的图书编号,先查找该图书编号是否存在,若存在,这提示用户是否要显示删除后的信息,若不存在则提示重新输入。
关键代码:
strcmp(比较两个字符串的大小)
switch(实现多分支结构程序设计)
if(条件选择)
3.6借阅图书模块
voidborrow_book(structlistb[])
用户先输入所借图书的编号,调用函数查找该图书有没有借出,若已借出,则提示用户该图书已借出,并提示用户是否继续借阅其他书籍。
若继续,则继续进行新的查找。
关键代码:
if-else(实现分支选择)
getchar(从键盘上输入一个字符)
goto(使程序的执行流程直接转接到标号对应的那条语句)
strcmp(比较两个字符串的大小)
4功能模块的调试及测试
4.1主菜单运行界面
图4.1主菜单运行界面图
4.2查询所有图书信息模块运行界面
按1操作查询所有图书信息,
(1)打开源程序,编译程序,单击Compile按钮,出现错
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 报告 源代码 图书馆 管理 系统 剖析