《面向对象程序设计》课程设计报告书店图书管理系统.doc

上传人:仙人指路1688 文档编号:2385819 上传时间:2023-02-17 格式:DOC 页数:18 大小:272.50KB
返回 下载 相关 举报
《面向对象程序设计》课程设计报告书店图书管理系统.doc_第1页
第1页 / 共18页
《面向对象程序设计》课程设计报告书店图书管理系统.doc_第2页
第2页 / 共18页
《面向对象程序设计》课程设计报告书店图书管理系统.doc_第3页
第3页 / 共18页
《面向对象程序设计》课程设计报告书店图书管理系统.doc_第4页
第4页 / 共18页
《面向对象程序设计》课程设计报告书店图书管理系统.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《《面向对象程序设计》课程设计报告书店图书管理系统.doc》由会员分享,可在线阅读,更多相关《《面向对象程序设计》课程设计报告书店图书管理系统.doc(18页珍藏版)》请在三一办公上搜索。

1、 面向对象程序设计课程设计报告书 设 计 题 目:书店图书管理系统 目 录第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 处理器名称:Penti

3、um(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-1

4、 系统结构图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)以及本模块操作菜单(me

7、nubook)等。本模块的类关系图如下页图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#includeusing namespace std;#include#include#include#includebookdata.h#includeCash.h#includebookbase.h#includebooklist.h#includeShop.hint main()bookbase base;bookli

9、st list;Cash cash;Shop shop;int choice;char c; cout 欢迎使用书店管理系统 n endl;docoutnt= endl;coutnt *主菜单*endl;cout nttt1:顾客选购模块 nnttt2:收银模块 nnttt3:报表模块nnttt4:书库管理模块 nnttt0:退出程序 endl;cout t= endl;cout choice;switch(choice) case 1: shop.Search();/顾客选购模块break; case 2: cash.CashOperate();/收银模块break; case 3: lis

10、t.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 qtyonhand;/库存

11、量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;retail=re;voi

12、d showinfo()/显示书的信息couttISBN号:isbnendl;coutt书名:booktitleendl;coutt作者:authorendl;coutt出版单位:publisherendl;coutt进书日期:dateaddedendl;coutt库存量:qtyonhandendl;coutt批发价:wholesaleendl;coutt零售价:retailendl;void setflag(int f=1)/设置删除标记flag=f;int getflag()return flag;char *getisbn()return isbn;char *getbooktitle(

13、)return 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#i

14、fndef BOOKBASE_H#define BOOKBASE_H#includebookdata.hclass 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.fail()break;top+;booktop=

15、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()/显示所有图书信息coutn下面显示所有图书信息:endl;for(int i=0;i=top;i+)booki.showinfo();coutendl;void addbook()/增加图书int i,n;

16、char is31, bo100, au51, pu100,da11;int qt;double wh,re;coutn;cout请输入下列信息:endl;for(i=0;in;i+)coutis;coutbo;coutau;coutpu;coutda;coutqt;coutwh;coutre;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;docoutname;

17、for(int i=0;i=top;i+)if(!strcmp(booki.getisbn(),name)|!strcmp(booki.getbooktitle(),name)coutn书的信息已找到,下面输出该书信息:n;booki.showinfo();x=0;if(x)coutn未找到该书信息!n;coutagain;while(again=y);void amendbook()/修改图书信息int x=1;char choice, name100,again;char is31, bo100, au51, pu100,da11;int qt;double wh,re;docoutnam

18、e;for(int i=0;i=top;i+)if(!strcmp(booki.getisbn(),name)|!strcmp(booki.getbooktitle(),name)coutn书的信息已找到,下面输出该书信息:n;booki.showinfo();x=0;coutchoice;if(choice=y) cout请输入下列信息:endl; coutis; cout书名:;cin.ignore(); cin.getline(bo,100); cout作者:; cin.getline(au,51); cout出版社:; cin.getline(pu,100); coutda; cout

19、qt; coutwh; coutre;booki.setinfo(is,bo,au,pu,da,qt,wh,re);booktop.setflag(1);updatedat();cout修改完成!endl;if(x)coutchoice;if(choice=y) cout请输入下列信息:endl; coutISBN:; cin.getline(is,51); cout书名:; cin.getline(bo,100); cout作者:; cin.getline(au,51); cout出版社:; cin.getline(pu,100); coutda; coutqt; coutwh; coutr

20、e;booki.setinfo(is,bo,au,pu,da,qt,wh,re);booktop.setflag(1); updatedat();cout增加完成!endl;coutagain;while(again=y);void deletebook()/删除图书int x=1; char name100,choice,again;do coutname;for(int i=0;i=top;i+) if(!strcmp(booki.getisbn(),name)|!strcmp(booki.getbooktitle(),name) coutn书的信息已找到,下面输出该书信息:n; book

21、i.showinfo(); x=0; coutchoice; if(choice=y) booki.setflag(0);/设置删除标记 updatedat();coutt删除成功!n; if(x)coutn未找到有关该书的信息!n; coutagain;while(again=y);void menubook()/书库管理模块主菜单 int choice,a;bookbase book1;char adminster51,code=tianweitao,again;coutadminster;a=strcmp(adminster,code);while(a!=0) coutadminster

22、; a=strcmp(adminster,code);docoutnt= endl;coutnt *书库管理模块*endl;coutnnttt1.显示所有图书nnttt2.查找书nnttt3.修改书nnttt4.增加书nnttt5.删除书nnttt6.返回主菜单n; coutnt= endl;coutchoice;switch(choice)case 1:showallbook();break;case 2:searchbook();break;case 3:amendbook();break;case 4:addbook();break;case 5:deletebook();break;c

23、ase 6:return;coutagain;while(again=y);#endif第4章 结束语一周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。 课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是

24、为明天能稳健地在社会大潮中奔跑打下坚实的基础 对于此次课程设计,我感慨颇多,起初在选题时,做出决定是非常困难的,若选择简单的题目,很有可能会很早就做完了,那样岂不是浪费了许多宝贵的时间;若选择比较难的题目,感觉自己的能力可能不够,不能完成课程设计,最后,在我们组的商量之下选了书店图书管理系统这个课题。定下了我们的目标。接着我们都开始做了,我们明确的分了一下任务,然后每个人都去干自己的了,对于不会的,不太清楚的我们都会在一起讨论,研究。通过本次课程设计,我深刻认识到了“理论联系实际”的这句话的重要性与真实性,我不但知道了以前不知道的理论知识,而且也巩固了以前知道的知识。最重要的是在实践中理解了书

25、本上的知识,明白了学以致用的真谛。在整个设计到按各种功能输出以及调试过程中,我个人感觉调试部分是最难的,我们把运行错误和不能运行的部分一遍遍的修改直到达到预期的效果。初拿到题目觉得很沮丧,虽然学了这么久的C+语言,但还是觉得它很深奥,对它几乎是一无所知。如何着手?在接下来的时间里大家集思广益,在一起认真讨论,不甚理解的问题去查阅一些资料。然后写代码,运行调试虽然在这个过程中遇到了很多问题,有时候甚至为某个地方而茶饭不思。但程序编辑成功后那种激动,问题解决中遇到挑战自己亲自动手,终于解决那种成就感,几个人一起讨论,一起分析,同悲同喜那种患难与共的感觉,都使我们深深地体会到了感到学习的快乐和团结的

26、力量,也让我们真正学习到了一些的知识,使我们感到前途是光明的、充满挑战与趣味的。计算机专业是一个需要紧密合作的工作,只有在一起合作才能做出好的程序,但在其中也有一些的问题是我们都不能理解的,有很多是我们上课没有碰到的一些的问题真的是很让人头疼的。通过这次编程使我们认识到在以后的学习中要多做练习增加自己的知识面才能更好的适应自己的工作,在其中由最初的沮丧中出来,充满信心地去解决问题。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇

27、到问题,可以说得是困难重重,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说二进制文件的用法通过这次课程设计之后,我决定一定把以前所学过的知识重新温故。 这次课程设计终于顺利完成了, 在此感谢我们的崔雪冰老师.,老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪,同时感谢对我帮助过的同学们,谢谢你们对我的帮助和支持,让我感受到同学的友谊。 由于本人的设计能力有限,在设计过程中难免出现错误,恳请老师们多多指教,我十分乐意接受你们的批评与指正,本人将万分感谢。参考文献1皮德常. C+程序设计教程. 机械工业出版社2 李春葆 章启顾 c+程序设计学习与上机实验指导. 清华大学出版社

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号