C++课程设计---商品销售统计.docx_第1页
C++课程设计---商品销售统计.docx_第2页
C++课程设计---商品销售统计.docx_第3页
C++课程设计---商品销售统计.docx_第4页
C++课程设计---商品销售统计.docx_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

课程设计报告设计题目:综合类题目3. 商品销售统计学生姓名专业班级:计算机科学以技术10-01班学号 :指导老师:完成日期:2011年7月2月(一) 需求和规格说明问题描述编写商品销售统计程序,商品的信息有:商品的名称,计量单位(重量或件),单价。所有商品的信息事先已存入计算机,屏幕上显示所有商品的名称,选择商品名,输入商品计量单位(如重量,件数等),根据单价算出总价。客户一次购物可能购买多种商品,程序应计算出客户应付的钱款数。基本要求程序分为两个部分:第一部分用于输入商品的信息并允许修改和删除;第二部分实现销售统计。程序运行时由用户选择进入哪一部分功能,并能在运行时在两部分之间切换。第二部分运行时,首先显示所有商品名称及代码(商品数目较多时,应考虑分屏显示),用户输入商品代码及商品重量或件数,用户一次操作可输入若干商品的购买信息,然后输入一个特殊的代码(如-1)表示本次购物结束。此时。程序计算出应付钱款数并显示。测试数据程序应输入不少于10种商品的信息,并进行模拟运行。实现提示本程序的商品信息管理可采用与课程设计题目二类似的数据结构,既定义一个商品类,每种商品作为商品类的实例(对象)存储在链表节点中。选做内容程序在营业结束时统计每种商品的销售量,销售金额及总营业额。因此第二部分应有营业结束的选择,当用户选择此项时屏幕上显示当天营业的每种商品的销售量,销售金额及总营业额。注意,商品类的数据成员应增加有商品的销售量和销售金额。总营业额是所有商品的营业额之和,可用静态数据成员实现。或可由原商品类派生出一个特殊的类,增加上面的数据成员及相应的成员函数。(二) 设计定义一个结构体,该结构体用来存放商品的代码,名称等信息定义list链表类,用来动态的存放商品的信息;定义list的派生类set类,用来对商品进行操作;(三) 用户手册程序运行时,首先选择相关的操作根据要求逐步操作(四) 调试及测试运行实例:源程序:#include#include struct shangpinint number;char name30;float weight;float price;shangpin *next;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 *chazhao(int); void print(); void print1(); void shanchu();class set:public list int card;/将集合类set定义为链表类list的派生类 struct shangpin shp; public: set() bool insert(); /重定义此函数 bool deletes(int); /重定义此函数;shangpin *list:chazhao(int number) /若表为空,返回false shangpin *tmp=elems; if(elems-number=number) /若待删除的元素为表头元素 return tmp; else for(shangpin *elem=elems; elem-next!=0; elem=elem-next) if(elem-next-number=number) /循环查找待删除元素 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 *pr,float wgt)shangpin *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=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 list:deletes(int number) /定义list类中删除元素的成员函数 if(elems=0) return false; /若表为空,返回false shangpin *tmp=elems; if(elems-number=number) /若待删除的元素为表头元素 elems=elems-next; delete tmp; return true; else for(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;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)if(elems=0)cout没有此商品number=number)cout商品代码:number商品名称:name商品价格:pricenext!=0; elem=elem-next)if(elem-next-number=number)cout商品代码:next-number商品名称:next-name商品的价格:next-price元endl;return true;cout没有此商品next) cout商品代码:number 商品名称:name 商品价格:price元endl; coutnext) cout商品代码:number 商品名称:name 商品价格:price元商品的重量或件数: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) /在set类中的deletes的重定义版本 if(list:deletes(number) /调用基类中的此函数版本 card-; return true; return false;void ini() coutendl;cout*endl;cout 欢迎进入商品管理系统,请选择相应的功能,如 按 1 键,进行添加操作endl;cout 1 :添加 2 :删徐 endl;cout 3 :查找 4 :显示 endl;cout q :退出endl;cout*endl;cout请选择:;void inr() coutendl;cout*endl;cout 欢迎进入商店系统,请选择相应的功能,如 按 1 键,进行商品管理操作endl;cout 1 :商品管理 2 :购物endl;cout a :退出endl;cout*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-contain1(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;cout请输入你要购买的件数或重量weig

温馨提示

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

评论

0/150

提交评论