1、碟行客户信息管理系统碟行客户信息管理系统程序设计基础课程设计报告2007年6月28日目 录1.课程设计目的 2.课程设计题目描述和要求 12.1课程题目 12.2课程要求 13.课程设计报告内容 43.1 运行结果 144 C+课程设计过程总结 145.参考书目 151. 课程设计目的根据书本和老师讲的知识,学生自己动手练习,理论与实际操作相结合,理解老师课堂所讲内容。通过亲手编写调试程序获得更多经验和知识,逐步提高编程能力。 2. 课程设计题目描述和要求2.1课程题目碟行客户信息管理系统2.2课程要求1.有工作界面2.进行客户信息的录入,包括编号、姓名、性别、年龄、职业、入会资金、入会时间3
2、.编号必须唯一4具有对新会员信息插入功能,并按其编号插入排序,使数据仍然有序。5.具有删除功能。6.具有修改功能,只要访问一次某编号,其入会资金就相应减一元;也可为某会员充值。7.具有统计功能:(1) 统计不同年龄段的人数。(2)根据入会时间统计不同的时间段的资金情况。9.能在屏幕上输出所有客户的信息。3课程设计报告内容3.1#include #include #include #include /可以运用EXIT函数 #include static int n=0; float totalmoney=0; void print(); /定义一个客户类 class work /私有成员其中包括
3、客户号、姓名、年龄、工作、入会时间、性别、地址、入会资金 private: unsigned int sno;/编号 int age;/年龄 char name20;/姓名 char works15;/工作 int times;/时间 float money;/入会资金 char sex;/性别 int value; /共有成员 public: void getdata()/录入客户信息函数 value=1; cout客户号 姓名 性别 年龄 工作 入会资金 入会时间 :; coutsnonamesexageworksmoneytimes; void display(); int &get_v
4、alue()/函数返回值为引用时,可以修改函数返回值。 return value; unsigned int get_sno()/得到客户号 return sno; char *get_name()/得到客户姓名 return name; float &get_money()/得到客户资金 return money; int get_times()/得到客户时间 return times; int get_age()/得到客户年龄 return age; ; void work:display()/输出客户信息函数 cout输出信息:n; if(get_value()=1) coutsetio
5、sflags(ios:left)/输出做对其 客户号t姓名t性别t 年龄t工作t入会资金t入会时间endl; coutsetiosflags(ios:left) snotnametsextaget workstmoneyttimesendl; else cout客户号为sno已被删除。endl; /录入客户信息 void Input() ofstream outfile(work.text,ios:out);/以输出方式建立work文档文本文件 if (!outfile) cerrCant open work.text.endl; exit(1); work One; coutsetw(5)输
6、入职入会资金料:endl; coutsetw(5)n; for(int i=1;i=n;i+) cout第i个客户n; One.getdata(); outfile.write(char *)&One,sizeof(One); outfile.close(); /输出客户信息 void Putout() ifstream infile(work.text,ios:in); if (!infile) cerrCant export from work.text.endl; exit(1); work Two; infile.read(char *)&Two,sizeof(Two); while(
7、infile) Two.display(); infile.read(char*)&Two,sizeof(Two); ; infile.close(); /按客户号查询 void Find1() int i=1; float money; work Three; ifstream input(work.text,ios:in); if (!input) cerrCant export from work.text.endl; exit(1); unsigned int sno; coutsno; input.read(char *)&Three,sizeof(Three); while(inp
8、ut) if(Three.get_sno()=sno) cout输出查询结果:endl; Three.display(); money=Three.get_money(); if(money1) cout您的资金已低于1元,请尽快冲值endl;break; if(i=n)cout无此人信息,查找无效!endl; input.read(char*)&Three,sizeof(Three); i+; input.close(); /按姓名查询 void Find2() char name20; work Three; ifstream file(work.text,ios:in); if (!fi
9、le) cerrCant export from work.text.endl; exit(1); coutname; file.read(char *)&Three,sizeof(Three); while(file) if(!strcmp(Three.get_name(),name) cout输出查询结果:endl; Three.display(); else cout无此人信息,查找无效!endl; file.read(char *)&Three,sizeof(Three); /查询客户信息 void Find() int sel; do coutsetw(5)请选择查询方式:endl;
10、 coutsetw(10)sel; switch(sel) case 1:Find1();break; case 2:Find2();break; while(sel=1|sel=2); /添加客户信息 void Add() int j=1,i; couti; coutendl; do fstream outapp(work.text,ios:app); if (!outapp) cerrCant outapp work.text.endl; exit(1); work Four; cout添加数据:n; Four.getdata(); outapp.write(char*)&Four,siz
11、eof(Four); outapp.close(); if(j=3) cout已添加三次,你无权再输入.endl; break; while(j+i); n+; /客户信息删除 void Delete() unsigned int sno; int i=0,j=1; fstream outdel(work.text,ios:in|ios:out); if (!outdel) cerrCant outapp work.text.endl; exit(1); work Six; outdel.seekg(0);/存入文件时从头开始 coutsno; while(!outdel.eof()/文件结束
12、 outdel.seekp(sizeof(work)*i);/不能用seekg(sizeof(work)*i)! outdel.read(char *)&Six,sizeof(Six); if(sno=Six.get_sno() Six.get_value()=0; outdel.seekp(sizeof(work)*i);/ outdel.write(char *)&Six,sizeof(Six);break;/只有写入work.text时,才能起到修改的作用。 if(j=n)cout不存在此人信息,删除无效。endl; i+; j+; outdel.close(); cout*endl;
13、/客户数据修改 void Alter() int f;float money,a; work three; fstream input(work.text,ios:in); if (!input) cerrCant export from work.txt.endl; exit(1); input.read(char *)&three,sizeof(three); cout我要出租:1*我要充值0f; if(f=1)/出租活动 money=three.get_money(); money-;three.get_money()=money; cout出租成功!endl; cout您当前余额为:m
14、oney元endl; if(f=0)/充值 cout请输入冲的钱数a; three.get_money()=three.get_money()+a; cout您当前余额为:three.get_money()元endl; input.write(char *)&three,sizeof(three); input.close(); cout*endl; /客户信息统计 void tongji() fstream input(work.text,ios:in); int time1,time2; work three; input.read(char *)&three,sizeof(three);
15、 cout统计特定年龄段人数:输入1endl; cout统计特定时间段资金总数:输入0f; float big,small,d=0;int num=0, big1=0; if(f=1) cout输入最大最小的年龄endl;/输入最大最小的年龄 coutbig; coutsmall; for(int i=0;i=small&big1=big) num+; input.read(char *)&three,sizeof(three);/每找到一个在范围内的记数加1 cout从big岁到small岁的人数是:num人endl;/输出结果,没有是输出0 if(f=0) cout请输入时间上限和下限en
16、dl; int head,end; cout开始时间:time1;head=time1; cout末端时间:time2;end=time2; for(int i=0;i=head&three.get_times()=end) d=three.get_money(); totalmoney=totalmoney+d;input.read(char *)&three,sizeof(three); /找到入会时间在范围的资金累加一次 cout从time1到time2总资金是:totalmoney元endl;/结果 cout*endl; void Menu() int sel; do cout请选择功
17、能endl 1:录入客户信息 2:输出客户信息 3:查询 endl 4:添加客户信息 5:统计客户信息 6:客户数据修改 endl/修改输入的距离 7:客户信息删除 其它:退出: endl; cout注意:请勿输入相同的编号以免造成重复sel; switch(sel) case 1:Input();break; case 2:Putout();break; case 3:Find();break; case 4:Add();break; case 5:tongji();break; case 6:Alter();break; case 7:Delete();break; while(sel=1
18、 & sel=7); void main() char m; coutttt欢迎阅读本程序! 敬请提出建议!endl; do couttty:运行程序 其他:退出程序m; switch(m) case y:Menu(); /case后面跟的是常变量。 while(m=y); 3.2运行结果3. C+课程设计过程总结:“这次课程设计基本上含盖了大学一年纪学习到的C+ 语言知识点,课设题目要求不仅要求对课本知识有较深刻的了解,同时要求程序设计者有较强的思维和动手能力。这次课设使我了解我编程思想和编程技巧,也认识了软件生命周期的各个环境,包括构思、设计、编写、调试。编程的风格也很重要,同学只关心程序运行的结果,而对程序代码的结构的良好丝毫不在意。这是非常不可取的,如果我们希望将来从事编程工作,在这一点上该引起足够的重视。这是严谨的态度,很重要!做课设不仅让我修补了以前学习的漏洞,也让我知道一个道理:编程需要兴趣和实际动手。这应该可以借鉴在老师的教学工作上。创新思维至关重要,这不仅让我们写出精简的代码,也有助于开发出高效的程序。4.参考书目1 谭浩强,C+程序设计,北京,清华大学出版社,2008年.5程序流程图
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1