C++课程设计:销售管理系统.doc

上传人:文库蛋蛋多 文档编号:2384452 上传时间:2023-02-17 格式:DOC 页数:20 大小:307.50KB
返回 下载 相关 举报
C++课程设计:销售管理系统.doc_第1页
第1页 / 共20页
C++课程设计:销售管理系统.doc_第2页
第2页 / 共20页
C++课程设计:销售管理系统.doc_第3页
第3页 / 共20页
C++课程设计:销售管理系统.doc_第4页
第4页 / 共20页
C++课程设计:销售管理系统.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《C++课程设计:销售管理系统.doc》由会员分享,可在线阅读,更多相关《C++课程设计:销售管理系统.doc(20页珍藏版)》请在三一办公上搜索。

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;/手动输入销售记录ca

17、se 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;5.结果分析 编译正确后,即可运行程序。下面是运行示例:图5-1图5-2图5-3图5-4图5-56.实验总结设计思想:本课题的实质是完成对销售信息的添加、删除、查询等功能,可以首先抽象出实验所需的类,然后将每个功能写成一个成员函数从而完成对数据的操作,最后完成主函数以验证各个函数功能并得出运行结果。可将此系统分为如下模块:对销售信息进行添加、删除、按条件进行查询、退出系统。经过这次课程设计,我觉得最重要的是自己能够独立编写了一个小型的管理系统,明白了C+的学习需要自己课后的自主学习和锻炼,必须从实际操作中去发现并解决问题。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号