C++大作业图书管理系统 实验报告Word下载.docx

上传人:b****6 文档编号:15957756 上传时间:2022-11-17 格式:DOCX 页数:28 大小:368.18KB
下载 相关 举报
C++大作业图书管理系统 实验报告Word下载.docx_第1页
第1页 / 共28页
C++大作业图书管理系统 实验报告Word下载.docx_第2页
第2页 / 共28页
C++大作业图书管理系统 实验报告Word下载.docx_第3页
第3页 / 共28页
C++大作业图书管理系统 实验报告Word下载.docx_第4页
第4页 / 共28页
C++大作业图书管理系统 实验报告Word下载.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

C++大作业图书管理系统 实验报告Word下载.docx

《C++大作业图书管理系统 实验报告Word下载.docx》由会员分享,可在线阅读,更多相关《C++大作业图书管理系统 实验报告Word下载.docx(28页珍藏版)》请在冰豆网上搜索。

C++大作业图书管理系统 实验报告Word下载.docx

一设计目的…………………………………………………………….1

二大作业的内容........................................2

三大作业的要求与数据..................................3

四大作业应完成的工作..................................4

五总体设计(包含几大功能模块)...........................5

六详细设计(各功能模块的具体实现算法——流程图)………….6

七调试分析(包含各模块的测试用例,及测试结果)…………….7

八总结………………………………………………………………...8

十参考资料…………………………………………………………….9

一大作业的目的

《面向对象程序设计》是一门实践性很强的课程,通过大作业不仅可以全方位检验学生知识掌握程度和综合能力,而且还可以进一步加深、巩固所学课程的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。

更好地掌握运用C++语言独立地编写、调试应用程序和进行其它相关设计的技能。

二大作业的内容

对图书信息(包括编号、书名、总入库数量、当前库存量、已借出本数等)进行管理,包括图书信息的输入、输出、查询、删除、排序、统计、退出.将图书的信息进行记录,信息内容包含:

(1)图书的编号

(2)图书的书名(3)图书的库存量。

假设,现收集到了一个图书馆的所有图书信息,要求用C语言编写一个简单的图书管理系统,可进行录入、查询、修改和浏览等功能。

学习相关开发工具和应用软件,熟悉系统建设过程。

三大作业的要求与数据

1、用C语言实现系统;

2、对图书信息(包括编号、书名、总入库数量、当前库存量、已借出本数)进行管理,包括图书信息的输入、输出、查询、删除、排序、统计、退出.

3、图书信息包括:

其内容较多,为了简化讨论,要求设计的管理系统能够完成以下功能:

(1)每一条记录包括一本图书的编号、书名、库存量

(2)图书信息录入功能:

(图书信息用文件保存,可以一次完成若干条记录的输入。

(3)图书信息显示浏览功能:

完成全部图书记录的显示。

(4)查询功能:

完成按书名查找图书记录,并显示。

(5)图书信息的删除:

按编号进行图书某图书的库存量.

(6)借书登记系统:

可以输入读者编号和所借书号来借书。

(7)还书管理系统:

可以输入读者编号和所借书号来还书。

(8)、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!

四大作业应完成的工作

(1)编写算法;

(2)算法测试,并有具体的测试结果和结果分析;

(3)撰写大作业报告。

内容包括:

1)封面扉页

2)设计任务书

3)目录

4)总体设计方案(包括流程图)

5)使用说明及运行实例(包括界面)

6)成员设计内容简介

7)项目源程序代码(注意注释的使用)

8)指导教师评语

五总体设计(包含几大功能模块)

1、新书入库模块;

2、查询模块;

3、借阅管理模块;

4、借书登记模块;

5、还书管理模块;

6、输出信息模块;

7、退出系统模块;

六详细设计(各功能模块的具体实现算法——流程图)

6.1各函数的功能和实现

1、新书入库模块:

形参分别为:

书名,书号,以及有多少本书要入库,再根据要求将信息写入文件boot.dat中。

又由于最开始要输入三本新书,故可以加一个初始化函数init_book(),但是初始化函数只执行一次,也就是在系统第一次运行的时候执行,此时可以根据判断是否存在boot.dat这个文件来决定是否执行初始化函数。

Y

根据数量修改库存

N

book.dat中增加此新

书,根据数量设置库存

2、查询模块:

可用一个函数voidfind_book(charbook_num[])来实现。

找到就输出此书全部信息,找不到就输出查找失败信息。

3、成绩查询功能

NY

3、借阅管理模块:

用初始化函数init_reader()来实现对读者的初始化。

因为读者初始化函数也只是在系统第一次运行的时候执行一次,故也可以根据是否存在reader.dat文件来确定是否执行此函数。

(到现在可以发现在系统初始化函数里,至少已经需要调用两个初始化函数了)

4、借书登记模块:

可用一个函数borrow_book(charreader_num[],charbook_num[])来实现。

在函数中要分别判断

A该读者的编号是否已经存在,如果不存在,则提示错误。

B该读者的借阅书是否已满(即最多只能借1本书)如果是,则提醒该用户先去还书

C输出的书号对应的书是否存在,如果不存在,则提醒读者不存在此书。

借书过程完成后,则对读者信息里的借书信息写上所借书号,并修改库存量。

NN

YN

N

借书登记,修改book.dat

中的现存信息,reader.dat

中的借书卡信息Y

5、还书管理模块:

可用一个函数return_book(charreader_num[],charbook_num[])来实现。

在实现此函数时要判断:

A该读者的姓名是否已经存在,如果不存在,则提示错误。

B该读者是否已经借阅此书。

如果没有,则提示错误。

C还书过程完成后,则对读者信息里的借书信息清零,并修改库存量。

N

错误

正确

还书将读者信息借书卡清0

修改book.dat现存信息

N

6、输出信息模块:

可分别用模块print_book()和print_reader()来实现直接从book.dat文件和reader.dat文件中读取信息并输出。

图书

7、退出系统模块:

可用一个函数exit()来实现。

首先将信息保存到文件,释放动态创建的内存空间,再退出此程序。

如图6.1

七调试分析(包含各模块的测试用例,及测试结果)

7.1源程序

#include<

stdio.h>

math.h>

string.h>

typedefstructbk{

charbook_num[11];

charbook_name[41];

intbook_kc;

intbook_xc;

structbk*next;

}book;

/*图书信息*/

typedefstructrd{

charreader_num[11];

charreader_name[11];

charreader_book_num[11];

structrd*next;

}reader;

/*读者信息*/

structbk*h_book,*h_reader;

/*全局变量,分别为指向图书信息链表和读者信息链表的头指针*/

voidForm_Insert_New_Book();

/*新书入库菜单*/

voidForm_Find_Book();

/*查询图书菜单*/

voidForm_Borrow_Book();

/*借书菜单*/

voidForm_Return_Book();

/*还书菜单*/

voidFind_Book(char*);

/*查询图书*/

voidInsert_New_Book(char*,char*,int);

/*新书入库,即在链表中插入一个新节点*/

voidBorrow_Book(char*,char*);

/*借书,修改读者借阅信息和图书的现存信息*/

voidReturn_Book(char*,char*);

/*还书,修改读者借阅信息和图书的现存信息*/

voidprint_book(structbk*);

/*输出全部图书信息*/

voidprint_reader(structrd*);

/*输出全部读者信息*/

voidload_data();

/*从文件中读取数据,链表头指针指向第一个节点*/

voidinit_reader();

/*第一次运行程序时对三个读者的初始化*/

voidinit_book();

/*第一次运行程序时对三本图书的初始化*/

voidsave();

/*将链表中的信息保存到文件中*/

voidM_Form()/*主菜单*/

{charch;

printf("

\n图书管理系统主窗口"

);

\n0:

退出系统"

\n1:

新书入库"

\n2:

图书查询"

\n3:

借书登记"

\n4:

还书管理"

\n5:

输出全部信息"

do{/*此循环用来保证选择正确的数字键执行相应的功能*/

\n\n请选择相应的功能代码:

"

scanf("

%c"

&

ch);

fflush(stdin);

/*用于清除键盘缓冲区中的多余字符*/

}while(ch!

='

0'

&

ch!

1'

2'

3'

4'

5'

switch(ch)/*根据输入的字符进行选择执行相应的模块*/

{case'

:

exit(0);

case'

Form_Insert_New_Book();

break;

Form_Find_Book();

Form_Borrow_Book();

Form_Return_Book();

load_data();

print_book(h_book);

print_reader(h_reader);

M_Form();

default:

printf("

error\n"

}

}

voidForm_Find_Book()

\n图书查询功能模块,请选择相应的功能代码:

\n"

0:

返回到主菜单\n"

1:

do{

switch(ch)

/*选择0,则返回到上一级目录,即主菜单*/

{printf("

\n请输入需要需要查询的书的编号:

%s"

book_num)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

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

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