软件工程实践报告材料

上传人:悦** 文档编号:161363565 上传时间:2022-10-14 格式:DOCX 页数:25 大小:110.91KB
收藏 版权申诉 举报 下载
软件工程实践报告材料_第1页
第1页 / 共25页
软件工程实践报告材料_第2页
第2页 / 共25页
软件工程实践报告材料_第3页
第3页 / 共25页
资源描述:

《软件工程实践报告材料》由会员分享,可在线阅读,更多相关《软件工程实践报告材料(25页珍藏版)》请在装配图网上搜索。

1、软件工程实践报告设计题目:商品销售统计学校: 航空大学班级:学号: 指导老师:邱天完成日期: 2014 年2月19日摘要商品销售统计系统程序设计利用计算机技术,使得企业生产、库存和销售能够有利结 合起来, 提高企业的效率和效益。 利用该系统可以为决策者和管理者及时掌握时常动态和 企业的生产状况, 以及对员工销售额的统计。 销售统计系统是一个商品企业单位不可缺少 的部分 , 它的容对于公司的决策者和管理者来说都至关重要, 所以销售统计系统应该能够为管理人员提供充足的信息和快捷的查询手段。 但一直以来人们使用传统人工的方式管理文件 档案,这种管理方式存在着许多缺点。随着科学技术的不断提高 , 计算

2、机科学 日渐成熟 , 其强大的功能已为人们深刻认识 , 它已进入人类社会的各个领域并发挥着越来越 重要的作用。 作为计算机应用的一部分 , 使用计算机对员工信息及业绩进行管理 , 具有手工 管理所无法比拟的优点。关键字 : 计算机技术、提高效益、日渐成熟、不可或缺。目录第一章、课设设计目的与要求 11.1 目的与要求 2第二章、课题介绍 商品销售系统 32.1 课设题目 32.2 任务和要求 3第三章、算法的设计 错误! 未定义书签。3.1 本程序的流程图 53.2 算法的思路 5第四章、详细设计与调试 84.1 系统界面管理 84.2 商品管理界面 84.3 商品管理各功能的实现 94.3.

3、1 商品的添加 94.3.2 商品的删除 94.3.3 商品的查找 104.3.4 商品的显示 104.4 购物功能的实现 11第五章、调试手册与测试数据 125.1 调试手册 125.2 测试数据 12第六章 实验心得与体会 13附录一 14附录二 21近年来,随着商品销售市场的不断扩大,有关商品的各种信息量 也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致商品 销售管理上的混乱,人力与物力过多浪费,用于支付职员的工资不断 增加,从而使各大商品经销商的负担过重, 影响整个销售部门的运作 和控制管理,因此,必须制定一套合理、有效,规和实用的商品销售 管理系统,对欲要销售的商品进行集中统

4、一的管理。 本系统开发的总 设计目标是实现商品经销商对商品的系统化、 规化和自动化管理,实 现对所经销商品的集中统一管理。第一章 课设设计目的与要求1.1 目的Visual C+面向对象与可视化程序设计是计算机专业一门重要 的专业基础课。 此次课程设计的目的是以程序设计语言为基础, 通过 完成一些具有一定难度的课程设计题目的编写、调试、运行工作,进 一步掌握面向过程和面向对象程序设计的基本方法和编程技巧, 巩固 所学理论知识,使理论与实际相结合。从而提高自我分析问题、解决 问题的能力。通过课程设计,学生在下述各方面的能力应该得到锻 炼:(1)进一步巩固、加深学生所学专业课程 Visual C+

5、 面向对象与 可视化程序设计 的基本理论知识,理论联系实际,进一步培养学生 综合分析问题,解决问题的能力。(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而 达到提高学生素质的最终目的。(3)利用所学知识,开发小型应用系统,掌握运用 C+语言编写调 试应用系统程序,训练独立开发应用系统,进行数据处理的综合能 力。( 4)对于给定的设计题目,如何进行分析,理清思路,并给出相应 的数学模型。( 5)掌握面向对象的程序设计方法。( 6)进一步掌握在集成环境下如何调试程序、修改程序和程序的测1.2 要求从课程设计的目的出发, 通过设计工作的各个环节, 达到以下教 学要求:1) 根据实现的功能

6、, 划分出合理的对象类, 明确对象类间的关 系。2)利用所学知识,开发小型应用系统,掌握运用 C+语言编写调试应用系统程序, 训练独立开发应用系统, 进行数据处理 的综合能力。3)全面考核学生所掌握的基本理论知识及其实际业务能力,从 而达到提高学生素质的最终目的。4)为每个对象类设计正确的域和方法, 为每个方法设计合理的方 法体。同时, 为对象类及部的域和方法运用正确的修饰符,如 访问控制符等。5)编程简练,程序功能齐全,能正确运行。6)进一步掌握在集成环境下如何调试程序、修改程序和程序的 测试第二章 课题介绍商品销售系统2.1 课设题目编写商品销售统计程序,商品的信息有:商品的名称,计量单

7、位(重量或件),单价。所有商品的信息事先已存入计算机,屏幕上 显示所有商品的名称,选择商品名,输入商品计量单位 ( 如重量,件 数等) ,根据单价算出总价。客户一次购物可能购买多种商品,程序 应计算出客户应付的钱款数。2.2 任务和要求程序分为两个部分:第一部分用于输入商品的信息并允许修改 和删除;第二部分实现销售统计。 程序运行时由用户选择进入哪一部 分功能,并能在运行时在两部分之间切换。第二部分运行时,首先显 示所有商品名称及代码(商品数目较多时,应考虑分屏显示) ,用户 输入商品代码及商品重量或件数, 用户一次操作可输入若干商品的购 买信息,然后输入一个特殊的代码 (如-1 )表示本次购

8、物结束。 此时。 程序计算出应付钱款数并显示。测试数据 :程序应输入不少于 10 种商品的信息,并进行模拟运行。 实现提示:本程序的商品信息管理可采用既定义一个商品类,每种商品作 为商品类的实例(对象)存储在链表节点中的数据结构。2.3 问题分析 :按照要求这个程序的编写要求, 由于包含多种实现要求, 所以在 编写时需要多个实现函数, 这样就要定义一个类或机构体来统筹各个 函数以及用链表或指针数组来储存输入的常量数据, 并且在各个转换 点设置相应的提示语句使整个程序便于操作。 在修改数据的函数实现 时,由于一个商品包含多个变量, 要想在修改某一个数据后而不影响 其他的数据,所以就必须要有一个

9、switch 语句;在商品信息显示函 数的实现时, 由于中间要有一个购买函数的实现, 所以商品数量会随 着商品的购买而减少, 所以要将购买的数量另外定义一个变量。 关于 switch 语句的运用在这个程序这可能要多次使用,主要在一个函数 拥有多个变量或变量函数。第三章算法的设计3.1本程序的流程图开始输入产品编号或产品名称显示、保判断编号或名J添加、删除、查询、排序称存、汇总、计算结束 结束3.2算法的思路321定义一个结构体,该结构体用来存放商品的代码,名 称等信息:struct sha ngpinint nu mber;char n ame30;float weight;float pri

10、ce;shangpin *next;3.2.2 定义 list 链表类,用来动态的存放商品的信息: class list / 定义链表类shangpin *elems;public:list() elems=0;list();此虚函数在此虚函数在派生类中virtual bool insert();void insert1(shangpin *pr,float wgt);/派生类中可重新定义bool insert2();virtual bool deletes(int); /可重新定义bool contain(int); /定义重载的构造函数bool contain1(int);shangpin

11、 *chazhao(int);void print();void print1();void shanchu();3.2.3 定义 list 的派生类 set 类,用来对商品进行操作: class set:public list int card;/ 将集合类 set 定义为链表类 list 的派生类 struct shangpin shp;public:set() bool insert(); / 重定义此函数bool deletes(int); / 重定义此函数;第四章 详细设计与调试采用 C+6.0 作为开发工具,用面向对象编程,对所要处理的商 品信息进行存储,分别调用各个功能函数来处理

12、。4.1 系统界面管理void inr() coutendl;cc */* *endl;cout 欢迎进入商店系统,请选择相应的功能,如 按 1 键,进行商品管理 操作 endl;cout 1 :商品管理 2 :购物 endl;cout a :退出 endl;cc */* *endl;4.2 商品管理界面void ini() coutendl;cc */*endl;cout 欢迎进入商品管理系统,请选择相应的功能,如 按 1 键,进行添加 操作 endl;cout1:添加 2:删徐 endl;cout3:查找 4:显示 endl;coutq:退出 endl;*endl;cout请选择:4.3

13、商品管理各功能的实现4.3.1 商品的添加bool list:insert()/定义 list 类中插入元素的成员函数int num;cout 请再次输入商品的代码 num;shangpin *elem=new shangpin; / 为新元素分配存储if (elem!=0) elem-number=num; cout 请输入商品的名称 elem-name;cout 请输入商品的价格(单位:元) elem-price;将新元素插入到链表头 elem-next=elems;elems=elem;return true;else return false;4.3.2 商品的删除bool list:

14、deletes(int number) /定义 list 类中删除元素的成员函数 if(elems=0) return false;/若表为空,返回 falseshangpin *tmp=elems;if(elems-number=number)/若待删除的元素为表头元素elems=elems-next;delete tmp;return true;elsefor(shangpin *elem=elems; elem-next!=0; elem=elem-next) if(elem-next-number=number)/循环查找待删除元素tmp=elem-next;elem-next=tmp

15、-next;delete tmp;return true;return false;4.3.3 商品的查找bool list:contain1(int number) if(elems=0)cout 没有此商品 nu mber=nu mber)coutnu mbervv商品名 称:vvelems-namev商品价格:vpricenext!=0; elem=elem-next) if(elem-next-number=number)coutvv 商 品 代 码 : vvelem-next-numbervv 商 品 名 称 : next-name商品的价格:next-price元endl;retu

16、rn true;cout没有此商品next)coutvv 商 品 代 码 : vvelem-numbervv vv 商 品 名 称 : n ame 商品价格:vvelem-Apricevv元next)coutvv 商 品 代 码 : vvelem-numbervv vv 商 品 名 称 : name 商品价格:vvelem-Apricevv元weightvvendl;coutvvendl;4.4 购物功能的实现cout 请输入你所要购买的商品的代码 num4;coutvv请输入你要购买的件数或重量weight;shangpin *p; p=ptr-chazhao(num4); ptr1-ins

17、ert1(p,weight); zonge=zonge+(p-price)*weight;cout是否购物完毕? e ndl; coutvv如果购物完毕,请输入* b *结束购物ch2;coutvv你购买的商品清单如下:print1(); ptr1-shanchu();coutvv你所要支付的总金额为:vvzo ngevve ndl; zonge=0;第五章调试手册与测试数据5.1调试手册(1) 、error C2143: syntax error : missing ; before 行246少了一个分号(2) 、error C2562: main : voidfunction return

18、ing a value空类型不能有返回值(3) 、error C2679: binary : no operator defined whichtakes a right-ha nd opera nd of type (or there is no acceptable conversion) ti.getName 后面少了 ()5.2测试数据:进入演示程序后,即显示对话形式的提示操作过程:思;厂芻胡芒他揮作3进说订汴一加撵代KX W址K 5 w商品忻格霸呷应的功能.切I冲.1 辨.济力擀作 -KitF.n 2n诂冉肚專助_A 口 諾的0 心轴入商品的价格*隹元:) 1GB就迎谜卜.商S%膏I

19、I霸綁&诣希辕相应的功瞰如 靑选扌樂| qU! IH M vn M W W M! I I! II I! 1 !JtUDiftA.茴品管理私兔 懾制HHHV-Vi W V W W WI ill M! M W-库相应的功甌如 显K簧11露亦吨援拧闘萨如徹第六章 实验心得与体会C+课程设计在基本知识上由老师引导,自己很多都靠自学,不 明白的问老师,但由此自学能力得到了很大的培养。在设计过程中, 我感觉到一点: 程序是不能一气呵成的, 至少一气呵成的程序不会尽 善尽美,程序编写要一步一步的完成。首先,对于要编写的程序要有一个总体思想,要明确想要什么, 只要把思想理顺清楚了, 如此才能够把程序分割成几个

20、模块, 即多个 函数,一块一块的编写, 然后将分散的函数用另外的函数起来或者用 main 函数。到了这一步,程序的框架也就完成了,之后就是调试查 错误以及修改了。 为了让自己的程序更加的美观和更加的简洁, 最后 我们还得对程序再进行进一步的修改,优化程序的阶段是很重要的。附录源程序:#include#include struct shangpinint number;char name30;float weight;float price;shangpin *next; class list /定义链表类shangpin *elems; public:list() elems=0;list()

21、;virtual bool insert();void insert1(shangpin *pr,float wgt);/ 此虚函数在派生类中可重新定 义bool insert2();virtual bool deletes(int); /此虚函数在派生类中可重新定义 bool contain(int);bool contain1(int); shangpin *chazhao(int);void print();void print1();void shanchu();class set:public list int card;/将集合类set定义为链表类list的派生类struct sh

22、angpin shp;public:set() bool insert(); /重定义此函数bool deletes(int); /重定义此函数;shangpin *list:chazhao(int number)/若表为空,返回 falseshangpin *tmp=elems;if(elems-number=number)/若待删除的元素为表头return tmp;elsefor(shangpin *elem=elems; elem-next!=0; elem=elem-next) if(elem-next-number=number)/ 循环查找待删除元素tmp=elem-next; r

23、eturn tmp;void list:shanchu()shangpin *tmp=elems;for(shangpin *elem=elems; elem!=0;)tmp=elem; elem=elem-next; delete tmp;list:list() /list 类得析构函数定义,循环释放各元素所占的存储 shangpin *tmp=elems;for(shangpin *elem=elems; elem!=0;)tmp=elem; elem=elem-next; delete tmp;void list:insert1(shangpin *pr,float wgt)shangp

24、in *elem=new shangpin; /为新元素分配存储if (elem!=0) elem-number=pr-number; int i;for(i=0;inamei=pr-namei; elem-weight=wgt;elem-price=pr-price;将新元素插入到链表头 elem-next=elems;elems=elem;bool list:insert2()int num; cinnum;shangpin *elem=new shangpin; / 为新元素分配存储 if (elem!=0) elem-number=num; elem-next=elems; elems

25、=elem; return true;else return false;bool list:insert()/定义 list 类中插入元素的成员函数int num;cout 请再次输入商品的代码 num;shangpin *elem=new shangpin; / 为新元素分配存储if (elem!=0) elem-number=num; cout 请输入商品的名称 elem-name;cout 请输入商品的价格(单位:元) elem-price;将新元素插入到链表头 elem-next=elems;elems=elem; return true;else return false;bool

26、 list:deletes(int number) /定义 list 类中删除元素的成员函数 if(elems=0) return false;/若表为空,返回 falseshangpin *tmp=elems;if(elems-number=number)/若待删除的元素为表头元素elems=elems-next;delete tmp; return true;elsefor(shangpin *elem=elems; elem-next!=0; elem=elem-next) if(elem-next-number=number)/循环查找待删除元素tmp=elem-next;elem-n

27、ext=tmp-next;delete tmp;return true;return false;bool list:contain(int number)/ 判元素 val 在链表中是否存在if(elems=0)return false;if(elems-number=number) return true;else for(shangpin *elem=elems; elem-next!=0; elem=elem-next) if(elem-next-number=number)return true;return false;bool list:contain1(int number)

28、if(elems=0)cout 没有此商品 nu mber=nu mber)coutnu mbervv商品名 称:vvelems-namev商品价格:vpricenext!=0; elem=elem-next) if(elem-next-number=number) coutvv 商 品 代 码 : vvelem-next-numbervv 商 品 名 称 : next-name商品的价格:next-price元endl;return true;cout没有此商品next)coutvv 商 品 代 码 : vvelem-numbervv vv 商 品 名 称 :n ame 商品价格:vvele

29、m-Apricevv元next)coutvv 商 品 代 码 : vvelem-numbervv vv 商 品 名 称 : name 商品价格:vpricev元商品的重量或件 数: weightendl;coutendl;bool set:insert() 在set类中的insert的重定义版本int num1;cout请输入商品代码num1; if(list:contain(num1)=false&list:insert()/先判断此元素是否存在,然后再调用基类的此函数版本+card;return true;return false;bool set:deletes(int number)

30、/在 set类中的 deletes的重定义版本if(list:deletes(number) /调用基类中的此函数版本card-;return true;return false;void ini() coutendl;cc */*endl;cout欢迎进入商品管理系统,请选择相应的功能,如按 1 键,进行添加操作 endl;cout1 :添加 2 :删徐 endl;cout3 :查找4 :显示 endl;coutq :退出endl;*endl;cout请选择:;void inr() coutendl;cout*endl;cout 欢迎进入商店系统,请选择相应的功能,如 按 1 键,进行商品管

31、理操作e ndl;cout 1 :商品管理 2 :购物 endl;cout a :退出 endl;*endl;coutch1;while(ch1!=a&ch1!=a)switch(ch1)case 1:ini();cinch;while(ch!=q&ch!=Q)switch( ch)case 1:ptr-insert(); break;case 2:int num2;cout 请 输 入 你 所 需 要 删 除 的 商 品 代 码 num2;ptr-deletes(num2);break;case 3:cout 请 输 入 你 所 要 查 找 的 商 品 的 代 码 num3;ptr-cont

32、ain1(num3);break;case 4:ptr-print();break;case q:;ini();cinch;break;case 2:ptr-print();char ch2;while(ch2!=b&ch2!=B)int num4;float weight;cout请输入你所要购买的商品的代码num4;coutvv请输入你要购买的件数或重量weight;shangpin *p; p=ptr-chazhao(num4); ptr1-insert1(p,weight); zonge=zonge+(p-price)*weight; cout是否购物完毕? e ndl;coutvv如

33、果购物完毕,请输入* b *结束购物ch2;coutvv你购买的商品清单如下:print1();ptr1-shanchu();coutvv你所要支付的总金额为:vvzo ngevve ndl; zonge=0;break;case a:;inr();cinch1;附录二参考文献1 . 黄维通 贾续涵编著 Vissual C+ 面向对象与可视化程序设计 (第三版):清华大学2 . 严蔚敏 吴伟明 编著数据结构( C 语言版):清华大学3 何鹏飞. Delphi7 程序设计教程. :清华大学, 2003.4 玉起.仓库物流管理数据库系统设计 . :今日科苑,2007年 14 期, 起止页码: 149-150

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!