




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录目录 1.问题描述问题描述.3 1.1 目的 1.2 要求 1.3 商品销售统计 .问题问题分析分析.3 3.算法设计算法设计.4 4.uml 图图.5 5.测试结果与分析测试结果与分析6 6.总结总结.10 7.代码附录代码附录 .10 一、问题描述一、问题描述 1.1 目的目的 在面向对象程序设计课程教学的基础上,根据软件工程的方法与流程,在相对集 中的实训教学时间内,通过一个功能较完整的小型应用系统的设计与开发,深入复习并进 一步掌握面向对象的程序设计思想与方法。同时,作为整个实践教学体系一部分,系统培 养采用面向对象的方法分析问题与解决问题的能力及团体组织与协作能力。 1.2 要求要求 从课程设计的目的出发,通过设计工作的各个环节,达到以下教学要求: 1)根据实现的功能,划分出合理的对象类,明确对象类间的关系。 2) 为每个对象类设计正确的域和方法,为每个方法设计合理的方法体。同时,为对象 类及内部的域和方法运用正确的修饰符,如访问控制符等。 3)编程简练,程序功能齐全,能正确运行。 1.3 商品销售统计商品销售统计 问题描述 编写商品销售统计程序,商品的信息有:商品的名称,计量单位(重量或件) ,单价。 所有商品的信息事先已存入计算机,屏幕上显示所有商品的名称,选择商品名,输入商品 计量单位(如重量,件数等),根据单价算出总价。客户一次购物可能购买多种商品,程序 应计算出客户应付的钱款数。 基本要求 程序分为两个部分:第一部分用于输入商品的信息并允许修改和删除;第二部分实现 销售统计。程序运行时由用户选择进入哪一部分功能,并能在运行时在两部分之间切换。 第二部分运行时,首先显示所有商品名称及代码(商品数目较多时,应考虑分屏显示) ,用 户输入商品代码及商品重量或件数,用户一次操作可输入若干商品的购买信息,然后输入 一个特殊的代码(如-1)表示本次购物结束。此时。程序计算出应付钱款数并显示。 实现提示 本程序的商品信息管理可采用与课程设计题目二类似的数据结构,既定义一个商品类, 每种商品作为商品类的实例(对象)存储在链表节点中。 二、问题分析二、问题分析: 按照要求这个程序的编写要求,由于包含多种实现要求,所以在编写时需要多个实现 函数,这样就要定义一个类或机构体来统筹各个函数以及用链表或指针数组来储存输入的 常量数据,并且在各个转换点设置相应的提示语句使整个程序便于操作。在修改数据的函 数实现时,由于一个商品包含多个变量,要想在修改某一个数据后而不影响其他的数据, 所以就必须要有一个 switch 语句;在商品信息显示函数的实现时,由于中间要有一个购买 函数的实现,所以商品数量会随着商品的购买而减少,所以要将购买的数量另外定义一个 变量。关于 switch 语句的运用在这个程序这可能要多次使用,主要在一个函数拥有多个变 量或变量函数。 三、算法的设计三、算法的设计 这个程序我是采用类以及函数的调用来写的。先写一个 tong 类,在 tong 类中声明所 需要的函数,class tong tong(); tong(char co20,char n20,char dw20,double pr,int qu); tong(); void set(); /商品信息录入 void alter(); /商品信息修改 void delete(); /商品信息删除 void list(); /商品信息显示 void display(); float checkout(int quantity); /单个商品小结 void total(); /总计 void buy(); /商品买入 在写了两个操作函数。在主函数中分别调用所需要的函数。在存储数据方面,我 声明了一个指针数组*si,将输入的商品信息数据按照一一对应方式存储的。 在tong类中一共包括十一个函数,分别为构造函数、析构函数以及各种功能函数。 1、在set函数中通过输出语句的提示输入各种数据,并将输入的数据储存到定义的指 针数组中,等一种商品数据信息输入完毕后,会弹出一个提示语句询问是否继续输入 商品信息,可根据个人意愿输入y(或y表示继续输入)n(或n表示中断输入) ,若输 入y(或y)则调用本函数,进行数据输入;若输入n(或n)弹出一个提示语句询问是 否进行其他操作,在根据个人意愿输入正确的字符来进行相应的操作。 2、delete函数是进行对原始数据(即商品信息)进行删除。先根据输出语句的提示输 入您要删除的商品名称,商品名称输入后通过if语句判断是否存在这种商品:若不存在 则会出现这种商品不存在的提示语句,并同时出现一个提示是否进行其他操作提示语 句;若存在则会进行对该商品删除的操作并提示删除成功。 3、alter函数是对输入的商品信息进行修改的。函数运行时,会首先出现一个提示语 句,提示管理者输入所要修改的商品名称,再通过一个for语句将该商品的所有信息调 出,同时出现另一个提示语句,供管理者选择所要修改商品项,再通过switch语句供 管理者输入所要修改的具体的商品信息,并将管理者修改的信息存入相应的商品信息 库中(即该商品在原始输入数据时分配的储存空间中) ,一个商品信息修改完成后同样 会出现一个询问是否继续修改的语句。 4、list函数是将输入的所有商品信息显示在屏幕上,根据提示语句将所有的输入或是 修改的商品信息显示在操作屏幕上。 5、buy函数是消费者对屏幕上显示的商品进行购买的函数。该函数在运行时,会首先 出现一个提示语句,提示消费者输入需要购买的商品名称和购买数量,输入完毕后会 调用checkout、display、total,进行相应的操作。 6、checkout函数是一个小记函数,主要将消费者购买的每一种商品进行一个初步计费 并显示在屏幕上,这个函数主要是为total函数服务的。 7、 total函数则是总计函数,是将消费者购买的所有商品进行计费,并将消费者需要 支付的费计算出来显示在屏幕上。 8、display函数是将checkout函数中各种商品费用进行累加,在将累加的结果返回给 total函数。 9、在主函数的运行过程中会出现一个提示语句将整个程序分成两个部分,分别为商品 信息管理和商品销售管理。在商品信息管理部分,主要运行set、alter三个函数(这三 个函数是通过switchy语句封装在caozuoa这个子函数中的),而在商品销售统计部分, 则运行list、buy两个函数(这两个函数是通过switch语句封装在caozuob这个子函数中 的)。 四、四、uml图图 五、测试结果及其分析五、测试结果及其分析 测试用的输入输出数据以及运行结果的截屏图如下: 请选择您的操作:商品信息管理系统(m)商品销售系统(s) m 商品信息录入(请输入 0) 删除信息(请输入 1) 修改信息(请输入 2): 0 请输入商品代码及名称: q qw 请输入计量单位: jin 请输入商品单价: 1.2 请输入商品数量: 100 tong -code20:char -namer20:char -danwei20:char -price:double -quantity:double +set():void +alter():void +delete():void +list():void +display():void +total():void +buy():void +tong():void +tong(code20:char,name20:char,danwei20:char,price:int,quantity:int) +tong():void +checkout(quantity:int):float 信息录入成功! 是否继续录入?(y or n) 请输入商品代码及名称: a as 请输入计量单位: jin 请输入商品单价: 12 请输入商品数量: 120 信息录入成功! 是否继续录入?(y or n) 您想继续进行其他操作吗?(y/n) y 请选择您的操作:商品信息管理系统(m)商品销售系统(s) m *-菜单选项- 商品信息录入(请输入 0) 修改信息(请输入 1) 删除信息(请输入 2) 1 请输入您所修改的商品名称: as 你想要修改:代码及名称(请按 1)、计量单位(请按 2)、单价(请按 3)、数量(请按 4) 3 请输入单价: 2.2 (将输入的原始数据:单价为 12 修改为 2.2) 数据修改成功!是否继续修改?(y/n) 您想继续进行其他操作吗?(y/n) y 请选择您的操作:商品信息管理系统(m)商品销售系统(s) s *-菜单选项-* *-* 显示商品信息(请输入 0) 商品买入(请输入 1) 0 =所有商品信息清单= 货品代码=货品名称=货品价格=货品数量=计量单位 q qw 1.2 100 jin a as 2.2 120 jin 您想继续进行其他操作吗?(y/n) y 请选择您的操作:商品信息管理系统(m)商品销售系统(s) s *-菜单选项-* 显示商品信息(请输入 0) 商品买入(请输入 1) 1 请输入你想购买的商品的代码及名称: q qw 请输入您想购买的商品的数量: 12 货品代码=货品名称=货品价格=购买数量=计量单位=小计 (元)= q qw 1.2 12 jin 14.4 要结束商品买入请按n/n,其继续买入请按y/y: n 你应该付 14.4 元! 你实际付(元): 20 应该找回你 5.6 元! 您想继续进行其他操作吗?(y/n) n 其截屏图如下:其截屏图如下: 调试分析:调试分析: 在起始阶段,出现提示语句,询问进入哪部分操作,输入字符 m,进入商品信息管理 部分,再根据提示,输入字符 0,进入商品信息输入部分,按照提示输入的数据被储存在 指针数组中,一个完整的商品信息录入后,就会出现一个询问是否继续输入的语句,按此 方法输入几种商品信息后,终止商品信息的输入,在按照提示语句进入商品信息修改部分, 在此部分修改部分商品信息后,退出,再在提示语句的提示下输入字符 s 进入商品销售管 理部分,在此部分,输入字符 0 进入商品信息显示部分,将显示在第一部分输入以及修改 后的所有商品信息,以供消费者选择,退出后再进入商品买入部分,根据提示输入正确的 字符或字符串,购买您所需的商品,结束购买后会出现商品消费总计,输出消费者所需付 的费用并根据实际付的费用计算出找零。在测试与调试过程中,我是按照屏幕提示进行操 作,输入符合程序编排的数据,一步一步进行调试的。 六、总结六、总结 经过了这次商品销售统计的课程设计我从中学到了很多,同时明白了做一个小型软件的 步骤和流程.如何让自己设计的软件运用到具体的实际工作中,这是一个关键的环节.还有就 是程序设计和运行测试中遇到的问题该如何解决,从解决问题中我也学到了许多平时课本上 所没有的知识.当然,能够完成这个商品销售统计我自己也感觉很有成就感. 运用到的开发工具和软件技术: 此系统结合商品销售统计的要求,对 c+、c 语言的学习和应用,主要完成商品销售 统计的分析,设计和实现,系统的设计,主控程序设计,并由此设计了类结构和应用程序。 系统运行结果证明,设计的商品销售统计可以满足商品管理者完成管理的日常工作,包括 商品销售以及商品信息的管理等 软件还需要哪些改进: 在编写源程序代码的过程中对语言的运用还需要提高,应使写出来的程序更加简洁,易读 懂,更加满足实际工作的需要.要想使做出来的程序更好的利用还需根据实际需要在今后的运 用中不断的改进和完善. 七、代码附录七、代码附录 #include #include #include #define null 0 #include #include #include /控制字符串的头文件 using namespace std; class tong public: tong(); tong(char co20,char n20,char dw20,double pr,int qu); tong(); void set(); /商品信息录入 void alter(); /商品信息修改 void delete1(); /商品信息删除 void list(); /商品信息显示 void display(); float checkout(int quantity); /单个商品小结 void total(); /总计 void buy(); /商品买入 private : char code20;char name20;char danwei20;double price;int quantity; ; tong:tong() tong:tong(char co20,char n20,char dw20,double pr,int qu) strcpy(code,co); strcpy(name,n); strcpy(danwei,dw); price=pr; quantity=qu; tong:tong() tong *s50; int i=0; int j=0; char code20;char name20;char danwei20;double price; int quantity; void tong:set() /商品信息录入 coutcodename; coutdanwei; coutprice; coutquantity; j+; si=new tong(code,name,danwei,price,quantity); i+; coutname; for(int h=0;hname)=0) char newcode,newname,newdanwei; double newprice; int newquantity; int n; coutn; switch(n) case 1: coutnewcodenewname; sh-code20=newcode; sh-name20=newname; coutnewdanwei; sh-danwei20=newdanwei; coutnewprice; sh-price=newprice; coutnewquantity; sh-quantity=newquantity; coutname; for(int h=0;hname)=0) char newcode,newname,newdanwei; double newprice; int newquantity; int n; coutn; switch(n) case 1: coutnewcodenewname; sh-code20=newcode; sh-name20=newname; coutnewdanwei; sh-danwei20=newdanwei; coutnewprice; sh-price=newprice; coutnewquantity; sh-quantity=newquantity; coutcodenamepricequantitydanweicodename; coutquantity; checkout(quantity); display(); total(); void tong:display() coutcode quantity name price
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 垃圾处理与资源化分析报告
- 鞋类品牌文化传承机制探讨报告
- 刹车系统抗冲击性分析报告
- 中医健康管理试题及答案
- 深度分析2025年康复医疗服务体系政策支持与运营优化报告
- 中医考执业证试题及答案
- 中医理疗科考试题及答案
- 中医脉诊试题及答案
- 基于人工智能的2025年智慧校园安全管理报告:校园安全预警系统研究
- 企业法务岗位招聘面试题
- DB44T 1597-2015 电镀水污染物排放标准
- 儿童保健工作管理办法
- 全固态高功率超快激光器:放大机制与热透镜效应的深度剖析
- DGTJ08-2232-2017 城市轨道交通工程技术规范
- 中职思政试题及答案
- 中小学暑期安全教育班会课件
- 2025年中国手板模型行业投资研究分析及发展前景预测报告
- 护理操作管理课件
- 2025年江苏高考政治试题(解析版)
- 2025年陕西、山西、青海、宁夏高考历史试卷真题(含答案解析)
- T/CECS 10207-2022榫卯式钢管脚手架构件
评论
0/150
提交评论