西南石油大学面向对象程序设计课程设计报告
2 需求分析
根据题目要求,设置菜单类和图书类,图书类实现图书信息的记录、保存等功能;菜单类可以输出界面操作提示。通过文件的方式进行对数据的保存,所以应该有一个图书类的成员函数,用于将数据保存到文件中;在程序中需实现图书信息录入、浏览、查询等功能,所以需要建立相应的函数模块来实现;另外还需要提供键盘式选择菜单实现功能,在运行时达到所有目的。
2
图书信息管理系统
3 程序设计
根据设计要求,经过分析后,决定将此系统分为七个功能模块:
① 系统进入模块 ② 菜单选择模块 ③ 图书信息添加模块 ④ 图书信息查询模块 ⑤ 图书信息显示模块 ⑥ 图书信息排序模块 ⑦ 退出程序模块
主要功能算法:
1)
系统进入界面:通过system()函数来设定标题,并使用for循环做
延时函数,实现小动画的功能。 2)
主界面的设计用:定义menu()类,类成员函数show()显示菜单
选项;通过switch-case语句使选择界面具有动感;在主菜单显示操作方式提示,并且有显示系统制作人的信息界面。 3)
输入模块:通过addInfo()来添加图书的基本信息,并在每次添加
后提示是否继续添加信息; 4)
显示模块:通过函数showInfo()来实现。可以显示所有已经录入文件
中的信息,并显示一共有多少种图书; 5)
排序模块:可用listbyname()来实现。需要添加
头文件,通过声明容器的方法实现对作者名的排序。(此处要注意,只识别英文作者名)函数需要声明迭代器,并且要防止缓冲区溢出!
3
西南石油大学面向对象程序设计课程设计报告
6) 查询模块:可以选择按照作者名搜索,也可以按照书名搜索。设置
两个函数searchInfo1()和searchInfo2()分别实现按作者名和按书名查询功能。选择进入查询模块后会出现选择哪种查询方式,选择查询方式后,通过输入相应数据,从而主界面上就会显示出查询图书的所有信息。
7) 退出系统:通过while()循环,通过判断菜单类的数据成员flag是1
或0,来选择是否结束程序。
补充说明:进入查询、显示、排序界面后,在键盘按任意键可以返回主菜单。
4
图书信息管理系统
4 程序实现
源代码如下
#include
#include
class Book //图书类 {
public:
char Writer[13]; //作者名 long int number; //登录号 char BookName[31]; //书名 char publishName[30]; //出版单位 char PublishTime[11]; //出版时间 int totle; //总数量 int lend; int price; public:
Book() {} // 无参数构造函数
Book(char *name,char *bookname,int num,char* pubn,char* pubt,int tol,int l,int pri) 参数构造函数 {
strcpy(Writer,name);
strcpy(BookName,bookname); number=num;
strcpy(publishName,pubn); strcpy(PublishTime,pubt); totle=tol; lend=l; price=pri; }
//保存函数
void savenew()
5
//带 西南石油大学面向对象程序设计课程设计报告
{
ofstream outfile;
outfile.open(\ //打开文件 if (!outfile) {
cout <<\对不起! 打开文件失败! \ return; }
//将信息写入文件中
outfile< outfile< void output() // 显示图书信息 { cout< class menu //菜单类 { public: int place, flag;//place:表示光标的位置在第几行 flag:0表示运行程序,1表示退出程序 menu() { flag = 0; place = 1; } //显示菜单函数 void show() 6