C语言-图书借阅管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
成绩评定表
课程设计任务书
一、实训题目和实训任务
1. 实训题目
图书借阅系统
2. 实训任务
设计一个图书借阅系统,功能包括:图书管理子系统,由管理员负责录入书籍(包括ISBN 号、书名、作者、数量等信息),废旧图书销毁等功能;图书借阅子系统(保存用户名、借阅的书的ISBN号、借阅日期等信息),负责图书的借阅、归还、续借、超期罚款等功能;查询子系统,包括可以查询书库中的书、客户借阅情况等。(可以自己发挥);信息保存到文件中。
3. 题目分析
一个学校的图书馆,其图书借阅管理系统应有如下几个功能:
1,图书管理员将图书的ISBN号,书名,书名,作者,价格等输入到系统中存储区来,以便以后使用。而且还能修改图书的内容。
2,读者可以按照图书的ISBN号或书名,作者到系统中查找并借阅所需要的图书,每人借阅图书的数量不超过20本。
3,建立文件,将信息保存在文件中。
方法:
1,建立一个关于图书的结构体,内含ISBN号,书名,作者,出版社和价格。
2,InsertDoc函数,负责新书信息的插入。
3,void sort_maopao函数,用冒泡法将图书的ISBN号以由小到大的顺序进行排列。4,void DeleteDoc函数,将废旧图书信息进行删除。
5,void Print_Book_Doc函数,输出图书的信息,方便读者选书。
6,void search_book函数,进行图书的查询。
7,void info_change函数,将图书信息进行修改。
8,主函数,用switch-case结构进行函数的调用。
4. 开发工具和环境
开发工具:Visual C++ 6.0, CodeBlock10.05,等
环境:Windows 7
二、软件设计
1. 关键技术分析
设计一个图书借阅系统,功能包括:图书管理子系统,由管理员负责录入书籍(包括ISBN 号、书名、作者、数量等信息),废旧图书销毁等功能;图书借阅子系统(保存用户名、借阅的书的ISBN 号、借阅日期等信息),负责图书的借阅、归还、等功能;查询子系统,包括可以查询书库中的书,信息保存到文件中。
2. 软件模块设计 图2-2-1
3. 软件界面设计
图2-3-1
图书管理系统 信息录入 图书排序 信息删除 信息浏览 信息查询 信息修改 图书借阅
三、软件测试及运行结果
1.测试方案
选择1,输入01 大学英语李梦华上海外语38
02 大学物理许嵩宁科学出版社51 选择2,输出图3-2-1
选择7,输出图3-2-2
2. 测试结结果
图3-2-1
图3-2-2
四、收获和体会
1.实习收获
在编程实践中,我才知道自己基础知识的不足,通过一段时间的努力学习,我的基础知识更加牢固,尤其是后面指针,结构体,链表,文件的知识了解的更加深入。其次是知识的运用,以前学到的知识都是片面的了解,一到编程序时就无从下手,现在能熟练的应用各种知识,使知识得到应用。最后是编程的技巧,从整体构型到各个函数的应用都有了很大的进步。
2. 实习体会
通过一段时间的编程实践,使我c语言的知识了解的更加深刻,知识面更加宽广。同时,在编程实践中遇到了很多困难,明显的了解到自己知识运用能力的不足,通过查书和与同学交流,使我取得了很大的进步。
在编程过程中,与同学的交流使我获得了很大的进步,老师的指导更是使我获益匪浅,一些难懂的知识经老师点拨瞬间变得豁然开朗。
以前看到能力强的同学编数百行的程序就吓住了自己,总觉得自己不行,但经过努力,当程序运行出来时才觉得,原来编程并不是很难,这极大地增加了自己的自信心,为以后的学习和工作打下了良好地基础,我认为这才是我最重要的收获。
五、源代码清单
#include
#include
#include
#include
struct books_list
{
char writer[20]; /*作者名*/
char title[20];
char ISBN[20]; /*书名*/
char publishinghouse[20]; /*出版单位*/
int price,borrowed; /*价格*/
struct books_list * next;
/*链表的指针域*/
};
struct books_list * Create_Books_Doc(); /*新建链表*/
void InsertDoc(struct books_list * head); /*插入*/
void sort_maopao(struct books_list * head ); // 排序
void DeleteDoc(struct books_list * head , int num); /*删除*/
void Print_Book_Doc(struct books_list * head); /*浏览*/
void search_book(struct books_list * head); /*查询*/
void info_change(struct books_list * head); /*修改*/
void save(struct books_list * head); /*保存数据至文件*/
/*新建链表头节点*/ struct books_list * Create_Books_Doc()
{
struct books_list * head;
head=(struct books_list *)malloc(sizeof(struct books_list)); /*分配头节点空间*/ head->next=NULL; /*头节点指针域初始化,定为空*/
return head;
}
/*保存数据至文件*/ void save(struct books_list * head)
{
struct books_list *p;
FILE *fp;
p=head;