C语言课程设计报告(银行存取款管理设计)_第1页
C语言课程设计报告(银行存取款管理设计)_第2页
C语言课程设计报告(银行存取款管理设计)_第3页
C语言课程设计报告(银行存取款管理设计)_第4页
C语言课程设计报告(银行存取款管理设计)_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

PAGEC语言课程设计报告(银行存取款管理设计)《C语言课程设计》银行存取款管理设计学院名称:专业班级:通信113姓名:学号:指导教师:2012年C语言课程设计报告(银行存取款管理设计)全文共16页,当前为第1页。C语言课程设计报告(银行存取款管理设计)全文共16页,当前为第1页。预习报告一:设计题目银行存取款管理设计二:功能要求=1\*GB3①能够添加和修改以及删除客户文件。(在客户文件中,每个客户是一条记录,包括编号、客户姓名、支取密码、客户地址、客户电话、账户总金额)。=2\*GB3②能够输入和查询客户存款取款记录。(在存取款文件中,每次存取款是一条记录,包括编号、日期、类别、存取数目、经办人。类别分为取款和存款两种)。=3\*GB3③能够给程序提供运行提示。三:设计要求=1\*GB3①、用C语言实现系统;=2\*GB3②、函数功能要划分好(结构化程序设计);=3\*GB3③、界面友好(良好的人机交互),加必要的注释;=4\*GB3④、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。四:设计目的=1\*GB3①、通过这次课程设计,使我们更加深入地理解和掌握C语言基本概念,切身体会用结构化程序设计的工程思想,感受C语言的魅力。=2\*GB3②、通过这次课程设计,培养我们独立思考、勇于探索、积极创新、严谨求实、有过必改的工作态度以及较熟的上级操作能力,同时加强我们团结友爱,协作攻关的团队合作意识。取款办理存款办理存取款办理客户资料添加与操作功能选择五:设计框架图取款办理存款办理存取款办理客户资料添加与操作功能选择关于存取款查询关于存取款查询添加修改删除查询添加修改删除查询C语言课程设计报告(银行存取款管理设计)全文共16页,当前为第2页。取款查询存款查询C语言课程设计报告(银行存取款管理设计)全文共16页,当前为第2页。取款查询存款查询六:函数与变量说明=1\*GB4㈠自定义函数voidmain():在里面写了“功能选择”的SWITCH函数;voidkehu();客户资料添加与操作主菜单;voidkehu1(structcoup[],char*re,long*h);客户资料查询函数;voidkehu2(structcou*p,char*re,longh);客户资料添加函数;voidkehu3(structcou*p,char*re,longh);客户资料修改函数;voidkehu4(structcou*p,char*re,longh);客户资料清楚函数;voidkehup(structcou*p,char*re,long*h);客户资料打印函数;voidcunq1();存取款办理选择主菜单;voidcunq11(structcou*p,char*re,longh);客户存款资料的键入;voidcunq12(structcou*p,char*re,longh);客户取款资料的键入;voidcunq2();存取款选择查询主菜单;voidcunq211(structcoup[],char*re,long*h);把顾客存款资料从文件读到缓冲区;voidcunq212(structcou*p,char*re,long*h);打印存款资料;voidcunq221(structcoup[],char*re,long*h);把顾客取款资料从文件读到缓冲区;voidcunq222(structcou*p,char*re,long*h);打印取款资料;voidhelp();使用说明模块。=2\*GB4㈡变量=1\*GB3①全局的结构体型数组w(用来存放200多个结构体变量):externstructcou{ longb; charx[20]; longm; chara[50]; longd; floatj; longbc; charjin[20];charjin2[20];C语言课程设计报告(银行存取款管理设计)全文共16页,当前为第3页。 chart[20];C语言课程设计报告(银行存取款管理设计)全文共16页,当前为第3页。 floatj1; floatj2; floatj3; floatj4;}w[200];=2\*GB3②局部变量intm;用来在主和其他函数中进行SWITCH选择判断;=3\*GB3③全局变量longt;用于记录客户卡号,而卡号是在整个程序中都要用到的,因为是全局变量,所以一个客户的卡号不能变更。=4\*GB3④charr[20],b[20],c[20];都为记录客户姓名的一维数组,用在生成客户以及存取款文件和读取客户文件以及存取款文件;七:函数调用流程图(客户资料添加与查询部分)voidmain()voidmain()while(1)while(1)scanf("%d",&m);m=1?m=1?其他函数其他函数是kehu();kehu();scanf("%d",&m);scanf("%d",&m);switch(m);m=?m=?12scanf("%s",b);kehu1(w,b,&t);scanf("%s",b);kehu1(w,b,&t);kehup(w,b,&t);break;scanf("%s",r);scanf("%ld",&h);kehu2(w,r,h);break;C语言课程设计报告(银行存取款管理设计)全文共16页,当前为第4页。C语言课程设计报告(银行存取款管理设计)全文共16页,当前为第4页。注:上叙具体函数功能见六(一)函数说明八:客户资料添加与查询部分的设计思想=1\*GB3①、由于是银行存取款管理设计,考虑到要有较周全的功能要求,所以在设计之初就对最终成品的功能进行了较为详细的布局,最终确定了4个主功能(见源代码)。=2\*GB3②、采用了结构化程序设计思想,在主函数外定义了voidkehu();(客户文件操作)、voidcunq1();(存取款办理)、voidcunq2();(存取款查询)、voidhelp();(使用帮助)以及他们的嵌套函数,使产品功能更加健全。=3\*GB3③、对于如何使每次次级操作后能方便的返回主界面,我们在主函数里用到了while(1)这样函数,再在里面用到几个break;就实现了返回主界面的功能。=4\*GB3④、对于客户及存取款记录的保存我们在这里用到了用FILE类型定义文件指针,从而来以文件形式存放数据,而又用到fopen函数打开文件,用fclose关闭文件,释放文件缓冲区;又用到fwrite函数使数据写入到磁盘保存,用fread函数把数据拉到缓冲区。=5\*GB3⑤、对于如何使客户文件和客户存取款记录很灵活的结合到一起,我们在主函数前面构造了一个具有多个成员的结构体,从客户文件记录的客户地址、客户电话、当前金额等到客户存取款记录的办理时间、办理人、存取金额等全部囊括在同一个名为cou结构体类型中。=6\*GB3⑥、程序在主函数之前定义了全局的结构体型数组w,为相关文件提供了较为灵活的存取空间,而程序中在fwrite函数之前输入了客户姓名和卡号,这实际上就创建了一个名为所输入客户姓名的文件,从而在资料读取时直接用姓名读取非常方便。。实验总结报告九:测试方案方案=1\*GB3①、可以直接打开所给的名为“银行存取款及客户资料管理系统.exe”应用程序进行操作,而操作是纯键盘式的,建议先添加客户文件,或者先查看“关于”中的帮助。方案=2\*GB3②、如果是对源代码进行操作,可以双击名为“银行存取款及客户资料管理系统.c”的.c文件,进入C++运行环境,按“重新组建”,然后点击运行按钮“!”,运行成功,便可进入主界面,相关操作见上。而这同时C++又在后台生成了.exe文件,这就是我们所需要的应用程序。十:调试中问题及解决方案调试过程并不是一帆风顺的,比如C语言课程设计报告(银行存取款管理设计)全文共16页,当前为第5页。=1\*GB3①、如何对客户各种详细资料进行表示,之前我们并没有想到用结构体,然后再写程序过程中遇到诸多困难,一段时间之后,组员进行仔细研究,并查阅相关书籍,最终确定了用结构体这样便捷的数据类型,而这一决定也为后续工作指明了方向;C语言课程设计报告(银行存取款管理设计)全文共16页,当前为第5页。=2\*GB3②、对客户资料的打印,因为没有注意到要把文件资料从文件读取到缓冲区,因而始终不能正确的打印出所要的数据,而最终在组员的一致努力下,察觉到问题,然后fread函数被用到,这问题迎刃而解;=3\*GB3③、在程序编写过程中,由于时间关系,难免还有些问题尚未解决,我们不怕暴露问题,我们只求进步。比如说在写入客户卡号时,用到fwrite(&h,4,1,fp);这样的函数语句,虽然h已经被我们定义为long型变量,然为什么上限为245至今尚未得到很好的解决。但这并不影响我们程序的运行,只要稍微注意一下卡号,程序还是很理想的。十一:心得与体会这次的C语言课程设计我们付出不少,一次一次的编写,一次次的修改,花了不少时间,甚至有时也用上了休息时间。但我们的收获是那些付出比量不了的。在一次次的调试与失败中,我们更加坚强,更加专注。在团队合作过程中也发生过小小的矛盾,但这些终被我们克服,从而转化为难得的友谊,而又使我们对团队这个概念的认识又上升到一个新的高度。其实一切的一切,都没有知识来的重要,在这次课程设计过程中我们查阅了大量的资料,而有些是书本上都较少提到的,而这些给我们的便是知识,无形的宝贵财富。最后,老师提供给我们这次难得的课程实习机会,我们是受益匪浅的,当看到一个完整的应用程序出现在我们面前,作为一个初涉软件的学徒来说,又何尝不是感慨万千呢?我们深怀感恩,一路前行,通信工程,我们来了!十二:附源程序清单#include<stdio.h>#include<string.h>#include<conio.h>#include<stdlib.h>voidkehu();voidkehu1(structcoup[],char*re,long*h);/*(把顾客资料)从文件读到缓冲区*/voidkehu2(structcou*p,char*re,longh);/*客户资料输入*/voidkehu3(structcou*p,char*re,longh);/*新客户资料输入*/voidkehu4(structcou*p,char*re,longh);/*资料清除*/voidkehup(structcou*p,char*re,long*h);/*打印顾客资料*/voidcunq1();voidcunq11(structcou*p,char*re,longh);/*客户存款资料的键入*/voidcunq12(structcou*p,char*re,longh);/*客户取款资料的键入*/voidcunq2();voidcunq211(structcoup[],char*re,long*h);/*(把顾客存款资料)从文件读到缓冲区*/voidcunq212(structcou*p,char*re,long*h);C语言课程设计报告(银行存取款管理设计)全文共16页,当前为第6页。C语言课程设计报告(银行存取款管理设计)全文共16页,当前为第6页。voidcunq221(structcoup[],char*re,long*h);/*(把顾客取款资料)从文件读到缓冲区*/voidcunq222(structcou*p,char*re,long*h);longt;externstructcou{ longb; charx[20]; longm;/*密码*/ chara[50];/*地址*/ longd;/*电话*/ floatj;/*初始金额*/ longbc;/*存款流水号*/ charjin[20];/*取款经办人*/ charjin2[20];/*存款经办人*/ chart[20];/*时间*/ floatj1;/*存款金额*/ floatj2;/*存后总金额*/ floatj3;/*取款金额*/ floatj4;/*取后总金额*/};structcouw[200];voidmain(){intm;while(1){ system("cls"); printf("欢迎进入银行存取款管理系统\n"); printf("\n***************************************************************\n"); printf("**…【功能选择】……**\n"); printf("**1:客户添加与操作**\n"); printf("**2:存取款办理**\n"); printf("**3:存取款查询**\n"); printf("***************************************************************\n"); printf("请按相应的数字选择您的需要\n"); scanf("%d",&m); switch(m) { case1:kehu();break; case2:cunq1();break; case3:cunq2();break; } getchar();C语言课程设计报告(银行存取款管理设计)全文共16页,当前为第7页。 printf("\n\n\n\n\n按回车键返回主界面");C语言课程设计报告(银行存取款管理设计)全文共16页,当前为第7页。 getchar();}}voidkehu(){ intm; charr[20],b[20],c[20]; longh,k; system("cls"); printf("\n**************************************************************"); printf("\n客户文件:1:客户资料查询");printf("\n2:客户资料添加");printf("\n3:客户资料修改"); printf("\n4:客户资料删除"); printf("\n5:后退\n\n");printf("**************************************************************\n");printf("按相应的数字以选择您的需要\n");scanf("%d",&m);switch(m){ case1: printf("┏━━━━━━━━━━━┓\n");printf("▍1:客户资料查询▍\n");printf("┗━━━━━━━━━━━┛\n"); printf(">>>>>>>>>>>>请输入您要查询的客户的姓名:\n"); scanf("%s",b); kehu1(w,b,&t);/*从文件读到缓冲区*/ kehup(w,b,&t);/*打印*/ break; case2: printf("┏━━━━━━━━━━━┓\n"); printf("▍2:客户资料添加▍\n");printf("┗━━━━━━━━━━━┛\n"); printf("***********请输入新客户的姓名和卡号(1-245):*********\n"); printf(">>>>>>>>>请输入姓名:\n"); scanf("%s",r); printf(">>>>>>>>>请输入卡号:\n"); scanf("%ld",&h); kehu2(w,r,h);/*把数据从缓冲区输入到文件*/ break; case3: printf("┏━━━━━━━━━━━┓\n");C语言课程设计报告(银行存取款管理设计)全文共16页,当前为第8页。 printf("▍3:客户资料修改▍\n");C语言课程设计报告(银行存取款管理设计)全文共16页,当前为第8页。printf("┗━━━━━━━━━━━┛\n"); printf("\n请输入您要修改的客户的姓名和卡号:\n"); printf(">>>>>>>>>请输入姓名:\n"); scanf("%s",c);printf(">>>>>>>>>请输入卡号:\n"); scanf("%ld",&k); kehu3(w,c,k);/*把新数据从缓冲区输入到文件*/ break;case4: printf("┏━━━━━━━━━━━┓\n"); printf("▍4:客户资料删除▍\n");printf("┗━━━━━━━━━━━┛\n");printf("\n**********请输入您要删除的客户姓名和卡号*********:\n"); printf(">>>>>>>>请输入姓名:\n"); scanf("%s",c); printf(">>>>>>>>请输入卡号:\n"); scanf("%ld",&k); kehu4(w,c,k);/*把0数据从缓冲区输入到文件*/ break; case5:break; default: fprintf(stderr,"输入有误!");}}voidkehu1(structcoup[],char*re,long*h){ FILE*fp; system("cls"); fp=fopen(re,"rb"); fread(h,4,1,fp); fread(&p[*h],sizeof(structcou),1,fp); fclose(fp);}voidkehup(structcou*p,char*re,long*h){ printf("客户【%s】详细资料\n",re); printf(">>>>>>>>>>>>>"); printf("客户卡号"); printf("%ld\n",*h); printf(">>>>>>>>>>>>>"); printf("客户密码"); printf("%ld\n",p[*h].m); printf(">>>>>>>>>>>>>");C语言课程设计报告(银行存取款管理设计)全文共16页,当前为第9页。 printf("客户电话");C语言课程设计报告(银行存取款管理设计)全文共16页,当前为第9页。 printf("%ld\n",p[*h].d); printf(">>>>>>>>>>>>>"); printf("客户地址"); printf("%s\n",p[*h].a); printf(">>>>>>>>>>>>>"); printf("账户当前金额"); printf("%.2f\n",p[*h].j); printf(">>>>>>>>>>>>>");}voidkehu2(structcou*p,char*re,longh){ FILE*fp; system("cls"); fp=fopen(re,"wb"); fwrite(&h,4,1,fp);printf("*********请键入顾客【%s】(卡号【%ld】)的客户资料:***********\n",re,h); p[h].b=h; printf("\n>>客户密码:\n"); scanf("%ld",&p[h].m); printf("\n>>客户地址:\n"); scanf("%s",p[h].a); printf("\n>>客户电话:(只接受10位以下的号码)\n"); scanf("%ld",&p[h].d); printf("\n>>客户当前金额:(建议不要使账户满100万)\n"); scanf("%f",&p[h].j); fwrite(&p[h],sizeof(structcou),1,fp);fclose(fp);}voidkehu3(structcou*p,char*re,longh){ FILE*fp; system("cls"); fp=fopen(re,"wb"); fwrite(&h,4,1,fp); printf("\n*******请键入顾客【%s】(卡号【%ld】)的新的客户资料:*******\n",re,h); p[h].b=h; printf("\n>>修改后客户密码:\n"); scanf("%ld",&p[h].m); printf("\n>>修改后客户地址:\n"); scanf("%s",p[h].a);C语言课程设计报告(银行存取款管理设计)全文共16页,当前为第10页。 printf("\n>>修改后客户电话:\n");C语言课程设计报告(银行存取款管理设计)全文共16页,当前为第10页。 scanf("%ld",&p[h].d); fwrite(&p[h],sizeof(structcou),1,fp);fclose(fp);}voidkehu4(structcou*p,char*re,longh){ FILE*fp; system("cls"); fp=fopen(re,"wb"); fwrite(&h,4,1,fp); printf("\n\n\n\n***********请输入0键以清除*************:\n"); scanf("%s",p[h].a); p[h].m=0; p[h].d=0; p[h].j=0; p[h].bc=0;fwrite(&p[h],sizeof(structcou),1,fp);fclose(fp);}/**/voidcunq1(){ intm; charg[20]; longm1; system("cls");printf("*******************************************************************\n");printf("\n1.存款办理2.取款办理3:后退\n");printf("\n*******************************************************************");printf("\n按相应的数字以选择您的需要\n"); scanf("%d",&m); switch(m) { case1: printf("┏━━━━━━━━━━━┓\n"); printf("▍1.存款办理▍\n"); printf("┗━━━━━━━━━━━┛\n"); printf("请输入办理存款业务的客户的姓名和卡号(1-245)\n\n"); printf(">>>>>>>输入客户姓名:\n"); scanf("%s",g);C语言课程设计报告(银行存取款管理设计)全文共16页,当前为第11页。 printf(">>>>>>>输入客户卡号:\n");C语言课程设计报告(银行存取款管理设计)全文共16页,当前为第11页。 scanf("%ld",&m1); cunq11(w,g,m1);/*存款数据输入*/ break; case2: printf("┏━━━━━━━━━━━┓\n");printf("▍2:取款办理▍\n");printf("┗━━━━━━━━━━━┛\n"); printf("********请输入办理取款业务的客户的姓名和卡号(1-245)********\n\n"); printf(">>>>>>>>输入客户姓名:\n"); scanf("%s",g); printf(">>>>>>>>输入客户卡号:\n");scanf("%ld",&m1); cunq12(w,g,m1); break; case3:break; default: fprintf(stderr,"输入有误!"); }}voidcunq11(structcou*p,char*re,longh){FILE*fp; system("cls"); fp=fopen(re,"wb"); fwrite(&h,4,1,fp); printf("**************************************************************\n\n"); printf("存款办理\n\n"); printf("**************************************************************\n"); printf("请键入顾客【%s】(卡号%ld)的存款明细:\n",re,h); printf(">>>>>>>>>请输入存款流水号:\n"); scanf("%ld",&p[h].bc); printf(">>>>>>>>请输入存款数目(建议不要一次存超过百万):\n"); scanf("%f",&p[h].j1); p[h].j2=p[h].j+p[h].j1; p[h].j=p[h].j2; printf(">>>>>>>>经办人:\n"); scanf("%s",p[h].jin); printf(">>>>>>>>办理时间(形如2012.06.2.):\n"); scanf("%s",p[h].t); fwrite(&p[h],sizeof(structcou),1,fp); fclose(fp);}C语言课程设计报告(银行存取款管理设计)全文共16页,当前为第12页。voidcunq12(structcou*p,char*re,longh)C语言课程设计报告(银行存取款管理设计)全文共16页,当前为第12页。{ FILE*fp; system("cls"); fp=fopen(re,"wb"); fwrite(&h,4,1,fp); printf("**************************************************************\n\n"); printf("取款办理\n\n"); printf("**************************************************************\n\n"); printf("请键入顾客【%s】(卡号%ld)的取款明细:\n\n",re,h); printf(">>>>>>>>请输入取款流水号:\n"); scanf("%ld",&p[h].bc); printf(">>>>>>>>请输入取款数目(建议不要一次存超过百万):\n"); scanf("%f",&p[h].j3); p[h].j4=p[h].j-p[h].j3; p[h].j=p[h].j4; printf(">>>>>>>>经办人:\n"); scanf("%s",p[h].jin2); printf(">>>>>>>>办理时间(形如2012.06.2):\n"); scanf("%s",p[h].t); fwrite(&p[h],sizeof(structcou),1,fp); fclose(fp);}/**/voidcunq2(){ intm; charv[20]; system("cls"); printf("****************************************************************\n\n"); printf("1.存款查询2.取款查询3:后退\n\n"); printf("****************************************************************\n"); printf("按相应的数字以选择您的需要\n"); scanf("%d",&m); switch(m) { case1: printf("┏━━━━━━━━━━━┓\n"); printf("▍1:存款查询▍\n"); printf("┗━━━━━━━━━━━┛\n"); printf("请输入您要查询的客户的姓名:\n"); scanf("%s",v); cunq211(w,v,&t);C语言课程设计报告(银行存取款管理设计)全文共16页,当前为第13页。 cunq212(w,v,&t);C语言课程设计报告(银行存取款管理设计)全文共16页,当前为第13页。 break;/*注意*/ case2: printf("┏━━━━━━━━━━━┓\n"); printf("▍2:取款查询▍\n"); printf("┗━━━━━━━━━━━┛\n"); printf("请输入您要查询的客户的姓名:\n"); scanf("%s",v); cunq221(w,v,&t); cunq222(w,v,&t);break; case3:break; default: fprintf(stderr,"输入有误!"); }}voidcunq211(structcoup[],char*re,long*h){ FILE*fp; system("cls"); fp=fopen(re,"rb"); fread(h,4,1,fp); fread(&p[*h],sizeof(structcou),1,fp); fclose

温馨提示

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

评论

0/150

提交评论