VC++课程设计报告-小型超市商品管理系统
更新时间:2023-04-21 12:51:01 阅读量: 实用文档 文档下载
- c++课程设计报告推荐度:
- 相关推荐
VC++ 课程设计报告 火车票管理系统 (内涵源程序)
东莞理工学院
三级项目设计报告
课程: 学号:姓名: 班级: 教师:
2012年 1月 1日
VC++ 课程设计报告 火车票管理系统 (内涵源程序)
目录
第一章 系统概述 ............................................................................................................................. 3
1.1 功能简介 ........................................................ 3 1.2 设计思路 ........................................................ 3 第二章 系统功能的分析和设计 ......................................... 4 2.1初始录入/添加函数................................................ 4 2.2修改/删除函数.................................................... 4 2.3 查询/显示全部(利润)函数 ....................................... 4 2.3.1 显示全部 ...................................................... 4 2.3.1 按条件查询 .................................................... 5 2.4 查看过期食品函数 ................................................ 5 2.5 退出系统 ........................................................ 5 第三章 调试及运行结果 ............................................... 6 3.1 主菜单 .......................................................... 6 3.2初始录入/添加功能................................................ 6 3.3修改/删除功能.................................................... 6 3.4查询/显示全部(利润)功能........................................ 7 3.5 查看过期食品功能 ................................................ 8 第四章 总结 ......................................................... 9 4.1 遇到的问题及解决方法 ............................................ 9 4.2 收获和体会 ...................................................... 9
附录:程序代码 ............................................................................................................................. 10
VC++ 课程设计报告 火车票管理系统 (内涵源程序)
第一章 系统概述 1.1 功能简介
本软件是一个简单的小型超市商品管理系统,软件窗口为DOS页面。 小型超市商品管理系统的功能主要是实现小型超市商品的信息化管理。通过小型超市商品管理系统,商品管理人员可以实现对商品信息的增加、删除、修改、查询和计算利润等操作。本系统最大的优点就是操作简便快捷等。
1.2 设计思路
将商品信息定义为一个good类,在类中包含私有数据成员int num,string name,double cost,double price,string indate,int kpdate,string brand,string sort,string trademark,分别表示商品编号、商品名、进价、售价、食品出产日期、保质期、化妆品牌、日用品类型、饮料商标。
公有成员函数包括in( ) ,change( ) ,search( ) ,profit( ) ,分别通过其四个子函数分别对应四种不同的商品用来实现对商品信息的数据初始录入和增加数据、修改和删除数据、查询和显示全部数据、计算商品利润功能。
然后定义了一个menu( ) 菜单函数,使功能菜单显示在运行窗口以提示用户如何进行操作。
主函数是一个程序必不可少的,在主函数中,创建一个good类的对象one并运行one的menu()函数开始使用本系统。
VC++ 课程设计报告 火车票管理系统 (内涵源程序)
第二章 系统功能的分析和设计
在本章中,主要是介绍各个功能函数的设计思路和实现方法。
2.1初始录入/添加函数
此函数实现的功能主要是,对商品信息的初始化录入以及增加功能,在初始时,文件中没有任何数据,可以通过次函数输入任意个商品的信息,在输入时通过一个if条件语句来实现控制循环,当输入的姓名是“0”时,使用break语句就跳出循环,即停止输入学生信息。增加功能同此原理。
在此函数中使用文件处理的方式,先建立一个文件输出流对象,根据用户的需要操作分别以增加的方式打开d://food.txt;d:// cosmetics.txt;d:// dailyuse.txt;d:// liquid.txt文件,分别对应食物,化妆品,日用品,饮料四种商品,使输入的商品信息都分类写入文件。
2.2修改/删除函数
此函数实现的功能主要是,修改/删除一个商品的信息。在此函数中,先以读的方式打开文件,读出文件里的信息在显示在屏幕上,关闭文件。用户再根据提示信息输入想要修改/删除的商品的商品编号,选择是删除还是修改该商品信息。再以写的方式打开文件,以一个if条件语句控制,再重新将商品信息写入文件(选择删除功能的话则除了打算删除的那个商品的信息),由于是以写的方式打开的文件,所以文件里原有的输入就都没有了,存入的新的数据。
2.3 查询/显示全部(利润)函数
在查询/显示全部功能中,可以按多条件查询,若不按条件查询则可选择显示该类别全部商品信息且计算利润。本系统有两个基本查询条件,即按商品编号查询和按商品名查询,也可根据商品的特殊信息进行查询。使用if语句来选择查询条件。
2.3.1 显示全部
根据提示信息输入需要查询哪种类型的商品后,然后再选择显示全部功能使用一个for循环语句,显示全部该类别信息,并计算利润。
VC++ 课程设计报告 火车票管理系统 (内涵源程序)
2.3.1 按条件查询
根据提示信息选择各种条件查询后,然后使用一个for循环语句,从第一个学生开始检索,如果该商品的信息和输入的条件一致,则输出该商品的信息。
当无查询结果时,则无显示 。
2.4 查看过期食品函数
此功能实现的功能主要是,创建了一个日期类date,方便对生产日期和保质期的计算。首先要求用户输入今日的日期。再以读的方式打开食品商品文件,读出文件的信息并对生产日期和保质期利用日期类date进行求和。再以用户输入的今日日期进行求差。若结果为负数则输出“已过期!”,若结果为正数则输出还剩余几天。
2.5 退出系统
当输入“0”时,就能退出系统,这是通过switch语句来控制实现的。当用户输入switch已定义的数字之外的数字,自动退出运用。再按任意键则退出DOS界面,
VC++ 课程设计报告 火车票管理系统 (内涵源程序)
第三章 调试及运行结果 3.1 主菜单
主菜单显示如下:
图3-1 主菜单
3.2初始录入/添加功能
按1则进入输入/添加菜单,如图3-2-1: 再选择相应的商品类型进行输入,如图3-2-2:
图3-2-1 输入/添加菜单 图3-2-2 输入/添加过程
3.3修改/删除功能
进入主菜单后选择2,进入修改/删除功能,如图3-3-1;再选择相应的商品类型进行操作,根据提示进行操作,如图3-3-2;
图3-3-1修改/删除菜单
VC++ 课程设计报告 火车票管理系统 (内涵源程序)
图3-3-1修改/删除过程
3.4查询/显示全部(利润)功能
进入主菜单后选择3,进入查询/显示全部功能菜单,如图3-4-1,根据相应操作输入需要查询的类型。根据相应操作进行查询。
图3-4-1 查询菜单 图3-4-2 食品查询菜单
图3-4-3查询全部(利润)
VC++ 课程设计报告 火车票管理系统 (内涵源程序)
3.5 查看过期食品功能
进入主菜单后选择4,查看过期食品功能。
图3-5 查看食品
VC++ 课程设计报告 火车票管理系统 (内涵源程序)
第四章 总结
4.1 遇到的问题及解决方法
1.P:商品分为四类,不像其他题目一样只有一类。
S: 商品分为四类,若然创建一个商品类再派生四个类则函数不好连接。所
以把四种类型的变量,函数集中到一个类里。
2.P:一个功能需要分成四个子函数来完成,并且要创建一个功能菜单,导致程序过长,并且出现下列错误:
fatal error C1076: compiler limit : internal heap limit reached; use /Zm to specify a higher limit 编译器限制 : 达到内部堆限制;。
S:将功能缩减整合,减少不必要的变量和多余的代码重复。 3.P:如何做到检查食品是否过期功能。
S:设定一个日期类。编写关于日期计算的函数来达到。 4.P:参考源程序第二次启动EXE不能查看全部数据。
S:改为用数组一次读取全部数据,引入变量记录读取的数据数量再循环输出。
4.2 收获和体会
个人感受
首先,老师给的那个参考源程序有些不完美。例如程序第二次启动就不能查询到信息,不过里面倒是有很多代码可以复制下。做了一晚上的程序,外加弄了一晚上的这份报告,其实也学到很多东西。首先,不懂的东西要百度。其次,大概是遇到问题要绕弯吧,很多问题不能直接解决。总体来说这个题目应该是在十个题目里最难的,因为它的处理对象分成四个类型。而且其他题目可以直接从参考源程序里复制修改下,甚至可以在网上找到全部。
VC++ 课程设计报告 火车票管理系统 (内涵源程序)
附录:程序代码
#include<iostream> #include<fstream> #include<string> #include<iomanip> using namespace std; class good //商品构造 {
private:
int num,kpdate;//保质期 string name;
string indate;//食品出厂日期 string brand;//化妆品牌 string sort;//日常用品分类 string trademark;//饮料商标 double cost,price; public:
void menu(); void in();
void setfood();
void setcosmetics(); void setdailyuse(); void setliquid(); void change(); void changefood();
void changecosmetics(); void changedailyuse(); void changeliquid(); void search(); void searchfood();
void searchcosmetics(); void searchdailyuse(); void searchliquid(); void cheak(); };
class date {
private:
int year,month,day; public:
void set(int x) {
VC++ 课程设计报告 火车票管理系统 (内涵源程序)
year=x/10000;
month=(x-year*10000)/100; day=x-year*10000-month*100; }
int cdate(int x,date &y) {
int m;
m=-((y.year-year)*365+(y.month-month)*30+y.day-day)+x; return m; } };
void good::menu() {
cout<<"╔═════════════╗"<<endl; cout<<"║ 1.输入/添加 ║"<<endl; cout<<"║ 2.修改/删除 ║"<<endl; cout<<"║ 3.查询/利润 ║"<<endl; cout<<"║ 4.查看过期食品(new!) ║"<<endl; cout<<"║ 0.退出 ║"<<endl; cout<<"╚═════════════╝"<<endl; int x; cin>>x; switch(x) {
case 1:in();break; case 2:change();break; case 3:search();break; case 4:cheak(); } }
void good::in() {
cout<<"╔═════════════╗"<<endl; cout<<"║请根据需要输入对应序号 ║"<<endl; cout<<"║ 1.输入食品信息 ║"<<endl; cout<<"║ 2.输入化妆品信息 ║"<<endl; cout<<"║ 3.输入日常用品信息 ║"<<endl; cout<<"║ 4.输入饮料信息 ║"<<endl; cout<<"║ 0.返回菜单 ║"<<endl; cout<<"╚═════════════╝"<<endl; int x; cin>>x; switch(x) {
VC++ 课程设计报告 火车票管理系统 (内涵源程序)
case 1:setfood();break;
case 2:setcosmetics();break; case 3:setdailyuse();break; case 4:setliquid();break; case 0:menu();break; } }
void good::setfood() {
int i;
ofstream outfile;
outfile.open("d:\\food.txt",ios::app); if(!outfile) {
cerr<<" open error"<<endl; exit(1); }
for(i=0;;i++) {
cout<<"当商品编号输入为'0'时,返回上一菜单。"<<endl; cout<<"商品编号:"; cin>>num;
if(num==0)break; if(num!=0) {
cout<<"食品名:"; cin>>name;
outfile<<num<<" "; outfile<<name<<" "; cout<<"成本价格:"; cin>>cost;
outfile<<cost<<" "; cout<<"销售价格:"; cin>>price;
outfile<<price<<" "; cout<<"8位数生产日期:"; cin>>indate;
outfile<<indate<<" "; cout<<"保质期(天):"; cin>>kpdate;
outfile<<kpdate<<endl; } }
outfile.close();
VC++ 课程设计报告 火车票管理系统 (内涵源程序)
menu(); }
void good::setcosmetics() {
int i;
ofstream outfile;
outfile.open("d:\\cosmetics.txt",ios::app); if(!outfile) {
cerr<<" open error"<<endl; exit(1); }
for(i=0;;i++) {
cout<<"当商品编号输入为'0'时,返回上一菜单。"<<endl; cout<<"请输入商品编号:"<<endl; cin>>num;
if(num==0)break; if(num!=0) {
cout<<"化妆品名:"; cin>>name;
outfile<<num<<" "; outfile<<name<<" "; cout<<"成本价格:"; cin>>cost;
outfile<<cost<<" "; cout<<"销售价格:"; cin>>price;
outfile<<price<<" "; cout<<"化妆品牌:"; cin>>brand;
outfile<<brand<<endl; } }
outfile.close(); menu(); }
void good::setdailyuse() {
int i,x;
ofstream outfile;
outfile.open("d:\\dailyuse.txt",ios::app); if(!outfile)
VC++ 课程设计报告 火车票管理系统 (内涵源程序)
{
cerr<<" open error"<<endl; exit(1); }
for(i=0;;i++) {
cout<<"当商品编号输入为'0'时,返回上一菜单。"<<endl; cout<<"商品编号:"; cin>>num;
if(num==0)break; if(num!=0) {
cout<<"日常用品名:"; cin>>name;
outfile<<num<<" "; outfile<<name<<" "; cout<<"成本价格:"; cin>>cost;
outfile<<cost<<" "; cout<<"销售价格:"; cin>>price;
outfile<<price<<" ";
cout<<"╔═════════════╗"<<endl; cout<<"║请根据分类输入对应序号 ║"<<endl; cout<<"║ 1.输入服装信息 ║"<<endl; cout<<"║ 2.输入鞋帽信息 ║"<<endl; cout<<"║ 3.输入清洁用品信息 ║"<<endl; cout<<"╚═════════════╝"<<endl; cin>>x; switch(x) {
case 1:sort="服装";break; case 2:sort="鞋帽";break; case 3:sort="清洁用品";break; }
outfile<<sort<<endl; } }
outfile.close(); menu(); }
void good::setliquid() {
int i;
VC++ 课程设计报告 火车票管理系统 (内涵源程序)
ofstream outfile;
outfile.open("d:\\liquid.txt",ios::app); if(!outfile) {
cerr<<" open error"<<endl; exit(1); }
for(i=0;;i++) {
cout<<"当商品编号输入为'0'时,返回上一菜单。"<<endl; cout<<"商品编号:"; cin>>num;
if(num==0)break; if(num!=0) {
cout<<"饮料名:"; cin>>name;
outfile<<num<<" "; cout<<"成本价格:"; cin>>cost;
outfile<<cost<<" "; cout<<"销售价格:"; cin>>price;
outfile<<price<<" "; cout<<"饮料品牌:"; cin>>trademark;
outfile<<trademark<<endl; } }
outfile.close(); menu(); }
void good::change() {
cout<<"╔═════════════╗"<<endl; cout<<"║请根据需要输入对应序号 ║"<<endl; cout<<"║ 1.修改食品信息 ║"<<endl; cout<<"║ 2.修改化妆品信息 ║"<<endl; cout<<"║ 3.修改日常用品信息 ║"<<endl; cout<<"║ 4.修改饮料信息 ║"<<endl; cout<<"║ 0.返回菜单 ║"<<endl; cout<<"╚═════════════╝"<<endl; int x; cin>>x;
VC++ 课程设计报告 火车票管理系统 (内涵源程序)
switch(x) {
case 1:changefood();break;
case 2:changecosmetics();break; case 3:changedailyuse();break; case 4:changeliquid();break; case 0:menu();break; } }
void good::changefood() {
bool c;
int i,k,m=0,kpdate[50]; int num[50];
double cost[50],price[50]; string name[50],indate[50];
ifstream infile("d:\\food.txt",ios::in); if(!infile) {
cerr<<" open error"<<endl; exit(1); }
cout<<" ";
cout<<setw(9)<<"商品编号"; cout<<setw(9)<<"商品名"; cout<<setw(9)<<"进价"; cout<<setw(9)<<"售价"; cout<<setw(9)<<"生产日期";
cout<<setw(9)<<"保质期"<<endl; for(i=0;i<50;i++) {
infile>>num[i]; infile>>name[i]; infile>>cost[i]; infile>>price[i]; infile>>indate[i]; infile>>kpdate[i]; m++;
if(infile.eof())break; } m--;
for(i=0;i<m;i++) {
cout<<" ";
VC++ 课程设计报告 火车票管理系统 (内涵源程序)
cout<<setw(9)<<num[i]; cout<<setw(9)<<name[i]; cout<<setw(9)<<cost[i]; cout<<setw(9)<<price[i]; cout<<setw(9)<<indate[i];
cout<<setw(9)<<kpdate[i]<<endl; }
cout<<m<<endl; infile.close();
ofstream outfile("d:\\food.txt",ios::out); if(!outfile) {
cerr<<" open error"<<endl; exit(1); }
cout<<"请输入需要修改的商品的编号。"<<endl; cin>>k;
cout<<"修改:1;删除:0:"<<endl; cin>>c; if(c) {
for(i=0;i<m;i++)
{if(k==num[i])k=i;break;}
cout<<"请输入新的数据:"<<endl; cout<<"食品名:"<<endl; cin>>name[k];
cout<<"成本价格:"; cin>>cost[k];
cout<<"销售价格:"; cin>>price[k];
cout<<"8位数生产日期:"; cin>>indate[k];
cout<<"保质期(天):"; cin>>kpdate[k]; for(i=0;i<m;i++) {
outfile<<num[i]<<" "; outfile<<name[i]<<" "; outfile<<cost[i]<<" "; outfile<<price[i]<<" "; outfile<<indate[i]<<" ";
outfile<<kpdate[i]<<" "<<endl; }
outfile.close();
VC++ 课程设计报告 火车票管理系统 (内涵源程序)
cout<<"已修改成功!"<<endl; } else {
for(i=0;i<m;i++) {
if(i!=k) {
outfile<<num[i]<<" "; outfile<<name[i]<<" "; outfile<<cost[i]<<" "; outfile<<price[i]<<" "; outfile<<indate[i]<<" ";
outfile<<kpdate[i]<<" "<<endl; } }
outfile.close();
cout<<"已删除成功!"<<endl; }
menu(); }
void good::changecosmetics() {
bool c;
int i,k,m=0; int num[50];
double cost[50],price[50]; string name[50],brand[50];
ifstream infile("d:\\cosmetics.txt",ios::in); if(!infile) {
cerr<<" open error"<<endl; exit(1); }
cout<<" ";
cout<<setw(9)<<"商品编号"; cout<<setw(9)<<"商品名"; cout<<setw(9)<<"进价"; cout<<setw(9)<<"售价";
cout<<setw(9)<<"品牌"<<endl; for(i=0;i<50;i++) {
cout<<" "; infile>>num[i];
VC++ 课程设计报告 火车票管理系统 (内涵源程序)
infile>>name[i]; infile>>cost[i]; infile>>price[i]; infile>>brand[i]; m++;
if(infile.eof())break; } m++;
for(i=0;i<m;i++) {
cout<<" ";
cout<<setw(9)<<num[i]; cout<<setw(9)<<name[i]; cout<<setw(9)<<cost[i]; cout<<setw(9)<<price[i];
cout<<setw(9)<<brand[i]<<endl; }
infile.close();
ofstream outfile("d:\\cosmetics.txt",ios::out); if(!outfile) {
cerr<<" open error"<<endl; exit(1); }
cout<<"请输入需要修改的商品的编号。"<<endl; cin>>k;
cout<<"修改:1;删除:0:"<<endl; cin>>c; if(c) {
for(i=0;i<m;i++)
{if(k==num[i])k=i;break;} cout<<"新的数据:"; cout<<"化妆品:"; cin>>name[k];
cout<<"成本价格:"; cin>>cost[k];
cout<<"销售价格:"; cin>>price[k];
cout<<"化妆品牌:"; cin>>brand[k]; for(i=0;i<m;i++) {
outfile<<num[i]<<" ";
正在阅读:
化工原理吸收习题及答案11-18
论高职培养目标对数学教师素质的要求06-08
名师推荐-最新牛津译林版2018-2019学年八年级英语上学期第四次阶段性检测题及答案09-02
2018大学生入党申请书格式与范文09-08
1-5年级英文单词汇总01-25
外婆的窗散文随笔11-20
南京中医药大学第十三届研代会02-20
揭阳市2013高三数学文科二模考试03-15
朵拉A萌提醒产妇在分娩过程中需注意什么?01-05
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 管理系统
- 小型
- 超市
- 课程
- 报告
- 商品
- 设计
- VC
- Autodesk3dsMax2022图文安装教程
- 基本公共卫生服务项目培训总结
- 一本有助于加强大学生党建制度化水平的实用书——评《高校大学生
- 经济法个人及合伙企业案例复习-七天
- 用友软件操作指南(1)
- 郑氏家谱字辈排序汇编
- 电气工程考研院校专业排行榜TOP50
- 如何搞好水利建筑工程经营管理
- 浅析新课改下的英语作业
- 自主研发动态教材,K12 在线小班外教英语“金沃斯”获超亿元 A 轮
- 国际贸易实务——《国际货物运输》
- 五年级科学下册 地球在公转吗3课件 教科版
- 美国卓尔除颤起搏监护器
- 环氧树脂类型铁路非水性涂料市场深度调研及投资前景分析报告
- 大型汽轮发电机定子绕组端部振动的研究
- 做好园林工程的施工组织设计
- 保险合同的解除,经济法
- 第五章电子商务支付技术
- 九年级科学上册 4.2.2 食物的消化与吸收导学案(无答案) 浙教版
- 苏科版七年级下7.4认识三角形(2)教学课件