收藏 分享(赏)

客户信息管理系统.doc

上传人:精品资料 文档编号:10816088 上传时间:2020-01-11 格式:DOC 页数:28 大小:210.40KB
下载 相关 举报
客户信息管理系统.doc_第1页
第1页 / 共28页
客户信息管理系统.doc_第2页
第2页 / 共28页
客户信息管理系统.doc_第3页
第3页 / 共28页
客户信息管理系统.doc_第4页
第4页 / 共28页
客户信息管理系统.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、1湖南第一师范学院信息科学与工程学院课程设计报告所 属 专 业: 计算机科学与技术 课 程 名 称: C+课程设计 课程设计名称: 客户信息管理系统 学 号: _14403090102_姓 名: 李碧秋 指 导 教 师: 杨恒伏 伍智平 2015 年 12 月2湖 南 第 一 师 范 学 院 课 程 设 计 任 务 书2015 -2016 学年第 1 学期院(部) 信息科学与工程学院 专业 计算机科学与技术 班级 14 计科 1 班 课程名称: C+课程设计 设计题目: 客户信息管理系统 完成期限:自 2015 年 12 月 28 日至 2016 年 1 月 8 日共 2 周目的及任务1. 掌

2、握面向对象程序设计语言2. C+的基本语法3. 掌握 C+面向对象设计的思想4. 掌握 VC+6.0 与 DEV C+开发工具的使用5. 运用标准 C+规范设计应用程序6. 遵循软件过程的各个环节进行系统分析、设计、实现、集成、测试,并相应给出软件规格说明书等文档。起止日期 工作内容2015.12.28 选题,系统背景调查与文献资料收集,实验平台构建2015.12.292015.12.31系统需求分析、系统概要设计、类的设计2016.1.12016.1.4系统详细设计与编码实现进度安排2016.1.52016.1.8系统测试与完善、文档整理与课程设计报告撰写主要参考资料1郑莉, 董渊, 何江舟

3、著. C+语言程序设计(第 4 版) (清华大学出版社, 2010.72(美)梅因等著, 金名等译. 数据结构与面向对象程序设计( C+版)(第 4 版). 清华大学出版社, 2012.53梅险, 曲蔚, 孙建业编. C/C+程序设计案例教程实验与实训指导 . 高等教育出版社, 2014.3指导教师(签字): 年 月 日教研室主任(签字): 年 月 日3目 录1. 客户信息系统概述 .41.1 基本要求 .41.2 主要功能 .41.3 设计方法 .51.4 系统开发的目的 .52. 总体设计 .52.1 系统功能模块 52.2 系统总体框架 62.3 类的分类表 72.4 系统关键算法流程图

4、 83. 系统运行报告 .134. 系统评价 .154.1 系统的特点 154.2 系统的缺点 154.3 将来可能提出的要求 155. 系统调试出现的问题 .156. 总结 .167致谢.168. 参考文献 .169. 源程序 .174客户信息管理系统设计报告1. 客户管理系统概述该系统主要处理客户的相关信息。客户信息主要包括:客户编号、客户名称、所在地区、联系方式等内容。地区信息主要包括:编号、名称等内容。完成以下的操作:客户信息、地区信息的录入、修改、删除和查询。1.1 基本要求程序运行结果正确,操作方便,界面美观,逻辑层次清楚,程序结构合理,文档规范清晰。1.2 主要功能要求: 1)添

5、加功能:能够对客户和地区信息进行添加。 2) 显示功能:能够对客户和地区信息进行输出,如未找到,显示出相应的提 示信息,如找到,则显示相应信息。3) 删除功能:能够对客户和地区信息进行删除,如未找到,显示出相应的提示信息。4)查找功能:能够按编号对客户和地区信息进行查找,如未找到,显示出相应的提示信息。 5)修改功能:能够按编号对客户和地区信息进行修改,如未找到,显示出相应的提示信息。 6)保存功能:能够把客户和地区信息保存为文件。7)读取功能:可将保存在文件中的人员信息读入到当前系统中,供用户使用。51.3 设计方法1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;2)分析系统

6、中的各个实体与他们之间的关系;3)根据问题描述,设计系统的类层次;4)完成类层次中各个类的描述;5)完成类中各个成员函数的定义;6)完成系统的应用模块;7)功能调试。1.4 系统开发的目的1. 熟练掌握 C+语言的基本知识和技能; 2. 基本掌握面向对象程序设计的基本思路和方法; 3. 利用所学的基本知识和技能,解决简单的面向对象程序设计问题;4. 设计一个含有最基本功能的客户信息管理系统。2. 总体设计2.1 系统功能模块根据问题描述和要求,系统要求能够按编号显示、查找、增加、删除和保存客户、地区的信息,确定程序至少应该具备如下功能:“录入客户和地区信息、 ”“查询客户和地区信息” 、 “增

7、加客户和地区信息” 、 “删除客户和地区信息” 、“修改客户和地区信息” 、 “输出客户和地区信息” 、 “数据存盘”基本模块。系统既然具有“数据存盘”功能客户数据可以保存到磁盘文件,那么也就意味着可以从磁盘文件读出客户数据,所以系统增加了“客户数据装入”模块,以方便用户使用、避免数据重复录入,并定义客户数据文件名:Xinxi.dat。考虑到根据编号查找人员信息功能在“删除客户和地区” 、 “修改客户和地6区” “输出客户和地区信息” 、等模块都使用,所以可以考虑设置为一个模块。如下图:2.2 系统总体框架使用面向对象的程序设计思想进行分析,整个系统涉及两大类信息和操作,客户、地区。所以系统涉

8、及四个大类:信息类 Xinxi(基类) 、客户类customer(继承类) 、地区类 area(继承类) 、管理类(友元类) 。系统的总体框架就是管理类的定义,主函数中定义一个管理对象,循环显示主菜单并根据用户选择调用管理类的成员函数。(1)信息类 Xinxi:考虑系统操作的客户信息的数量具有不确定性,所以考虑使用链表保存、处理客户信息。因为客户和地区信息都包括了地区编码和地区名称,所以信息类包含私有数据成员:编号 No1、名称 Name1、指针域next 以及类别 Duty,Duty 用来区分是客户信息还是地区信息,并且考虑到客户和地区信息的输入输出,信息类需要定义公共成员函数以便供客户类和

9、地区类继承使用。(2)地区类 area:地区类是信息类的公共继承类,继承了信息类的数据成员和成员函数,所以地区类不需要再定义其他数据成员和成员函数。(3)客户类 customer:客户类是信息类的继承类,客户类包括的信息除了地区编码和地区名称还包括客户本身的编码,名称及联系方式,所以客户类里需要另外定义数据成员客户编码 No2、客户名称 Name1、联系方式 num.(4)管理类 manger:管理类是信息类的友元类,以便访问信息类的私有数添加信息删除信息修改信息输出信息查找信息保存信息管理员查找 Find7据成员和成员函数,在管理类中分别定义添加信息,删除信息,输出信息,查找信息,保存信息,

10、修改信息等函数。2.3 类的层次图类名 信息类(基类)Xinxi数据成员 No1,Name1,Duty,next成员函数 Input,Output类名 地区类(继承类)area数据成员 No1,Name1,Duty,next成员函数 Input,Output类名 客户类(继承类)customer数据成员 No1,Name1,Duty,next,No2,Name2成员函数 Input,Output类名 管理类(友元类)manger数据成员 Xinxi *PL成员函数 Clear() manger() Delete() Save() Print() Search() Modify() Load()

11、 1.Xinxi 类的 No1-地区编号,Name1-地区名称,Duty-信息类别,next-指向下一个客户和地区的信息;Xinxi 类的 Input(),Output()定义为纯虚函数分别表示输入和输出信息,由于定义纯虚函数,所以 Xinxi 是抽象类,具体输入,输出信息由派生类完成。82.各个派生的类,包含本类对象特有的数据,继承基类共同的数据。3.友元类定义各个函数:void Add(); /添加void Delete(); /删除void Modify(); /修改void Search(); /查找void Print(); /输出void Save(); /存盘void Load(

12、); /装入void Clear();其中:(1)Clear() 用于清除人员链表所有结点。(2)Add(),Delete(),Modify(),Print(),Search(),Save(),Load()分别表示系统各个功能模块:增加信息,删除信息,修改修改,输出信息,查询信息,数据存盘,数据装入。2.4 系统关键算法流程图(1)主函数流程开始创建管理对象显示菜单接受输入根据输入进行操作输出9(2)manger:Add()(3) manger:Delete()开始选择输入类别输入数据,创立新结点结点加入链表结束开始选择删除类别查找要删除结点链表删除结点 提示未找到结束结点存在结束10(4)

13、manger:Modify(5) manger:Save()开始选择修改类别查找结点修改结点 提示未找到结束结点存在开始打开数据文件遍历链表保存数据关闭文件打开数据文件保存数据文件关闭文件11(6)manger:Print()(7)manger:Search()结束开始选择输出类型查找结点结点存在输出信息提示未找到结束开始选择查找类别查找结点结点存在输出信息 提示未找到12(8) manger:Load()开始打开文件关闭文件打开文件读取每一条记录文件未结束链表加入结点读取下面一行记录关闭文件根据人员类型创立结点结束读取基础数据关闭文件13结束143.系统运行报告(1)管理界面(2)输入信息(

14、3)输出信息15(4)删除信息(5)修改信息(6)查找信息(7)信息存盘164系统评价本部分具体从三方面阐述:优点、缺点以及将来可能提出的要求。4.1 系统的特点1.流程符合客户管理系统的基本要求。2.操作简单、方便。3.系统扩充容易。由于资料有限,有很多地方还需要更好的完善。4.2 系统的缺点1.界面不太美观、友好,输出和查找时数据和对应的信息没有对齐显示,查看时不太方便。2.同时输入客户信息和地区信息时,不能同时输出查看,只能查看首先录 入的信息;同时输入多个地区信息时不能全部保存,只能显示第一次输入的信息;当输入客户信息而没输入地区信息时,查看地区信息时并不会提示没有信息,而是将客户信息

15、输出。总之,只能实现客户信息和地区信息的分别输入和显示。3.文件保存功能没有实现,打开文件时没有任何记录。4.3 将来可能提出的要求1.要求界面更加完美 ,阅读起来方便易懂。2.要求客户信息和地区信息可以结合在一起,实现同时输入、同时保存、同时输出。 5.系统调试出现的问题1.编译程序时没有显示任何错误,但是执行时系统会出现程序停止运行的情况,我认为是系统没有为我在删除函数里定义的指针q开辟空间,如下:Xinxi q;q=p;17delete q;p=p-next;然后我换了另外一种方法,如下:p2-next=p1-next; /连接delete p1;cout#includeclass Xi

16、nxi protected:int No1; /编号char Name120; /名称int Duty;Xinxi *next; /指针域public:Xinxi ()next=0; /指针域设置为空virtual Xinxi()virtual void Input()=0; /从键盘输入数据virtual void Input(ifstream /从文件输入信息virtual void Output()=0; /向屏幕输出信息virtual void Output(ofstream /向文件输出信息friend class manger;19class customer: public Xi

17、nxi /客户继承类.;class area: public Xinxi /地区继承类.;class manger /管理员private:Xinxi *PL;void Clear();int manger:Find(int ID,Xinxi *p1,Xinxi *p2);public:manger(); /构造manger(); /析构void Add(); /添加void Delete(); /删除void Modify(); /修改void Search(); /查找void Print(); /输出void Save(); /存盘void Load(); /装入;manger:mang

18、er() /构造(创建一个头结点的链表)customer *p=new customer;PL=p;coutnext;20delete p;p=PL;void manger:Add()coutnext)p=p-next;int ch;coutch;/创建新结点,录入数据,连接到链表area *ar;customer *cu;switch(ch)case 1: ar=new area; ar-Input();p-next=ar; break;case 2: cu=new customer; cu-Input();/*p-next=cu; break;default: return;/*void

19、manger:Clear() Xinxi *p=PL-next;while(p)PL-next=p-next;delete p;p=PL-next;21/*int manger:Find(int ID,Xinxi *p1,Xinxi *p2)*p1=PL-next;*p2=PL;while(*p1)if(*p1)-No1=ID)break; /找到else*p2=*p1; /继续查找*p1=(*p1)-next;return *p1?1:0;void manger:Delete()coutnext;int ch;coutch;coutNo;switch(ch)case 0:if(!Find(N

20、o, /连接delete p1;coutnext=p1-next; /连接delete p1;coutch;coutNo;while(p-next)switch(ch)case 0:if(!Find(No, /输出原来地区信息p1-Input(); /输入新的地区信息coutOutput(); /输出原来客户信息p1-Input(); /输入新的客户信息coutnext;void manger:Print()coutnext;coutch;coutNo;switch(ch)case 0:if(!Find(No,p=p-next;coutOutput();p=p-next;coutnext;wh

21、ile(p) 25p-Output(f);p=p-next;f.close(); /关闭文件coutbufbufDuty;if(f)switch(Duty)case 0:p2=new area;break;case 1:p2=new customer;break;default:f.close();return;p-next=p2;/创立新结点p=p-next;f.seekg(t);p-Input(f);break;f.close(); /关闭文件void manger:Search()26coutnext;int ch;coutch;coutNo;switch(ch)case 0:if(!F

22、ind(No,p=p-next;coutOutput();p=p-next;break;27default: return;void main ()char ch;manger man;ch=1;docoutch;switch(ch)case1:man.Add(); break;case2:man.Delete(); break;case3:man.Modify(); break;case4:man.Search(); break;case5:man.Print(); break;case6:man.Save(); break;case7:man.Load(); break;while(ch!=8);28

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报