版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精品文档目录一、设计目的 2二、设计内容 2三、设计要求 2四、设计过程 31、面向对象分析 32、数据结构分析 73、系统执行流程 8五、程序运行结果 11六、设计总结 17参考文献 17附录 18图书销售管理系统一、设 计目的本图书销售管理系统, 主要用于小型的书店, 进行简单的图书的管理, 为了 能够更好的管理书店的销售的情况和库存的情况书店销售管理系统主要的功能 有:(1) 图书入库管理:维护入库图书信息,图书编号、书名、价格等,自动 计算库存。(2) 图书查询统计:可以根据图书分类、出版社、书名、作者等条件查询 图书的详细信息。(3) 销售管理:销售过的图书都记录在销售列表中,方便统
2、计收入。图书 销售后,要记录图书库存,按每天统计销售额、每个月或季度生成报表,并生成 畅销书单。二、设计内容(1) 图书信息包括书名、书号、作者、出版社、单价、库存数量、进价、售 价、利润;(2) 用户登录界面设计(3) 信息维护:包括子模块有增加图书信息、删除图书信息、修改图书信息 (4 ) 查询功能:可按书名查询、作者查询、或出版社查询(5) 排序功能:能实现按图书销售利润进行排序的功三、设计要求(1)只能使用C+语言,源程序要有适当的注释,使程序容易阅读2) 至少采用文本菜单界面(如果能采用图形菜单界面更好)3) 学生可自动增加新功能模块(视情况可另外加分)4) 写出课程设计报告,具体要
3、求见相关说明文档四、设计过程1、面向对象分析(1)对象模型设计 系统中说明了 4 个类,每个类的详细设计如下: 1Book 类TThwBnok11 旳懂:&iriag: V6id muipuin: vuid k -compuctff): vo id坤rm miicO rntig 占氏n um() : ijiii +jCCTpritcG L tifiilt ;ticeftucmO :五 frgmdQ : nr *EttlelO : int tinpLiX? vimnlvoid *outpuc( : virttulvpidStudyQinp臟);vpjd:d cHJlputt I wiid : +
4、Lomputc 1(: void汕 说 佰-smw ;任f挣宅$卜strvsc I : V L(7IOR.J ;* irt liiultaiumt I; vtid fi-csa chyulenw) widl 匀 did yuknuiin J: voidH-dcl_yuhnainci) : void|a(M_yuleO: voidycirhstttdinumi J: void.i; h_wdjTM-iiirf) oid=耳 iusii jtliIcO :普mid* KinJuii Uud! vnid cl_HfcdjTiunri() : v: vLd rMxItAiniluiilyi :萄okl
5、 沁himHXMlti: 创 j+iliwg t i:hM) void;+沖冗“ :void ;rnv?l vol J H-lflaJi: vnidIdiijlOr、亦J+ MniutK WkiiJ(2)各个类设计class book /book 基类protected:stri ng n ame;/名称float price; /价格int num; /编号int kucun,xcl,salel; /库存,现存量,销售量 public:int getnum()return num; /编号接口函数stri ng get name() 名称接口函数return name;float getpr
6、ice()return price; /价格接口函数int getkucun()return kucun; /库存量接口函数int getxcl()return xcl; / 现存量接口函数int getsalel()return salel; /销售量接口函数virtual void input()=0; /输入虚函数stringvirtual void output()=0; /输出虚函数 说明: Book 类是一个基类,用于定义图书基本的信息。例如:其中 get name(是一个接口函数,能获得图书的姓名。2. Yule (娱乐类)class yule:public book 娱乐的派生
7、类public:void input()/ 输入 cinname; cinnum; cinprice; cinkucun; cinsalel; cinxcl;void output()/ 输出 coutYule:endl;coutname num price kucun salel xclendl;void compute()/ 计算售出剩余函数int counts;cout 输入售出的图书的本数 counts;cout 售后剩余: name; cinnum; cinprice; cinkucun; cinsalel; cinxcl;void output() coutLearn:endl;c
8、outname num price kucun salel xclendl;void compute1()int counts;cout 输入售出的图书的本数 counts;cout 售后剩余: endl;kucun=kucun-counts;salel=salel+counts; xcl=xcl-counts;study类用于定义学习类图书的信息,它是Book类的公有派生类。其中:Compute1(是一个计算售出图书数量和剩余的函数,in put ()和output()函 数是对图书信息的输入和输出而且他们是在基类中定义的纯虚函数。operate (功能类)typedef vector ST
9、RVEC;/定义 stl 模版的容器typedef vector STRVEC1;class operate /定义功能类STRVEC strvec;STRVEC1 strvec1;public:void search_yule nu m(i nt m)/娱乐类图书按编号查找void search_yule name(stri ng s)查找娱乐类图书按名称void del_yule num(i nt n)/删除娱乐类图书按编号void del_yule name(stri ng p)/按 图书名称删除void add_study()/添加学习类图书的基本信息void add_yule()添加
10、娱乐类图书的基本信息void search_study num(i nt m)査找学习类图书的编号void search_stud yn ame(stri ng s)查找学习类图书的名称void xiugai_yule(i nt m)/修改娱乐类图书的剩余量void xiugai_study(i nt m)/修改学习类图书的剩余量void del_study nu m(i nt n) 删除售完图书void del_studyname(string p) /按名称删除图书void show_yule()显示娱乐类图书void show_study()显示学习类图书void saleam oun
11、ts()/计算销售额void chan gxiao1()娱乐类图书畅销void cha ngxiao()学习类图书畅销void save()娱乐类入库单void save1()/学习类入库单void load()/读取娱乐类文件void load1()/读取学习类文件void Men u()应用菜单说明:operate类用来实现图书管理系统的功能,它是用来查找、添加、删 除图书的信息的基本点的信息,对系统进行维护,生成入库单、畅销书和一天的 销售额。2、数据结构分析书店销售管理系统的数据结构:英文名称中文名称Book图书类Yule娱乐类图书Study学习类图书Strvec娱乐类的STL模版St
12、rvec1学习类的STL模版Operate运算类search yule num娱乐类编号查找search yule name娱乐类书名查找del yule num娱乐类编号删除del yule name娱乐类书名删除add study添加学习类图书add yule添加娱乐类图书search studynum学习类编号查询search studvname学习类书名查询del studynum学习类编号删除del studyname学习类书名删除show yule显示娱乐类信息show study显示学习类信息save保存娱乐类文件load显示娱乐类文件Me nu菜单main主函数Save1保存学
13、习类文件Load1显示娱乐类文件saleam ounts销售量的计算xiugai yule娱乐类图书的修改xiugai study学习类图书的修改cha ngxiao娱乐类畅销图书Chan gxiao1学习类畅销图书3、系统执行流程(1)主页面流程图如图(1)图(1)主页面流程图(2)顾客登陆简述:用户在图书销售系统里顾客登陆并查询图书内容。基本流程:1顾客:在图书销售系统画面,选择顾客登陆,显示图书基本信息,按提 示内容进行查找2查询:顾客在图书销售系统中能查询图书的信息;3显示:顾客能在顾客界面能看到最近的图书;4结束。流程图如图(2)图(2 )顾客登录流程图(3)收银员登陆简述:收银员在
14、图书销售系统里能看到图书信息并能修改出售图书的数量。基本流程:1收银员:在图书销售系统画面,选择收银员登陆,输入密码,进入收银 员界面。2修改:收银员在图书销售系统中能修改图书的售出情况;3显示:收银员能在顾客界面能看到最近录入的图书;4结束。流程图如图(3)管理员登陆简述:管理员在图书销售系统填加、删除和查找图书信息,并能显示销售额。基本流程:1管理员:在图书销售系统画面,选择管理员登陆,输入密码,进入收银 员界面。2添加:管理员在图书销售系统中能填加图书的基本情况;3删除:管理员在图书销售系统中能删除图书的基本信息;4查找:管理员在图书销售系统中能查找图书的基本信息。5销售额:管理员在图书
15、销售系统中能看到销售额的输出6畅销书:管理员在图书销售系统中能查询畅销书7结束流程图如图(4)能蹄入卜: 皿連小星加僅作菜单站乐Jt ir jmiiii uauuPi#n :i硼陈m書锻mini佥舟i暫用”旧锻蚤丸的自论 4. SjSA题峑习恪 乳jISJniih(圮決.凰内权6.剛降閏样w的怛曲 九 占1咧.恂刖刁更前勺苏 忙昼赵曲tn况IM;III. ftFUP | ;SS3XE隠腿同需码常人界面-S址我的卩II 洋壬崔詡* A 47 Lf匚決聯环星 吓普理忙料血|心 显號凰杨轉的tsie; II)堆电主察帕迴1凶K朮削巧印再战 Xb,册雌完旱后 ;: 空吟;&$昔虜 dili : e?J
16、SHtft ;:牛-m*H1L CSJ .输人症耶4, c r* ff. 4 : ti Jf . fljl t,JK.1 i ul宣羊&於雜耳W 庄鶯写品*五 匚駅 I I,$,()找:i:耳 :;車Rh L負阳书耳 * I無第q I f* Ik.拉杏議Afl.fflWTi(4軽報Ifr用官比11人絢书1(K)h n r eb 15 甲情冲,吞片如 :,rt(Ml?tin轻显留1J丄ilA4 的P%沪件3:;:刃 2:园主H用或JJffiJt八口八曲曾诅f. M-M J-Tl 1显示入库情况=*1*返 回 主枭蛋# 退出j 丄F 沖 *V i添加成功后好可以继续按1添加娱乐类书籍相关内容,也可
17、按5继续添加学习类的图书添加完毕后可返回主菜单(11选项)M W MK WMM1M MM收银员登录请选择I意否返回京单3心J*欢述使用图书哺售管理系统终極腋收愎员管理员一囲葦操作功能:在主界面按2可进入收银员的登录界面,同管理员一样,收银员也一样需要 输入密码,密码对方可进入修改界面,在这里收银员可以对图书的销售情况进行 修改,以便以后对图书销售情况便于管理塑|撑竝t能心请縮入空q当1234运崗單园请重新输人正确密殆: 请输入密码1123*欧迎使帀图书销售修改系统!7h1p :yi 1 26 S 6 ELearn:nath 3 30 6 0 6输入图书编号(娱乐类/学习类)并且输入将要售出的本
18、数,系统将会显示 图书(娱乐类/学习类)的售后情况:青输人要售出的團书的编号I顾客登录(张海东负责)在主界面选择1可以进入顾客的使用界面,在这里顾客可以看到所以书籍(娱乐类和学习类),并可以按照编号或者图书名称查询相应图书的详细内容香墓鑿軽Bee獵用图书査询系统!喈辙k霍夢査询罢书的名积无址:名廨的V管理员-囲葦操作功能:退出系统选择:谙选择!任否返回土菜单QA1?nPress any key to continueH六、设计总结(1)完成本课题花了很长的时间,真正体会了作为一个程序员的辛苦,并 且必须具备细心、耐心的品质,想要完成一项出色的项目,必须精益求精,反复 操作与实践。(2)在做了本
19、课程设计以后,我对 C+的了解更深了,很多知识得到了巩 固,一些不懂的知识也渐渐明了!这其中主要是对指针的使用收获很多,在指针 使用的过程中,对指针的指向以及对各函数中指针的赋值会影响到整个程序的运 行;还有就是对文件的输入输出流了解得更透彻了,知道了打开一个文件后必须 还要对其关闭,否则程序无法运行,对各种文件的输入输出控制符都能基本融会 贯通。(3)虽然本课题已完成,可是还是存在一些问题,比如说界面还不够好看, 为了用户用得舒服,界面是很重要的。参考文献郑莉等编著C+语言程序设计清华大学出版社 郑莉等编著C+语言程序设计习题与实验指导清华大学出版社 张基温编著.C+程序设计基础例题与习题.
20、高等教育出版社 黄明等编著 .面向对象程序设计习题详解 .机械工业出版社附录源代码:#include #include #include #include using namespace std;const int Maxr=100;const int Maxb=100;const int Maxbor=5;class Readerprivate:int tag;int no;char name10;int borbookMaxbor;public:Reader() char *getname() return name;int gettag() return tag;int getno()
21、return no;void setname(char na)strcpy(name,na);void delbook() tag=1; void addreader(int n,char *na) tag=0;no=n;strcpy(name,na);for(int i=0;iMaxbor;i+) borbooki=0;void borrowbook(int bookid)for(int i=0;iMaxbor;i+)if (borbooki=0)borbooki=bookid; return;int retbook(int bookid)for(int i=0;iMaxbor;i+) if
22、(borbooki=bookid)borbooki=0;return 1;return 0;void disp()cout setw(5) no setw(10) n ame 借书编号:;for(int i=0;iMaxbor;i+)if(borbooki!=0)cout borbooki |;cout endl;class RDatabaseprivate:int top;Reader readMaxr;public:RDatabase()Reader s;top=-1;fstream file(reader.txt,ios:in);while (1)file.read(char *)&s,
23、sizeof(s);if (!file)break;top+;readtop=s;file.close();void clear()top=-1;int addreader(int n,char *na)Reader *p=query(n);if (p=NULL)top+;readtop.addreader(n,na); return 1;return 0;Reader *query(int readerid)for (int i=0;i=top;i+)if (readi.getno()=readerid & readi.gettag()=0)return &readi;return NULL
24、;void disp()for (int i=0;i=top;i+) readi.disp();void readerdata();RDatabase()fstream file(reader.txt,ios:out);for (int i=0;i=top;i+)if (readi.gettag()=0)file.write(char *)&readi,sizeof(readi); file.close();void RDatabase:readerdata()char choice;char rname20;int readerid;Reader *r;while (choice!=0)”e
25、ndl;cout choice;switch (choice)case 1:cout readerid;cout rname;addreader (readerid,rname);break;case 2:cout readerid;r=query(readerid);if (r=NULL)cout H *顾客* endl;break;cout rname;r-setname(rname);break;case 3:cout readerid;r=query(readerid);if (r=NULL)cout 该图书不存在 delbook();break;case 4:cout readeri
26、d;r=query(readerid);if (r=NULL)cout 该图书不存在 disp();break;case 5:disp();break;case 6:clear();break;break;default:cout输入错误,请从新输入:class Book private: int tag; int no;char name20; int onshelf;public:Book()char *getname() return name; int getno() return no; int gettag() return tag; void setname(char na) s
27、trcpy(name,na);void delbook() tag=1; void addbook(int n,char *na) tag=0; no=n; strcpy(name,na);onshelf=1;int borrowbook()if (onshelf=1) onshelf=0;return 1;return 0;void retbook()onshelf=1;void disp()cout setw(6) no setw(18) name setw(10) (onshelf=1? 缺货) endl;class BDatabase private: int top;Book boo
28、kMaxb;public:BDatabase()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)Book *p=query(n);if (NULL=p)top+;booktop.addbook(n,na);return 1;return 0;Book *query(int bookid)for
29、(int i=0;i=top;i+)if (booki.getno()=bookid &booki.gettag()=0) return &booki;return NULL;void bookdata();void disp()for (int i=0;i=top;i+)if (booki.gettag()=0) booki.disp();BDatabase()fstream file(book.txt,ios:out);for (int i=0;i=top;i+)if (booki.gettag()=0)file.write(char *)&booki,sizeof(booki);file.close();void BDatabase:bookdata()char choice;char bname40;int bookid;Book *b;while (choice!=0)cout nnnttt 图 书 维 护 endl choice;switch (choice)case 1:cout 输入图书编号 : bookid;cout 输入图书书名 : bname;addbook(bookid,bname);break;case 2:cout 输入
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 跨区域碳租赁业务拓展合作方案
- 财务报表分析读懂数字背后的商业秘密
- 售后技术问题解决效率考核方案
- 模切工艺的持续改进工作方案
- 写字楼运营团队目标管理考核方案MBO
- 风险管理岗位工作流程优化方案设计
- 注册教育咨询师的工作计划与教育创新策略
- 婚礼活动安全策划及应急预案
- 垃圾焚烧烟气脱硝与除尘技术方案
- 建筑垃圾运输管理与调度优化方案
- 泌尿系CTU检查流程
- 免疫规划知识培训课件PPD
- 巨量千川营销师(初级)认证考试题(附答案)
- 人教版小学《道德与法治》二年级上册全册教案
- 急诊科专科护理常规
- 材料化学专业生涯发展展示
- 2024-2025学年山东省名校考试联盟高二(上)期中数学试卷(含答案)
- 2024-2025学年北京十四中七年级(上)期中语文试卷
- 临电转正式电施工方案
- 平面设计专业职业规划
- 【9语期中】合肥市第三十八中学2024-2025学年九年级上学期期中语文试题
评论
0/150
提交评论