C语言程序设计课程设计-小型图书馆管理系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
cout << "请修改数据:" << endl;
cout << endl << "书的名称: ";
cin >> btarray[cur].name;
return;
}
(3)删除图书
void delbooks()
{
int cur;
cur = findbooks();
if (cur == -1)
{
return;
if (btarray[i].b_flag == 2) strcpy(value, "借出");
cout << "书号: " << btarray[i].no << " 书名: " << btarray[i].name << " 作者: " << btarray[i].author << " 价格: " << btarray[i].price << " 图书状态 :" << value << endl;
book brbook;
public:
void addreader(int id, char na[], int s)//增加读者
{
no = id;
sex = s;
strcpy(name, na);
r_del = 1;
}
3.2 图书馆管理系统功能模块
图书馆管理系统模块主要提供图书管理员实现增加图书、查询图书、删除图书、借阅图书、还书;增加读者、查询读者、删除读者、借书信息等。该模块按照查询方法不同分为借书功能模块、还书功能模块、图书信息维护模块、读者信息维护模块。
{
if (rdarray[i].no == no && rdarray[i].r_del == 1)
{
return i;
}
}
return -1; }
三、图书维护模块功能设计与实现
1.图书维护模块描述
增加图书、删除图书,以及更改、查询图书信息。
2.还书模块算法函数设计如下:
(1)增加图书
void addbooks()
cin >> rdarray[cur].name;
return;
}
(3)删除读者
void delreaders()
{
int cur;
cur = findreaders();
if (cur == -1)
{
return;
}
if (rdarray[cur].r_bor == 1)
{
cout << "该用户借了图书,请还书后再删除" << endl;
C语言课程设计
题 目小型图书馆管理系统
学生姓名专业班级
指导教师职 称
所在单位
教学部主任
目 录
1
1.1
此系统对于图书馆的管理者和读者来说都至关重要,直接关系到图书的借用率,所以开发图书管理系统能够为管理员和读者提供充足的信息和快捷的查询手段。系统实现图书馆的增加图书、查询图书、删除图书、借阅图书、还书;增加读者、查询读者、删除读者、借书信息等智能化管理过程。图书管理员只需略懂电脑知识就可以简易的操作该图书馆管理系统。
本系统中主要采用结构数据类型存储图书、读者等的基本信息。本系统中定义class类类型用于描述图书信息。
class结构体类型定义格式如下:
class book
{
public:
int no;
char name[20];
charauthor[10];
int price;
int b_flag;
int b_del;
if (rdarray[i].r_bor == 2) strcpy(value, "无");
cout << "学号: " << rdarray[i].no << " 姓名: " << rdarray[i].name << " 是否借书: " << value << endl;
}
}
return;
}
4 系统测试
{
if (rdarray[i].r_bor == 1) strcpy(value, "借");
if (rdarray[i].r_bor == 2) strcpy(value, "无");
cout << "学号: " << rdarray[i].no << " 姓名: " << rdarray[i].name << " 是否借书: " << value << endl;
return i;
}
}
return -1;
}
(5)显示全部图书信息
void listbooks()
{
char value[6];
for (int i = 0; i <= top; i++)
{
if (btarray[i].b_del == 1)
{
if (btarray[i].b_flag == 1) strcpy(value, "在架");
return i;
}
}
return -1;}
(5)显示全部图书信息
void listreaders()
{char value[3];
for (int i = 0; i <= top; i++)
{if (rdarray[i].r_del == 1)
{
if (rdarray[i].r_bor == 1) strcpy(value, "借");
图2-1系统模块结构图
2.3 系统总体流程
本系统在执行的过程中,先选择操作方式,选择1则执行借书,选择2则执行还书,选择3进入图书维护,选择4进入读者维护,系统的总体流程图如图2-3所示:
3详细设计
基于系统需求分析与系统总体设计的结论,下面按照模块的划分来分别阐述系统的详细设计和实现过程。
3.1数据类型
cout << endl << "请输入姓名: ";
cin >> rname;
cout << endl << "请输入性别(1为男,0为女):";
cin >> rs;
cout << endl;
rd.addreader(no, rname, rs);
rd.r_bor = 2;
top++;
rdarray[top] = rd;
return;
}
rdarray[cur].r_del = 2;
return;
}
(4)查找读者
int findreaders()
{int no;
char value[3];
cout << "请输入学号: ";
cin >> no;
for (int i = 0; i <= top; i++)
{
if (rdarray[i].no == no && rdarray[i].r_del == 1)
一、借书模块功能设计与实现
1.借书模块描述
通过输入学号、书号,借取图书
2.借书模块算法函数设计如下:
int findbooks(int suffix)
int no;
cout << "请输入书号: ";
cin >> no;
for (int i = 0; i <= top; i++)
{
if (btarray[i].no == no && btarray[i].b_del == 1)
cin >> bau;
cout << endl << "请输入价格: ";
cin >> pr;
cout << endl;
bk.b_flag = 1;
bk.addbook(no, bname, bau, pr);
top++;
btarray[top] = bk;
return;
}
(2)修改图书信息
void editbooks()
{
return i;
}
}
return -1;
}
二、还书模块功能设计与实现
1.还书模块描述
通过输入学号、书号,还图书
2.还书模块算法函数设计如下:
int findreaders(int suffix)
{
int no;
cout << "请输入学号: ";
cin >> no;
for (int i = 0; i <= top; i++)
}
if (btarray[cur].b_flag == 2)
{
cout << "该图书已经借出,请在归还后再删除。" << endl;
return;
}
btarray[cur].b_del = 2;
return;
}
(4)查找图书
int findbooks()
{
int no;
char value[6];
return;
}
(2)修改读者信息
void editreaders()
{
int cur;
cur = findreaders();
if (cur == -1)
{
cout << "没有该学生" << endl;
return;
}
cout << "请修改数据:" << endl;
cout << endl << " 姓名: ";
{
book bk;
int no;
char bname[20];
char bau[10];
inΒιβλιοθήκη Baidu pr;
cout << endl << "请输入书号: ";
cin >> no;
cout << endl << "请输入书名: ";
cin >> bname;
cout << endl << "请输入作者: ";
{
int cur;
cur = findbooks();
if (cur == -1)
{
cout << "没有这本书" << endl;
return;
}
cout << "书号: " << btarray[cur].no << " 书名: " << btarray[cur].name << " 作者: " << btarray[cur].author << " 价格: " << btarray[cur].price << endl;
本系统主要设计思想是实现图书馆的功能机管理系统信息的查询、借书、还书等主要功能。系统的设计方法是结构化实际方法,系统用C语言进行开发用户可以清晰的了解图书馆内的情况。
2.2系统模块结构
依据需求分析结果,图书馆管理系统可以分为四个模块:借书功能模块、还书功能模块、图书信息维护模块、读者信息维护模块
如图2-1所示:
1.2系统运行环境
1.硬件环境
处理器:Inter Pentium 166 MX或更高
内存:32M
硬盘空间:1GB
显卡:SVGA显示适配器
2.软件环境
操作系统:Windows 98/ME/2000/XP
开发语言:Visual C++
1.3功能需求描述
小型图书馆管理系统主要是为图书管理员提供一个方便易用的界面,同时还具有查看读者及书籍的添加、查询、修改、删除的功能。
小型图书馆管理系统主要需要实现以下一些基本功能:
1.借出图书:依据学号,学生可以借出指定图书。
2.归还图书:依据学号,学生可以归还所借图书。
3.图书信息维护模块:增加图书、删除图书,以及更改、查询图书信息。
4.读者信息维护模块:增加读者、删除读者,以及更改、查询读者信息。
2总体设计
2.1开发与设计的总体思想
cout << "请输入书号: ";
cin >> no;
for (int i = 0; i <= top; i++)
{
if (btarray[i].no == no && btarray[i].b_del == 1)
{
if (btarray[i].b_flag == 1) strcpy(value, "在架");
}
三、读者维护模块功能设计与实现
1.读者维护模块描述
增加读者、删除读者,以及更改、查询读者信息。
2.读者模块算法函数设计如下:
(1)增加读者
void addreaders()
{
reader rd;
int no;
int rs;
char rname[20];
cout << "请输入学号: ";
cin >> no;
if (btarray[i].b_flag == 2) strcpy(value, "借出");
cout << "书号: " << btarray[i].no << " 书的名称: " << btarray[i].name << " 图书状态 :" << value << endl;
}
}
return;
public:
其中name用于描述图书名称,author用于描述图书作者。
用于描述读者信息的类类型class定义格式为:
class reader
{
public:
int no;
int sex; //读者性别,1表示男,0表示女
char name[20];
int r_del; //1存在,2删除
int r_bor; //1借过书,2没有借书
对于软件测试而言,黑盒测试是把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。也就是说,黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息(如:数据库或文件)的完整性。黑盒测试又成为功能测试。而白盒测试法的前提是可以把程序看成装在一个透明的白盒子里也就是完全了解程序的结构和处理过程。这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定的要求正确工作。白盒测试又称为结构测试。
相关文档
最新文档