《2022年黄为勇课程设计方案个课程设计方案 .pdf》由会员分享,可在线阅读,更多相关《2022年黄为勇课程设计方案个课程设计方案 .pdf(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、个人资料整理仅限学习使用得分:信电工程学院高级语言程序设计课程设计报告题目:银行存取款管理系统班级: 10 通信班学号: 20180506109 姓名: x x 指导教师:黄为勇精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 24 页个人资料整理仅限学习使用2018 年 1 月 15 日目 录1 程序目标及功能 - 21.1课题背景 -21.2系统功能 -21.3设计要求 -22 程序功能模块组成及流程图-22.1 系统功能模块 -22.2 各模块流程图 -33程序主要数据结构及函数列表 -53.1 程序中使用的数据结构 -53.2 函
2、数列表 -54程序代码及运行结果 -65 总结与体会 -22精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 24 页个人资料整理仅限学习使用1 程序目标及功能1.1 课题背景1)银行存取款系统是针对银行账目的日常管理而设计。银行账目管理系统不仅要求操作方便而且要求界面简洁,它还需要实现账目管理,用户查询功能。2)了解银行存取款业务的流程,使用 C 语言和数据程序知识模拟银行存取款系统。1.2 系统功能该系统功能是输入客户信息,模拟存款与取款,按客户编号查询客户存款取款记录。1.3 设计要求1)在客户文件中,每个客户是一条记录,包括客户编
3、号、客户姓名、支取密码、客户地址、客户电话、账户总金额;2)每个客户对应一个存取款文件。3)在存取款文件中,每次存取款是一条记录,包括编号、日期、类别、存取数目、经办人。类别分为取款和存款两种。4)用函数分别实现动态链表的建立、动态链表输出等功能。5)界面友好,对程序加必要的注释;6)函数功能要划分好 结构化程序设计);函数要求使用指针作形参。取款模块:3查询模块存款功能输入客户的相关输出客户的的存款信息输 入 客 户 的 姓名及编号取款功能输入取款金额是否大于原有金额取款成功结束输入错误大于不大于输出现有金额查询功能结束精选学习资料 - - - - - - - - - 名师归纳总结 - -
4、- - - - -第 5 页,共 24 页个人资料整理仅限学习使用3 程序主要数据结构及函数列表3.1 程序中使用的数据结构struct client long num。char name10 。 /*定义编号,名字,密码,地址,电话号码*/ int password。char addr20。char phone12。int account。struct client *next。 。struct rec long num。 /*结构体定义 */ struct tm *timeinfo。int a 。int account。char person10。struct rec *next。 。3.
5、2 函数列表struct client *creat( /*创建客户信息 */struct client *insert(struct client *head,struct client *cliint sear(struct client *h,struct client *head int total1(struct client *head void print(struct client *head /*输出客户 */ struct rec *creat1(struct client *p void add(struct rec *head,struct rec *record /*
6、追加客户信息*/精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 24 页个人资料整理仅限学习使用struct client *search(struct rec *pr,struct client *pc / *寻找客户信息 */struct rec *dele(struct rec *tou,struct client *head,char nameint total2(struct rec *tou void print1(struct rec *tou,char name,struct client *head4 程序代码及运行结
7、果#include #include #include #include #includerecord.c #define LEN sizeof(struct client #define LENG sizeof(struct rec FILE *fp1,*fp2。time_t rawtime。struct tm *timeinfo。struct rec *tou=0。struct client *head=0。int i=0。void main( void menu( 。 /*创建客户信息 */ void client1(。 void record1(struct client *pc。 v
8、oid save(。 void load(。 char n,name10。 long num 。 i=i+1 。 if(i=1 load(。 menu(。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 24 页个人资料整理仅限学习使用 while(1 printf(请选择操作种类 .。 n=getch( 。 switch(n case 1: client1(。break。 case 2: client1(。break。 case 3: record1(head。break。 case 4: printf(n请输入姓名: 。scanf(%
9、s,name 。 print1(tou,name,head。 n=getch(。 nu(。break。 case 5: struct client *p。 print(head。 n=getch( 。 menu(。 break 。 case 6: save(。 printf(n请注意收回银行卡 !n 。 exit(0。 default:printf(n。 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 24 页个人资料整理仅限学习使用void client1( char n,name10。 int d。 struct client *p
10、。 printf(n。 printf(n 。 if(head=0 head=creat( 。 if(head!=0 p=(struct client *malloc(LEN。 printf(n。 printf(编号: 。scanf(%ld,&p-num 。 d=sear(p,head。 if(p-num!=0&d=0 printf(姓名: 。scanf(%s,p-name 。 printf(密码: 。scanf(%d,&p-password 。 printf(地址: 。scanf(%s,p-addr。 printf(电话: 。scanf(%s,p-phone 。 p-account=0。 wh
11、ile(p-num!=0&d=0 head=insert(head,p。 p=(struct client *malloc(LEN。 printf(n。 printf(编号: 。scanf(%ld,&p-num 。 d=sear(p,head。 if(p-num!=0&d=0 printf(姓名: 。scanf(%s,p-name 。 printf(密码: 。scanf(%d,&p-password 。 printf(地址: 。scanf(%s,p-addr。 printf(电话: 。scanf(%s, p-phone。精选学习资料 - - - - - - - - - 名师归纳总结 - - -
12、 - - - -第 9 页,共 24 页个人资料整理仅限学习使用 p-account=0。 menu(。 void record1(struct client *pc struct client *d。 struct rec *p。int a=1 。 printf(nn。 printf(*存取款操作 * 。printf(n 。 if(tou=0 tou=creat1(head。 if(tou!=0 p=(struct rec *malloc(LENG。 printf(n。 printf(编号: 。scanf(%ld,&p-num 。 if(p-num!=0 d=search(p,head。 i
13、f(p-num!=0&d!=0 printf(类别。scanf(%d,&p-a 。 printf(存取数目: 。scanf(%d,&p-account。 d-account=d-account+(p-a=1?1:-1*p-account。 if(d-account=0 printf(经办人: 。scanf(%s,p-person。 time (&rawtime。 p-timeinfo=localtime(&rawtime。 a=1 。 elseprintf(余 额 不 足 !n。 a=0 。 d-account=d-account+p-account。system(pause 。while(p
14、-num!=0&d!=0&a!=0 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 10 页,共 24 页个人资料整理仅限学习使用 add(tou,p。 p=(struct rec *malloc(LENG。 printf(n。 printf(编号: 。scanf(%ld,&p-num 。if(p-num!=0 d=search(p,head。 if(p-num!=0&d!=0 printf(类别。scanf(%d,&p-a 。 printf(存取数目: 。scanf(%d,&p-account。 d-account=d-account+(p-a=
15、1?1:-1*p-account。 if(d-account=0 printf(经办人: 。scanf(%s,p-person。 time (&rawtime。 p-timeinfo=localtime(&rawtime。 a=1 。 elseprintf(余 额 不 足 !n。 a=0 。 d-account=d-account+p-account。system(pause 。menu(。 void save( if(fp1=fopen(client,wb=NULL printf(文件操作失败 !n。 system(pause。 exit(0。 while(head!=0 if(fwrite
16、(head,LEN,1,fp1!=1 printf(写入错误 !n。 head=head-next 。 if(fp2=fopen(record,wb=NULL printf(文件操作失败 !n。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 11 页,共 24 页个人资料整理仅限学习使用 system(pause 。exit(0 。 while(tou!=0 if(fwrite(tou,LEN,1,fp2!=1 printf(写入错误 !n。 tou=tou-next。 fclose(fp1。 fclose(fp2。 void load( stru
17、ct client *p1,*p2。 struct rec *t1,*t2。 int m=0,n=0。 if(fp1=fopen(client,rb=NULL printf(读取客户信息失败 !n。 else p1=(struct client *malloc(LEN。fread(p1,LEN,1,fp1。 while(!feof(fp1 n=n+1 。 if(n=1 head=p1。 else p2-next=p1。 p2=p1 。 p1=(struct client *malloc(LEN。 if(fread(p1,LEN,1,fp1!=1 printf(读入错误 !n。 fclose(f
18、p1。 if(fp2=fopen(record,rb=NULL 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 12 页,共 24 页个人资料整理仅限学习使用printf(读取交易记录失败 !n。 system(pause 。 else t1=(struct rec *malloc(LENG。 fread(t1,LEN,1,fp2。 while(!feof(fp2 m=m+1 。 if(m=1 tou=t1。 else t2-next=t1。 t2=t1。 t1=(struct rec *malloc(LENG。 if(fread(t1,LEN,1
19、,fp2!=1 printf(读入错误 !n。system(pause 。 fclose(fp2。 void menu( system(cls。 printf(n。 printf( 银行存取款管理系统 n。printf( No: 09 Name: 崔辰 Class: 10通信n 。printf( n 。printf( 1. 建 立 客 户 信 息 表n 。printf( 2.追 加 客 户n 。printf( 3.存 取 款n 。printf( 4.输入客户编号,查询存取款信息n 。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 13 页,共 24
20、 页个人资料整理仅限学习使用printf( 5. 显 示 所 有 客 户 信 息n 。printf( 6. 保 存 并 退 出n 。 #include #include #include #define LEN sizeof(struct client struct client long num 。 char name10。 int password。 char addr20。 char phone12。 int account。 struct client *next。 。struct client *creat( struct client *head,*p1。 p1=(struct c
21、lient *malloc(LEN。 printf(编号: 。scanf(%ld,&p1-num 。 if(p1-num!=0 head=p1。 printf(姓名: 。scanf(%s,p1-name 。 printf(密码: 。scanf(%d,&p1-password 。 printf(地址: 。scanf(%s,p1-addr。 printf(电话: 。scanf(%s,p1-phone 。 p1-account=0 。 p1-next=0 。 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 14 页,共 24 页个人资料整理仅限学习使用
22、else head=0 。return head 。 struct client *insert(struct client *head,struct client *clistruct client *p1,*p2。 p1=head。 while(cli-nump1-num&(p1-next!=0 p2=p1 。 p1=p1-next 。 if(cli-numnum if(head=p1 head=cli。else p2-next=cli。cli-next=p1。 Else p1-next=cli。cli-next=0。 return(head。 int sear(struct client
23、 *h,struct client *head int d。 struct client *p。 p=head。 while(h-num!=p-num&p-next!=0 p=p-next 。 if(h-num=p-num printf(此编号已存在 !n 。system(pause 。d=1。 else d=0 。 return d。 int total1(struct client *head struct client *p。 int n=0。 p=head。 while(p!=0 n=n+1 。 p=p-next 。 return n。 void print(struct client
24、 *head 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 15 页,共 24 页个人资料整理仅限学习使用struct client *p。 int n。 n=total1(head。 system(cls。 printf(n。 printf( 客户信息: n。 printf(卡号姓名密码地址电话账户余额 n 。 p=head。 if(head=0 printf(无信息! n 。 else do printf( %-8ld %-15s %-6d %-20s %-11s %11d n,p-num,p-name,p-password,p-addr,p
25、-phone,p-account。p=p-next 。/*if(p!=0 printf(n 。 else printf(n 。*/ while(p!=0。 printf( 共 %d 条记录 nn,n。printf(按任意键返回上一级菜单 .n。 #include #include #include #include #includeclient.c #define LENG sizeof(struct rec 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 16 页,共 24 页个人资料整理仅限学习使用struct rec long num 。 s
26、truct tm *timeinfo。 int a。 int account。char person10。struct rec *next。 。time_t rawtime。struct tm *timeinfo。struct tm *shijian。struct rec *creat1(struct client *p struct client *search(struct rec *pr,struct client *pc。 struct client *d。 struct rec *head,*p1。 p1=(struct rec *malloc(LENG。 printf(编号: 。s
27、canf(%ld,&p1-num 。 if(p1-num!=0 d=search(p1,p。 if(p1-num!=0&d!=0 head=p1 。 printf(类别。scanf(%d,&p1-a 。 printf(存取数目: 。scanf(%d,&p1-account。 d-account=d-account+(p1-a=1?1:-1*p1-account。 if(d-account=0 printf(经办人: 。scanf(%s,&p1-person。 time(&rawtime。 p1-timeinfo=localtime(&rawtime。 p1-next=0。 else head=
28、0 。 printf(余 额 不 足 !n。 d-account=d-account+p1-account。system(pause 。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 17 页,共 24 页个人资料整理仅限学习使用 else head=0 。return head 。 void add(struct rec *head,struct rec *record struct rec *p1。 p1=head。 while(p1-next!=0 p1=p1-next 。 p1-next=record。 record-next=0。 str
29、uct client *search(struct rec *pr,struct client *pcstruct client *t。 t=pc 。 if(t!=0 while(pr-num!=(t-num&(t-next!=0 t=t-next。 if(pr-num!=t-num printf(未找到此编号的客户 !n。system(pause 。t=0。 else printf(!客户信息为空,操作取消!n。system(pause 。 return t。 struct rec *dele(struct rec *tou,struct client *head,char namestru
30、ct client *p。 struct rec *q,*t,*s。 p=head。 if(tou!=0 while(strcmp(name,p-name!=0&p-next!=0 p=p-next 。 if(strcmp(name,p-name=0 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 18 页,共 24 页个人资料整理仅限学习使用q=tou 。while(q!=0 if(p-num=q-num if(q=tou s=q 。tou=q-next 。q=q-next 。free(s 。 else s=t-next。t-next=q-nex
31、t。q=q-next 。free(s 。 else t=q。q=q-next 。 return tou。 int total2(struct rec *tou struct rec *p。 int m=0 。 p=tou 。 while(p!=0 m=m+1 。 p=p-next。 return m。 void print1(struct rec *tou,char name,struct client *headstruct rec *p。 struct client *q。 int n=0,m。 char *cate。 m=total2(tou。 system(cls。 printf(n。
32、 printf( 存取款信息n 。 printf(n。 printf( 编 号地 址存 取 数 目经 办 人日 期n 。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 19 页,共 24 页个人资料整理仅限学习使用 printf( n 。p=tou。q=head。if(tou=0 printf( 交易记录为空 !n else while(strcmp(name,q-name!=0&q-next!=0 q=q-next。 if(strcmp(name,q-name=0 do if (p-num=q-num shijian=p-timeinfo。 if
33、(p-a=1 cate=存款。 else cate=取款 。 printf( %-8d %-6s %9d %-11s %s,p-num,cate,p-account,p-person,asctime(shijian。 printf( n。 n=n+1。 p=p-next。 while(p!=0。 if(n=0 printf( 无此客户交易信息 !n。 else printf( 数据库中无此客户 ! n。 printf(%d/%d 条记录 nn,n,m 。 printf(按任意键返回上一级菜单 .n。 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第
34、20 页,共 24 页个人资料整理仅限学习使用精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 21 页,共 24 页个人资料整理仅限学习使用精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 22 页,共 24 页个人资料整理仅限学习使用5 总结与体会我们学校非常注重培养应用型人才,作为网络方面的学生,课程实验课程让我们有机会学习程序设计的一般操作。因为尽管理论知识再深厚,也是不能与实践脱钩。我们绝对有必要在踏入社会之前培养自己的动手操作能力,为自己打下一定的基础。初步了解并掌握一些复杂程序的编写流程,让我
35、们以后能更加和谐的融入社会。银行存取款模拟系统涵盖了银行体系各项日常业务操作,总体上能够符合我们实验需求并有其独特的优势,不但表述了商业银行的业务流程,还体现了现代商业银行的管理体系,该系统在实验过程中涵盖了大量的专业理论知识,让我们能学以致用,在实验中消化业务,在业务中消化知识。大到业务,有业务说明,操作要求,流程说明等,小到要素,要素的输入格式,要素的具体要求等都有严格准确的说明。经过本课程的学习,我了解了银行业务运作的基本流程,掌握了前台、中台、后台的基本职能设置及分工协作,加深了对银行经营管理实践的认识,培养我们运用所学知识综合分析和解决实际问题的能力以及实际操作能力,使精选学习资料
36、- - - - - - - - - 名师归纳总结 - - - - - - -第 23 页,共 24 页个人资料整理仅限学习使用我们具有较高的业务素质,并且使理论结合实际,增强课程教案的实战效果,满足应用型人才培养要求。我们应该努力提高自身素质,不仅仅是按业务流程来完成我们的课程作业,还应该学会提出问题、深入思考研究问题以解决问题。在课程学习中我努力把所学的基本理论和分析方法锻炼自己。通过这门实验课课时也较多)的学习,我对程序设计有了更深入的理解,并且能够做到学以致用,实在是获益匪浅。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 24 页,共 24 页