客户信息管理系统.doc

上传人:scccc 文档编号:13509910 上传时间:2022-01-12 格式:DOC 页数:43 大小:788KB
返回 下载 相关 举报
客户信息管理系统.doc_第1页
第1页 / 共43页
客户信息管理系统.doc_第2页
第2页 / 共43页
客户信息管理系统.doc_第3页
第3页 / 共43页
亲,该文档总共43页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《客户信息管理系统.doc》由会员分享,可在线阅读,更多相关《客户信息管理系统.doc(43页珍藏版)》请在三一文库上搜索。

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

2、.0 与 DEV C+ 开发工具的使用5. 运用标准 C+ 规范设计应用程序6. 遵循软件过程的各个环节进行系统分析、 设计、实现、集成、测试,并相应给出软件规格说明书等文档。起止日期工作内容2015.12.28选题,系统背景调查与文献资料收集,实验平台构建2015.12.29 20系统需求分析、系统概要设计、类的设计15.12.31进度安排2016.1.1 2016系统详细设计与编码实现.1.42016.1.5 2016系统测试与完善、文档整理与课程设计报告撰写.1.81 郑莉 , 董渊 , 何江舟著 . C+ 语言程序设计(第4 版)(清华大学出版社 , 2010.7主要参考资料2(美)梅

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

4、94.2系统的缺点 .194.3将来可能提出的要求 .205.系统调试出现的问题 .206.总结.21716致谢.8.参考文献 .229.源程序 .22Word 文档.客户信息管理系统设计报告1. 客户管理系统概述该系统主要处理客户的相关信息。客户信息主要包括:客户编号、客户名称、所在地区、联系方式等内容。地区信息主要包括:编号、名称等内容。完成以下的操作:客户信息、地区信息的录入、修改、删除和查询。1.1 基本要求程序运行结果正确,操作方便,界面美观,逻辑层次清楚,程序结构合理,文档规范清晰。1.2 主要功能要求:1)添加功能:能够对客户和地区信息进行添加。2) 显示功能:能够对客户和地区信

5、息进行输出,如未找到,显示出相应的提示信息,如找到,则显示相应信息。3) 删除功能:能够对客户和地区信息进行删除,如未找到,显示出相应的提示信息。4)查找功能:能够按编号对客户和地区信息进行查找,如未找到,显示出Word 文档.相应的提示信息。5)修改功能:能够按编号对客户和地区信息进行修改,如未找到,显示出相应的提示信息。6)保存功能:能够把客户和地区信息保存为文件。7)读取功能:可将保存在文件中的人员信息读入到当前系统中,供用户使用。1.3 设计方法1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;2)分析系统中的各个实体与他们之间的关系;3)根据问题描述,设计系统的类层次;

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

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

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

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

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

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

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

13、点结点存在链表删除结点提示未找到Word 文档.结束(4) manger:Modify开始选择修改类别查找结点结点存在修改结点提示未找到(5) manger:Save()结束开始打开数据文件Word 文档.遍历链表保存数据关闭文件打开数据文件保存数据文件关闭文件结束开始( 6) manger:Print()选择输出类型查找结点结点存在输出信息提示未找到Word 文档.结束( 7) manger:Search()开始选择查找类别查找结点结点存在提示未找到输出信息Word 文档.结束(8) manger:Load()开始打开文件读取基础数据关闭文件打开文件读取每一条记录文件未结束根据人员类型创立结

14、点链表加入结点Word 文档.读取下面一行记录关闭文件结束Word 文档.3.系统运行报告( 1)管理界面( 2)输入信息( 3)输出信息Word 文档.( 4)删除信息( 5)修改信息( 6)查找信息( 7)信息存盘Word 文档.4系统评价本部分具体从三方面阐述:优点、缺点以及将来可能提出的要求。4.1 系统的特点1.流程符合客户管理系统的基本要求。2.操作简单、方便。3.系统扩充容易。由于资料有限,有很多地方还需要更好的完善。4.2 系统的缺点1.界面不太美观、友好,输出和查找时数据和对应的信息没有对齐显示,查看时不太方便。2.同时输入客户信息和地区信息时,不能同时输出查看,只能查看首先

15、录入的信息;同时输入多个地区信息时不能全部保存,只能显示第一次输入的信息;当输入客户信息而没输入地区信息时,查看地区信息时并不会提示没有信息,而是将客户信息输出。总之,只能实现客户信息和地区信息的分别输入和显示。3.文件保存功能没有实现 ,打开文件时没有任何记录。Word 文档.4.3 将来可能提出的要求1.要求界面更加完美,阅读起来方便易懂。2.要求客户信息和地区信息可以结合在一起,实现同时输入、同时保存、同时输出。5.系统调试出现的问题1.编译程序时没有显示任何错误,但是执行时系统会出现程序停止运行的情况,我认为是系统没有为我在删除函数里定义的指针q开辟空间,如下:Xinxi q;q=p

16、;delete q ;p=p-next;Word 文档.然后我换了另外一种方法,如下:p2-next=p1-next;/ 连接delete p1;cout 正确删除 !n ;2.程序编译时会出现没有主函数的错误,原因是括号没有正确匹配。3.程序运行时出现无限循环,是因为输出函数没有终止语句break.6. 总结在这次课程设计中我终收获颇多, 让我对编程有了新的认识, 平时很少上机,总是在看程序,满足于看懂 程序,因 此离自己会编程序 还有一段差距,这次课程设计虽然老师给了参考模板,但是这只是一种思路, 需要我们根据自己的问题完善程序, 这使得我不得不自己写, 看了几遍程序, 基本理解了编程的方

17、法,虽然一开始出现了很多错误,但是经过多次分析与修改, 最后完成了程序要求。其次,在编程之前一定要思考, 给自己规划好步骤, 我在第一周编程时没有认真阅读问题要求, 以为只要对客户信息进行操作,在第二周我已经编好程序准备写设计报告时才发现自己看错了,所以星期二下午和星期三我又在之前的基础上重新编了这个程序, 导致设计报告写的有些仓促,所以,我们在编程之前一定要认真阅读题目,分析设计要求,理清思路,这样后面编程时才能顺利进行。所以这次的课程设计让我用了一个相对比较集中的时间去练习我的编程,特Word 文档.别是自己的动手能力, 加深了对类和对象的理解,提高了自己分析问题、 运用所学知识解决问题的

18、能力,并培养了基本的设计技能。7致谢在这次课程设计中, 老师和同学们给了我很大的帮助,在此表示衷心的感谢和诚挚的谢意。8. 参考文献1. 1 谭浩强 . C+ 面向对象程序设计 (第2版第二版 )M. 清华大学出版社 ,2014.2. 1 彭召意,朱艳辉,周玉 . C+ 面向对象程序设计课程的实践教学研究 J. 计算机教育 , 2015, (5): 151-1549. 源程序/#include#includeclass Xinxiprotected:int No1;/ 编号char Name120;/ 名称int Duty;Xinxi *next;/ 指针域Word 文档.public:Xin

19、xi ()next=0;/ 指针域设置为空virtual Xinxi()virtual void Input()=0;/ 从键盘输入数据virtual void Input(ifstream& ifs)=0;/ 从文件输入信息virtual void Output()=0;/ 向屏幕输出信息virtual void Output(ofstream& ofs)=0;/ 向文件输出信息friend class manger;class customer:public Xinxi/ 客户继承类.;class area:public Xinxi/ 地区继承类Word 文档.;class manger/

20、 管理员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();/ 装入;Word 文档.manger:manger()/ 构造(创建一个头结点的链表)customer *p=new customer;PL=p;

21、coutnext;delete 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;Word 文档.default:return;/*void manger:Clear()Xinxi *p=PL-next;while(p)PL-next=p-next;delete p;p=PL-next;/*int manger:Find(int ID,Xinxi *p1,Xinxi *p2)Word 文档.*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()coutn* 删除信息 *n;

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1