欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    最新c++图书系统实验报告.doc

    • 资源ID:33831655       资源大小:456.50KB        全文页数:12页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    最新c++图书系统实验报告.doc

    精品资料c+图书系统实验报告.面向对象程序设计(C+语言)课程设计 设计说明书图书管理系统的设计与实现起止日期: 年 月 日 至 年 月 日学生姓名班级学号成绩指导教师(签字)计算机与通信学院年 月 日图书管理系统一.需求分析图书馆是目前生活中除了网络外的另一个获取知识的重要场所。利用图书管理系统对图书记录进行统一管理,包括新增图书记录,更改图书记录,删除图书记录等功能,实现图书管理工作的系统化,规范化和自动化,为图书管理提供便利。同时是学习完面向对象程序设计课程后进行的一次全面的综合练习。有助于加深对面向对象程序设计中基础理论和基本知识的理解,培养了实践能力,促进理论与实践的结合。二.设计要求:1.图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功能:2.系统以菜单方式工作v3.图书信息录入功能(图书信息用文件保存)输入v4.图书信息浏览功能输出v5.查询和排序功能:(至少一种查询方式)算法v6.按书名查询7.按作者名查询8.图书信息的删除与修改(可选项)v三.概要设计1、类的设计、Book类的设计(内部函数流程图):Class Book获取图书类型获取书名获取图书编号获取删除标志设置书名设置类型删除图书增加图书输出图书、BDatabase类的设计:Class BDatabase图书记录删除全部记录增加记录查找图书记录图书库(函数)、主函数流程图:4多态的实现class People public:virtual void card()cout<<"card people"<<endl;class Student:public Peoplepublic: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 Peoplepublic:virtual void card()cout<<"card student"<<endl;class Bookprivate: int lab; /删除标记int num; /图书编号int add; /增加标记char numberStrNum; /编号char booknameStrNum; /书名char bookkindType; /图书类型public:Book()char getkind() /获取图书类型return bookkindType; char getname() /获取书名 return booknameStrNum; 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 BDatabaseprivate: int top; Book bookMaxb; /图书记录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+;booktop=b;file.close(); void clear() /全删top=-1; int addbook(int n,char *na,char *kin) /增加图书Book *p=query(n);if(NULL=p)top+;booktop.addbook(n,na,kin);return 1;return 0;Book *query(int bookid) /查找图书for (int i=0;i<=top;i+)if (booki.getnum()=bookid &&booki.getlab()=0)return &booki;return NULL; void disp() /图书库 for (int i=0;i<=top;i+) if (booki.getlab()=0) booki.disp();BDatabase() /析构函数,将book写到book.txt文件中,实现文本的写入fstream file("book.txt",ios:out); for (int i=0;i<=top;i+)if (booki.getlab()=0)file.write(char *)&booki,sizeof(booki);file.close();void main() BDatabase BookDB; char choice;char bname40;char bkind40;char newType20;int bookid;Book *b;while (choice!='0') cout<<"t*n"cout<<" nn"cout<<"ttt图 书 管 理 系 统nn"cout<<"ttt1 新增图书记录n" cout<<"ttt2 更改图书记录n" cout<<"ttt3 删除图书记录n"cout<<"ttt4 查找图书记录n"cout<<"ttt5 显示图书记录n"cout<<"ttt6 清空全部记录(慎用)n"cout<<"ttt0 退出系统n"cout<<"ttt7 人员n"cout<<" nn"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<<"输入错误,请从新输入(数字为06):"case'7':Student student;People *ppeople=&student;People &ref=student;ppeople->card();ref.card();break; 五.用户使用说明本系统实现了图书管理系统的典型功能,包括查询所有记录的信息,添加查找等功能,基本符合设计要求,利用类的封装实现了一定的安全性,函数的实现与调用在主函数中实现。但在记录查询上仍有缺陷,有待于完善。六、实验心得:1、通过实验加深了对c+的了解,在程序设计上提高了自己的动手能力,在实践中增强了自己的编程水平。2、但是因为自己独立完成且能力有限,还有部分功能未能完善,例如对书名,编号的排序等等,这些局限性都是有待逐步完善的方面。3、而且通过这次课程设计,我培养了自己对C+编程的兴趣,编程能力也有所提高,但仍存在许多不足,不能独自写出功能很齐全的代码,写代码要参考很多资料,所以今后应培养自己独立写代码的能力。

    注意事项

    本文(最新c++图书系统实验报告.doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开