碟行客户信息管理系统_第1页
碟行客户信息管理系统_第2页
碟行客户信息管理系统_第3页
碟行客户信息管理系统_第4页
碟行客户信息管理系统_第5页
已阅读5页,还剩18页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 c+课程设计报告 课题名称:碟行客户信息管理系统专 业: 电子信息工程 班 级: 电信07级1班 学 号: 学生姓名: 指导教师: 目录1.课程设计目的第2页2.课程设计要求第2页3.课程设计报告内容第2页4.课程设计总结第14页一.课程设计目的课程设计一方面使学生对所学理论知识进行一次综合性复习;另一方面培养学生设计、开发软件的能力,同时为后续专业课的学习、毕业实习和设计打下基础。他是一种考查我们对课本知识的掌握程度的一种很好的方法。做课程设计的目地是为了让我们更好的理解在课上所学到的知识,更好的运用自己所学到的程序设计的知识;在这个过程中可以增加我们的各方面的能力,比如在遇到问题的时候我

2、们可以查阅相关的资料,请教同学或是老师,这些都可以增加我们自身的能力.二.课程设计要求1.有工作界面(采用菜单或按钮方式)2.进行客户信息录入,包括编号姓名性别年龄职业入会资金入会时间字段;所录入的数据存入一个文本文件中;能够根据情况调出.3.编号必须唯一.4.具有对新会员信息插入功能,并按其编号插入排序,使数据依然有序.5.具有删除功能.6.具有修改功能,只要访问一次某编号,其入会资金就相应减一元;也可以为某会员进行重值.7.具有查询功能:(1).按编号查询会员资金情况,当资金小于十元时,则给出报警提示.(2).按姓名查询用户相关信息(入有同名,则必须将所有记录全部显示).8.具有统计功能:

3、(1).统计不同年龄段的人数.(2).根据入会时间统计不同时间段的资金情况.9.能在屏幕上输出所有客户的信息.主函数三.课程设计报告内容1.功能结构图修改函数查询函数输入函数统计函数删除函数输出函数向文件写入数据函数主函数main()主要是通过shuru(),chaxun(),xiugai(),delete(),print(),tongji*()六个子函数来实现的,且每次操作过后都将新数据通过函数outfile()写入文档.2.功能描述和流程图定义一个结构体struct gukestring name; /姓名string number; /编号string sex; /性别int age;

4、/年龄string zhiye; /职业long zijin; /入会资金string time; /入会时间guke *next;(1). outfile()函数是一个向文本写入信息的函数.在此程序中的每个函数都用到了它.客户信息每进行一次变动都要记录下来,这就是用outfile()函数来实现的.(2). shuru()函数可以向程序输入和插入数据,完成对整个程序的数据输入, 进行客户信息录入,而且此函数里还设置了编号必须唯一的算法,具体流程图如图-1.2开始定义变量p0,p1,p2人数为0p1=p2=new guke输出提示输出提示输入信息head=p1;p1-next=null;nguk

5、e+p1=head;p0=newguke;bool panduam=true;p0-name=0输入姓名nguke+panduan=truep0-number!=p1-numberp1-next!=numberp1-next!=nullp0-number=p1-numberp0-numberpanduan=truepanduan=false131p1=headp0-number!=p1-numberp1-next!=numberp2=p1;p1=p1-nextp0-numbernumberhead=p1head=p0p2-next=p0p0-next=p1p1-next=p0p0-next=n

6、ull23结束调用函数outfile(head)(3)delete()函数是用来对退出碟行的会员进行管理的.通过这个函数可以将退出用户的信息进行删除.具体流程图如图-2.开始*p1=headnguke=0p1=headcinnamename=0name!=p1-name & p1-next!=nullp2=p1; p1=p1-nextname=p1-name删除该人信息不存在该用户调用函数outfile(head)2结束(4).chaxun()函数是用来查询客户信息的,它可以查询客户的当前资金和客户的详细信息,以便对客户进行管理.具体流程图如图-3.开始结束调用函数outfile(head)n

7、guke=0按姓名查询客户的详细信息panduan=2按编号查询客户资金并做相应处理panduan=1panduan=0”cinpanduanp!=null*p=head开始(6).shuchu( )函数是用来输出客户信息的,还可以从文本文件中输出客户信息.具体流程图如图-5.输出客户信息调用文本信息输出信息关闭文件结束(7).tongji()函数是用来统计不同年龄、不同时间的会员情况,以便于更好的服务客户. 具体流程图如图-6.开始nguke=0cinpanduan结束按入会日期统计panduan=2panduan=1”按年龄统计panduan=03.源程序代码(见附页)4.程序执行结果分析

8、4.1.运行程序弹出主界面如下:然后根据提示操作.4.2.输入“1”:输入客户信息运行下面界面:按上面信息输入客户信息,如:输入”0”返回主菜单.4.3.输入”2”:可继续插入新客户的信息:输入”0”返回主菜单.4.4.输入”3”:进行客户信息的修改输入”0”返回主菜单,还可继续修改其他会员的信息.4.5.输入”4”:把退户人员的信息删除已删除会员”李飞”的全部信息,继续删除或输入”0”返回主菜单.4.6.输入”5”:可对客户信息进行查询输入”1”查询会员资金输入”2”查询会员详细信息,每查询一次该会元的资金减少一元4.7输入”6”:输出客户信息4.8.输入”7”:进行统计然后可以分别按年龄和

9、入会日期统计输入”0”可返回主菜单.到此该程序运行结束.四.课程设计总结通过这次课程设计,我学到了很多以前在书本上没学到的知识,让我对编程有了新的认识。在这次课程设计过程中我遇到了很多问题,面对这些问题我在寻找答案的过程中,我有时上网查资料,有时会请教老师或同学,通过这些我自身的学习能力增加了不少。课程设计是对所学知识的一个整体运用,它把以前所学零散的知识凝结到了一起,让我们对所学知识有了整体的认识。我想在这次课程设计之后我的编程水平一定会有所提高。参考资料:c+大学教程(第二版) 邱仲潘等译 电子工业出版社visual c+编程与实例 谷保山编 北京科学出版社附页:#define null

10、0#include#include #include #include #include cstdlib /用于dos清屏using namespace std;int nguke=0;struct gukestring name; /姓名string number; /编号string sex; /性别int age; /年龄string zhiye; /职业long zijin; /入会资金string time; /入会时间guke *next;void outfile(guke *head); /声明向文件写入数据的函数guke *shuru(guke *head)guke *p0,*

11、p1,*p2;if (nguke=0)p1=p2=new guke;cout 请输入客户信息包括 姓名 | 编号 | 性别 | 年龄 | 职业 | 入会资金 | 入会时间 :nttt (输入 0 返回主菜单) n;cout输入客户信息p1-namep1-numberp1-sexp1-agep1-zhiyep1-zijin p1-time;head=p1;p1-next=null;nguke+;elsecout 请输入新的客户信息包括 姓名 | 编号 | 性别 | 年龄 | 职业 | 入会资金 | 入会时间 :n=0) /只需循环 条件不重要 p1=head;p0=new guke; bool

12、panduan=true; cout继续输入客户信息(否则输入 0 返回)p0-name;if (p0-name=0)break;/当姓名为完成时终止循环else cinp0-numberp0-sexp0-agep0-zhiyep0-zijinp0-time;nguke+;while (panduan=true)while (p0-number!=p1-number & p1-next!=null)p1=p1-next;if (p0-number=p1-number)coutnamep0-number;bool panduan=true;elsepanduan=false;p1=head;wh

13、ile (p0-numberp1-number) & (p1-next!=null) /新加的节点后排p2=p1;p1=p1-next;if (p0-numbernumber) /找到位置插入if(head=p1)head=p0;elsep2-next=p0;p0-next=p1;elsep1-next=p0;p0-next=null;outfile(head); /写入数据return(head);guke *delete(guke *head) /删除函数guke *p1=head,*p2;string name; /使p1指向第一个结点while (nguke0)/只需循环 条件不重要c

14、outname;if (name=0)break;while (name!=p1-name & p1-next!=null) /p1指向的不是所要找的结点且后面还有结点p2=p1; p1=p1-next;/p1后移一个结点if(name=p1-name) /找到了if (p1=head)head=p1-next; /若p1指向的是首结点,把第二个结点地址赋予headelsep2-next=p1-next; /否则将下一结点地址赋给前一结点地址cout删除 :nameendl;nguke-=1;else cout不存在 name0) /只需循环 条件不重要coutpanduan;if (pand

15、uan=0)break;while (panduan=1) coutnumber; if (number=0)break; while (number!=p-number) /没找到 节点后移p=p-next;if(p-next=null)break;if (p-next=null & number!=p-number)cout不存在 number 请重新输入 n;elsecoutnumber 号会员还有资金 zijinzijin10)coutnumber 号会员资金不足10元 请冲值 endl;int i; couti; p-zijin=p-zijin+i;cout当前资金为zijinend

16、l; while (panduan=2) coutname;if(name=0)break; p=head;int i=0; while (p!=null) if (name=p-name)/找到了coutsetiosflags(ios:left)setw(10)姓名setw(10) 编号setw(10)性别setw(10)年龄setw(10)职业setw(10)入会资金setw(10)入会时间endl; coutsetiosflags(ios:left)setw(10)namesetw(10) numbersetw(10)sexsetw(10)agesetw(10) zhiyesetw(10

17、)zijinsetw(10)timezijin-; p=p-next; if (i=0)cout不存在 name=0)/只需循环 条件不重要coutname;if(name=0)break;while (name!=p-name)/没找到 节点后移p=p-next;if(p-next=null)break;if (p-next=null & name!=p-name)cout不存在 name 此人请重新输入 n;/已经到最后一个还不对 输出错误信息else/找到了coutsetiosflags(ios:left)setw(10)姓名setw(10)编号setw(10)性别setw(10)年龄s

18、etw(10)职业setw(10)入会资金setw(10)入会时间endl;coutsetiosflags(ios:left)setw(10)namesetw(10)numbersetw(10)sexsetw(10)agesetw(10)zhiyesetw(10)zijinsetw(10)timezijin10)coutnumber 号会员资金不足十元 请冲值 endl;int i;couti; p-zijin=p-zijin+i;cout当前资金为zijinendl;coutp-namep-numberp-sexp-agep-zhiyep-zijinp-time;outfile(head);

19、return (head);void print(guke *head)/输出函数guke *p=head;couttttt 一共有 nguke 位会员 n;coutsetiosflags(ios:left)setw(10)姓名setw(10)编号setw(10)性别setw(10)年龄setw(10)职业setw(10)入会资金setw(10)入会时间endl;docoutsetiosflags(ios:left)setw(10)namesetw(10)numbersetw(10)sexsetw(10)agesetw(10)zhiyesetw(10)zijinsetw(10)timenext

20、;while (p!=null);coutttt 以下信息是从文本文件中输出 n;/从文本文件中输出ifstream infile(客户信息.txt,ios:in);/采用ascii文件形式if (!infile)cerropen error!endl;exit(1);p=head;string s7;for (int i=0;isi;coutsetiosflags(ios:left)setw(10)s6;coutsetiosflags(ios:left)setw(10)s6p-namep-numberp-sexp-agep-zhiyep-zijinp-time;/从文件中读入coutseti

21、osflags(ios:left)setw(10)namesetw(10)numbersetw(10)sexsetw(10)agesetw(10)zhiyesetw(10)zijinsetw(10)timenext;while (p!=null);coutendl;infile.close();/关闭文件void outfile(guke *head)/向文件写入数据函数guke *p=head;ofstream outfile(客户信息.txt,ios:out);/定义文件流对象 打开磁盘文件 图书信息.txtif (!outfile)/如果打开失败 outfile返回0值cerropen

22、error!endl;exit(1);outfilesetiosflags(ios:left)setw(10)姓名setw(10)编号setw(10)性别setw(10)年龄setw(10)职业setw(10)入会资金setw(10)入会时间endl;dooutfilesetiosflags(ios:left)setw(10)namesetw(10)numbersetw(10)sexsetw(10)agesetw(10)zhiyesetw(10)zijinsetw(10)timeendl;outfilenext;while (p!=null);outfile.close();/关闭文件void tongji(guke *head) /统计函数guke *p=head;int age999,i,j,l;string time999,panduan; /用于标记分段点while (nguke=0)cout 请输入 1 年龄统计不同年龄段人数 或 2 时间统计不同时间段资金情况:endl;cout 输入0返回主菜单panduan;if (panduan=0)break;else if (panduan=1)couti;if (i=-1) break;agej=i;for

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论