超市商品销售管理系统C.docx
《超市商品销售管理系统C.docx》由会员分享,可在线阅读,更多相关《超市商品销售管理系统C.docx(32页珍藏版)》请在冰点文库上搜索。
超市商品销售管理系统C
课程设计说明书(论文)
题目小型超市商品销售管理系统
课程名称面向对象程序设计
院(系、部、中心)
专业
班级
学生姓名
学号
设计地点
指导教师
课程设计任务书
课程名称面向对象程序设计
院(系、部、中心)
专业
班级
起止日期
指导教师
1.课程设计应达到的目的
通过课程设计加深理解课堂教学内容,熟练掌握C++语言的基本知识和技能;掌握面向对象程序设计的基本思路和方法;掌握指针、类的封装与继承、文件的打开和保存、链表应用;利用所学的基本知识和技能,解决面向对象程序设计问题。
培养分析、解决问题的能力;提高学生的科技论文写作能力。
2.课程设计题目及要求
题目:
小型超市商品销售管理系统
要求:
某小型超市销售的商品有四类:
食品、化妆品、生活用品和饮料。
每类商品都有商品名和商品利润。
每类商品还有区别于其他类的特殊信息,例如食品有批发商,化妆品有品牌,饮料有生产厂家。
本系统完成如下功能:
(1)输入商品的基本信息。
(2)根据商品名查询某个商品的情况。
(3)计算并显示商品的利润。
3.课程设计任务及工作量的要求〔包括课程设计计算说明书、图纸、实物样品等要求〕
(1)分析系统中的各个实体之间的关系及其属性和行为。
(2)根据问题描述,设计系统的类层次,完成类层次中各个类的描述(包括属性和方法),完成类中各个成员函数的定义。
(3)完成系统的应用模块,进行功能调试。
(4)系统设计要实用,编程简练,功能全面。
程序中要有异常处理。
(5)界面设计要以用户为中心,操作方便、美观大方。
(要有选择性提示)
(6)按照课程设计说明书的格式规范撰写课程设计说明书,其中正文包括:
①功能描述:
对系统要实现的功能进行简明扼要的描述。
②概要设计:
根据功能描述,建立系统的体系结构,即将整个系统分解成若干子功能模块,并用框图表示各功能模块之间的衔接关系,并简要说明各模块的功能。
③详细设计:
详细说明各功能模块的实现过程,所用到的类的层次图(包括类成员列表)、算法、技巧等。
④效果及存在问题:
说明系统的运行效果(附上运行界面图片)、存在哪些不足以及预期的解决办法。
⑤心得体会:
谈谈自己在课程设计过程中的心得体会。
(7)课程设计说明书用A4纸统一打印,装订按学校的统一要求完成。
(8)课程设计的程序以软盘形式上交,文件夹名称为学生姓名及学号的组合。
未经指导教师许可或无故不到者,缺勤率达50%的学生不能参加答辩。
答辩时,设计者在5分钟内阐述自己的设计过程和最终结果,突出设计中遇到的主要问题和解决方法,然后回答教师提问。
每位学生答辩总时间一般不超过15分钟。
4.主要参考文献
[1]谭浩强.C++程序设计[M].北京:
清华大学出版社,2004.
[2]吴乃陵.C++程序设计实践教程[M].北京:
高等教育出版社,2003.
[3]谭浩强.C++程序设计题解与上机指导[M].北京:
清华大学出版社,1999.
[4]廖雷,罗代忠.C语言程序设计基础实验教程.北京:
高等教育出版社,2005.
5.课程设计进度安排
起止日期
工作内容
12月22日
12月23日
12月24日
12月25日
12月26日
12月27日
12月28日
熟悉任务,算法设计
软件设计
软件设计
软件调试
软件调试
软件联合调试
考核
6.成绩考核办法
课程设计成绩的评定:
根据设计的完成情况、程序的编制质量、独立设计能力以及答辩情况综合衡量,由答辩小组讨论决定。
原则上按以下公式计算:
课程设计成绩=工作表现×30%+设计成果×40%+考核测评×30%
工作表现:
独立工作能力及设计过程的表现。
占总成绩的30%。
设计成果:
设计说明书(计算书、论文)、图纸、程序、作品等的质量。
占总成绩的40%。
考核测评:
课程设计结束前,指导教师应采用考试或答辩等形式对所指导的学生进行测评。
测评成绩占总成绩的30%。
有创新的同学根据具体情况适当加分。
教研室审查意见:
教研室主任签字:
年月日
院(系、部、中心)意见:
主管领导签字:
年月日
一.功能描述
某小型公司,主要有四类人员:
经理、兼职技术人员、销售经理和兼职推销员。
现在,需要存储这些人员的姓名、编号、级别、当月薪水,计算月薪总额并显示全部信息。
要求:
(1)其中,人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。
(2)程序对所有人员有提升级别的功能
(3)月薪的计算方法是:
经理拿固定月薪,兼职技术人员按工作小时数领取月薪,兼职推销员的报酬按该推销员当月销售额提成,销售经理既拿固定月薪也领取销售提成。
(4)能按姓名或者编号显示、查找、增加、删除和保存各类人员的信息。
二.概要设计
2.1类的设计
2.2流程图
(1)主函数流程图
(2)添加函数(左图)和删除函数(右图)的流程图
(3)查询函数流程图
三.详细设计
1.主函数设计
#include
#include
#include
#include
#include
#include
#include
voidmain()
{system("cls");
cout<<"\n\n\n\n\t\t********************************************\n"
<<"\t\t**\n"
<<"\t\t**\n"
<<"\t\t*欢迎使用小型超市商品销售管理系统(HYY)*\n"
<<"\t\t**\n"
<<"\t\t*Desinedby韩永扬206050529*\n"
<<"\t\t**\n"
<<"\t\t*(按任意键进入)*\n"
<<"\t\t**\n"
<<"\t\t**\n"
<<"\t\t********************************************\n"<getch();
foodf;
makeupm;
drinkd;
livel;
while
(1)
{A:
system("cls");
intchoice;
intx;
cout<<"\n\n\t\t\t\t主菜单"<<"\n\n\t\t\t\t
(1)添加商品品种\n"<<"\n\t\t\t\t
(2)查询商品\n"
<<"\n\t\t\t\t(3)删除商品"<<"\n\n\t\t\t\t(4)退出"<<"\n\n\n请选择:
";
cin>>x;
switch(x)
{case1:
{system("cls");
cout<<"\n\n\n\n\n\n\t\t请选择添加哪一类:
"<<"\n\n\t\t\t\t
(1)食品类"<<"\n\t\t\t\t
(2)化妆品类"<<"\n\t\t\t\t(3)饮料类"<<"\n\t\t\t\t(4)生活用品类"<<"\n\t\t\t\t(5)返回"<cin>>choice;
switch(choice)
{case1:
system("cls");
f.addf();
break;
case2:
system("cls");
m.addm();
break;
case3:
system("cls");
d.addd();
break;
case4:
system("cls");
l.addl();
break;
case5:
system("cls");
break;
}
break;
}
case2:
{system("cls");
cout<<"\n\n\n\n\n\n\t\t请选择查询哪一类:
"<<"\n\n\t\t\t\t
(1)食品类"<<"\n\t\t\t\t
(2)化妆品类"<<"\n\t\t\t\t(3)饮料类"<<"\n\t\t\t\t(4)生活用品类"<<"\n\t\t\t\t(5)返回"<cin>>choice;
switch(choice)
{case1:
system("cls");
f.searchf();
break;
case2:
system("cls");
m.searchm();
break;
case3:
system("cls");
d.searchd();
break;
case4:
system("cls");
l.searchl();
break;
case5:
system("cls");
break;
}
break;
}
case3:
{system("cls");
cout<<"\n\n\n\n\n\n\t\t请选择删除哪一类:
"<<"\n\n\t\t\t\t
(1)食品类"<<"\n\t\t\t\t
(2)化妆品类"<<"\n\t\t\t\t(3)饮料类"<<"\n\t\t\t\t(4)生活用品类"<<"\n\t\t\t\t(5)返回"<cin>>choice;
switch(choice)
{case1:
system("cls");
f.removef();
break;
case2:
system("cls");
m.removem();
break;
case3:
system("cls");
d.removed();
break;
case4:
system("cls");
l.removel();
break;
case5:
system("cls");
break;
}
break;
}
case4:
{system("cls");
cout<<"\n\n\n\n\n\n\t\t\t\t谢谢使用!
"<<"\n\n\t\t\t\t再见!
\n";
exit
(1);
}
break;
default:
{cout<<"输入有误,请重选!
";
gotoA;
}
}
}
}
上面即为主函数,通过switch语句来选择操作:
添加,查询,删除,退出。
在每项操作中又用switch语句来选择对哪一类商品进行操作,分别有食品,化妆品,饮料,生活用品四类。
该函数没有把“显示商品利润”作为一项单独操作,而是把该功能加进了“查询”操作中,查询的同时直接显示商品利润。
2.商品基类设计
classspbase
{public:
intt;
floatoprice;
floatiprice;
floatprof;
intquantity;
charname[10];
voidgetdate();
voidshowdate();
voidadd();
voidsearch();
voidremove();
intgett(){returnt;};
};
voidspbase:
:
getdate()//输入函数的设计
{cout<<"\n\t\t请输入商品名称:
";
cin>>name;
cout<<"\n\t\t请输入商品售价:
";
cin>>oprice;
cout<<"\n\t\t请输入商品进价:
";
cin>>iprice;
cout<<"\n\t\t请输入商品库存量:
";
cin>>quantity;
}
voidspbase:
:
showdate()//输出函数的设计
{cout<<"\n\n商品基本信息如下:
";
cout<<"\n\n\t\t商品名称:
";
cout<cout<<"\n\n\t\t商品售价:
";
cout<cout<<"\n\n\t\t商品进价:
";
cout<cout<<"\n\n\t\t商品库存量:
";
cout<prof=(oprice-iprice)*quantity;
cout<<"\n\n\t\t商品利润为:
";
cout<}
voidspbase:
:
add()//添加函数的设计
{t=1;
ofstreamfile("HYY.txt",ios:
:
out|ios:
:
ate);
if(!
file)
{cout<<"文件打开失败!
";
getch();
exit
(1);
}
spbasep1;
p1.getdate();
(reinterpret_cast(&p1),sizeof(spbase));//reinterpret_cast强制转换
();
}
voidspbase:
:
search()//查询函数的设计
{
charname4[10];
cout<<"\n请输入生活用品名称:
";
cin>>name4;
fstreamfile("HYY.txt",ios:
:
in);
if(!
file)
{cout<<"文件打开失败!
";
getch();
exit
(1);
}
charflag='a';//设标志位
spbasep1;
(reinterpret_cast(&p1),sizeof(spbase));
while(!
())//正确显示,指针还没到末尾继续
{if((strcmp(p1.name,name4)==0)&&gett())
{p1.showdate();
getch();
flag='z';
break;
}
(reinterpret_cast(&p1),sizeof(spbase));
}
if(flag!
='z')
{cout<<("该商品已被删除!
");
getch();
}
();
}
voidspbase:
:
remove()//删除函数的设计
{t=0;search();}
3.食品类设计(food)
classfood:
publicspbase
{private:
charpfs[10];
public:
voidgetdatef()
{spbase:
:
getdate();
cout<<"\n\t\t请输入商品批发商:
";
cin>>pfs;
}
voidshowdatef()
{spbase:
:
showdate();
cout<<"\n\n\t\t商品批发商:
";
cout<}
voidaddf()
{t=1;
ofstreamfile("HYY1.txt",ios:
:
out|ios:
:
ate);
if(!
file)
{cout<<"文件打开失败!
";
getch();
exit
(1);
}
foodf;
f.getdatef();
(reinterpret_cast(&f),sizeof(food));
();
}
voidsearchf()
{charname1[10];
cout<<"\n请输入食品名称:
";
cin>>name1;
fstreamfile("HYY1.txt",ios:
:
in);
if(!
file)
{cout<<"文件打开失败!
";
getch();
exit
(1);
}
charflag='a';
foodf;
(reinterpret_cast(&f),sizeof(food));
while(!
())
{if((strcmp(f.name,name1)==0)&&gett())
{f.showdatef();
getch();
flag='z';
break;
}
(reinterpret_cast(&f),sizeof(food));
}
if(flag!
='z')
{cout<<("该商品已被删除!
");
getch();
}
();
}
voidremovef()
{t=0;searchf();}
};
4.化妆品类设计(makeup)
classmakeup:
publicspbase
{private:
charpp[10];
public:
voidgetdatem()
{spbase:
:
getdate();
cout<<"\n\t\t请输入商品品牌:
";
cin>>pp;
}
voidshowdatem()
{spbase:
:
showdate();
cout<<"\n\n\t\t商品品牌:
";
cout<}
voidaddm()
{t=1;
ofstreamfile("HYY2.txt",ios:
:
out|ios:
:
ate);
if(!
file)
{cout<<"文件打开失败!
";
getch();
exit
(1);
}
makeupm;
m.getdatem();
(reinterpret_cast(&m),sizeof(makeup));
();
}
voidsearchm()
{charname2[10];
cout<<"\n请输入化妆品名称:
";
cin>>name2;
fstreamfile("HYY2.txt",ios:
:
in);
if(!
file)
{cout<<"文件打开失败!
";
getch();
exit
(1);
}
charflag='a';
makeupm;
(reinterpret_cast(&m),sizeof(makeup));
while(!
())
{if((strcmp(m.name,name2)==0))
{m.showdatem();
getch();
flag='z';
break;
}
(reinterpret_cast(&m),sizeof(makeup));
}
if(flag!
='z')
{cout<<("该商品已被删除!
");
getch();
}
();
}
voidremovem()
{t=0;searchm();}
};
5.饮料类设计(drink)
classdrink:
publicspbase
{private:
charfactory[10];
public:
voidgetdated()
{spbase:
:
getdate();
cout<<"\n\t\t请输入商品生产厂家:
";
cin>>factory;
}
voidshowdated()
{spbase:
:
showdate();
cout<<"\n\n\t\t商品生产厂家:
";
cout<}
voidaddd()
{t=1;
ofstreamfile("HYY3.txt",ios:
:
out|ios:
:
ate);
if(!
file)
{cout<<"文件打开失败!
";
getch();
exit
(1);
}
drinkd;
d.getdated();
(reinterpret_cast(&d),sizeof(drink));
();
}
voidsearchd()
{charname3[10];
cout<<"\n请输入饮料名称:
";
cin>>name3;
fstreamfile("HYY3.txt",ios:
:
in);
if(!
file)
{cout<<"文件打开失败!
";
getch();
exit
(1);
}
charflag='a';
drinkd;
(reinterpret_cast(&d),sizeof(drink));
while(!
())
{if((strcmp(d.name,name3)==0))
{d.showdated();
getch();
flag='z';
break;
}
(reinterpret_cast(&d),sizeof(drink));
}
if(flag!
='z')
{cout<<("该商品已被删除!
");
getch();
}
();
}
voidremoved()
{t=0;searchd();}
};
6.生活用品类设计(live)
classlive:
publicspbase
{
public:
voidgetdatel()
{spbase:
:
getdate();
}
voidshowdatel()
{spbase:
:
showdate();
}
voidaddl()
{spbase:
:
add();
}
voidsearchl()
{spbase:
:
search();}
voidremovel()
{spbase:
:
remove();}
};
四.效果及存在问题
4.1效果截屏
进入主界面
按任意键进入主菜单后,选择“1”,添加商品
进入”添加商品品种”的自菜单,选择“3“,添加”饮料类“
写入添加的商品基本信息
返回上一层主菜单后,选“2”,查询商品
选择“3”,查询“饮料类”