C图书标准管理系统实验报告.docx
《C图书标准管理系统实验报告.docx》由会员分享,可在线阅读,更多相关《C图书标准管理系统实验报告.docx(14页珍藏版)》请在咨信网上搜索。
面向对象程序设计(C++语言)课程设计 设计说明书 图书管理系统设计和实现 起止日期: 年 月 日 至 年 月 日 学生姓名 班级 学号 成绩 指导老师(签字) 计算机和通信学院 年 月 日 图书管理系统 一.需求分析 图书馆是现在生活中除了网络外另一个获取知识关键场所。利用图书管理系统对图书统计进行统一管理,包含新增图书统计,更改图书统计,删除图书统计等功效,实现图书管理工作系统化,规范化和自动化,为图书管理提供便利。同时是学习完《面向对象程序设计》课程后进行一次全方面综合练习。有利于加深对面向对象程序设计中基础理论和基础知识了解,培养了实践能力,促进理论和实践结合。 二.设计要求: 1.图书信息包含:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功效: 2.系统以菜单方法工作v 3.图书信息录入功效(图书信息用文件保留)--输入v 4.图书信息浏览功效--输出v 5.查询和排序功效:(最少一个查询方法)--算法v 6.按书名查询 7.按作者名查询 8.图书信息删除和修改(可选项)v 三.概要设计 1、类设计 ①、Book类设计(内部函数步骤图): Class Book 获取图书类型 获取书名 获取图书编号 获取删除标志 设置书名 设置类型 删除图书 增加图书 输出图书 ②、BDatabase类设计: Class BDatabase 图书统计 删除全部统计 增加统计 查找图书统计 图书库(函数) ③、主函数步骤图: 4多态实现 class People { public: virtual void card(){cout<<"card people"<<endl;} }; class Student:public People { public: virtual void card(){cout<<"card student"<<endl;} }; 四、具体设计: #define StrNum 20 #define Type 20 #include <iostream> #include <iomanip> #include <string> #include <fstream> //输入/输出文件流类 using namespace std; const int Maxb=100; //最多可存放图书 class People { public: virtual void card(){cout<<"card people"<<endl;} }; class Student:public People { public: virtual void card(){cout<<"card student"<<endl;} }; class Book { private: int lab; //删除标识 int num; //图书编号 int add; //增加标识 char number[StrNum]; //编号 char bookname[StrNum]; //书名 char bookkind[Type]; //图书类型 public: Book(){} char getkind() //获取图书类型 { return bookkind[Type]; } char getname() //获取书名 { return bookname[StrNum]; } int getnum() //获取图书编号 { return num; } int getlab() //获取删除标识 { return lab; } void setname(char na[]) //设置书名 { strcpy(bookname,na); } void setkind(char kin[]) //设置类型 { strcpy(bookkind,kin); } void delbook() //删除图书 { lab=1; } void addbook(int n,char *na,char *kin) //增加图书 { lab=0; num=n; strcpy(bookname,na); strcpy(bookkind,kin); } void disp() //输出图书 { cout.flags (ios::left); //设置对齐标志位为左 cout<<setw(15)<<num<<setw(20)<<bookname<<setw(15)<<bookkind<<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].getlab()==0) { return &book[i]; } return NULL; } void disp() //图书库 { for (int i=0;i<=top;i++) if (book[i].getlab()==0) book[i].disp(); } ~BDatabase() //析构函数,将book[]写到book.txt文件中,实现文本写入 { fstream file("book.txt",ios::out); for (int i=0;i<=top;i++) if (book[i].getlab()==0) file.write((char *)&book[i],sizeof(book[i])); file.close(); } }; void main() { BDatabase BookDB; 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\t1 新增图书统计\n"; cout<<"\t\t\t2 更改图书统计\n"; cout<<"\t\t\t3 删除图书统计\n"; cout<<"\t\t\t4 查找图书统计\n"; cout<<"\t\t\t5 显示图书统计\n"; cout<<"\t\t\t6 清空全部统计(慎用)\n"; cout<<"\t\t\t0 退出系统\n"; cout<<"\t\t\t7 人员\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; BookDB.addbook(bookid,bname,newType); break; case '2': cout<<"输入图书编号:"<<endl; cin>>bookid; b=BookDB.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=BookDB.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=BookDB.query(bookid); if (b==NULL) { cout<<"该图书不存在"<<endl; break; } cout<<"图书编号 图书名称 图书类型 \n"; b->disp(); break; case '5': cout<<"图书编号 图书名称 图书类型 \n"; b=BookDB.query(bookid); b->disp(); break; case '6': char tg2; cout<<"确定要清空全部统计吗?(Y/N)"<<endl; cin>>tg2; if(tg2!='n'&&tg2!='N') { BookDB.clear(); cout<<"已成功清空统计!"<<endl; break; } case '0': break; default:cout<<"输入错误,请从新输入(数字为0~6):"; case'7': Student student; People *ppeople=&student; People &ref=student; ppeople->card(); ref.card(); break; } } } 五.用户使用说明 本系统实现了图书管理系统经典功效,包含查询全部统计信息,添加查找等功效,基础符合设计要求,利用类封装实现了一定安全性,函数实现和调用在主函数中实现。 但在统计查询上仍有缺点,有待于完善。 六、试验心得: 1、经过试验加深了对c++了解,在程序设计上提升了自己动手能力,在实践中增强了自己编程水平。 2、不过因为自己独立完成且能力有限,还有部分功效未能完善,比如对书名,编号排序等等,这些不足全部是有待逐步完善方面。 3、而且经过这次课程设计,我培养了自己对C++编程爱好,编程能力也有所提升,但仍存在很多不足,不能独自写出功效很齐全代码,写代码要参考很多资料,所以以后应培养自己独立写代码能力。- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 标准 管理 系统 实验 报告
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文