




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计实验报告课程设计题目:小型图书购销管理系统 所属院系:信息科学与工程学院 专业: 电气信息类 班级: 1205 姓名: 系统描述:小型图书购销管理系统1、需要处理的基础数据 图书资料基本信息:图书编号、书名、作者、出版社、出版日期、定价等。 图书库存信息:图书编号、书名、作者、库存数量等。 图书采购信息:采购单号、图书编号、采购日期、采购数量、单价、采购金额等。 图书销售信息:销售单号、图书编号、销售日期、销售数量、单价、销售金额等。2、系统的基本功能 图书基本信息的录入和查询 图书采购(1)输入要采购的图书编号,自动从图书基本资料中把相关信息提取出来。(2)根据采购数量和单价,自动计算采购金额。(3)根据采购数量,增加图书库存量。 图书销售 (1)输入要采购的图书编号(或书名)、销售数量,从图书库存信息中查找是否合法,合法时进行销售,否则报错。(2)根据采购数量和单价,自动计算销售金额。(3)销售时,从库存中减去相应的数量。 利润计算:根据全部的采购金额和销售金额,计算书店的利润情况。 功能模块结构:本系统使用MVC结构框架,Model View Controller,是模型(model)视图(view)控制器(controller)的缩写。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。如图1。 图1 MVC结构框架图解M(model):系统的中的图书资料,采购销售账单,查询,以及交易记录写成4个类Book ,Bill,Query,TRADE分别执行各自功能。为后台程序。V(view):将视图集中写入一个类Interface,使用以上4个类中的函数,分5种情况反馈输出。为前台程序。C(control):编主函数main使用视图类Interface,控制将其显示。 主要模块的算法说明:Model:Book类:包含图书基本资料:书名,图书编号,作者,出版社,出版日期,价格及库存 string title , no, writer, publisher, date ,double price, int count,声明一个无参的构造函数,以下会使用空的Book类的对象,声明一个有参的构造函数并将构造函数初始化。以下Query类中信息录入,以及界面显示时查询时将会使用此Book类。Bill类:包含交易编号(采购和销售一起),图书编号,交易日期,交易数量,交易价格,string no,order,indate;int count, double price; 声明一个无参的构造函数,以下会使用空的Bill类的对象,声明一个有参的构造函数并将构造函数初始化。以下TRADE类中采购销售以及利润计算时将会使用Bill类。Query类:声明一个Query类(包含信息录入和查询图书是否存在以及库存增减问题解决)1. 验证书号是否存在于:书店Book类的对象放入名为lib的容器里 书籍资料存储,用函数exsist:给一个书号string n验证它是否存在于libi.no中,若存在返回true,不存在返回false2. Book类的对象a的存储:编一个函数add,将输入的Book类的对象a插入到lib容器末端存储。3. 库存变化增减:函数count给一个交易量int c 和书号string n,先判断图书编号n是否存在于libi.no中。存在则库存count+c。TRADE类:声明一个TRADE类,定义Bill类的容器 buy ,sell 采购和销售订单存储。1. 判断采购图书是否存在: 函数add1:验证账单所对应书籍是否存在,若不存在,返回false;若存在将采购增加的书籍的量加入到libi.count中,将Bill类的对象a 插入buy类的末端2. 判断销售图书是否存在并判断库存是否满足销售:函数add2:验证给的Bill类的对象 a 的图书编号是否存在,若不存在,返回false,若存在,验证库存是否足够,若足够,将账单对象a中销售的量a.count在书库libi.count中减少,将账单对象a插入sell类的末端保存,并返回true,若不足够返回false。3. 计算利润:函数count,当采购时总利润sum-采购总价格,输入时总利润sum+=销售总价格。View:Interface类:1.欢迎界面显示及5种选择2.选择函数chose:输入中6种情况输出所得到的结果,反馈运行。 Control:主函数main:构造Interface类I,构造while死循环输出欢迎界面及选择函数。 运行结果系统界面如下图书基本信息的录入如下图书基本资料的查询如下:图书的采购如下:图书的销售如下:书店获得的利润如下退出系统: 课程设计总结 一开始连构架都不知道从何想起,建立Query类,TRADE类不知道逻辑该往哪方面想,对于容器vector不知道如何使用。通过本次编程,加强了自己的自学能力,学会自己学习,自己查找资料,比如学习到了容器vector的使用,mvc的构架。也加强了自己面对困难合理解决的能力,当遇到困难时,变得善于思考善于与同学讨论,得出正确解答。逻辑思维能力得到提高。提高自信心,慢慢从小问题到大问题的解决,不再是自暴自弃,学会了正确面对,当正确面对后,认真思考,自主学习,得出结论,发现c+本次的课程设计也没有那么困难,踏出第一步,就是踏好了最后一步。加油!一个程序的开发是一个漫长的过程,需要把用户的所需变成C+编程所对的方向,再把这些内容变成c+语言编译,系统最初的结构构造也是十分重要的,需要有构架才能把各部分结合起来成为一个完整的程序,各部分的分工分开来写,不要出现交叉的现象,当程序出现问题是便于修改。 参考文献1.mvc框架/liuhaijun/archive/2008/11/12/.html2.vector容器的使用/edify/article/details/ 附录#include #include #include#includeusing namespace std;class Book/声明一个Book类 public: string title, no, writer, publisher, date; double price; int count;/包含 string title , no, writer, publisher, date ,int price, count. Book ()/声明无参的构造函数 Book(string t,string n,string w,string pu,string d,double p):title (t), no(n), writer(w), publisher(pu), date(d), price(p) count=0; /定义一个有参的构造函数,用参数的初始化表对数据成员初始化;class Bill/声明一个Bill类 public: string no,order,indate; int count; double price;/包含string no,order,indate;int count, double price; Bill () Bill(string n,string o,string id,double p,int c):no(n),order(o),indate(id),price(p),count(c) /定义一个有参的构造函数,用参数的初始化表对数据成员初始化;class Query/声明一个Query类 public: vector lib;/将Book类放入名为lib的容器里 书籍资料存储 bool exsist(string n,Book &a)/函数exsist:给一个string n验证它是否存在于lib.no中, int i; for(i=0;ilib.size();i+)/i要小于lib容器容纳的总长度 if(libi.no=n) a=libi; return true;/若存在令Book a等于该libi,返回true return false;/不存在返回false void add(Book a)/函数add:将Book a插入lib类的末端;图书的录入 lib.push_back(a); void count(int c,string n)/函数count:给一个int c 和string n,先判断图书编号n是否存在于libi.no中。存在则库存count+c int i; for(i=0;ilib.size();i+) if(libi.no=n) libi.count+=c; return; ;Query lib;/定义一个Query的对象libclass TRADE/声明一个TRADE类(采购销售算法)public: vector buy, sell;/定义Bill类的容器 buy ,sell 采购和销售订单存储 bool add1(Bill a)/函数add1:验证账单所对应书籍是否存在,若不存在,返回false; /若存在将采购增加的书籍的量加入到libi.count中,将Bill a 插入buy类的末端 Book b; if (lib.exsist( a.no, b)=true) lib.count(a.count,a.no);/使用对象lib中的count算法 buy.push_back(a);/将Bill a存入buy容器中 return true; else return false; ; bool add2(Bill a)/函数add2:验证给的Bill a 的图书编号是否存在,若不存在,返回false,若存在,验证库存是否足够, Book b; /若足够,将账单a中销售的量a.count在书库libi。count中减少,将账单a插入sell类的末端保存,并返回true,若不足够返回false。 if (lib.exsist( a.no, b)=true) if(b.count=a.count) lib.count(-a.count,a.no);/使用对象lib中的count算法,当销售出去时 库存显示减少 sell.push_back(a);/将Bill a存入sell容器中 return true; else return false; else return false; ; double count()/计算利润 double pf=0; for(int i=0;ibuy.size();i+) pf-=buyi.price*buyi.count; for(int i=0;isell.size();i+) pf+=selli.price*selli.count; return pf;/返回利润 ;TRADE trade;class Interface/界面设置 public: void show()/显示内容 cout*endl; cout* *endl; cout* *endl; cout* *endl; cout* 欢迎进入图书购销管理系统 *endl; cout* *endl; cout* *endl; cout* 请输入您想使用的功能: *endl; cout* 1.图书基本信息的录入 *endl; cout* 2.图书基本信息的查询 *endl; cout* 3.图书的采购 *endl; cout* 4.图书的销售 *endl; cout* 5.书店获得的利润 *endl; cout* 6.退出系统 *endl; cout* *endl; cout* *endl; cout* *endl; cout*endl; void chose() int x; cout请选择:x; switch(x)/选择结构 case 1:entering();break;/反馈1,运行entering函数 case 2:query();break;/反馈2:运行query函数 case 3:buy();break;/反馈3:运行buy函数 case 4:sell();break;/反馈4:运行sell函数 case 5:profit();break;/反馈5:计算总利润 case 6:Exit();break; default:cout输入有误endl;break; void entering()/声明一个entering函数 int n; Book a;/声明一个Book类a cout请输入:书名 图书编号 作者 出版社 出版日期 价格 库存a.titlea.noa.writera.publishera.datea.pricea.count; lib.add(a);/将信息录入lib容器 void query()/声明一个query函数 string n; Book a;/声明一个Book类a cout请输入图书编号:n; if(lib.exsist(n,a)=true)/判断书籍是否存在 cout 书名 图书编号 作者 出版社 出版日期 价格 库存endl; cout a.title a.no a.writer a.publisher a.date a.price a.countendl; else cout本店没有该图书!endl; void buy()/声明一个buy函数 Bill a;/声明一个Bill类a Book b;/声明一个Book类b cout请输入图书编号 图书进价 数量a.noa.pricea.count; if(trade.add1(a)=true)/判断该书籍是否存在 double sum; cout该书存在endl; if(lib.exsist(a.no,b)=true) cout 书名 图书编号 作者 出版社 出版日期 价格 库存endl; cout b.title b.no b.writer b.publisher b.date b.p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中生物:校园花卉生态多样性保护与教育实践论文
- 高中地理VR教学中的学生问题解决能力培养与策略论文
- 艾灸馆安全管理制度
- 苗圃门卫室管理制度
- 衬胶管道技术规范
- 《怎么都快乐》课件
- 财务人员个人上半年工作总结(33篇)
- 设备租赁合同模板1
- 财务会计形成性考核册答案
- 幼儿园《美丽的夏天》主题教案
- 林区施工防火安全施工方案
- 充电桩维保合同书样本
- 16J934-3中小学校建筑设计常用构造做法
- 我的家乡潍坊昌邑宣传介绍课件
- 国开学习网《中国古代文化常识》形考任务1-3答案
- 食材配送服务方投标方案(技术标)
- 内河船舶船员健康检查记录
- 大学生应急救护智慧树知到课后章节答案2023年下西安欧亚学院
- 《高中生物必修3课件:细胞分裂和遗传》
- 言语障碍送教上门教案20次
- QGW 203008-2018 风力发电机组通用技术规范 紧固件-C
评论
0/150
提交评论