注册 登录
编程论坛 C++教室

我做的简易图书馆。

当当 发布于 2005-06-07 19:55, 8800 次点击

程序说明书 一. 各模块的功能: readtxt(),读读者文件writetxt(),写读者文件addreader(reader s) ,添加读者delreader(int number),删除读者searchreader(int number),查找读者readerdata() ,读者数据管理readbtxt(),读图书文件writebtxt(),写图书文件addbook(libook s),添加图书delbook(int number),删除图书searchbook(int number),查找图书bookdata(),图书数据管理borbook(),读者借书retbook(),读者还书main()主函数 二. 程序流程图: void main() : 三. 用户手册:1,使用程序前先对图书库,读者库进行初始化,然后才能进行相应的操作2,本程序又一定的纠错功能 ①调用子函数对功能进行相应的选择的时候,如果选择的端子不正确,则提示错误 ②对添加的读者函数操作的时候如果读者库已经满了,读者申请的编号已经存在的情况则提示错误 ③对删除读者函数操作的时候,如果输入的读者编号不存在则提示错误 ④对查找读者函数操作的时候,如果输入的读者编号不存在的时候则提示错误 ⑤对新书入库函数操作的时候,如果书库已经满或者申请的书编号已经存在,则提示错误 ⑥对删除的图书函数进行操作的时候,如果要删除的图书编号不存在,则提示出错 ⑦对查找函数操作的时候,如果要查找的图书函数不存在,则提示出错 ⑧对借书函数进行操作时,如果读者编号不存在,不能在借书,所要借的书已经借出,或者要借的书不存在的时候,则提示出错 ⑨对还书函数操作的时候,如果读者编号不存在,所还图书不为图书馆所有时,则提示出错。 这是论坛上的一个题目,我看了在我之前那个人做的代码之后,受到了启发,就利用自己所学的有限的知识,花了一个星期的时间,终于做了出来。请大家批评指证。在VC6.0下运行通过,运行时得注意的几个地方如下:读者与书籍编号全部为3位,读者库,书籍库最好不要存满,至少留有一个空位.代码与注释,及原程序及原程序附件如下: #include <iostream.h> #include <fstream.h> #include <string.h> #include <iomanip.h> class reader { private: char code[4]; //读者编号 char name[10]; //读者姓名 public: void get() //输入读者资料 { cout<<"请输入读者编号:"; cin>>code; cout<<"请输入读者姓名:"; cin>>name; } void print() //打印读者资料 { cout<<"读者编号:"<<code<<endl; cout<<"读者姓名:"<<name<<endl; } char* getcode() { return(code); } char* getname() { return(name); } };

class book { private: char code[4]; //书籍编号 char name[10]; //书籍名称 char writer[10]; //书籍作者 char concern[10]; //书籍出版社 float price; //书籍价格 public: char flag; //判断此书是否借出 book() //利用构造函数,将flag变量默认为'N',即没有借出 { flag = 'N'; } void get() //输入书籍资料 { cout<<"请输入书籍编号:"; cin>>code; cout<<"请输入书籍名称:"; cin>>name; cout<<"请输入书籍作者:"; cin>>writer; cout<<"请输入书籍出版社:"; cin>>concern; cout<<"请输入书籍价格:"; cin>>price; } void print() { cout<<"书籍编号:"<<code<<endl; cout<<"书籍名称:"<<name<<endl; cout<<"书籍作者:"<<writer<<endl; cout<<"书籍出版社:"<<concern<<endl; cout<<"书籍价格:"<<price<<endl; } void getflag() { cout<<"确认要租此书吗?[Y/N]"; cin>>flag; } char* getcode() { return(code); } char* getname() { return(name); } };

class readerborrowbook //用于记录租书情况的类 { public: char readercode[4]; char bookcode[4];

void borrowbook() { cout<<"请输入您的读者编号:"; cin>>readercode; cout<<"请输入您要借的书籍的编号:"; cin>>bookcode; } void print() { cout<<"借书证号:"<<readercode<<endl; cout<<"借的书籍:"<<bookcode<<endl; }

};

reader readerzlk[50]; //定义读者库数组(读者库) book library[100]; //定义书籍数组(书籍库) readerborrowbook rbb[100]; //定义借书记录数组(借书库)

fstream file_reader; //定义读者库文件对象(全局的) fstream file_book; //定义书籍库文件对象(全局的) fstream file_rbb; //定义借书库文件对象(全局的)

int r = 0; //记录读者个数 int b = 0; //记录书籍本数 int t = 0; //记录借书记录

只有本站会员才能查看附件,请 登录

[此贴子已经被作者于2005-6-19 10:54:39编辑过]

65 回复
#52
SOS9992006-10-29 18:43
什么时候我才能写出一个类似的程序,唉,studystudystudy
#53
子时之龙2006-10-30 10:01
呵呵,
厉害^_^,
大哥,
偶跟定你了
#54
当当2006-10-30 21:33
MFC中的连接数据库的类实现用数据库存储信息
呵呵,C++连接数据库,这个我没学过,不过我将信息写在文件中了,应该也是一样的啊,

想问你学了几年了????
呵呵,这个程序是我在学习C++二个月后,在单位里利用上班时间,花了一个星期写出来的,

现在在学JAVA了,所以C++丢下了,现在我看到自己以前写的这个程序,感觉到也是漏洞百出,没有验证等等一些毛病.
不过当时,写完这个程序后,我感觉自己在写程序的逻辑上确实有了一定的提高,我感觉这个程序的架子搭的还是可以的,就是函数部分要改进,用C++的模板来写,估计会少一半的代码.
#55
当当2006-10-30 21:57
天使坠落的眼泪
谢谢你的建议,不过这个程序估计我不会再改进了,你的建议我会在日后JAVA的学习中去改进,去完善,还是谢谢你的建议.
#56
dubaoshi2006-10-31 10:25
真牛啊,我还不会呢:(
#57
天使坠落的眼泪2006-10-31 22:19
呵呵,要加油啊
#58
墨岛2006-11-01 15:41
哥门儿,强得很哦
#59
dlcdavid2006-11-27 19:58
可以啊~~
#60
Welton2006-11-28 13:08
cool!
#61
mbstorm2008-11-03 21:51
厉害
#62
mbstorm2008-11-03 21:51
向你学习
#63
lvany2008-11-11 13:19
眼花缭乱,继续努力!
#64
zhuimengR2008-11-12 13:40
顶一下
#65
lockhawk2008-11-12 18:24
不是一般的眼花
#66
古古怪怪2332016-09-01 12:28
12