软件工程实践报告_第1页
软件工程实践报告_第2页
软件工程实践报告_第3页
软件工程实践报告_第4页
软件工程实践报告_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

3、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根据实现的功能,划分出合理的对象类,明确对象类间的关 系.2 利用所学知识,开

6、发小型应用系统,掌握运用 C+知言编写 调试应用系统程序,练习独立开发应用系统,进行数据处理 的综合水平.3全面考核学生所掌握的根本理论知识及其实际业务水平,从 而到达提升学生素质的最终目的.4为每个对象类设计正确的域和方法,为每个方法设计合理的方 法体.同时,为对象类及内部的域和方法运用正确的修饰符, 如访问限制符等.5编程简练,程序功能齐全,能正确运行.6进一步掌握在集成环境下如何调试程序、修改程序和程序的测试第二章 课题介绍-商品销售系统2.1 课设题目编写商品销售统计程序,商品的信息有:商品的名称,计量单 位重量或件,单价.所有商品的信息事先已存入计算机,屏幕上 显示所有商品的名称,选

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

8、示:本程序的商品信息治理可采用既定义一个商品类,每种商品作 为商品类的实例对象存储在链表节点中的数据结构.2.3 问题分析:根据要求这个程序的编写要求,由于包含多种实现要求,所以在 编写时需要多个实现函数,这样就要定义一个类或机构体来统筹各个 函数以及用链表或指针数组来储存输入的常量数据,并且在各个转换点设置相应的提示语句使整个程序便于操作. 在修改数据的函数实现 时,由于一个商品包含多个变量,要想在修改某一个数据后而不影响 其他的数据,所以就必须要有一个 switch语句;在商品信息显示函 数的实现时,由于中间要有一个购置函数的实现, 所以商品数量会随 着商品的购置而减少,所以要将购置的数量

9、另外定义一个变量. 关于 switch语句的运用在这个程序这可能要屡次使用,主要在一个函数 拥有多个变量或变量函数.第三章算法的设计3.1 本程序的流程图开始输入产品编号或产品名称判断编号或名J添加、删除、查询、排序 显示、保称存、汇总、计算结束 结束3.2 算法的思路3.2.1 定义一个结构体,该结构体用来存放商品的代码,名称等信息:struct shangpinint number;char name30;float weight;float price;shangpin *next;);3.2.2 定义list链表类,用来动态的存放商品的信息:class list /定义链表类shang

10、pin *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 *chazhao(int);void print();void print1();void shanchu();3.2.3 定义list的派生

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

12、"欢送进入商店系统,请选择相应的功能,如 按1键,进行商品治理 操作"<<endl;"<<"2 :购物"<<endl;cout<<" 1 :商品治理"<<" cout<<" a :退出"<<endl;cout<<"* *"<<endl;4.2 商品治理界面void ini() cout<<endl;cout<<"* *"<

13、;<endl;如 按1键,进行添加cout<<"欢送进入商品治理系统,请选择相应的功能, 操作"<<endl;cout<<"1添加"<<""<<"2:删徐"<<endl;cout<<"3查找"<<""<<"4:显示"<<endl;cout<<"q退出"<<endl;cout<<

14、"*"<<endl;cout<<"请选择:"4.3 商品治理各功能的实现4.3.1 商品的添加bool list:insert() 定义list类中插入元素的成员函数int num;cout<<"请再次输入商品的代码"<<endl;cin>>num;shangpin *elem=new shangpin; 为新元素分酉已存储if (elem!=0) elem->number=num;cout<<"请输入商品的名称"<<endl

15、;cin>>elem->name;cout<<"请输入商品的价格(单位:元)"<<endl;cin>>elem->price;/将新元素插入到链表头elem->next=elems;elems=elem;return true;else return false;4.3.2 商品的删除bool list:deletes(int number) 定义list类中删除元素的成员函数 if(elems=0) return false;/假设表为空,返回 falseshangpin *tmp=elems;if(ele

16、ms->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->next;delete tmp;return true;return false; )4.3.3 商品的查找bool list:cont

17、ain1(int number)(if(elems=0)cout<<"没有此商品"<<endl;return false;if(elems->number=number)cout<<"商品代码:"<<elems->number<<商品名 称:"<<elems->name<<,怖品价M: "<<elems->price<<endl; return true;elsefor(shangpin *elem=el

18、ems; elem->next!=0; elem=elem->next)if(elem->next->number=number)cout<<"商品代码:"<<elem->next->number<<"商品名称: "vvelem->next->name<v"商品的价格:"<<elem->next->price<<"元"<<endl;return true;coutvv"

19、没有此商品"vvendl;return false;4.3.4 商品的显不void list:print()输出链表中各元素if(elems=0) return;for(shangpin *elem=elems; elem!=0; elem=elem->next)coutvv"商品代码:"vvelem->numbervv" "vv"商品名称: "vvelem->namevv" "vv"商品价格:"vvelem->pricevv"元"vvend

20、l;coutvvendl;void list:print1()/输出链表中各元素if(elems=0) return;for(shangpin *elem=elems; elem!=0; elem=elem->next)coutvv"商品代码:"vvelem->numbervv" "vv"商品名称: "vvelem->namevv" "vv"商品价格:"vvelem->pricevv"元"vv"商品的重量或件 数:"vvelem-&

21、gt;weightvvendl;coutvvendl;4.4 购物功能的实现cout<<"请输入你所要购置的商品的代码"<<endl;cin>>num4;cout<<"请输入你要购置的件数或重量"<<endl;cin>>weight;shangpin *p;p=ptr->chazhao(num4);ptr1->insert1(p,weight);zonge=zonge+(p->price)*weight;cout<<是否购物完毕? "<&

22、lt;endl;cout<<"如果购物完毕,请输入* b *结束购物"<<endl;cout<<"如果继续购物,请随机输入一个字符,但不要输入*b*或*B*"<<endl; cin>>ch2; cout<<"你购置的商品清单如下:"<<endl;ptr1->print1();ptr1->shanchu();cout<<"你所要支付的总金额为:"<<zonge<<endl;zonge=0

23、;错品用.* 第五章调试手册与测试数据5.1 调试手册(1)、error C2143: syntax error : missing '' before ''行246少了一个分号(2)、error C2562: 'main' : 'void' function returning a value 空类型不能有返回值(3)、error C2679: binary '<<' : no operator defined which takes a right-hand operand of type '

24、;' (or there is no acceptable conversion) ti.getName后面少了 ()5.2 测试数据:进入演示程序后,即显示对话形式的提示操作过程:第六章实验心得与体会C+课程设计在根本知识上由老师引导,自己很多都靠自学,不 明白的问老师,但由此自学水平得到了很大的培养.在设计过程中, 我感觉到一点:程序是不能一气呵成的,至少一气呵成的程序不会尽 善尽美,程序编写要一步一步的完成.首先,对于要编写的程序要有一个总体思想,要明确想要什么, 只要把思想理顺清楚了,如此才能够把程序分割成几个模块,即多个 函数,一块一块的编写,然后将分散的函数用另外的函数链接

25、起来或 者用main函数链接.到了这一步,程序的框架也就完成了,之后就 是调试查错误以及修改了.为了让自己的程序更加的美观和更加的简 洁,最后我们还得对程序再进行进一步的修改, 优化程序的阶段是很 重要的.附录源程序:#include<iostream.h>#include <conio.h>struct shangpinint number;char name30;float weight;float price;shangpin *next;class list /定义链表类shangpin *elems;public:list() elems=0;list();v

26、irtual 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 shangpin s

27、hp;public:set() bool insert(); 重定义此函数bool deletes(int); /It 定义止匕函数;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)/循环查找待删除元素

28、tmp=elem->next;return 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

29、 *pr,float wgt)shangpin *elem=new shangpin; 为新元素分酉已存储if (elem!=0) elem->number=pr->number;int i;for(i=0;i<30;i+)elem->namei=pr->namei;elem->weight=wgt;elem->price=pr->price;/将新元素插入到链表头elem->next=elems;elems=elem;bool list:insert2()(int num;cin>>num;shangpin *elem=new

30、 shangpin; 为新元素分酉已存储if (elem!=0) elem->number=num;elem->next=elems;elems=elem;return true; else return false;bool list:insert() 定义list类中插入元素的成员函数int num;cout<<"请再次输入商品的代码"<<endl;cin>>num;shangpin *elem=new shangpin; 为新元素分酉已存储if (elem!=0) elem->number=num;cout<

31、<"请输入商品的名称"<<endl;cin>>elem->name;cout<<"请输入商品的价格(单位:元)"<<endl;cin>>elem->price;/将新元素插入到链表头elem->next=elems;elems=elem;return true; else return false;bool list:deletes(int number) 定义list类中删除元素的成员函数if(elems=0) return false;/假设表为空,返回 falses

32、hangpin *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->next;delete tmp;return true;)return false;)

33、bool list:contain(int number)/判元素val在链表中是否存在if(elems=0)return false;if(elems->number=number) return true;elsefor(shangpin *elem=elems; elem->next!=0; elem=elem->next) if(elem->next->number=number)return true;return false;)bool list:contain1(int number)if(elems=0)cout<<"没有此商

34、品"<<endl;return false;if(elems->number=number)cout<<"商品代码:"<<elems->number<<商品名 称:"<<elems->name<<"ffi品价格:"<<elems->price<<endl; return true;elsefor(shangpin *elem=elems; elem->next!=0; elem=elem->next)if

35、(elem->next->number=number)cout<<"商品代码:"<<elem->next->number<<"商品名称: "<<elem->next->name<<"商品的价格:"<<elem->next->price<<"元"<<endl;return true;cout<<"没有此商品"<<endl;retur

36、n false;void list:print() 输出链表中各元素if(elems=0) return;for(shangpin *elem=elems; elem!=0; elem=elem->next)cout<<"商品代码:"<<elem->number<<" "<<"商品名称:"<<elem->name<<" "<<"商品价格:"<<elem->price<&l

37、t;"元"<<endl;cout<<endl;void list:print1()/输出链表中各元素if(elems=0) return;for(shangpin *elem=elems; elem!=0; elem=elem->next)cout<<"商品代码:"<<elem->number<<" "<<"商品名称:"<<elem->name<<" "<<"商

38、品价格:"<<elem->price<<"元"<<"商品的重量或件 数:"<<elem->weight<<endl;cout<<endl;)bool set:insert() /在set类中的insert的重定义版本int num1;cout<<"请输入商品代码"<<endl;cin>>num1;if(list:contain(num1)=false&&list:insert()/先判断此元

39、素是否存在,然后再调用基类的此函数版本+card;return true;)return false;)bool set:deletes(int number)在 set类中的 deletes的重定义版本if(list:deletes(number) /调用基类中的此函数版本 card-;return true;)return false;)void ini() cout<<endl;cout<<"*"<<endl;cout<<"欢送进入商品治理系统,请选择相应的功能,如 按1键,进行添加 操作"<&

40、lt;endl;cout<<"1添加"<<""<<"2:删徐"<<endl;cout<<"3查找"<<""<<"4:显示"<<endl;cout<<"q退出"<<endl;cout<<"*"<<endl;cout<<请选择: ) void inr() cout<<endl

41、;cout<<"*"<<endl;cout<<"欢送进入商店系统,请选择相应的功能,如 按1键,进行商品治理操作"<<endl;cout<<" 1 :商品治理"<<""<<"2 :购物"<<endl;cout<<" a :退出"<<endl;cout<<"*"<<endl;cout<<"请选择:")void main() list *ptr;set setl; ptr=&set1;list *ptr1;set set2;ptr1=&set2;char ch1;char ch; float zonge=0;inr();cin>>ch1;while(ch1!='a'&&ch1!=

温馨提示

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

评论

0/150

提交评论