C++课程设计小型超市管理系统方案.docx
- 文档编号:2605383
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:48
- 大小:215.54KB
C++课程设计小型超市管理系统方案.docx
《C++课程设计小型超市管理系统方案.docx》由会员分享,可在线阅读,更多相关《C++课程设计小型超市管理系统方案.docx(48页珍藏版)》请在冰点文库上搜索。
C++课程设计小型超市管理系统方案
江苏师范大学科文学院
本科生课程设计
课程名称:
C++课程设计
题目:
小型超市管理系统
专业班级:
14电信1班
学生姓名:
杨顺顺
学生学号:
148326141
日期:
2016.12.10
指导教师:
袁博宇
科文学院教务部印制
一、课程设计目的、任务和内容要求:
设计一个简单的超市管理系统。
1.暂定有三个货架,分别放着日常用品、食品和家电。
2.可以实货架商品的增加和出售。
3.设计查询功能,可以查找商品的现状。
4.不同商品有不同属性:
食品类,保质期,家电,颜色。
5.重载运算符>>。
设计要求:
要求利用面向对象的方法以及C++的编程思想来完成系统的设计;
要求在设计的过程中,建立清晰的类层次;
在系统的设计中,至少要用到面向对象的一种机制。
二、进度安排:
第1~3天:
查找资料,熟悉小型超市管理系统的设计原理,给出设计总体方案;
第4~6天:
各函数的详细设计;
第7~12天:
程序调试;
第13~14天:
写课程设计报告。
三、主要参考文献:
1.《c++语言程序设计(第四版)》——郑莉董渊何江舟编著
指导教师签字:
年月日
摘要·······································1
1概述·······································2
2设计方案简述·······························3
2.1设计内容·································3
2.2设计目的与要求···························3
2.3系统分析与设计··························3
3详细设计··································12
3.1系统总体设计···························12
3.2源程序代码·····························13
4运行结果··································28
5设计体会··································32
摘要
当代社会中伴随着计算机技术在各行各业日益广泛和深入的应用,超市对货品于职员的管理不在像过去一样靠手工去做,在一些超市管理中也开始信息化。
信息化的管理可以为超市节省大量人力物力,提高其运行效率,从而为顾客提供更好的服务,实现超市的业务提升。
本系统就是为了适应这种要求而设计的。
集信息的显示、输入、修改、删除、查询等各种处理为一体,信息维护起来非常方便。
大大减少了超市的人力和物力。
本系统大致要做到以下几点:
(1) 操作简便,节省大量人力;
(2)可以方便的进行货品管理,安全、高效;
(3) 可以迅速计算销售额和所买卖货品;
(4) 可以迅速查到所需信息,便于管理
1概述
1.1任务:
超市管理系统对职员商品信息进行高效简洁的管理,使之能正常高效的进行售卖活动。
系统充分考虑到超市管理系统对货物资料进行登记并处理。
考虑到进货、退货、库存预警、年月日销售额结算等多种特殊情况,同时可将相关资料进行有效处理。
1.2目标:
当代社会中伴随着计算机技术在各行各业日益广泛和深入的应用,超市对货品于职员的管理不在像过去一样靠手工去做,在一些超市管理中也开始信息化。
信息化的管理可以为超市节省大量人力物力,提高其运行效率,从而为顾客提供更好的服务,实现超市的业务提升。
本系统就是为了适应这种要求而设计的。
集信息的显示、输入、修改、删除、查询等各种处理为一体,信息维护起来非常方便。
大大减少了超市的人力和物力。
本系统大致要做到以下几点:
(1) 操作简便,节省大量人力;
(2)可以方便的进行货品管理,安全、高效;
(3) 可以迅速计算销售额和所买卖货品;
(4) 可以迅速查到所需信息,便于管理。
2.设计方案简述
2.1设计内容
设计一个简单的超市管理系统。
1.暂定有三个货架,分别放着日常用品、食品和家电。
2.可以实货架商品的增加和出售。
3.设计查询功能,可以查找商品的现状。
4.不同商品有不同属性:
食品类,保质期,家电,颜色。
5.重载运算符>>。
2.2设计目的与要求
2.2.1设计目的
达到熟练掌握C++语言的基本知识和技能;
基本掌握面向对象程序设计的基本思路和方法;
能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
2.2.2设计要求
要求利用面向对象的方法以及C++的编程思想来完成系统的设计;
要求在设计的过程中,建立清晰的类层次;
在系统的设计中,至少要用到面向对象的一种机制。
2.3系统分析与设计
2.3.1主要知识点
1)类,类内包含构造函数、成员函数、私有数据成员和某些输入输出函数;
2)运算符重载,定义一个重载运算符的函数,在需要执行被重载的运算符是,系统自动调用该函数;
3)继承与派生:
1.基类即父类,被继承的已有类;2.派生类即子类,新建立的类;3.这些类的定义和声明同类;4.虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。
2.3.2关键技术
1)程序共有四个头文件和四个源文件。
头文件Supermarket,包含增加Add,出售Sale和查询Search三个公有成员函数;
源文件Supermarket,增加函数,出售函数和查询函数的功能相似,选择功能,输出商品类型列表。
头文件Goods,在这个头文件中有四个类,一个基类和三个派生类。
基类Goods中设置增加AddGoods,出售SaleGoods,显示函数virtualShowMe。
同时定义统一的出售函数Sale。
保护成员包括,商品名称name[],商品数量number[]和商品分类的数量count。
派生类,日常用品类DailyGoods,食物Food和家电ElectricalAppliance,除了自身的无参构造函数,均从基类中继承增加AddGoods,出售SaleGoods,显示函数virtualShowMe,并根据课题要求加入运算符重载函数istreamoperator>>(istream&in,DailyGoods&d)。
同时借助函数Input_file和函数Save_file将商品信息输出并保存到文件中。
源文件Goods,实现各函数功能。
头文件diaplay,保存了小系统的基本页面和选择页面。
登录界面Loading,功能选择界面SelectMenu,商品功能列表GoodList和结束页面End。
源文件display,进行头文件的各项函数的功能实现。
头文件file,是关于文件的存储,打开和关闭的功能。
源文件main,实现功能的汇总和实现方式。
2)部分函数的实现
//Supermaket
*Add函数
intSupermarket:
:
Add()
{
intGood_num;
system("cls");
GoodList();//调用GoodList()函数语言
cout<<"\t\t您要增加什么类型的商品?
";
cin>>Good_num;
returnGood_num;
}
*Sale函数
intSupermarket:
:
Sale()
{
intGood_num;
system("cls");
GoodList();//调用GoodList()函数语言
cout<<"\t\t您要出售什么类型的商品?
";
cin>>Good_num;
returnGood_num;
}
*Search函数
intSupermarket:
:
Search()
{
intGood_num;
system("cls");
GoodList();//调用GoodList()函数语言
cout<<"\t\t您想要查询什么类型的商品?
";
cin>>Good_num;
returnGood_num;
}
//Goods
*Sale函数
voidGoods:
:
Sale()//统一定义商品出售函数功能模块
{
intflag=0;
stringgoods_name;
intgoods_number;
cout<<"商品名称:
";cin>>goods_name;
cout<<"出售数量:
";cin>>goods_number;
for(inti=0;i { if(name[i]==goods_name) { if(number[i] { flag=1; cout< cout<<"\t\t\t! ! ! 货存不足! ! ! "< } else { flag=1; number[i]-=goods_number; cout< cout<<"\t\t\t! ! ! 出售成功! ! ! "< } } } if(flag==0) { getchar(); cout< cout<<"\t\t\t没有该物品! "< getchar(); } } *AddGoods函数 voidDailyGoods: : AddGoods()//增加日常用品 { system("cls"); intflag=1; ShowMe(); cout< cout<<"商品名称: ";cin>>name[count]; cout<<"商品数量: ";cin>>number[count]; for(inti=0;i { if(name[i]==name[count])//判断该物品是否已经存在 { number[i]+=number[count]; flag=0; } } if(flag) count++;//用于新增物品 cout< cout<<"\t\t\t! ! ! 添加商品成功! ! ! "< cout<<"\t\t∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞"< } voidFood: : AddGoods()//增加食品 { system("cls"); intflag=1; ShowMe(); cout< cout<<"商品名称: ";cin>>number[count]; for(inti=0;i { if(name[i]==name[count])//判断该物品是否存在 { number[i]+=number[count]; flag=0; } } if(flag) { cout<<"商品数量: ";cin>>number[count]; cout<<"保质期: ";cin>>SaveTime[count]; count++;//用于新增物品 } cout< cout<<"\t\t\t添加商品成功! ! ! "< cout< cout< } voidElectricalAppliance: : AddGoods()//增加家电 { system("cls"); intflag=1; ShowMe(); cout< cout<<"商品名称: ";cin>>name[count]; for(inti=0;i { if(name[i]==name[count])//判断该物品是否已经存在 { cout<<"商品数量: "; cin>>number[count]; number[i]+=number[count]; flag=0; } } if(flag) { cout<<"商品数量: "; cin>>number[count]; cout<<"颜色: "; cin>>color[count]; count++;//用于新增物品 } cout< cout<<"\t\t! ! ! 添加商品成功! ! ! ! "< cout<<"\t\t*************************************"< } *SaleGoods函数 voidDailyGoods: : SaleGoods()//出售日常用品 { system("cls"); ShowMe(); cout< Sale();//调用基类Goods里的Sale()函数 } voidFood: : SaleGoods()//出售食品 { system("cls"); ShowMe(); cout< Sale();//调用基类Goods里的Sale函数 } voidElectricalAppliance: : SaleGoods()//卖出家电 { system("cls"); ShowMe(); cout< Sale();//调用基类Goods里的Sale()函数 } *ShowMe函数 voidDailyGoods: : ShowMe()//显示日常用品 { cout< cout< "< for(inti=0;i { cout<<"【"< "< : left)< cout<<"现存数量: "< cout<<"-----------------------------------------------"< } } voidFood: : ShowMe()//显示食品信息 { cout< cout< "< for(inti=0;i { cout<<"【"< "< : left)< cout<<"现存数量: "< cout<<"保质期: "< cout<<"-----------------------------------------------------------"< } } voidElectricalAppliance: : ShowMe()//显示家电信息 { cout< cout< "< for(inti=0;i { cout<<"【"< "< : left)< cout<<"现存数量: "< cout<<"颜色: "< cout<<"------------------------------------------------------------"< } } *文件的输入和保存函数 voidDailyGoods: : Input_file(ostream&outfile)//将DailyGoods类商品信息打印到文件中 { outfile< "< for(inti=0;i { outfile<<"【"< "< : left)< outfile<<"现存数量: "< } outfile< } voidDailyGoods: : Save_file(ostream&Write_DailyGoods)//用于将DailyGoods商品信息单独保存到文件中 { Write_DailyGoods< for(inti=0;i { Write_DailyGoods< } } voidFood: : Input_file(ostream&outfile)//将Food类商品信息打印到文件中 { outfile< "< for(inti=0;i { outfile<<"【"< "< : left)< outfile<<"现存数量: "< outfile<<"保质期: "< } outfile< } voidFood: : Save_file(ostream&Write_Food)//用于将Food商品信息保存到文件中 { Write_Food< for(inti=0;i { Write_Food< } } voidElectricalAppliance: : Input_file(ostream&outfile)//将ElectricalAppliance类商品信息打印到文件中 { outfile< "< for(inti=0;i {outfile<<"【"< "< : left)< outfile<<"现存数量: "< "< } outfile< } voidElectricalAppliance: : Save_file(ostream&Write_ElectricalAppliance)//用于将ElectricalAppliance商品信息保存到文件中 { Write_ElectricalAppliance< for(inti=0;i { Write_ElectricalAppliance< } } //Display函数 voidSelectMenu()//实现商品操作的列表 { cout< cout<<"\t可操作选项: "< cout<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 课程设计 小型 超市 管理 系统 方案