C++课程设计商品销售统计.docx
- 文档编号:4904035
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:24
- 大小:626.18KB
C++课程设计商品销售统计.docx
《C++课程设计商品销售统计.docx》由会员分享,可在线阅读,更多相关《C++课程设计商品销售统计.docx(24页珍藏版)》请在冰豆网上搜索。
C++课程设计商品销售统计
商品销售统计
1.需求和规格说明
1.1问题描述
编写商品销售统计程序,商品的信息有商品名、计量单位(重量或件)、单价。
所有商品的信息事先已存入计算机,屏幕上显示所有商品的名称,选择商品名,输入商品计量单位(如重量、件数等),根据单价算出总价。
客户一次可能购买多种商品,程序应计算出客户应付的钱款数。
1.2基本要求
程序分为两个部分:
第一部分用于输入商品的信息并允许修改和删除;第二部分实现销售统计。
程序运行时由用户选择进入哪一部分功能,并能在运行时在两部分之间切换。
第二部分运行时,首先显示所有商品名称及代码(商品数目较多时,应考虑分屏显示),用户输入商品代码及商品重量或件数,用户一次操作可输入若干商品的购买信息,然后输入一个特殊的代码(如“-1”)表示本次购物结束。
此时,程序计算出应付钱款数并显示。
2.设计
2.1文字描述
先定义一个商品类GOODS,含有每种商品基本信息即商品名、计量单位(重量或件)、单价、商品总量皆被定义为私有数据成员;公有成员部分有该类构造函数以及其他友元函数。
为了完成程序基本要求,采用嵌套系统思想,即先构造一个总的系统——商品销售统计工程,通过switch语句可选择进入其下面两个子系统——商品信息管理系统和商品销售系统,以完成程序要求的两个部分的功能。
其中,每个子系统又可根据switch语句进行选择操作,并能实现在两个子系统之间的切换。
2.2图示
3.用户手册
根据提示选择操作即可,具体为:
(1)程序运行时,首先要求初始化商品信息,即需添加销售的商品名称、单价等;
(2)根据需求选择进入商品信息管理系统或者商品销售系统,其中前者可进行的操作有:
录入新商品信息、修改商品信息、删除商品信息等,后者为用户提供购买商品功能,只需根据提示操作即可;
注意:
请输入与程序要求相应的选择以及正确的格式,不要超出程序给定的范围!
4.附录源代码
#include
#include
#include
usingnamespacestd;
intchoice;
classGOODS
{
private:
stringname;//商品名
stringunit;//计量单位
doubleprice_per_unit;//单价
doubleamount;//商品总数
public:
GOODS();//构造函数
//排序函数,使得信息为空的商品类数组元素沉底,不为空的排在前面(被"删除商品信息函数"调用)
friendvoidsort(GOODSarray[],intsize);
friendvoidinput_gds_mesg(GOODSgoods1[],intsize);//底层函数:
录入商品信息(从属于商品信息管理系统)
friendvoidMessage_modify(GOODSgoods2[],intsize);//底层函数:
修改商品信息(从属于商品信息管理系统)
friendvoidMessage_delete(GOODSgoods3[],intsize);//底层函数:
删除商品信息(从属于商品信息管理系统)
friendvoidGoods_Message_Manage(GOODSGoods1[],intsize);//中层函数:
1.商品信息管理系统(从属于商品销售统计工程)
friendvoidGoods_Sale(GOODSGoods2[],intsize);//中层函数:
2.商品销售系统(从属于商品销售统计工程)
friendvoidWORK(GOODSGoods[],intsize);//高层函数:
商品销售统计工程
};
GOODS:
:
GOODS()
{
name="0";
unit="0";
price_per_unit=0.0;
amount=0;
}
voidinput_gds_mesg(GOODSgoods1[],intsize)//底层函数:
录入商品信息函数(从属于商品信息管理系统)
{
inti,j,m=0;
ints=size;
intn=size;
stringl;
for(i=0;i
{
if(goods1[i].name!
="0")m++;
elseif(goods1[i].name=="0")s=m;
}
for(j=m;j { cout<<"________________________________________________________________________"< cout<<">>>请输入第"< __"; cin>>goods1[j].name; cout< cout<<">>>请输入第"< __"; cin>>goods1[j].unit; cout< cout<<">>>请输入第"< __"; cin>>goods1[j].price_per_unit; cout< cout<<">>>请输入第"< __"; cin>>goods1[j].amount; cout<<"________________________________________________________________________"< cout< cout<<"__继续录入商品信息? (y/n)__"; cin>>l; cout< if(l=="n"||l=="N")n=j; elseif(l=="y"||l=="Y"){}; } cout<<"__商品信息录入完成! "< cout<<"________________________________________________________________________"< return; } voidMessage_modify(GOODSgoods2[],intsize)//底层函数: 修改商品信息函数(从属于商品信息管理系统) { if(goods2[0].name=="0") { cout<<"Caution: 当前无商品信息,请返回更新! (y/n)__"; stringc; cin>>c; cout<<"________________________________________________________________________"< cout< if(c=="y"||c=="Y") { Goods_Message_Manage(goods2,size); WORK(goods2,size); } else { cout<<">>>>>>>>>>>>>>>>>>>>>>>>>>>谢谢使用,祝您愉快! 再见! <<<<<<<<<<<<<<<<<<<<<<<<<<"< exit(0); } } stringp,q; intn; stringunit; stringname; doubleprice; doubleamount; intchoice2; do { do { cout<<"---------------------------商品信息列表--------------------------"< cout<<"\t商品编号\t商品名称\t商品单价\t商品余量"< inti,m=0; ints=size; for(i=0;i { if(goods2[i].name! ="0")m++; elseif(goods2[i].name=="0")s=m; } for(i=0;i { cout<<"\t"< } cout<<"________________________________________________________________________"< cout<<">>>请输入您想修改信息的商品编号: __"; //intn; cin>>n; cout<<"________________________________________________________________________"< cout< cout<<"__您想修改信息的商品为: "< //stringp; cin>>p; cout< if(p=="y"||p=="Y") {cout<<"________________________________________________________________________"< do { cout<<"1.修改商品名称"< cout<<"2.修改商品计量单位"< cout<<"3.修改商品单价(元)"< cout<<"4.修改商品数量"< cout<<"________________________________________________________________________"< cout<<">>>请输入您的选择(1-4): __"; cin>>choice2; cout< switch(choice2) { case1: cout<<">>>请输入"< __"; //! ! stringname; cin>>name; goods2[n-1].name=name; break; case2: cout<<">>>请输入"< __"; //! ! stringunit; cin>>unit; goods2[n-1].unit=unit; break; case3: cout<<">>>请输入"< __"; //! ! doubleprice; cin>>price; goods2[n-1].price_per_unit=price; break; case4: cout<<">>>请输入"< __"; //! ! intnum; cin>>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<<"________________________________________________________________________"< cout<<"__继续修改商品信息(y/n)? __"; //stringq; cin>>q; cout< }while(q=="y"||q=="Y"); cout<<"__商品信息修改完成! "; cout<<"________________________________________________________________________"< return; } voidsort(GOODSarray[],intsize)//排序函数,使得信息为空的商品类数组元素沉底,不为空的排在前面(被"删除商品信息函数"调用) { inti,j; GOODStemp; for(i=0;i { for(j=0;j { if(array[j].name=="0"&&array[j+1].name! ="0") { temp=array[j]; array[j]=array[j+1]; array[j+1]=temp; } } } return; } voidMessage_delete(GOODSgoods3[],intsize)//底层函数: 删除商品信息函数(从属于商品信息管理系统) { if(goods3[0].name=="0") { cout<<"Caution: 对不起,当前无商品信息,请返回更新! (y/n)__"; stringc; cin>>c; cout<<"________________________________________________________________________"< cout< if(c=="y"||c=="Y") { Goods_Message_Manage(goods3,size); WORK(goods3,size); } else { cout<<">>>>>>>>>>>>>>>>>>>>>>>>>>>谢谢使用,祝您愉快! 再见! <<<<<<<<<<<<<<<<<<<<<<<<<<"< exit(0); } } stringp,q; intn; stringunit; //doubleprice; do { do { cout<<"---------------------------商品信息列表--------------------------"< cout<<"\t商品编号\t商品名称\t商品单价\t商品余量"< inti,m=0; ints=size; for(i=0;i { if(goods3[i].name! ="0")m++; elseif(goods3[i].name=="0")s=m; } for(i=0;i { cout<<"\t"< } cout<<"________________________________________________________________________"< cout<<">>>请输入您想删除信息的商品编号: __"; //intn; cin>>n; cout< cout<<"__您想删除信息的商品为: "< //stringp; cin>>p; cout< if(p=="y"||p=="Y") { goods3[n-1].name="0"; goods3[n-1].unit="0"; goods3[n-1].price_per_unit=0.0; goods3[n-1].amount=0; } cout<<"________________________________________________________________________"< }while(p=="n"||p=="N"); cout<<"__继续删除商品信息(y/n)? __"; //stringq; cin>>q; cout< }while(q=="y"||q=="Y"); cout<<"__商品信息删除完成! "; cout<<"________________________________________________________________________"< sort(goods3,size); return; } voidGoods_Message_Manage(GOODSGoods1[],intsize)//中层函数: M.商品信息管理系统(从属于商品销售统计工程) { intchoice1; do { cout<<"★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★"< cout<<"★★"< cout<<"★商品信息管理系统★"< cout<<"★★"< cout<<"★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★"< cout<<">>>>>>>>>>>>>>>>>>>>>>请选择您要执行的操作<<<<<<<<<<<<<<<<<<<<<"< cout<<"1.录入新商品信息"< cout<<"2.修改商品信息"< cout<<"3.删除商品信息"< cout<<"4.返回"< cout<<"0.退出"; cout<<"_____________________________________________________________"< cout<<">>>请输入您的选择: (0-4)__"; cin>>choice1; cout< switch(choice1) { case1: input_gds_mesg(Goods1,size); break; case2: Message_modify(Goods1,size); break; case3: Message_delete(Goods1,size); break; case4: WORK(Goods1,size); break; case0: cout<<">>>>>>>>>>>>>>>>>>>>>>>>>>>谢谢使用,祝您愉快! 再见! <<<<<<<<<<<<<<<<<<<<<<<<<<"< exit(0); break; default: cout<<"对不起,您的输入有误,请重新进行选择! "< break; } }while(choice1! =0&&choice1! =1&&choice1! =2&&choice1! =3&&choice1! =4); return; } voidGoods_Sale(GOODSGoods2[],intsize)//中层函数: S.商品销售系统(从属于商品销售统计工程) { if(Goods2[0].name=="0") { cout<<"Caution: 对不起,当前无商品信息,请返回更新! (y/n)__"; stringc; cin>>c; cout<<"________________________________________________________________________"< cout< if(c=="y"||c=="Y") { Goods_Message_Manage(Goods2,size); WORK(Goods2,size); } else { cout<<">>>>>>>>>>>>>>>>>>>>>>>>>>>谢谢使用,祝您愉快! 再见! <<<<<<<<<<<<<<<<<<<<<<<<<<"< exit(0); } } stringp,q; intnum[1000],amount[1000];//num[]存放所要购买商品的编号,amount[]存放购买的每种商品数量 intj=0,f=0,r=0; stringunit; doublemoney=0.0; do { do { cout<<"________________________________________________________________________"< cout<<"---------------------------商品信息列表--------------------------"< cout<<"\t商品编号\t商品名称\t商品单价\t商品余量"<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 课程设计 商品 销售 统计