101006434《商品销售管理系统》.docx
《101006434《商品销售管理系统》.docx》由会员分享,可在线阅读,更多相关《101006434《商品销售管理系统》.docx(24页珍藏版)》请在冰豆网上搜索。
![101006434《商品销售管理系统》.docx](https://file1.bdocx.com/fileroot1/2023-1/27/3f2502be-738d-41cf-8576-8ee9e04c0f5b/3f2502be-738d-41cf-8576-8ee9e04c0f5b1.gif)
101006434《商品销售管理系统》
《数据结构》
课程设计报告书
题目:
商品销售管理
系别:
计算机科学与应用系
学号:
101006434
学生姓名:
指导教师:
傅尔胜
完成日期:
2012年6月7日
一、需求分析
商品销售管理
商品信息的组成部分为:
商品编号、商品名称、商品单价、生产商、库存量等。
销售单信息的组成部分为:
商品编号、商品名称、商品单价、购买数量、该商品应付金额等。
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()//获取供应商
Voidsetid(intn)//输入id
Voidsetname(charna[])//产品名
Voidsetcount(intc)//库存量
Voidsetsalecount(ints)//已售量
Voidsetbuy(floati)//进价
Voidsetsale(floato)//售价
Voidsetgys(charg[])//供应商
};
2、classcommodity商品类设计:
classCommodity//商品类
{
private:
Datat[50];//数组
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()
{
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;
}
//...................
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<<"进价:
";
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<<"商品编号"
<<<<<<for(inti=0;iif(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;
}
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<<"***名称:
"<<<"***数量:
"<<<"***单价:
"<<<"***应收:
"<<<"***找零:
"<<<"*************"<}
}
voidshowSale()
{
for(inti=0;iif(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;
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
输入相应提示的商品信息
选择:
2界面显示数据保存成功
选择:
3显示商品信息
选择:
4重新回到主菜单
选择:
5进行商品结算
选择:
3显示商品信息
7、附录
程序源代码:
#include
#include
#include
#include//为了声明标识符setw()函数
#defineMfname100
classData//数据类
{
private:
intid;//产品编号
charname[100];//产品名称
intcount;//库存数量
intsalecount;//已售数量
floatiprice;//进价
floatoprice;//售价
chargys[20];//供应商
public:
intgetId()
{
returnid;
}
char*getName()
{
returnname;
}
intgetCount()
{
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;
}
//...................
voidsetGys(charg[])
{
strcpy(gys,g);
}
};
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<<"进价:
";
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<<<<<<<}
voidshowData()
{
cout<<"商品编号"
<<<<<<for(inti=0;iif(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;
els