1、C 语言课程设计任务书 6题目:银行存取款管理设计功能:能够输入和查询客户存款取款记录。在客户文件中,每个客户是一条记录,包括编号、客户姓名、支取密码、客户地址、客户电话、账户总金额;在存取款文件中,每次存取款是一条记录,包括编号、日期、类别、存取数目、经办人。类别分为取款和存款两种。本系统能够输入客户存款或取款记录;根据客户姓名查询存款和取款记录。分步实施:1、初步完成总体设计,搭好框架,确定人机对话界面,确定函数个数;2、建立一个文件,输入客户的必要信息,能对文件进行显示、输入、修订、删除等。3、进一步要求:完成客户姓名查询存款和取款记录,并能得到每次帐户总金额。要求:1、用 C 语言实现
2、系统;2、利用结构体数组实现信息的数据结构设计;3、系统的各个功能模块要求用函数的形式实现;4、界面友好(良好的人机交互) ,程序加必要的注释。课程设计实验报告要求:1、预习报告:题目、课程设计任务、数据结构、程序的总体设计(算法) 、模块划分 。2、实验总结报告:流程图、主要源程序代码(需打印) 、测试情况及调试中问题与解决方案、小结等。总评成绩: 指导教师:附件:主要源程序代码#include /*引用库函数*/#include#include#define SIZE 100#define SIZE2 100struct customer_inf /*定义结构体数组*/int num;ch
3、ar name20;char password20;char addr20;char tel20;long int money_sum;cusSIZE;struct money_inf /*定义结构体数组*/ int mon_numSIZE;char dateSIZE20;int typeSIZE;char type2SIZE20;long int moneySIZE;char personSIZE20 ;monSIZE2;void show_function() /*显示主菜单函数*/void show_cus_inf(); void lkfor_cus_inf();void creat_c
4、us_inf();void save_inf();char c= ,x10; /*x10为清除多余的数据所用*/int flag=0;system(“cls“); /*运行前清屏*/printf(“银行存取款管理系统n“); /*菜单选择 */printf(“tttttt n“);printf(“ttt 1. 显示客户列表ttt n“);printf(“tttttt n“); printf(“ttt 2. 查找客户详细信息ttt n“);printf(“tttttt n“);printf(“ttt 3. 创建新客户信息ttt n“);printf(“tttttt n“);printf(“ttt
5、 4. 保存修改ttt n“);printf(“tttttt n“);printf(“ttt 0. 退出程序ttt n“);printf(“tttttt n“);printf(“n“);do /*读取操作, 并判断输入是否正确*/gets(x); /*清除误输入的字符*/flag=0;printf(“请选择相关功能代号(0-4):“);scanf(“%c“,if(c= |c=n)do c=getchar();while(c= |c=n);if (c4) printf(“请正确输入!n“);flag=1;while(flag);switch(c) /*执行选择*/case 1: show_cus
6、_inf();break;case 2: lkfor_cus_inf();break;case 3: creat_cus_inf();break;case 4: save_inf();break;case 0: printf(“nnttt 谢谢使用!ntt “);exit(0); void show_cus_inf() /*显示客户信息函数*/int i;printf(“n“); /*格式头*/printf(“ 编号 客户姓名 支取密码 客户地址 客户电话 账户总金额 n“);printf(“n“);for(i=0;i“);system(“pause“);show_function(); /*
7、返回主菜单*/void load_inf() /*读取文件信息函数*/int i;FILE *fp;fp=fopen(“cus_list“,“r“); /*打开客户信息文件*/for(i=0;i提示:客户文件还不存在,是否创建?(Y/N):“);scanf(“%c“,if(flag=y|flag=Y) fwrite( /*判断选择,创建并写入基础数据*/else printf(“n程序加载失败!n“);exit(0);fclose(fp);fp=fopen(“mon_list“,“r“); /*打开存取款文件*/if(fp=NULL) /*判断文件是否存在*/printf(“n提示:存取款文件
8、还不存在,是否创建?(Y/N):“);scanf(“%c%c“,if(flag=y|flag=Y|flag2=y|flag2=Y) fp=fopen(“mon_list“,“w+“); /*判断选择,创建并写入基础数据*/else printf(“n程序加载失败!n“);exit(0);fclose(fp);printf(“n提示:文件已经打开!“);system(“pause“);void save_inf() /*储存信息到文件函数*/FILE *fp;int i;fp=fopen(“cus_list“,“r+“); /*打开客户信息文件*/if (fp=NULL) printf(“can
9、not open filen“);return;for(i=0;i保存成功,“);system(“pause“);fclose(fp);show_function(); /*返回主菜单*/void creat_cus_inf() /*创建新客户信息函数*/char sign=y,x10,Name20,s,g; /*x10为清除多余的数据所用*/int a,i,flag=0,beishu,gewei=0;while(sign=y|sign=Y) /*判断*/do /*输入信息并判断输入正误*/printf(“请输入客户编号(199):“);if (!flag) getchar();flag=0;
10、scanf(“%c%c“,if (g!=n) gets(x);if (g=n) beishu=1;if(g=0flag=1;continue;if (g9)flag=1;continue;for(i=1;i该编号客户已存在!n“);flag=1;while(flag);cusa.num=a;do /*输入信息并判断信息是否重复*/flag=0;printf(“客户姓名:“); /*交互输入*/scanf(“%s“,Name);for(i=1;i该客户名已存在!n“);flag=1;while(flag);strcpy(cusa.name,Name);printf(“支取密码:“);scanf(
11、“%s“,cusa.password);printf(“客户地址:“);scanf(“%s“,cusa.addr);printf(“客户电话:“);scanf(“%s“,cusa.tel);printf(“账户总金额(数字格式,字符无效):“);scanf(“%ld“,gets(x); /*清除多余的输入 */printf(“是否继续输入?(Y/N)“);scanf(“%c“, /*输入判断*/show_function();void lkfor_cus_inf() /*查找客户信息函数*/void show_cus_menu(int n);void edit_cus_inf(int n);v
12、oid del_cus_inf(int n);char Name20;int i,flag=0;printf(“请输入客户姓名进行查找:“);scanf(“%s“,Name);for(i=0;iNo Data!n“);printf(“ “);system(“pause“);show_function(); /*返回主菜单*/void show_cus_menu(int n) /*显示客户详细信息函数*/void show_money_inf(int n);void edit_cus_inf(int n);void del_cus_inf(int n);char c,x10;int flag;s
13、ystem(“cls“); /*运行前清屏*/printf(“银行存取款管理系统n“); /*菜单选择*/printf(“-n“); /*格式头*/printf(“ 编号 客户姓名 支取密码 客户地址 客户电话 账户总金额 n“);printf(“-n“);printf(“ %-7d%-12s%-12s%-16s%-16s%-8ldn“,cusn.num,cusn.name,cusn.password,cusn.addr,cusn.tel,cusn.money_sum);printf(“-n“);printf(“tttttt n“);printf(“ttt 1. 查看客户存取款记录ttt n“
14、);printf(“tttttt n“);printf(“ttt 2. 修改该客户信息ttt n“);printf(“tttttt n“);printf(“ttt 3. 删除该客户信息ttt n“);printf(“tttttt n“);printf(“ttt 0. 返回ttt n“);printf(“tttttt n“);printf(“n“);do /*读取操作, 并判断输入是否正确*/gets(x); /*清除误输入的字符*/flag=0;printf(“请选择相关功能代号(0-3):“);scanf(“%c“,if(c= |c=n)do c=getchar();while(c= |c=
15、n);if (c3) printf(“请正确输入!n“);flag=1;while(flag);switch(c) /*执行所选操作*/case 1: show_money_inf(cusn.num);break;case 2: edit_cus_inf(cusn.num);break;case 3: del_cus_inf(cusn.num);break;case 0: getchar();show_function();break;void edit_cus_inf(int n) /*修改客户信息函数*/char sign,Name20;int flag,i;dodo /*判断客户姓名是否
16、重复*/flag=0;printf(“客户姓名:“); /*交互输入*/scanf(“%s“,Name);for(i=1;i该客户名已存在!n“);flag=1;while(flag);strcpy(cusi.name,Name);printf(“支取密码:“);scanf(“%s“,cusn.password);printf(“客户地址:“);scanf(“%s“,cusn.addr);printf(“客户电话:“);scanf(“%s“,cusn.tel);printf(“账户总金额(数字格式,字符无效):“);scanf(“%ld“,printf(“是否确认(Y/N):“);sign=g
17、etchar();sign=getchar();while(sign!=y /*判断选择*/printf(“修改成功, “);system(“pause“);show_cus_menu(n);void del_cus_inf(int n) /*删除客户信息函数*/char sign;printf(“确认删除该客户信息(Y/N):“); /*确认删除*/sign=getchar();scanf(“%c“,if (sign=y|sign=Y) printf(“删除后将无法恢复,是否确认删除(Y/N):“);/*重复确认删除*/sign=getchar();scanf(“%c“, if (sign=y|sign=Y) /*读取选择*/cusn.num=0;printf(“删除成功,“);system(“pause“);else show_cus_menu(n); /*返回客户详细信息界面*/getchar();show_function(); /*返回主菜单*/