图书管理系统
2015-07-03 19:26
351 查看
3、图书信息管理系统
设计一个C++程序来管理图书信息,能实现图书相关信息的具备数据的输入、查找、删除等功能,能实现。具体功能细节可以根据自己理解情况进行增加。水平不足,准备仓促,交得也比较迟,故名之为简易图书管理系统。努力,希望来日水平越来越高。进入系统界面如下:
具体功能还得运行亲身实验。 记得开学的课上,老师希望我们能够学完后可以独立编写几百上千行程序,然而,这里只有248行,几百行都不到,系统也还有很多不完善的地方,还问了同学好多问题。这个学期写程序不勤奋,但是我会在暑假努力提高的。
附上源代码:
设计一个C++程序来管理图书信息,能实现图书相关信息的具备数据的输入、查找、删除等功能,能实现。具体功能细节可以根据自己理解情况进行增加。水平不足,准备仓促,交得也比较迟,故名之为简易图书管理系统。努力,希望来日水平越来越高。进入系统界面如下:
具体功能还得运行亲身实验。 记得开学的课上,老师希望我们能够学完后可以独立编写几百上千行程序,然而,这里只有248行,几百行都不到,系统也还有很多不完善的地方,还问了同学好多问题。这个学期写程序不勤奋,但是我会在暑假努力提高的。
附上源代码:
#include <iostream> #include <iomanip> #include <string> #include <fstream> #define StrNum 10 #define Type 10 using namespace std; const int Maxb=50; //最多可存储的图书 class Book //声明“书”这个类 { private: int tag; //删除标记 int num; //图书编号 int add; //增加标记 char number[StrNum]; //编号 char name[StrNum]; //书名 char kind[Type]; //图书类型 public: Book(){} char getkind() //获取图书类型 { return kind[Type]; } char getname() //获取书名 { return name[StrNum]; } int getnum() //获取图书编号 { return num; } int gettag() //获取删除标记 { return tag; } void setname(char na[]) //设置书名 { strcpy(name,na); } void setkind(char kin[]) //设置类型 { strcpy(kind,kin); } void delbook() //删除图书 { tag=1; } void addbook(int n,char *na,char *kin) //增加图书 { tag=0; num=n; strcpy(name,na); strcpy(kind,kin); } void disp() //输出图书 { cout.flags (ios::left); //设置左对齐 cout<<setw(15)<<num<<setw(20)<<name<<setw(15)<<kind<<endl; } }; class BDatabase { private: int top; //图书记录指针 Book book[Maxb]; //图书记录 public: BDatabase() //定义一个构造函数,用于将book.txt读到book[]中 { Book b; top=-1; fstream file("book.txt",ios::in); while (1) { file.read((char *)&b,sizeof(b)); if (!file) break; top++; book[top]=b; } file.close(); } void clear() //全删图书资料 { top=-1; } int addbook(int n,char *na,char *kin) //增加图书 { Book *p=query(n); if(NULL==p) { top++; book[top].addbook(n,na,kin); return 1; } return 0; } Book *query(int bookid) //查找图书 { for (int i=0;i<=top;i++) if (book[i].getnum()==bookid &&book[i].gettag()==0) { return &book[i]; } return NULL; } void bookdata(); //图书资料库 void disp() { for (int i=0;i<=top;i++) if (book[i].gettag()==0) book[i].disp(); } ~BDatabase() //析构函数,用于将book[]写到book.txt文件中 { fstream file("book.txt",ios::out); for (int i=0;i<=top;i++) if (book[i].gettag()==0) file.write((char *)&book[i],sizeof(book[i])); file.close(); } }; void BDatabase::bookdata() { char choice; char bname[40]; char bkind[40]; char newType[20]; int bookid; Book *b; while (choice!='0') { cout<<"\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"; cout<<" \n\n"; cout<<"\t\t\t海 大 图 书 管 理 系 统\n\n"; cout<<"\t\t\t① % 添加新入图书 %\n"; cout<<"\t\t\t② % 修改具体图书 %\n"; cout<<"\t\t\t③ % 删除具体图书 %\n"; cout<<"\t\t\t④ % 查找具体图书 %\n"; cout<<"\t\t\t⑤ % 显示所有图书 %\n"; cout<<"\t\t\t⑥ % 清空全部数据 %\n"; cout<<"\t\t\t〇 % 退出管理系统 %\n"; cout<<" \n\n"; cout<<"\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"; cout<<"请扣入功能相应数字(1,2,3,4,5,6,0):"; cin>>choice; switch (choice) { case '1': cout<<"请输入图书编号:"<<endl; cin>>bookid; cout<<"请输入图书类型:"<<endl; cin>>newType; cout<<"请输入图书书名:"<<endl; cin>>bname; addbook(bookid,bname,newType); break; case '2': cout<<"请输入图书编号:"<<endl; cin>>bookid; b=query(bookid); if(b==NULL) { cout<<"该图书不存在"<<endl; break; } cout<<"请输入新的书名:"<<endl; cin>>bname; b->setname(bname); cout<<"请输入新的类型:"<<endl; cin>>bkind; b->setkind(bkind); break; case '3': cout<<"读入图书编号:"<<endl; cin>>bookid; b=query(bookid); if(b==NULL) { cout<<"该图书不存在"<<endl; break; } char tg1; cout<<"是否要删除?(Y/N)"<<endl; cin>>tg1; if(tg1!='n'&&tg1!='N') { b->delbook(); cout<<"已成功删除该书!"<<endl; break; } case '4': cout<<"读入图书编号:"<<endl; cin>>bookid; b=query(bookid); if (b==NULL) { cout<<"该图书不存在"<<endl; break; } cout<<"图书编号 图书名称 图书类型 \n"; b->disp(); break; case '5': cout<<"图书编号 图书名称 图书类型 \n"; disp(); break; case '6': char tg2; cout<<"是否清空所有数据?(Y/N)"<<endl; cin>>tg2; if(tg2!='n'&&tg2!='N') { clear(); cout<<"已成功清空数据!"<<endl; break; } case '0': break; default:cout<<"输入错误,请从新输入(数字为0~6):"; } } } void main() //主函数,程序的主界面 { char choice; BDatabase BookDB; while(choice!='0') { cout<<"\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"; cout<<" \n\n"; cout<<"\n\n\t\t\t欢迎进入海大图书管理系统\n\n"; cout<<endl<<endl<<"\t\t\t 请扣①确认进入系统 \n\n\n\n"; cout<<" 若离开请扣〇确认以离开 \n\n"; cout<<"\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"; cout<<"请扣入:"; cin>>choice; switch(choice) { case '1': BookDB.bookdata(); break; case '0': cout<<"\n\n\t\t\t欢迎再次光临海大图书管理系统\n\n"; break; default:cout<<"输入错误,请从新输入:"; } } }最后还是想说一句:老师辛苦了。
相关文章推荐
- PHP 中 Failed to load resource: the server responded with a status of 500 (Internal Server Error)
- Linux(文件系统+其他)学习参考链接收藏
- python实践编程
- C++连接MYSQL数据库(使用MYSQL API方式,环境VS2013+MYSQL5.6)
- 需要技能列表
- php使用face++实现一个简单的人脸识别系统
- test
- 前端面试浅谈
- CareerCup它1.8 串移包括问题
- 64位汇编语言简介
- JavaScript学习第一课
- Oracle Product Hub / Product Lifecycle Management / Product Information Management / Advanced Produc
- Number of Rectangles in a Grid
- NYOJ 289 苹果
- 集合的总结
- Linux(进程调度)学习参考链接收藏
- 安装wamp的时候出现丢失msvcr110
- HDU 4462 Scaring the Birds (暴力枚举DFS)
- UITextField/文本输入框
- 使用CSDN-markdown编辑器来编写自己的CSDN博客