资源描述
重庆科技学院
《面向对象程序设计》
课程设计报告
学 院:_电气与信息工程学院_ 专业班级:
学生姓名: 学 号:
设计地点(单位)________计算机自主学习中心 ________ __
设计题目:________超市商品管理系统设计______________ _____
完毕日期: 年1月18日
指引教师评语:______________________ _________________
_________________________________________________________________________________________________________________________________________________________________________________________________________ __________ _
成绩(五级记分制):______ __________
指引教师(签字):________ ________
摘要
商品管理系统是一种公司不可缺少某些,它内容对于公司决策者和管理者来说都很重要,因此商品管理系统应当可觉得顾客提供充分信息和快捷查询手段。随着科学技术不断提高,其强大功能已经为人们深刻结识,它已经进入人类社会各个领域并发挥着重要作用。因而,通过电脑软件编程,开发这样一套商品管理系统成为很有必要事情。顾客可以依照该系统查询有关信息,管理者可以依照该系统查询、修改商品信息。
核心字:商品管理、查询、科技、编程
重庆科技学院
程序设计任务书
设计题目:超市商品管理系统设计
学生姓名
课程名称
面向对象程序设计基本课程设计
专业班级
计科1102
地 点
I304/I306
起止时间
1月7日~1月18日
设计内容及规定
1)问题描述
超市中商品分为四类,分别是食品、化妆品、日用品和饮料。每种商品都包括商品名称、价格、库存量和生产厂家、品牌等信息。
重要完毕对商品销售、记录和简朴管理。
2)功能规定
(1)销售功能。购买商品时,先输入类别,然后输入商品名称,并在库存中查找该商品有关信息。如果有库存量,输入购买数量,进行相应计算。如果库存量不够,给出提示信息,结束购买。
(2)商品简朴管理功能。
添加功能:重要完毕商品信息添加。
查询功能:可按商品类别、商品名称、生产厂家进行查询。若存在相应信息,输出所查询信息,若不存在该记录,则提示“该记录不存在!”。
修改功能:可依照查询成果对相应记录进行修改。
删除功能:重要完毕商品信息删除。先输入商品类别,再输入要删除商品名称,依照查询成果删除该物品记录,如果该商品不在物品库中,则提示“该商品不存在”。
(3)记录功能。
输出当前库存中所有商品总数及详细信息;可按商品价格、库存量、生产厂家进行记录,输出记录信息时,要按从大到小进行排序。
3)问题解决方案
依照系统功能规定,可以将问题解决分为如下环节:
(1)应用系统分析,建立该系统功能模块框图以及界面组织和设计;
(2)分析系统中各个实体及它们之间关系;
(3)依照问题描述,设计系统类层次;
(4)完毕类层次中各个类描述;
(5)完毕类中各个成员函数定义;
(6)完毕系统应用模块;
(7)功能调试;
(8)完毕系统总结报告。
依照题目规定,运用所学知识,完毕设计和实现工作,并按照书写规范,撰写课程设计报告。
设计
参数
(1)系统分析、设计对的。
(2)成果以图表方式显示。
(3)界面简洁、美观。
(4)报告格式规范。
进度
规定
周一:明确设计任务,学习有关基本知识
周二:熟悉各知识点,进行基本练习
周三:依照题目规定,进行设计和实现
周四:依照题目规定,进行设计和实现
周五:程序测试
参照资料
[1]Richard Johnsonbaugh. Martin Kalin.《面向对象程序设计—C++语言描述》.机械工业出版社.
[2]钱能.《C++语言程序设计教程》.清华大学出版社.
其他
阐明
1.本表应在每次实行前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。2.若填写内容较多可另纸附后。
3.一题多名学生共用,在设计内容、参数、规定等方面应有所区别。
教研室主任: 指引教师:裴仰军/伍建全/焦晓军/陈应祖 1月1日
目 录
摘要 ………………………………………………………………………………2
课程设计任务书 ……………………………………………………………………3
1 软件需求分析阐明 ………………………………………………………………6
2 软件分析与设计 …………………………………………………………………7
2.1 软件界面设计 ……………………………………………………………7
2.2 软件数据(构造)设计 ………………………………………………7
2.3 软件算法设计 …………………………………………………………9
3软件实现 …………………………………………………………………………11
4软件测试 …………………………………………………………………………18
5软件使用阐明书 ……………………………………………………………………21
道谢 ……………………………………………………………………………………22
参照文献 ………………………………………………………………………………23
第一章 软件需求分析阐明书
该商品管理只要把商品分为四类,分别是食品、化妆品、日用品和饮料。每种商品都包括商品名称、价格、库存量和生产厂家信息。该商品管理系统重要完毕对商品销售、记录和简朴管理。
(1)销售功能。购买商品时,先输入类别,然后输入商品名称,并在库存中查找该商品有关信息。如果有库存量,输入购买数量,进行相应计算。如果库存量不够,给出提示信息,结束购买。
(2)商品简朴管理功能。
添加功能:重要完毕商品信息添加。
查询功能:可按商品类别、商品名称、生产厂家进行查询。若存在相应信息,输出所查询信息,若不存在该记录,则提示“该记录不存在!”。
修改功能:可依照查询成果对相应记录进行修改。
删除功能:重要完毕商品信息删除。先输入商品类别,再输入要删除商品名称,依照查询成果删除该物品记录,如果该商品不在物品库中,则提示“该商品不存在”。
(3)记录功能。
输出当前库存中所有商品总数及详细信息;可按商品价格、库存量、生产厂家进行记录。
第二章 系统分析与设计
2.1 软件界面设计
图2.11
图2.12
2.2 软件数据(构造)设计
本系统运用了#include<iostream>、#include<string>、#include<fstream>、#include<sstream>四个包头文献。并将食品、化妆品、日用品、饮料信息分别保存在四个文本文献food.txt、cosmetics.txt、dailyuse.txt、drink.txt中,系统运营时,可以更以便获取信息。
每个文本文献里商品信息分别是商品名称、价格、库存量、生产厂家。四个文本文献内容如下:
图2.21 foods。txt
图2.22 drink.txt
图2.23 dailyuse.txt
图2.24 cosmetics.txt
2.3 软件算法设计
主菜单
选取
保存
显示
记录
添加
删除
修改
查询
销售
饮料
日用品
化妆品
食品
按名称查找
按类别查找
图2.31
查询
销售
名称
类别
选取类别
选取
选取名称
输入名称
购买数量
查询成功
超过库
存数量
库存
有货
销售成功
图2.33
图2.32
删除/添加
修改
选取类别
选取类别
输入名称
输入修改名称
内容
选取内容
无 无
此 此
商 商
删除/添加 内容
输入修改内容
品 品
结束
修改结束
图2.34 图2.35
第三章 软件实现
(1)类实现
class goods
{
public:
void read(string h);
void display();
void searchnumber();
void xiugainame(string x){name=x;}//修改名称
void xiugaiprice(string x){price=x;}//修改价格
void xiugaicount(int x){count=x;}//修改库存量
void xiugaichangjia(string x){changjia=x;}//修改生产厂家
string name;//名称
string price;//价格
int count;//库存量
string changjia;//生产厂家
};
void goods ::read(string h)
{
istringstream strin(h);
strin>>name>>price>>count>>changjia;
}
void goods ::display()
{
cout<<name<<"\t "<<price<<"\t "<<count<<" \t"<<changjia<<"\t "<<endl;
}
定义了一种goods商品类,类里面只具有共有成员,涉及变量name(名称)、price(价格)、count(库存量)和changjia(生产厂家)以及几种重要函数。
(2)文献读取
goods *per1;
per1=new goods [200];
ifstream fin1("foods.txt");
while(getline(fin1,buff))
{
per1[p1].read(buff);
p1++;
}
运用了#include<sstream>包头文献 从文本文献中读取字符到对象中,再把对象作为程序输入流,既可把从文献中读取来数字字符单个进行读取,从而进行解决。
这里只是对foods文本文献读取。别的三个文本文献操作代码类同。
(3)文献保存
ofstream pout1("foods.txt");
for(j1=0;j1<p1;j1++)
{
pout1<<"\t\t"<<per1[j1].name<<"\t"<<per1[j1].price<<"\t"<<per1[j1].count<<" \t"<<per1[j1].changjia<<"\n";
}
pout1.close()
通过ofstream将变化了信息写入文献中。
(4)商品销售功能实现
void xiaoshou_goods(int p,goods *per)
{
int count,count1;string price,name,changjia;
cin>>name;
for(int j=0;j<p;j++)
{
if(per[j].name==name)
{
cout<<"销售商品信息为:"<<endl;
print();
cout<<"\t\t"<<per[j].name<<"\t"<<per[j].price<<"\t "<<per[j].count<<"\t "<<per[j].changjia<<"\n";break;
}
}
if(j==p)
{
cout<<"\n对不起,未找到名称为"<<name<<"商品";
}
else
{ int h=0;
while(h==0)
{
cout<<"请输入销售库存量(件):";
cin>>count1;
if(panduan(count1,p,j,per))
{
per[j].count-=count1;
cout<<"购买成功!!"<<endl;
h=1;break;
}
else cout<<"库存量局限性!请重新输入销售库存量:"<<endl;
}
}
}
bool panduan(int s,int p,int j,goods*per)
{
if(s<=per[j].count)
return true;
else
return false;
}
商品销售实现运用了两个函数来实现,通过查找,找到需要销售商品。然后通过另一种判断函数判断购买件数是不是少于库存量,若多余库存量则重新购买。
(5)商品查找功能实现
cout<<"\n\t================= 查找商品信息=====================\n\n";
cout<<"\t"<<"1按类别查找 2按名称查找 <请选取>:";
cin>>b;
switch(b)
{
case '1':
cout<<"请选取 : 1食品 2化妆品 3日用品 4饮料"<<endl; cin>>c;
switch(c)
{
case '1':
print();
for(j1=0;j1<p1;j1++) per1[j1].display();break;
case '2': .................; break;
case '3': .................; break;
case '4': .................; break;
default: cout<<"\n输入有误!";break;
} break;
case '2':
cout<<"请输入名称 :";
cin>>name;
for(j=0;j<150;j++)
{
if(per1[j].name==name)
{
name="1"; break;
}
if(per2[j].name==name) {…………… }
if(per3[j].name==name){……………}
if(per4[j].name==name) {…………… }
else continue;
}
if(name=="1")
{
print();
cout<<"\t\t"<<per1[j].name<<"\t"<<per1[j].price<<"\t "<<per1[j].count<<"\t "<<per1[j].changjia<<"\n";
break;}
if(name=="2" ){………………}
if(name=="3" ){……………}
if(name=="4") {……………}
else
{
cout<<"没关于于该商品信息!";
}break;
}
cout<<"\n"<<"请按任意键返回主菜单!";
cin>>z;
}
查找功能实当代码直接写在主函数里面,通过switch选取是通过类别查找还是名称查找。若通过类别查找只能查找一种类别里所有商品。而通过名称查找可以查看单个商品信息。
(6)商品删除功能实现
cout<<"请输入要删除食品名称:";
cin>>name;
for(j=0;j<p1;j++)
{
if(name==per1[j].name)
{
break;
}
}
if(j==p1)
{
cout<<"\n对不起,未找到名称为"<<name<<"商品";
cout<<"\n\n请输入任意键点回车键返回!";
cin>>z;
}
else
{ while(j!=p1)
{
per1[j]=per1[j+1];
j++;
}
p1--;
cout<<"删除成功!"<<endl;
}
删除商品功能代码写在主函数里面。一方面选取删除商品类型。此处代码为删除类型为食品商品。一方面系统会依照你输入需要删除商品进行查找,若无此商品,系统将给出提示,若有此商品,系统将成功删除该商品。
(7)商品修改功能实现
void change_goods(int p,goods *per)
{
char c;
string price,name,changjia;
int count;
cin>>name;
for(int j=0;j<p;j++)
{
if(per[j].name==name)
{
name="0";
break;
}
else
continue;
}
if(name=="0")
{
cout<<"\n"<<"名称为"<<per[j].name<<"商品信息:\n";
print();
per[j].display();
cout<<"请选取要修改商品信息<1名称 2价格 3库存 4生产厂家>:";
cin>>c;
switch(c)
{
case '1':
cout<<"请输入修改后名称:";
cin>>name;
per[j].xiugainame(name);
cout<<"修改后商品信息为:"<<endl;
per[j].display();
break;
case '2': ………………break;
case '3': ………………break;
case '4': ………………break;
default:cout<<"输入有误!";break;
}
}
else cout<<"\n没有该商品!";
}
通过一种函数来实现商品修改,选取修改内容对商品进行修改。
(8)商品添加功能实现
cout<<"\n\t================ 添加商品信息 ===================\n\n";
cout<<"请选取添加类型 : 1食品 2化妆品 3日用品 4饮料"<<endl;
cin>>c;
switch(c)
{
case'1':
cout<<"名称:";cin>>per1[p1].name;
cout<<"价格:";cin>>per1[p1].price;
cout<<"库存:";cin>>per1[p1].count;
cout<<"生产厂家:";cin>>per1[p1].changjia;
cout<<"你添加商品信息为:"<<endl;
print();
cout<<"\t\t"<<per1[p1].name<<"\t"<<per1[p1].price<<"\t "<<per1[p1].count<<" \t"<<per1[p1].changjia<<"\n";p1++; break;
case'2':………………..break;
case'3':………………..break;
case'4':………………..break;
default:cout<<"\n输入有误!";break;
}
cout<<"\n"<<"请按任意键返回主菜单!";
cin>>z;
商品添加代码是直接写在主函数里面。依照你添加商品选取商品类型,依照提示输入添加商品有关信息。
(9)商品记录功能实现
void tongji_goods(int p,goods *per)
{
string price,name,changjia;
int count;
goods t;
for(int i=0;i<p-1;i++)
{
for(int j=0;j<p-1;j++)
{
if(per[j].count<per[j+1].count)
{
t=per[j];
per[j]=per[j+1];
per[j+1]=t;
}
}
}
print();
for(int j=0;j<p;j++) per[j].display();
}
运用了冒泡排序办法对商品中各类库存量多少进行排序,库存量多商品排在前面。
第四章 软件测试
1. 商品销售:
图4.1 销售yumi
图4.2yumi库存量
2. 商品查询:
图4.3按类别查找
图4.4按名称baobao查找
3. 商品删除:
图4.5删除yumi信息
4. 商品添加:
图4.5添加bibi商品
5. 商品修改:
图4.6将shui价格改为8$
6.商品记录:
图4.7 各类商品排序
6. 商品修改信息保存:
图4.8信息保存
第五章 软件使用阐明书
该商品管理操作系统重要是在界面内选取需要功能,依照系统界面提示,选取需要进行操作。一方面进入界面将看到内容是:
图5.1
然后依照提示按任意键,再按回车键后就能进入商品管理各项操作功能选取菜单,重要有如下几种操作:销售、查询、添加、删除、修改、记录、显示。
图5.2
依照菜单提示,选取所要进行操作。例如选取销售功能,就输入”销售”前面菜单编号A或者a 。进入销售管理系统,再依照界面提示选取接下来每一步操作。
不论进入了哪一种界面,系统都会给出相应界面关于提示,只要依照提示进行每一步操作,就能对的使用该管理系统。
道谢
非常感谢裴教师、伍教师、焦教师、陈教师指引,尚有我室友和同窗协助,谢谢!.
签名
日期 1月16日
参照文献
[1]Richard Johnsonbaugh. Martin Kalin.《面向对象程序设计—C++语言描述》.机械工业出版社.
[2]钱能.《C++语言程序设计教程》.清华大学出版社.
展开阅读全文