商品销售统计1. 需求和规格说明1.1 问题描述 编写商品销售统计程序,商品的信息有商品名、计量单位(重量 或件)、单价所有商品的信息事先已存入计算机,屏幕上显示所有 商品的名称,选择商品名,输入商品计量单位(如重量、件数等) , 根据单价算出总价 客户一次可能购买多种商品, 程序应计算出客户 应付的钱款数1.2 基本要求程序分为两个部分: 第一部分用于输入商品的信息并允许修改和 删除;第二部分实现销售统计 程序运行时由用户选择进入哪一部分 功能,并能在运行时在两部分之间切换第二部分运行时,首先显示 所有商品名称及代码(商品数目较多时,应考虑分屏显示) ,用户输 入商品代码及商品重量或件数, 用户一次操作可输入若干商品的购买 信息,然后输入一个特殊的代码(如“ -1 ”)表示本次购物结束此 时,程序计算出应付钱款数并显示2. 设计2.1 文字描述先定义一个商品类 GOODS ,含有每种商品基本信息即商品名、 计量单位(重量或件) 、单价、商品总量皆被定义为私有数据成员; 公有成员部分有该类构造函数以及其他友元函数为了完成程序基本要求, 采用嵌套系统思想, 即先构造一个总的 系统——商品销售统计工程,通过 switch 语句可选择进入其下面两 个子系统——商品信息管理系统和商品销售系统, 以完成程序要求的 两个部分的功能。
其中,每个子系统又可根据 switch 语句进行选择 操作,并能实现在两个子系统之间的切换2.2图示类名类别类型名称说明privatestri ngn ame商品名privatestri ngun it计量单位privatedoubleprice per un it单价privatedoubleamount商品总数publicGOODS)构造函数GOODSfriendviodsort()排序,使得信息为空的商品沉底friendviodin put gds mesg()底层函数:录入商品信息friendviodMessage modify()底层函数:修改商品信息friendviodMessage delete()底层函数:删除商品信息friendviodGoods Message Ma nage()中层函数:1.商品信息管理系统friendviodGoods Sale()中层函数:2.商品销售系统friendviodWORK()高层函数:商品销售统计工程3. 用户手册根据提示选择操作即可,具体为:(1)程序运行时,首先要求初始化商品信息,即需添加销售的商品名称、单价等;(2 )根据需求选择进入商品信息管理系统或者商品销售系统, 其中前者可进行的操作有:录入新商品信息、修改商品信息、删除商 品信息等,后者为用户提供购买商品功能,只需根据提示操作即可; 注意:请输入与程序要求相应的选择以及正确的格式, 不要超出程序给定的范围!4. 附录源代码#in clude#in clude#in cludeusing n amespace std;int choice;class GOODS{private:string name; // 商品名string unit; // 计量单位double price_per_unit; // 单价double amount; // 商品总数public:GOODS(); // 构造函数// 排序函数,使得信息为空的商品类数组元素沉底,不为空的排在前面(被 "删除商品信息函数 "调用)friend void sort(GOODS array[],int size);friend void input_gds_mesg(GOODS goods1[],int size); // 底层函 数:录入商品信息 (从属于商品信息管理系统 )friend void Message_modify(GOODS goods2[],int size); // 底层函 数:修改商品信息(从属于商品信息管理系统)friend void Message_delete(GOODS goods3[],int size); // 底层函 数:删除商品信息(从属于商品信息管理系统)friend void Goods_Message_Manage(GOODS Goods1[],int size); // 中层函数: 1.商品信息管理系统(从属于商品销售统计工程)friend void Goods_Sale(GOODS Goods2[],int size); // 中层函数: 2.商品销售系统(从属于商品销售统计工程)friend void WORK(GOODS Goods[],int size); // 高层函数:商品销 售统计工程};GOODS::GOODS(){name="0";unit="0";price_per_unit=0.0;amount=0;void input_gds_mesg(GOODS goods1[],int size) // 底层函数:息函数 (从属于商品信息管理系统 ){int i,j,m=0;int s=size;int n=size;string l;for(i=0;i>> 请输入第 "<>goods1[j].name;种商品的名称:"<>> 请输入第 "<>goods1[j].unit;cout<>> 请输入第 "<>goods1[j].price_per_unit;种商品的计量单位:种商品的单价(元)cout<>> 请输入第 "<>goods1[j].amount;cout<<"cout<>l;cout<>c;cout<<""<>>>>>>>>>>>>>>>>>>>>>>>>>> 祝您愉快!再见! <<<<<<<<<<<<<<<<<<<<<<<<<<"<>> 请输入您想修改信息的商品编号: __";//int n; cin>>n; cout<<""<>p;cout<>> 请输入您的选择( 1-4 ):__"; cin>>choice2;cout<>> 请 输 入 "<>name;goods2[n-1].name=name;break; case 2: cout<<">>> 请 输 入 "<>unit;goods2[n-1].unit=unit;break; case 3:cout<<">>> 请 输 入 "<>price;goods2[n-1].price_per_unit=price; break;case 4: cout<<">>> 请 输 入 "<>amount;goods2[n-1].amount=amount;break;default:cout<<"Caution: 对不起,输入有误,请从新输入! "; break;}while(choice2!=1&&choice2!=2&&choice2!=3&&choice2!=4);}}while(p=="n"||p=="N");cout<<""<>q; cout<>c;cout<<""<>>>>>>>>>>>>>>>>>>>>>>>>>> 谢谢使用, 祝您愉快!再见! <<<<<<<<<<<<<<<<<<<<<<<<<<"<>> 请输入您想删除信息的商品编号: // int n;cin>>n;cout<>p;cout<>q; cout<>>>>>>>>>>>>>>>>>>>>>请选择您要执行 的 操 作 <<<<<<<<<<<<<<<<<<<<<"<>> 请输入您的选择:(0-4 )__"cin>>choice1;cout<>>>>>>>>>>>>>>>>>>>>>>>>>> 谢谢使用, 祝您愉快!再见! <<<<<<<<<<<<<<<<<<<<<<<<<<"<>c; cout<<""<>>>>>>>>>>>>>>>>>>>>>>>>>> 谢谢使用, 祝您愉快!再见! <<<<<<<<<<<<<<<<<<<<<<<<<<"<>> 请输入您想购买的商品的编号(输入“ 0”结束):"<>num[j];}//do// {// cin>>num[j];// j++;// }while(num[j-1]!=0);cout<<"__ 您想购买的商品为: "<>p;cout<<""<>> 请输入您想购买的商品数量: "<>amount[r];Goods2[num[f]-1].amount-=amount[r]; cout<>q;cout<>>>>>>>>>>>>>>>>>>>>>>>>>> 谢谢惠顾, 欢迎再来! <<<<<<<<<<<<<<<<<<<<<<<<<< "<>>>>>>>>>>>>>>>>>>>>>>>> 请 选 择 您 要1. 商品信息管理系统执 行 的 操 作 <<<<<<<<<<<<<<<<<<<<<<<<"<>> 请输入您的选择:(0-2 )__"cin>>choice;cout<<""<>>>>>>>>>>>>>>>>>>>>>>>>>> 谢谢使用, 祝您愉快!再见! <<<<<<<<<<<<<<<<<<<<<<<<<<"<->>->->->->->->->->->->->W E L C O M E<-<-<-<-<-<-<-<-<-<-<-<-<- "<»»»»»»»»»»»»请选择您要执行的臬乍》》》请输入您的:先掙匚(曲-2)一、»请输入您的说择=(0-2)_1*****»»»»»»»»»»» 谙洗择您要执行的擬作 <<<<<<<<<<<<<<<<<<<<<2 ■修改商品信息4-返回二T入雲弩(I•H:展卷設计…商匠畢告逆计至猛\兀儿0巨曰證帅十冢紀尸注皆禺纯生元丿罐4阴罐农夫山臬2元/瓶S00JR》”清输入您担购买的屋品的编呂(输入结東): 1一一一4――~D—您想岡英的曲品対=— —商品编号 商品名称盘山塹冃农。