C++课程设计《商品销售管理系统》.docx
- 文档编号:6532665
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:24
- 大小:50.21KB
C++课程设计《商品销售管理系统》.docx
《C++课程设计《商品销售管理系统》.docx》由会员分享,可在线阅读,更多相关《C++课程设计《商品销售管理系统》.docx(24页珍藏版)》请在冰豆网上搜索。
C++课程设计《商品销售管理系统》
C++课设商品销售管理系统
1、需求分析......................................2
2、概要设计......................................2
3、详细设计......................................3
4、调试分析......................................9
5、用户手册.....................................10
6、测试数据.....................................11
7、附录.........................................12
—1—
一、需求分析
商品销售管理程序
商品信息:
商品编号、商品名称、商品类别(普通电视机、DVD、带DVD的电视机,带DVD的电视机的售价为普通电视机和DVD单价之和的80%)、商品进货价格、商品销售价格、商品数量、供应商名称等。
记录每一次销售商品的数量和价格,并提供对已售出商品的价格、数量进行统计、排序功能,但允许用户退商品。
(要求:
1.源文件采用多文件的工程结构2.数据存储采用文件形式3.标准的C输入输出4.功能完善,适当的注释,5.关于文件的内容需要自学)
2、概要设计
1、数据类(classData)的数据类型定义:
classData//数据类
{
private:
intid;//产品编号
charname[100];//产品名称
intcount;//库存数量
intsalecount;//已售数量
floatiprice;//进价
floatoprice;//售价
chargys[20];//供应商
Public:
//公有函数
intgetid()//获取id
char*getname()//获取产品名
Intgetcount()//获取库存量
Intgetsalecount()//获取已售量
Floatgetbuy()//获取进价
Floatgetsale()//获取售价
Char*getgys()//获取供应商
—2—
Voidsetid(intn)//输入id
Voidsetname(charna[])//产品名
Voidsetcount(intc)//库存量
Voidsetsalecount(ints)//已售量
Voidsetbuy(floati)//进价
Voidsetsale(floato)//售价
Voidsetgys(charg[])//供应商
};
2、classcommodity商品类设计:
classCommodity//商品类
{
private:
Datat[50];//数组
—2—
intn;//商品数量
public:
voidnewFile()//添加商品信息
voidshowData(inti)//显示商品信息
voidshowData()//显示文字信息
voidsave()//写入数据至文件
intsearch()//商品查询
voidsale()//商品销售结算
voidshowSale()//销售清单
inlinevoidmenu()//主菜单
3、本程序结构
(1)主函数
Voidmain(){
menu();
Commoditycom;
intc;
switch(c){return}
Break;}
(2)数据类——实现对数据的输入输出。
(3)商品类——系统各项功能的实现。
三、详细设计
(1)数据类
classData//数据类
{
private:
intid;//产品编号
charname[100];//产品名称
intcount;//库存数量
intsalecount;//已售数量
floatiprice;//进价
floatoprice;//售价
chargys[20];//供应商
public:
intgetId()
{
returnid;
}
char*getName()
{
returnname;
}
intgetCount()
{
—3—
returncount;
}
intgetSaleCount()
{
returnsalecount;
}
floatgetBuy()
{
returniprice;
}
floatgetSale()
{
returnoprice;
}
char*getGys()
{
returngys;
}
//----------------------
voidsetId(intn)
{
id=n;
}
voidsetName(charna[])
{
strcpy(name,na);
}
voidsetCount(intc)
{
count=c;
}
voidsetSaleCount(ints)
{
salecount=s;
}
voidsetBuy(floati)
{
iprice=i;
}
voidsetSale(floato)
{
oprice=o;
}
—4—
//...................
voidsetGys(charg[])
{
strcpy(gys,g);
}
};
(2)商品类
classCommodity//商品类
{
private:
Datat[50];//数组
intn;//商品数量
public:
voidnewFile()
{
intid;
charname[50];//字符数组
intcount;
floatiprice;
floatoprice;
chargys[20];
if(n<0)
n=0;
inti;
Datatemp;
for(;;n++)
{
cout<<"商品编号:
";
cin>>id;
if(id==-1)
break;
t[n].setId(id);
cout<<"商品名:
";
cin>>name;
t[n].setName(name);
cout<<"库存量:
";
cin>>count;
t[n].setCount(count);
cout<<"进价:
";
—5—
cin>>iprice;
t[n].setBuy(iprice);
cout<<"售价:
";
cin>>oprice;
t[n].setSale(oprice);
cout<<"供应商:
";
cin>>gys;
t[n].setGys(gys);
t[n].setSaleCount(0);//售出此产品0个
cout<<"若商品添加完毕,请按-1退出添加!
"< for(i=0;i { if(t[i].getId()>t[n].getId()) { temp=t[i]; t[i]=t[n]; t[n]=temp; } } } } voidshowData(inti) { cout< < < < —6— < < < } voidshowData() { cout<<"商品编号" < < < < < —6— < for(inti=0;i if(t[i].getCount()>0) showData(i); cout<<"产品种类: "< } voidsave()//写入数据至文件 { ofstreamfout; fout.open("商品销售管理系统.txt"); if(! fout) { cout<<"cannotopenthefile! "< return; } fout<<"商品编号"<<""<<"商品名"<<""<<"库存量"<<""<<"进价"<<""<<"售价"<<""<<"供应商"<<""<<"已售量"< for(inti=0;i { fout< } cout<<"*************SaveSuccess! *****************"< fout.close(); } intsearch() { intid; cout<<"id: "; cin>>id; intlow=0,mid,high=n-1; while(low<=high) { mid=(low+high)/2; if(t[mid].getId()==id) returnmid; elseif(t[mid].getId()>id) high=mid-1; Else low=mid+1; —7— } return-1; } voidsale() { cout<<"产品编号"; inttemp; temp=search(); if(temp==-1) { cout<<"cannotfindthecommodity! "< return; } if(t[temp].getCount()<=0) { cout<<"此产品已缺! "< } intcount; cout<<"输入数量: "; cin>>count; floatmoney; cout<<"输入收到金额(元): "; cin>>money; if(count<=0&&count>t[temp].getCount())//输入的是负数或超出该产品库存量 cout<<"数量输入不正确"< elseif(money —8— cout<<"购物金额不足,还需增加金额"< else { t[temp].setCount(t[temp].getCount()-count);//当前库存减少count t[temp].setSaleCount(t[temp].getSaleCount()+count);//出售量增加count cout<<"***名称: "< <<"***数量: "< <<"***单价: "< —8— <<"***应收: "< <<"***找零: "< <<"*************"< } } voidshowSale() { for(inti=0;i if(t[i].getSaleCount()>0) showData(i); } }; (3)主函数 inlinevoidmenu() { cout<<"********欢迎使用商品销售管理系统**********"< cout<<"**********主菜单**********"< cout<<" (1)添加"< cout<<" (2)保存"< cout<<"(3)显示"< cout<<"(4)菜单"< cout<<"(5)销售单"< cout<<"(0)退出系统"< cout<<"*************2011--2012***********"< } voidmain() { menu(); Commoditycom; intc; for(;;) { cout<<"请选择: "; cin>>c; —9— switch(c) { case1: com.newFile();break; case2: com.save();break; case3: com.showData();break; case4: menu();break; case5: com.sale();break; case0: { cout<<"****谢谢使用*****"< cout<<"*********! 再见! *********"< return; } break; } } } 四、调试手册 (1)、errorC2143: syntaxerror: missing';'before'}'行246少了一个分号 (2)、errorC2562: 'main': 'void'functionreturningavalue空类型不能有返回值 (3)、errorC2679: binary'<<': nooperatordefinedwhichtakesaright-handoperandoftype''(orthereisnoacceptableconversion) t[i].getName后面少了() 5、用户手册 1、本程序的运行环境为windows操作系统,执行文件为Ks..exe; 2、进入演示程序后,即显示对话形式的提示操作过程: 如: 第一项: (1)商品添加功能 在选择一栏输入: 1 即显示商品编号、商品名、库存量、进价、售价、供应商各项商 品信息,依次输入所需添加的数据。 添加商品完毕,按-1退出添加。 选择: 2即将商品信息保存。 选择: 3显示已保存的商品信息。 选择: 4重新回到主菜单。 选择: 5进行商品销售结算。 同时选择: 3显示商品库存和已销售的完整信息。 六、测试数据 进入演示程序后,即显示对话形式的提示操作过程: 选择: 1 —10— 输入相应提示的商品信息 选择: 2界面显示数据保存成功 选择: 3显示商品信息 —11— 选择: 4重新回到主菜单 选择: 5进行商品结算 选择: 3显示商品信息 7、附录 程序源代码: #include #include #include #include #defineMfname100 classData//数据类 { private: intid;//产品编号 charname[100];//产品名称 intcount;//库存数量 intsalecount;//已售数量 floatiprice;//进价 floatoprice;//售价 chargys[20];//供应商 public: intgetId() { returnid; } char*getName() { returnname; } intgetCount() { returncount; } intgetSaleCount() { returnsalecount; } floatgetBuy() { returniprice; —12— } floatgetSale() { returnoprice; } char*getGys() { returngys; } //---------------------- voidsetId(intn) { id=n; } voidsetName(charna[]) { strcpy(name,na); } voidsetCount(intc) { count=c; } voidsetSaleCount(ints) { salecount=s; } voidsetBuy(floati) { iprice=i; } voidsetSale(floato) { oprice=o; } //................... voidsetGys(charg[]) { strcpy(gys,g); } }; classCommodity//商品类 { private: —13— Datat[50];//数组 intn;//商品数量 public: voidnewFile() { intid; charname[50];//字符数组 intcount; floatiprice; floatoprice; chargys[20]; if(n<0) n=0; inti; Datatemp; for(;;n++) { cout<<"商品编号: "; cin>>id; if(id==-1) break; t[n].setId(id); cout<<"商品名: "; cin>>name; t[n].setName(name); cout<<"库存量: "; cin>>count; t[n].setCount(count); cout<<"进价: "; cin>>iprice; t[n].setBuy(iprice); cout<<"售价: "; cin>>oprice; t[n].setSale(oprice); cout<<"供应商: "; cin>>gys; t[n].setGys(gys); t[n].setSaleCount(0);//售出此产品0个 —14— cout<<"若商品添加完毕,请按-1退出添加! "< for(i=0;i { if(t[i].getId()>t[n].getId()) { temp=t[i]; t[i]=t[n]; t[n]=temp; } } } } voidshowData(inti) —15— { cout< < < < < < < } voidshowData() { cout<<"商品编号" < < < < < < for(inti=0;i if(t[i].getCount()>0) showData(i); cout<<"产品种类: "< } voidsave()//写入数据至文件 { ofstreamfout; fout.open("商品销售管理系统.txt"); if(! fout) { —15— cout<<"cannotopenthefile! "< return; } fout<<"商品编号"<<""<<"商品名"<<""<<"库存量"<<""<<"进价"<<""<<"售价"<<""<<"供应商"<<""<<"已售量"< for(inti=0;i { fout<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 商品销售管理系统 C+ 课程设计 商品 销售 管理 系统