




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 面向对象程序设计课程设计报告书 设 计 题 目:书店图书管理系统 18目 录第1章 选 题21.1 题目背景21.2系统实现的具体分工21.2.1 标题21.3开发环境2第2章 设计内容32.2 概要设计(系统流程图)32.3 设计与分工42.3.1 结构设计42.3.2 类设计4第3章 系统实现53.1 涉及知识点53.2 系统运行(主要运行界面抓图)63.3 源程序清单(书库管理模块)7第4章 结束语16 参考文献18第1章 选 题1.1 题目背景 随着信息时代的到来和全社会信息化、网络化建设的兴起,传统的书店图书管理模式和操作方法越来越不能满足用户的需要.智能化、网络化、信息化的书店图
2、书管理系统应用势在必行。电子时代的到来,很多网购盛行,网上的购物很流行,知识分子的网上购书,当然也是潮流的前沿,网上的书店图书管理系统也是应运而生,实现买卖双方的交流,与书库的自动化管理,便于书店老板的经营。1.2系统实现的具体分工系统分为顾客购书类、订单类、收银类、图书库类以及主函数等几大模块,其中顾客购书类实现顾客对图书的选购,订单类实现对顾客订单的管理及查询,收银类实现对订单的收银,图书库类实现对书店图书库图书信息的描述及管理,main() 函数实现对程序主界面的引导。 1.2.1 标题书店图书管理系统的设计与实现1.3开发环境 开发软件: visual c+ 6.0 处理器名称:pen
3、tium(r)dual-core cpu e6500 2.94ghz 2.94ghz 硬盘驱动器:wdc wd1600aajs-22waao 系统内存:金士顿内存2gb 显示卡:nvidia geforce 9400 gt 显示器:lg gsm4eb3操作系统:microsoft windows xp professional 第2章 设计内容2.1实现功能系统主要包括书店顾客对图书的选购,书店工作人员对订单的收银以及对本店书库图书信息的管理。顾客只需进入图书选购模块便可对图书进行选购、下单。书店工作人员输入相应模块密码后可实现收银以及对本店图书信息的管理。2.2 概要设计(系统流程图)图 2
4、-1 系统结构图2.3 设计与分工在这次书店管理系统开发过程中,我主要负责书库管理模块的设计与开发。作为整个系统的核心,其他模块都是围绕这个模块进行的,所以只有做好了这个模块,才能确保其他模块的功能实现。本模块才用二进制文件存储图书信息,不仅方便,而且保证了书库数据的安全。另外,因为书库管理模块为书店工作人员管理图书所用,所以顾客或者其他人是没有权限进入的。为此,我设置了管理员密码(adminster)。只有输入密码,才能进行操作。 2.3.1 结构设计结构设计也称概念设计 (conceptual design),是界面设计的骨架。该书店管理系统运行时界面上的目录体系和词语定义易于用户理解和操
5、作,例如主界面的目录体系包括1.顾客选购模块 2.收银模块 3.报表模块 4.书库管理模块 0.退出程序。其中书库管理模块又下分目录1.显示所有图书 2.查找书 3.修改书 4.增加书 5.删除书 6.返回主菜单。显示所有图书一栏中详细列出了书库中所存书本的isbn号、书名、作者、售价、库存量等信息,使管理者对图书信息一目了然,充分体现了结构化、简明化的界面设计理念。 2.3.2 类设计书库管理模块开发过程中采用类封装技术,让程序更能清晰的表达出其含义,类丰富了语言的自定义数据类型以及含义。而且,面向对象编程更容易系统的维护和扩展,同时避免本模块数据与其他模块数据混淆参杂,使程序代码简单明了,
6、增强了程序的稳定性,可塑性。本模块共设计两个类,分别为图书信息类(bookdata)、图书管理类(bookbase)。其中,图书信息类存储图书的各种信息,包括isbn(isbn)、书名(booktitle)、出版社(publisher)、作者(author)、库存量(qtyonhand)、进书日期(dateadded)、批发价(wholesale)、零售价(retail)等信息。图书管理类实现对书库的各种操作,包括显示所有图书信息(showallbook)、查找书(searchbook)、修改书(amendbook)、增加书(addbook)、删除书(deletebook)以及本模块操作菜单(
7、menubook)等。本模块的类关系图如下页图2-2所示: 书名 booktitleisbn isbn 图书信息类 bookdata出版社 publisher作者 author进书日期 dateadded 库存量 qtyonhand批发价 wholesale图书管理模块零售价 retail显示所有图书 showallbook查找书 searchbook 图书管理类 bookbase修改书 amendbook增加书 addbook删除书 deletebook操作菜单 menubook图 2-2 图书管理模块结构图第3章 系统实现3.1 涉及知识点类封装、面向对象程序设计、文件的读取操作、循环语句
8、的使用、过程化设计的思想等。3.2 系统运行(主要运行界面抓图)下面的几个图为系统运行的主要运行界面,界面清晰,结构鲜明。图 3-2 书库管理模块菜单 图 3-1 主菜单图 3-3 显示所有图书信息图 3-4 返回主菜单3.3 源程序清单(书库管理模块)主菜单main.cpp#include<iostream>using namespace std;#include<fstream>#include<cstring>#include<iomanip>#include"bookdata.h"#include"cash.
9、h"#include"bookbase.h"#include"booklist.h"#include"shop.h"int main()bookbase base;booklist list;cash cash;shop shop;int choice;char c; cout << " 欢迎使用书店管理系统 n" <<endl;docout<<"nt=" << endl;cout<<"nt *主菜单*"&
10、lt;<endl;cout << "nttt1:顾客选购模块 nnttt2:收银模块 nnttt3:报表模块nnttt4:书库管理模块 nnttt0:退出程序" <<endl;cout << "t=" << endl;cout << "nt输入选择:"cin >> choice;switch(choice) case 1: shop.search();/顾客选购模块break; case 2: cash.cashoperate();/收银模块break; c
11、ase 3: list.menubooklist();/报表模块break; case 4: base.menubook();/书库管理模块break; case 0: exit(0);while(1);return 0;书库管理模块图书信息类 bookdata.h#ifndef bookdata_h#define bookdata_hclass bookdataprotected:char isbn31;/isbn号char booktitle100;/书名char author51;/作者char publisher100;/出版社char dateadded11;/进书日期int qty
12、onhand;/库存量double wholesale;/批发价double retail;/零售价int flag;/删除标记 1:未删除 0:删除public:void setinfo(char *is,char *bo,char *au,char *pu,char *da,int qt,double wh,double re)/设置书的信息strcpy(isbn,is);strcpy(booktitle,bo);strcpy(author,au);strcpy(publisher,pu);strcpy(dateadded,da);qtyonhand=qt;wholesale=wh;ret
13、ail=re;void showinfo()/显示书的信息cout<<"tisbn号:"<<isbn<<endl;cout<<"t书名:"<<booktitle<<endl;cout<<"t作者:"<<author<<endl;cout<<"t出版单位:"<<publisher<<endl;cout<<"t进书日期:"<<date
14、added<<endl;cout<<"t库存量:"<<qtyonhand<<endl;cout<<"t批发价:"<<wholesale<<endl;cout<<"t零售价:"<<retail<<endl;void setflag(int f=1)/设置删除标记flag=f;int getflag()return flag;char *getisbn()return isbn;char *getbooktitle()r
15、eturn booktitle;char *getauthor()return author;char *getpublisher()return publisher;char *getdateadded()return dateadded;int getqtyonhand()return qtyonhand;double getwholesale()return wholesale;double getretail()return retail;void setqtyonhand(int num)/设置库存量qtyonhand = num;#endif图书管理类 bookbase.h#ifn
16、def bookbase_h#define bookbase_h#include"bookdata.h"class bookbase:public bookdataprotected:int top;bookdata book100;public:bookbase ()/构造函数,打开书库信息bookdata s;top=-1;fstream file;file.open("bookinfo.dat",ios:in|ios:binary);while(!file.eof()file.read(char *)&s,sizeof(s);if(file
17、.fail()break;top+;booktop=s;file.close();void updatedat()/刷新书库信息fstream file("bookinfo.dat",ios:out|ios:binary);for(int i=0;i<=top;i+)if(booki.getflag()=1)file.write(char *)&booki,sizeof(booki);file.close();void showallbook()/显示所有图书信息cout<<"n下面显示所有图书信息:"<<endl;
18、for(int i=0;i<=top;i+)booki.showinfo();cout<<endl;void addbook()/增加图书int i,n;char is31, bo100, au51, pu100,da11;int qt;double wh,re;cout<<"请输入要增加书的数量:"cin>>n;cout<<"请输入下列信息:"<<endl;for(i=0;i<n;i+)cout<<"isbn:"cin>>is;cout&
19、lt;<"书名:"cin>>bo;cout<<"作者:"cin>>au;cout<<"出版社:"cin>>pu;cout<<"进书日期(请按年月日顺序输入,如:2011年1月1日请输入20110101):"cin>>da;cout<<"库存量:"cin>>qt;cout<<"批发价:"cin>>wh;cout<<"零售
20、价:"cin>>re;top+;booktop.setinfo(is,bo,au,pu,da,qt,wh,re); booktop.setflag(1);updatedat();cout<<"增加完成!"<<endl;void searchbook()/查找图书int x=1;char name100,again;docout<<"请输入要查找书的isbn号或书名:"cin>>name;for(int i=0;i<=top;i+)if(!strcmp(booki.getisbn(
21、),name)|!strcmp(booki.getbooktitle(),name)cout<<"n书的信息已找到,下面输出该书信息:n"booki.showinfo();x=0;if(x)cout<<"n未找到该书信息!n"cout<<"还要再查找一本书的信息吗?(y/n):"cin>>again;while(again='y');void amendbook()/修改图书信息int x=1;char choice, name100,again;char is31, b
22、o100, au51, pu100,da11;int qt;double wh,re;docout<<"请输入要修改书的isbn号或书名:"cin>>name;for(int i=0;i<=top;i+)if(!strcmp(booki.getisbn(),name)|!strcmp(booki.getbooktitle(),name)cout<<"n书的信息已找到,下面输出该书信息:n"booki.showinfo();x=0;cout<<"t确定要修改该书信息?(y/n):"c
23、in>>choice;if(choice='y') cout<<"请输入下列信息:"<<endl; cout<<"isbn:" cin>>is; cout<<"书名:"cin.ignore(); cin.getline(bo,100); cout<<"作者:" cin.getline(au,51); cout<<"出版社:" cin.getline(pu,100); cout<&
24、lt;"进书日期(请按年月日顺序输入,如:2011年1月1日请输入20110101):" cin>>da; cout<<"库存量:" cin>>qt; cout<<"批发价:" cin>>wh; cout<<"零售价:" cin>>re;booki.setinfo(is,bo,au,pu,da,qt,wh,re);booktop.setflag(1);updatedat();cout<<"修改完成!"
25、<<endl;if(x)cout<<"n未找到该书信息,是否将该书信息增加到书库?(y/n):"/将未找到的图书信息添加到书库cin>>choice;if(choice='y') cout<<"请输入下列信息:"<<endl; cout<<"isbn:" cin.getline(is,51); cout<<"书名:" cin.getline(bo,100); cout<<"作者:" c
26、in.getline(au,51); cout<<"出版社:" cin.getline(pu,100); cout<<"进书日期(请按年月日顺序输入,如:2011年1月1日请输入20110101):" cin>>da; cout<<"库存量:" cin>>qt; cout<<"批发价:" cin>>wh; cout<<"零售价:" cin>>re;booki.setinfo(is,bo,a
27、u,pu,da,qt,wh,re);booktop.setflag(1); updatedat();cout<<"增加完成!"<<endl;cout<<"还要再修改一本书的信息吗?(y/n):" cin>>again;while(again='y');void deletebook()/删除图书int x=1; char name100,choice,again;do cout<<"请输入要删除的书的isbn或书名:" cin>>name;for(
28、int i=0;i<=top;i+) if(!strcmp(booki.getisbn(),name)|!strcmp(booki.getbooktitle(),name) cout<<"n书的信息已找到,下面输出该书信息:n" booki.showinfo(); x=0; cout<<"是否确认删除该书的信息?(y/n):" cin>>choice; if(choice='y') booki.setflag(0);/设置删除标记 updatedat();cout<<"t删除
29、成功!n" if(x)cout<<"n未找到有关该书的信息!n" cout<<"还要再删除一本书的信息吗?(y/n):"cin>>again;while(again='y');void menubook()/书库管理模块主菜单 int choice,a;bookbase book1;char adminster51,code="tianweitao",again;cout<<"n*此模块只有管理员才能进入,请输入管理员密码:"cin>&
30、gt;adminster;a=strcmp(adminster,code);while(a!=0) cout<<"密码错误,请重新输入:" cin>>adminster; a=strcmp(adminster,code);docout<<"nt=" << endl;cout<<"nt *书库管理模块*"<<endl;cout<<"nnttt1.显示所有图书nn"<<"ttt2.查找书nn"<&l
31、t;"ttt3.修改书nn"<<"ttt4.增加书nn"<<"ttt5.删除书nn"<<"ttt6.返回主菜单n" cout<<"nt="<< endl;cout<<"t请输入你的选择:"cin>>choice;switch(choice)case 1:showallbook();break;case 2:searchbook();break;case 3:amendbook();break;
32、case 4:addbook();break;case 5:deletebook();break;case 6:return;cout<<"还要继续操作吗?(y/n):"cin>>again;while(again='y');#endif第4章 结束语一周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。 课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础 对于此次课程设计,我感慨颇多,起初在选题时,做出决定是非常困难的,若选择简单的题目,很有可能会很早就做完了,那样岂不是浪费了许多宝贵的时间;若选择比较难的题目,感觉自己的能力可能不够,不能完成课程设计,最后,在我们组的商量之下选了书店图书管理系统这个课
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025跨国企业专有技术转让合同范本
- 2025设备采购合同机务高压风机
- 船舶融资租赁合同
- 2025年共同经营合同协议书
- 《2025财务专项贷款合同》
- 购买足球捐款协议书
- 不良债权处置协议书
- 2025年03月广西防城港市港口区审计局面向社会公开招聘1人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 2025年03月南昌高新区某单位服务外包人员公开招聘4人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 四川省巴中市达标名校2025年初三下期末模拟联考英语试题含答案
- 防流感班会课件
- 2025安徽蚌埠市国有资本运营控股集团有限公司招聘4人笔试参考题库附带答案详解
- 《寓言故事中的对比》群文阅读(教学设计)-2023-2024学年统编版语文三年级下册
- 2024年中国资源循环集团有限公司招聘笔试真题
- 2025届3月高三山东潍坊一模英语试题
- 行政管理本科毕业论文-数字政府背景下地方政府治理效能研究
- 家庭营养师课件
- 铁路护路工作培训
- 玉兰采购及包栽包活合同范本
- 电信运营商网络升级计划
- 2025年全国国家版图知识竞赛(中小学组)题库及答案
评论
0/150
提交评论