C语言课程设计报告_第1页
C语言课程设计报告_第2页
C语言课程设计报告_第3页
C语言课程设计报告_第4页
C语言课程设计报告_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、错误!未找到目录项。C 程序课程设计报告题目车票管理系统院别数学与计算机学院班级姓名学号指导教师邓永江二一五年六 月可编辑范本预习报告一:设计题目银行存取款管理设计二:功能要求能够添加和修改以及删除客户文件。 (在客户文件中,每个客户是一条记录,包括编号、客户姓名、支取密码、客户地址、客户电话、账户总金额) 。能够输入和查询客户存款取款记录。 (在存取款文件中,每次存取款是一条记录,包括编号、日期、类别、存取数目、经办人。类别分为取款和存款两种)。能够给程序提供运行提示。三:设计要求、用 C 语言实现系统;、函数功能要划分好(结构化程序设计);、界面友好(良好的人机交互) ,加必要的注释;、要

2、提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。四:设计目的、通过这次课程设计,使我们更加深入地理解和掌握C 语言基本概念,切身体会用结构化程序设计的工程思想,感受C 语言的魅力。、通过这次课程设计,培养我们独立思考、勇于探索、积极创新、严谨求实、可编辑范本有过必改的工作态度以及较熟的上级操作能力,同时加强我们团结友爱,协作攻关的团队合作意识。五:设计框架图功能选择客户资存取款料添加办理存取款关于与操作查询查添修存 款取 款删询加改办理办理存 款取 款除查询查询六:函数与变量说明自定义函数void main():在里面写了“功能选择”的 SW

3、ITCH 函数;void kehu();客户资料添加与操作主菜单;void kehu1(struct cou p,char *re,long *h);客户资料查询函数;void kehu2(struct cou *p,char *re,long h);客户资料添加函数;void kehu3(struct cou *p,char *re,long h);客户资料修改函数;void kehu4(struct cou *p,char *re,long h);客户资料清楚函数;void kehup(struct cou *p,char *re,long *h);客户资料打印函数;void cunq1(

4、);存取款办理选择主菜单;void cunq11(struct cou *p,char *re,long h);客户存款资料的键入;void cunq12(struct cou *p,char *re,long h);客户取款资料的键入;void cunq2();存取款选择查询主菜单;void cunq211(struct cou p,char *re,long *h);把顾客存款资料从文件读到缓冲区;void cunq212(struct cou *p,char *re,long *h);打印存款资料;可编辑范本void cunq221(struct cou p,char *re,long

5、*h);把顾客取款资料从文件读到缓冲区;void cunq222(struct cou *p,char *re,long *h);打印取款资料;void help();使用说明模块。变量全局的结构体型数组w(用来存放 200 多个结构体变量 ):extern struct coulong b;char x20;long m;char a50;long d;float j;long bc;char jin20;char jin220;char t20;float j1;float j2;float j3;float j4; w200;局部变量 int m;用来在主和其他函数中进行SWITCH 选

6、择判断;全局变量 long t;用于记录客户卡号,而卡号是在整个程序中都要用到的,因为可编辑范本是全局变量,所以一个客户的卡号不能变更。 char r20,b20,c20;都为记录客户姓名的一维数组,用在生成客户以及存取款文件和读取客户文件以及存取款文件;七:函数调用流程图(客户资料添加与查询void main()while(1)scanf(%d,&m);m=1?是kehu();scanf(%d,&m);switch(m) ;1m=?scanf(%s,b);kehu1(w,b,&t);kehup(w,b,&t);break;部分 )其他函数2scanf(%s,r);scanf(%ld,&h);

7、kehu2(w,r,h);break;可编辑范本注:上叙具体函数功能见六(一)函数说明八:客户资料添加与查询部分的设计思想、由于是银行存取款管理设计,考虑到要有较周全的功能要求,所以在设计之初就对最终成品的功能进行了较为详细的布局,最终确定了 4 个主功能(见源代码)。、采用了结构化程序设计思想,在主函数外定义了voidkehu();(客户文件操作)、void cunq1();(存取款办理)、void cunq2();(存取款查询)、 void help();(使用帮助)以及他们的嵌套函数,使产品功能更加健全。、对于如何使每次次级操作后能方便的返回主界面,我们在主函数里用到了while(1)这

8、样函数,再在里面用到几个break;就实现了返回主界面的功能。、对于客户及存取款记录的保存我们在这里用到了用FILE类型定义文件指针,从而来以文件形式存放数据,而又用到fopen 函数打开文件,用fclose 关闭文件,释放文件缓冲区; 又用到 fwrite 函数使数据写入到磁盘保存, 用 fread函数把数据拉到缓冲区。、对于如何使客户文件和客户存取款记录很灵活的结合到一起,我们在主函数前面构造了一个具有多个成员的结构体,从客户文件记录的客户地址、 客户电话、当前金额等到客户存取款记录的办理时间、办理人、存取金额等全部囊括在同一个名为 cou 结构体类型中。、程序在主函数之前定义了全局的结构

9、体型数组w,为相关文件提供了较为灵活的存取空间, 而程序中在 fwrite 函数之前输入了客户姓名和卡号,这实际上就创建了一个名为所输入客户姓名的文件,从而在资料读取时直接用姓名读取非常方便。可编辑范本。实验总结报告九:测试方案方案、可以直接打开所给的名为 “银行存取款及客户资料管理系统.exe”应用程序进行操作, 而操作是纯键盘式的, 建议先添加客户文件, 或者先查看 “关于”中的帮助。方案、如果是对源代码进行操作,可以双击名为“银行存取款及客户资料管理系统 .c”的 .c 文件,进入 C+ 运行环境,按“重新组建” ,然后点击运行按钮“!”,运行成功,便可进入主界面,相关操作见上。而这同时

10、C+ 又在后台生成了 .exe文件,这就是我们所需要的应用程序。十:调试中问题及解决方案调试过程并不是一帆风顺的,比如、如何对客户各种详细资料进行表示,之前我们并没有想到用结构体,然后再写程序过程中遇到诸多困难,一段时间之后, 组员进行仔细研究, 并查阅相关书籍,最终确定了用结构体这样便捷的数据类型,而这一决定也为后续工作指明了方向;、对客户资料的打印,因为没有注意到要把文件资料从文件读取到缓冲区,因而始终不能正确的打印出所要的数据,而最终在组员的一致努力下, 察觉到问题,然后 fread 函数被用到,这问题迎刃而解;、在程序编写过程中,由于时间关系,难免还有些问题尚未解决,我们不怕暴露问题,

11、我们只求进步。比如说在写入客户卡号时,用到fwrite(&h,4,1,fp);可编辑范本这样的函数语句, 虽然 h 已经被我们定义为long 型变量,然为什么上限为245至今尚未得到很好的解决。 但这并不影响我们程序的运行,只要稍微注意一下卡号,程序还是很理想的。十一:心得与体会这次的 C 语言课程设计我们付出不少,一次一次的编写,一次次的修改,花了不少时间,甚至有时也用上了休息时间。 但我们的收获是那些付出比量不了的。在一次次的调试与失败中,我们更加坚强,更加专注。在团队合作过程中也发生过小小的矛盾,但这些终被我们克服,从而转化为难得的友谊,而又使我们对团队这个概念的认识又上升到一个新的高度

12、。其实一切的一切,都没有知识来的重要,在这次课程设计过程中我们查阅了大量的资料,而有些是书本上都较少提到的,而这些给我们的便是知识,无形的宝贵财富。最后,老师提供给我们这次难得的课程实习机会,我们是受益匪浅的,当看到一个完整的应用程序出现在我们面前,作为一个初涉软件的学徒来说,又何尝不是感慨万千呢?我们深怀感恩,一路前行,软件工程,我们来了!十二:附源程序清单#include#includevoidkehu();void kehu1(struct cou p,char *re,long *h);/* (把顾客资料)从文件读到缓冲区*/void kehu2(struct cou *p,char

13、*re,long h);/* 客户资料输入*/void kehu3(struct cou *p,char *re,long h);/* 新客户资料输入*/void kehu4(struct cou *p,char *re,long h);/*资料清除 */void kehup(struct cou *p,char *re,long *h);/* 打印顾客资料 */void cunq1();void cunq11(struct cou *p,char *re,long h);/* 客户存款资料的键入*/可编辑范本void cunq12(struct cou *p,char *re,long h)

14、;/* 客户取款资料的键入*/void cunq2();void cunq211(struct cou p,char *re,long *h); /* (把顾客存款资料)从文件读到缓冲区 */ void cunq212(struct cou *p,char *re,long *h);void cunq221(struct cou p,char *re,long *h); /* (把顾客取款资料)从文件读到缓冲区 */ void cunq222(struct cou *p,char *re,long *h);void help();long t;extern struct coulong b;c

15、har x20;long m;char a50;long d;float j;long bc;char jin20;char jin220;char t20;float j1;float j2;float j3;float j4;struct cou w200;void main()int m;while(1)system(cls);printf(n 银行存取款管理系统n);printf( 【功能选择】n);printf(一:客户添加与操作二:存取款办理三:存取款查询四:关于 n);printf(n n);printf(-请按相应的数字选择您的需要-n);scanf(%d,&m);switch

16、(m)case 1:kehu();break;case 2:cunq1();break;可编辑范本case 3:cunq2();break;case 4:help();break;getchar();printf(nnnnn 按回车键返回主界面 .); getchar();voidkehu()int m;char r20,b20,c20;long h,k;system(cls);printf(n );printf(n客户文件: 1:客户资料查询);printf(n2:客户资料添加);printf(n3:客户资料修改);printf(n4:客户资料删除);printf(n5:后退 nn);pri

17、ntf( n);printf(-按相应的数字以选择您的需要-n);scanf(%d,&m);switch(m)case 1:printf(n);printf(1:客户资料查询 n);printf(n);printf(请输入您要查询的客户的姓名:n);scanf(%s,b);kehu1(w,b,&t);/* 从文件读到缓冲区*/kehup(w,b,&t);/* 打印 */break;case 2:printf(n);printf(2:客户资料添加 n);printf(n);printf( 请输入新客户的姓名和卡号(1-245): n);printf( 请输入姓名:n);scanf(%s,r);p

18、rintf( 请输入卡号:n);scanf(%ld,&h);可编辑范本kehu2(w,r,h);/* 把数据从缓冲区输入到文件*/break;case 3:printf(n);printf(3:客户资料修改 n);printf(n);printf(n 请输入您要修改的 客户的姓名和卡号: n); printf( 请输入姓名 :n);scanf(%s,c);printf( 请输入卡号:n);scanf(%ld,&k);kehu3(w,c,k);/* 把 新数据从缓冲区输入到文件*/break;case 4:printf(n);printf(4:客户资料删除 n);printf(n);printf

19、(n 请输入您要删除的客户姓名和卡号:n);printf( 请输入姓名:n);scanf(%s,c);printf( 请输入卡号:n);scanf(%ld,&k);kehu4(w,c,k);/* 把 0 数据从缓冲区输入到文件*/break;case 5:break;default:fprintf(stderr, 输入有误 !);void kehu1(struct cou p,char *re,long *h)FILE *fp; system(cls); fp=fopen(re,rb);fread(h,4,1,fp); fread(&p*h,sizeof(struct cou),1,fp);f

20、close(fp);void kehup(struct cou *p,char *re,long *h)printf(客户【 %s 】详细资料 n,re);printf( );printf( 客户卡号);printf(%ldn,*h);可编辑范本printf( );printf( 客户密码);printf(%ldn,p*h.m);printf( );printf( 客户电话);printf(%ldn,p*h.d);printf( );printf( 客户地址);printf(%sn,p*h.a);printf( );printf( 账户当前金额);printf(%.2fn,p*h.j);pri

21、ntf( );void kehu2(struct cou *p,char *re,long h)FILE *fp;system(cls);fp=fopen(re,wb);fwrite(&h,4,1,fp);printf( 请键入顾客【 %s】 (卡号【 %ld 】 )的客户资料 : n,re,h);ph.b=h;printf(n客户密码 :n);scanf(%ld,&ph.m);printf(n客户地址 :n);scanf(%s,ph.a);printf(n客户电话 :(只接受10 位以下的号码) n);scanf(%ld,&ph.d);printf(n客户当前金额 :(建议不要使账户满100

22、 万) n);scanf(%f,&ph.j);fwrite(&ph,sizeof(struct cou),1,fp);fclose(fp);void kehu3(struct cou *p,char *re,long h)FILE *fp;system(cls);fp=fopen(re,wb);fwrite(&h,4,1,fp);printf(n 请键入顾客【 %s】(卡号【 %ld 】 )的新的客户资料: n,re,h);ph.b=h;可编辑范本printf(n 修改后客户密码:n);scanf(%ld,&ph.m);printf(n 修改后客户地址:n);scanf(%s,ph.a);pr

23、intf(n 修改后客户电话:n);scanf(%ld,&ph.d);fwrite(&ph,sizeof(struct cou),1,fp);fclose(fp);void kehu4(struct cou *p,char *re,long h)FILE *fp;system(cls);fp=fopen(re,wb);fwrite(&h,4,1,fp);printf(nnnn 请输入 0 键以清除 :n); scanf(%s,ph.a);ph.m=0;ph.d=0;ph.j=0;ph.bc=0;fwrite(&ph,sizeof(struct cou),1,fp);fclose(fp);/*-

24、*/void cunq1()int m;char g20;long m1;system(cls);printf( n);printf(n1.存款办理2.取款办理3:后退 n);printf(n );printf(nn-按相应的数字以选择您的需要-n);scanf(%d,&m);switch(m)case 1:printf(n);printf(1.存款办理 n);可编辑范本printf(n);printf( 请输入办理存款业务的客户的姓名和卡号 (1-245) nn); printf( 输入客户姓名 :n);scanf(%s,g);printf( 输入客户卡号:n);scanf(%ld,&m1)

25、;cunq11(w,g,m1);/* 存款数据输入 */break;case 2:printf(n);printf(2:取款办理 n);printf(n);printf( 请输入办理取款业务的客户的姓名和卡号 (1-245) nn); printf( 输入客户姓名 :n);scanf(%s,g);printf( 输入客户卡号:n);scanf(%ld,&m1);cunq12(w,g,m1);break;case 3:break;default:fprintf(stderr, 输入有误 !);void cunq11(struct cou *p,char *re,long h)FILE *fp;s

26、ystem(cls);fp=fopen(re,wb);fwrite(&h,4,1,fp);printf( nn);printf(存款办理 nn);printf( n);printf( 请键入顾客【 %s】 (卡号%ld ) 的存款明细 : n,re,h);printf( 请输入存款流水号:n);scanf(%ld,&ph.bc);printf( 请输入存款数目(建议不要一次存超过百万):n);scanf(%f,&ph.j1);ph.j2=ph.j+ph.j1;ph.j=ph.j2;printf( 经办人:n);scanf(%s,ph.jin);printf( 办理时间(形如 2012 年 06

27、 月 2 日 ):n);可编辑范本scanf(%s,ph.t);fwrite(&ph,sizeof(struct cou),1,fp);fclose(fp);void cunq12(struct cou *p,char *re,long h)FILE *fp;system(cls);fp=fopen(re,wb);fwrite(&h,4,1,fp);printf( nn);printf(取款办理 nn);printf( nn);printf( 请键入顾客【 %s】(卡号%ld ) 的取款明细 : nn,re,h);printf( 请输入取款流水号:n);scanf(%ld,&ph.bc);pr

28、intf( 请输入取款数目(建议不要一次存超过百万):n);scanf(%f,&ph.j3);ph.j4=ph.j-ph.j3;ph.j=ph.j4;printf( 经办人:n);scanf(%s,ph.jin2);printf( 办理时间(形如 2012 年 06 月 2 日):n);canf(%s,ph.t);fwrite(&ph,sizeof(struct cou),1,fp);fclose(fp);/*-*/void cunq2()int m;char v20;system(cls);printf( nn);printf(1.存款查询2.取款查询3:后退 nn);printf( n);

29、printf(-按相应的数字以选择您的需要-n);scanf(%d,&m);switch(m)case 1:可编辑范本printf(n);printf(1:存款查询 n);printf(n);printf( 请输入您要查询的客户的姓名:n);scanf(%s,v);cunq211(w,v,&t);cunq212(w,v,&t);break;/* 注意 */case 2:printf(n);printf(2:取款查询 n);printf(n);printf( 请输入您要查询的客户的姓名:n);scanf(%s,v);cunq221(w,v,&t);cunq222(w,v,&t);break;ca

30、se 3:break;default:fprintf(stderr, 输入有误 !);void cunq211(struct cou p,char *re,long *h)FILE *fp;system(cls);fp=fopen(re,rb);fread(h,4,1,fp);fread(&p*h,sizeof(struct cou),1,fp);fclose(fp);void cunq212(struct cou *p,char *re,long *h)printf(客户 【 %s 】存款明细 n,re);printf( );printf(客户卡号);printf(%ldn,*h);printf( );printf(存款流水号);printf(%ldn,p*h.bc);printf( );printf(类别);可编辑范本printf( 存款 n);printf( );printf( 存款数目);printf(%.2fn,p*h.j1);printf( );printf( 账户当前总金额);p

温馨提示

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

评论

0/150

提交评论