图书信息管理系统
一、设计目的:
为了锻炼计算机专业学生的编程能力,特别组织了这次软件实习,编程是一种抽象思维,必须要通过动手才能培养其能力,我们软件实习的主要目的是要求学生对所学的语言熟练的掌握,并可以精通一门自己喜欢的编程语言,并且能把现实的问题抽象成程序,用程序语言表现出来。
1.能根据实际问题的具体情况,结合面向对象的基本理论和基本技巧,正确分析问题,并能设计出解决问题的有效算法与程序。
2.提高程序设计和调试能力。学生通过上机实习,验证自己设计的算法和程序的正确性。学会有效利用基本调试方法,迅速出程序代码中的错误并且修改,进一步提高程序设计水平。
二、设计要求:
图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功能:
◆系统以菜单方式工作
◆图书信息录入功能(图书信息用文件保存)--输入
◆图书信息浏览功能--输出
◆查询和排序功能:(至少一种查询方式)--算法
按书名查询
按作者名查询
◆图书信息的删除与修改(可选项)
三、流程图:
四、模块分析:
(1)main()函数模块
主函数定义了一个database类的对象book2,通过这个对象调用bookdata(),主函数代码很少,只是一个菜单首页。
int main()
{ database book2;
cout<<endl<<endl<<"\t\t\t图书信息管理系统";
cout<<endl<<endl;
book2.bookdata();
return 0;}
(2)添加图书信息模块
void addbook(int n,char *bn,char *an,char *ty,char *pub,char *ti,char *pr) //增加图书
{ num=n;
strcpy(bname,bn); //把输入的内容复制给bname
strcpy(aname,an);
strcpy(type,ty);
strcpy(publish,pub);
strcpy(time,ti);
strcpy(price,pr);}
用户通过键盘输入图书基本信息(图书编号,书名,作者名,图书类型,出版日期,出版单位,图书价格)
(3)显示图书文件中所有图书信息
void show()
{cout<<setw(10)<<num<<setw(9)<<bname<<setw(9)<<aname<<setw(8)<<type<<setw(6)<<p ublish<<setw(20)<<time<<setw(9)<<price<<setw(5)<<endl; }
void show()
{ for (int i=0;i<=top;i++)
book1[i].show();
}
(4)查询图书信息模块
book *find(int id) //查图书
{for (int i=0;i<=top;i++)
if (book1[i].getnum()==id)
{ return &book1[i];}
}
五、程序的源代码(含注释):
#include"iostream"
#include "iomanip"
#include "string"
#include "fstream" /*输入/输出文件流类*/ using namespace std;
const int max=5; /*数组5,图书添加五本*/ class book
{
private:
int num; //图书编号
char bname[20]; //书名
char aname[20]; //作者名
char type[20]; //图书类型
char publish[20]; //出版单位
char time[20]; //出版时间
char price[20];//价格
public:
void query(int m){};
int getnum()
{ return num;}
char getbname()
{ return bname[20];}
char getaname()
{ return aname[20];}
char gettype()
{ return type[20];}
char getpublish()
{ return publish[20]; }
char gettime()
{ return time[20];}
char getprice()
{return price[20];}
void addbook(int n,char *bn,char *an,char *ty,char *pub,char *ti,char *pr) //增加图书{
num=n;
strcpy(bname,bn); //把输入的内容复制给bname,相当于复制
strcpy(aname,an);
strcpy(type,ty);
strcpy(publish,pub);
strcpy(time,ti);
strcpy(price,pr);
}
void show() //输出图书
{
cout<<setw(10)<<num<<setw(9)<<bname<<setw(9)<<aname<<setw(8)<<type<<setw(6)<<pu blish<<setw(20)<<time<<setw(9)<<price<<setw(5)<<endl;
}
};
class database
{
private:
int top; //图书记录指针
book book1[max]; //图书记录
public:
database() //构造函数,将book.dat读到book1[]中
{
book b;
top=-1; //数组首地址是从[0]开始的
安卓课程设计源代码fstream file("book.dat",ios::in);
while (1)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论