《C课程设计-商品销售统计.doc》由会员分享,可在线阅读,更多相关《C课程设计-商品销售统计.doc(18页珍藏版)》请在三一办公上搜索。
1、-商品销售统计1. 需求和规格说明 1.1 问题描述编写商品销售统计程序,商品的信息有商品名、计量单位重量或件、单价。所有商品的信息事先已存入计算机,屏幕上显示所有商品的名称,选择商品名,输入商品计量单位如重量、件数等,根据单价算出总价。客户一次可能购置多种商品,程序应计算出客户应付的钱款数。 1.2根本要求程序分为两个局部:第一局部用于输入商品的信息并允许修改和删除;第二局部实现销售统计。程序运行时由用户选择进入哪一局部功能,并能在运行时在两局部之间切换。第二局部运行时,首先显示所有商品名称及代码商品数目较多时,应考虑分屏显示,用户输入商品代码及商品重量或件数,用户一次操作可输入假设干商品的
2、购置信息,然后输入一个特殊的代码如-1表示本次购物完毕。此时,程序计算出应付钱款数并显示。2. 设计 2.1 文字描述先定义一个商品类GOODS,含有每种商品根本信息即商品名、计量单位重量或件、单价、商品总量皆被定义为私有数据成员;公有成员局部有该类构造函数以及其他友元函数。为了完成程序根本要求,采用嵌套系统思想,即先构造一个总的系统商品销售统计工程,通过switch语句可选择进入其下面两个子系统商品信息管理系统和商品销售系统,以完成程序要求的两个局部的功能。其中,每个子系统又可根据switch语句进展选择操作,并能实现在两个子系统之间的切换。 2.2 图示3.用户手册根据提示选择操作即可,具
3、体为:(1) 程序运行时,首先要求初始化商品信息,即需添加销售的商品名称、单价等;(2) 根据需求选择进入商品信息管理系统或者商品销售系统,其中前者可进展的操作有:录入新商品信息、修改商品信息、删除商品信息等,后者为用户提供购置商品功能,只需根据提示操作即可;注意:请输入与程序要求相应的选择以及正确的格式,不要超出程序给定的范围!4. 附录 源代码#include#include#includeusing namespace std;int choice;class GOODSprivate:string name; /商品名string unit; /计量单位 double price_pe
4、r_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 Messa
5、ge_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
6、_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;is;i+)if(goods1i.name!=0)m+;else if(goods1i.name=0)s=m;for(j=m;jn;j+)cout _ endl;cout请输入第j+1goods1j.name;coutendl; cout请输入第j+1goods1j.unit;coutendl; cout请输
7、入第j+1goods1j.price_per_unit;coutendl;cout请输入第j+1goods1j.amount;cout _ endl;coutendl;coutl;coutendl;if(l=n|l=N)n=j;else if(l=y|l=Y);cout_商品信息录入完成!endlendl;cout _ endl;return;void Message_modify(GOODS goods2,int size) /底层函数:修改商品信息函数附属于商品信息管理系统if(goods20.name=0)coutc;cout _ endl;coutendl;if(c=y|c=Y)Goo
8、ds_Message_Manage(goods2,size);WORK(goods2,size);else cout 谢谢使用,祝您愉快!再见!endl;e*it(0);string p,q;int n;string unit;string name;double price;double amount;int choice2;dodocout -商品信息列表- endlendl; coutt商品编号t商品名称t商品单价t商品余量endlendl; int i,m=0; int s=size; for(i=0;is;i+)if(goods2i.name!=0)m+; else if(goods
9、2i.name=0)s=m; for(i=0;im;i+) coutti+1.ttgoods2i.nametgoods2i.price_per_unit元/goods2i.unittgoods2i.amountgoods2i.unitendlendl;cout _ endl; cout请输入您想修改信息的商品编号:_;/ int n; cinn;cout _ endl;coutendl; cout_您想修改信息的商品为:n.goods2n-1.namep;coutendl; if(p=y|p=Y) cout _ endl;docout1.修改商品名称endlendl; cout2.修改商品计量
10、单位endlendl; cout3.修改商品单价元endlendl; cout4.修改商品数量endlendl;cout _ endl; cout请输入您的选择1-4:_; cinchoice2; coutendl; switch(choice2) case 1: cout请输入n号商品goods2n-1.namename; goods2n-1.name=name; break; case 2: cout请输入n号商品goods2n-1.nameunit;goods2n-1.unit=unit;break;case 3:cout请输入n号商品goods2n-1.nameprice;goods2
11、n-1.price_per_unit=price;break;case 4:cout请输入n号商品goods2n-1.nameamount;goods2n-1.amount=amount;break;default:coutCaution:对不起,输入有误,请从新输入!;break;while(choice2!=1&choice2!=2&choice2!=3&choice2!=4);while(p=n|p=N);cout _ endl;coutq;coutendl;while(q=y|q=Y);cout_商品信息修改完成! ;cout _ endl;return;void sort(GOODS
12、 array,int size) /排序函数,使得信息为空的商品类数组元素沉底,不为空的排在前面被删除商品信息函数调用int i,j;GOODS temp;for(i=0;isize-1;i+)for(j=0;jsize-1-i;j+)if(arrayj.name=0&arrayj+1.name!=0)temp=arrayj;arrayj=arrayj+1;arrayj+1=temp;return;void Message_delete(GOODS goods3,int size) /底层函数:删除商品信息函数附属于商品信息管理系统if(goods30.name=0)coutc;cout _
13、endl;coutendl;if(c=y|c=Y)Goods_Message_Manage(goods3,size);WORK(goods3,size);else cout 谢谢使用,祝您愉快!再见!endl;e*it(0);string p,q;int n;string unit;/double price;dodocout -商品信息列表- endlendl; coutt商品编号t商品名称t商品单价t商品余量endlendl; int i,m=0; int s=size; for(i=0;is;i+)if(goods3i.name!=0)m+; else if(goods3i.name=0
14、)s=m; for(i=0;im;i+) coutti+1ttgoods3i.nametgoods3i.price_per_unit元/goods3i.unittgoods3i.amountgoods3i.unitendlendl;cout _ endl;cout请输入您想删除信息的商品编号:_;/ int n; cinn;coutendl; cout_您想删除信息的商品为:n.goods3n-1.namep;coutendl; if(p=y|p=Y)goods3n-1.name=0;goods3n-1.unit=0; goods3n-1.price_per_unit=0.0;goods3n-
15、1.amount=0;cout _ endl;while(p=n|p=N);coutq;coutendl;while(q=y|q=Y);cout_商品信息删除完成! ;cout _ endl;sort(goods3,size);return;void Goods_Message_Manage(GOODS Goods1,int size) /中层函数:M.商品信息管理系统附属于商品销售统计工程int choice1;docout * endl;cout * endl;cout * 商品信息管理系统 * endl;cout * endl;cout * endlendl;cout 请 选 择 您 要
16、 执 行 的 操 作 endlendl;cout 1.录入新商品信息 endl;cout 2.修改商品信息 endl;cout 3.删除商品信息 endl; cout 4.返回 endl; cout 0.退出 ;cout _ endl; cout请输入您的选择:0-4_;cinchoice1;coutendl;switch(choice1)case 1:input_gds_mesg(Goods1,size);break;case 2: Message_modify(Goods1,size);break;case 3: Message_delete(Goods1,size);break;case
17、 4:WORK(Goods1,size);break;case 0:cout 谢谢使用,祝您愉快!再见!endl;e*it(0);break;default:cout对不起,您的输入有误,请重新进展选择!endlendl; break;while(choice1!=0&choice1!=1&choice1!=2&choice1!=3&choice1!=4);return;void Goods_Sale(GOODS Goods2,int size) /中层函数:S.商品销售系统附属于商品销售统计工程if(Goods20.name=0)coutc;cout _ endl;coutendl;if(c
18、=y|c=Y)Goods_Message_Manage(Goods2,size);WORK(Goods2,size);else cout 谢谢使用,祝您愉快!再见!endl;e*it(0);string p,q;int num1000,amount1000; /num存放所要购置商品的编号,amount存放购置的每种商品数量int j=0,f=0,r=0;string unit;double money=0.0;dodocout _ endl;cout -商品信息列表- endlendl; coutt商品编号t商品名称t商品单价t商品余量endlendl; int i,m=0; int s=s
19、ize; for(i=0;is;i+)if(Goods2i.name!=0)m+; else if(Goods2i.name=0)s=m;for(i=0;im;i+) coutti+1ttGoods2i.nametGoods2i.price_per_unit元/Goods2i.unittGoods2i.amountGoods2i.unitendlendl;cout _ endl;cout请输入您想购置的商品的编号输入0完毕:endl;/ int numsize;for(j=0;numj-1!=0;j+)coutnumj;/do/cinnumj;/j+;/while(numj-1!=0);cou
20、t_您想购置的商品为:endlendl;cout _ endl; cout_商品编号t商品名称endlendl;for(f=0;fj-1;f+) if(numf!=0) coutnumfttGoods2numf-1.nameendlendl;cout _ endl;coutp;cout _ endl;coutendl; if(p=y|p=Y)cout请输入您想购置的商品数量:endlendl;cout _ endl; cout商品编号t商品名称t购置数量endlendl;for(f=0,r=0;(fj-1)&(rsize);f+,r+)if(numf!=0)coutnumfttGoods2nu
21、mf-1.nameamountr;Goods2numf-1.amount-=amountr;coutendl;cout _ endl;while(p=n|p=N);cout_您购置的商品信息如下:endlendl;cout _ endl;coutt商品编号t商品名称t商品单价t购置数量endlendl;for(f=0,r=0;(fj-1)&(rsize);f+,r+) if(numf!=0)couttnumfttGoods2numf-1.nametGoods2numf-1.price_per_unit元/Goods2numf-1.unittamountrGoods2numf-1.unitend
22、lendl;cout _ endl;for(f=0,r=0;(fj-1)&(rsize);f+,r+)if(numf!=0)money+=Goods2numf-1.price_per_unit*amountr;cout_您一共应支付money元.endlendl;cout _ endl;coutq;coutendl;while(q=y|q=Y);cout 谢谢惠顾,欢送再来! endlendl; WORK(Goods2,size);void WORK(GOODS Goods,int size) /高层函数:商品销售统计工程docout 请 选 择 您 要 执 行 的 操 作 endl;cout 1.商品信息管理系统 endl; cout 2.商品销售系统 endl; cout 0.退出 ; cout _ endl;cout 请输入您的选择:0-2_;cinchoice;cout _ endl; switch(choice)case 1: Goods_Message_Manage(Goods,size);break;case 2:Goods_Sale(Goods,size); break;case 0: cout 谢谢使用,祝您愉快!再见!