




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课 程 设 计 报 告 课程名称:面向对象程序设计c+ 设计题目: 销售管理系统 专 业: 计算机科学与技术 姓 名: 学 号: 指导教师: 李 晓 虹 2016 年 1 月 6 日目录1.系统需求分析32.总体设计32.1设计题目32.2设计要求33.详细设计33.1销售管理系统设计34.系统调试44.1 头文件sale.h44.2 sale.cpp文件64.3 main.cpp文件165.结果分析176.实验总结201.系统需求分析 做这次设计是为了进一步巩固c+程序设计所学的知识,特别加强类,对象,指针,引用,文件数据类型等的应用,熟悉从面向过程逐渐转变成面向对象程序设计的方法,培养面向
2、对象程序设计的思想,加深对高级语言基本语言要素和控制结构的理解,锻炼程序设计的能力,以用c+ 语言解决实际问题的能力,为后续课程的学习打好基础。2.总体设计2.1设计题目我的课程设计题目为销售管理系统。2.2设计要求要求为输入销售信息、存储销售信息、删除销售信息、添加销售信息、查找销售信息、将销售信息写入文件、从文件读出销售信息。假设有5个销售员,销售10种产品,每个销售员将每天销售的产品都用一条便条录入:销售员代号、所卖产品代号、这种产品当天销售额。3.详细设计3.1销售管理系统设计功能模块文件输入输出记录维护退出系统浏览文件输入文件输出查找保存删除插入功能模块文件输入输出记录维护退出系统浏
3、览文件输入文件输出查找保存删除插入表3.14.系统调试 下面是以文件为单位给出相应的源程序代码。4.1 头文件sale.h#if ! defined(sale_h)#define sale_h/预处理#include#include#include#include#include/*/* 销售类 */*class saleprivate:int salernum; /销售员代号int productnum; /销售产品代码float salenum; /销售额public:sale *next;sale *head;sale();sale(const sale &s);void inputda
4、ta(sale *s);/输入便条void add();/是否继续录入销售信息void displayinfo();/显示所有销售信息void delete(sale *head,int num);void readfile();/从文件中读数据 void find();/用销售员的代号查找销售记录void writefile();/将数据写入文件sale();friend void hand_menu();#endif/此外,还可以用链表结点的方式定义销售类。如下:/*struct nodeint salernum; /销售员代号int productnum; /销售产品代码float sa
5、lenum; /销售额node *next;/定义一个结点class saleprivate:node *head;public:sale();sale(const sale &s);void inputdata(sale *s);void add();void displayinfo();void delete(sale *head,int num);void readfile(); void find();void writefile();sale();friend void hand_menu();*/4.2 sale.cpp文件#include sale.h/*/* 菜单显示函数 */
6、* 函数原型:void hand_menu() */* 功 能:处理选择的菜单命令 */* 工作方式:根据命令,显示相应操作 */*void hand_menu()coutendl;cout(t*欢迎查询销售管理系统*n);cout(t*1 添加销售记录 *n);cout(t*2 从文件读数据 *n);cout(t*3 把数据写入文件 *n);cout(t*4 查找销售记录 *n); cout(t*5 显示所有销售记录 *n);cout(t*6 删除销售记录 *n);cout(t*7 退出系统 *n);cout(t*n);sale:sale()salernum=0; productnum=0;
7、 salenum=0;next=null;head=null;/构造函数sale:sale(const sale &s) salernum=s.salernum; productnum=s.productnum; salenum=s.salenum; next=s.next; head=s.head;/拷贝构造函数sale:sale()if(next != null)delete next;if(head !=null)delete head;/析构函数/*/* 输入销售信息inputdata函数 */* 函数原型:void inputdata(sale *s) */* 功 能:输入便条 */
8、*void sale:inputdata(sale *s)couts-salernum;coutendl;couts-productnum; coutendl; couts-salenum; coutnext=null;/置为空if(!head)head = p1;else/找到最后的链接列表p2 = head;while(p2-next) p2=p2-next; p2-next=p1; /添加一个记录到链表的末尾while(1)inputdata(p1);coutcchoose;/输入的y/n进行操作if(n=cchoose|n=cchoose)/不进行操作p1-next=null;/将p1
9、的下一个节点置为空hand_menu();/返回主界面return;else/输入y继续添加信息的情况p2=p1;p1=new sale;/分配一个内存空间给p1p2-next=p1;/将p1指向p2的下一个节点/*/* 输出销售信息displayinfo函数 */* 函数原型:void displayinfo() */* 功 能:显示所有的销售信息 */*void sale:displayinfo()sale *p;if(!head)/头指针为空,没有任何数据cout没有任何销售信息n;system(pause);/暂停,使用户能看到上一句话的显示hand_menu();/返回到主界面ret
10、urn;else/头结点不为空的情况couttt显示所有销售信息n;coutsalernumttproductnumttsalenumn;p=head;while(p)/循环,直到结点不为空coutsalernumttt;/将销售员的代号录入到salernumcoutproductnumttt;/将销售产品代码录入到productnumcoutsalenumnext; /指向下一个节点coutendl;/*/* 删除销售信息delete函数 */* 函数原型:void delete(sale *head,int num) */* 功 能:删除指定的销售记录 */*void sale:delet
11、e(sale *head,int num)sale *p,*p1;p=head;if(head=null)/判断头结点是否为空,为空就没有课删除的销售记录coutsalernum!=num&p-next!=null)/循环。输入的销售员代号是否和已输入的销售员代号相匹配而且p的下一个节点不为空p1=p;p=p-next;if(p-salernum=num)/当用户输入销售员的代号与已存在的销售员代号相匹配if(p=head)head=p-next;/将p的下一个节点与head链接elsep1-next=p-next;/将p的下一个节点与p1的下一个节点相链接cout*被删除销售员的销售信息*n
12、n;cout-;cout销售员代号tt销售产品代码tt销售额nn;coutsalernumttt;coutproductnumttt;coutsalenumttt;coutendl;cout-;delete p;/释放p节点,p节点里面的数据被删除elsecout*对不起,找不到该销售员的销售记录!*nn;/*/* 从文件中读取销售信息 */* 函数原型:void delete(sale *head,int num) */* 功 能:从文件中读取数据 */*void sale:readfile()sale *p=null;sale *p1,*p2;char filename50,ch;file
13、 *fr;/文件指针coutfilename;p=new sale;/分配一个内存空间head=p1=p;/让p1和head都指向pch=fgetc(fr); while(ch != eof)/读取数据fscanf(fr,%dtt,&p-salernum);/读取销售员代号到salernumfscanf(fr,%dtt,&p-productnum);/读取销售产品代号到productnumfscanf(fr,%ftt,&p-salenum);/读取销售额到salenump=new sale;/再为p分配一个内存空间p1-next=p;p2=p1;p1=p;p-next=null;p2-next
14、=null;delete p;/释放p节点fclose(fr);/关闭文件/*/* 查找指定的销售记录 */* 函数原型:void find() */* 功 能:用销售员的代号查找该销售记录 */*void sale:find()int salernum;sale *p; coutsalernum;coutsalernum=salernum)/输入的数字是在销售员的代号范围内,执行以下程序cout此销售员销售产品代号为:productnumendl;coutendl;cout此销售员销售额为:salenumendl;coutendl;cout恭喜您,查找成功!n;coutnext;/p指向p的
15、下一个节点 cout查找失败!n;/输入的数字不在销售员代号范围内,退出程序 /*/* 将销售信息存入到文件 */* 函数原型:void writefile() */* 功 能:将数据写入文件 */*void sale:writefile()sale *p;char filename50;file *fw;/文件指针if(head)/判断头结点是否为空cout没有数据被写入文件!n;return;coutfilename;if(fw=fopen(filename,wt)=null)/判断文件名是否有效cout无法创建filenamesalernum);/将数据写入salernum中fprint
16、f(fw,%dttt,p-productnum);/将数据写入productnum中fprintf(fw,%fttt,p-salenum);/将数据写入salenum中fprintf(fw,n);p=p-next;/将p指向下一个节点cout数据写入文件成功!n;coutendl;fclose(fw);/关闭文件4.3 main.cpp文件#includesale.hint main()int num;sale sal;hand_menu();/显示主界面while(1)coutnum;coutendl;switch(num)case 1:sal.add();break;/手动输入销售记录case 2:sal.readfile();break;/读文件case 3:sal.writefile();break;/将数据写入文件case 4:sal.find();break;/查找销售记录case 5:sal.displayinfo();break;/显示所有销售记录case 6:int count; coutcount;sal.delete(sal.head,count);break;/删除销售记录case 7:exit(1);break;/退出程序return 0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 黑龙江省齐齐哈尔市梅里斯区2024-2025学年八年级下学期期末考试语文试题(含解析)
- 社区消防员安全知识培训课件
- 项目聘用 长期合同范本
- 与焊接厂合同范本
- 看仓库人员合同范本
- 12333劳动合同范本
- 房屋全款转让合同范本
- 厂房代理合同范本
- 购买建材石材合同范本
- 蔬菜店经营合同范本
- 穴位敷贴中医护理技术操作规范
- 冷却塔投标文件
- 手工电弧焊焊接头基本形式与尺寸
- 青年教师专业成长课题结题报告
- 农村公路安全生命防护工程施工方案
- 开拓进取:零碳汽车的材料脱碳之路
- (完整版)自我护理能力量表ESCA
- M2激光模式测量
- 网吧企业章程范本
- 充电站竣工报告(施工单位)
- 甘肃铁矿等34个矿种矿业权出让收益场基准价(优.选)
评论
0/150
提交评论