您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 金融资料 > C语言课程设计银行个人账户管理系统
1课程设计任务书题目:银行个人账户管理系统(2)一、课程设计时间共计1周,20学时。二、课程设计内容用C语言编写软件完成以下任务:1储户开户(储户数据包括帐号,姓名,身份证号,密码和账户余额等),储户的信息保存在account.dat文件中,应对储户的开户金额做出限制(如金额不低于10元钱)。2储户的密码修改。3储户的余额查询。4储户销户。5储户的各项信息更改后,应同时更新account.dat文件中的内容。三、课程设计要求1.程序质量:贯彻结构化的程序设计思想。用户界面友好,功能明确,操作方便。用户界面中的菜单至少应包括“储户开户”、“密码修改”、“余额查询”、“销户”和“退出”5项。代码应适当缩进,并给出必要的注释,以增强程序的可读性。2.课程设计说明书:课程结束后,上交课程设计说明书和源程序。课程设计说明书的格式和内容参见提供的模板。四、指导教师和学生签字指导教师:________学生签名:________五、说明书成绩六、教师评语I目录一、需求分析..................................................................1二、程序流程图..............................................................2三、核心技术的实现说明及相应程序段......................5四、课设总结..................................................................8五、参考文献..................................................................9六、源程序......................................................................91一、需求分析经过对程序设计题目的分析可知,整个程序的设计实现大致分为九个模块,每一个模块对应一个函数。在这些函数当中,储户开户函数,余额查询函数,储户销户函数,密码查询函数的实现严格按照题目的要求,而更改数据函数和显示函数属于附加功能。读取文件函数和保存信息函数对其它函数的实现起辅助作用,主函数及菜单函数控制程序的整体运行。1.储户开户函数主要实现程序最初运行时储户信息的录入以及其后的运行中储户信息的追加功能;2.余额查询函数允许按照账号和密码对储户的余额进行查询;3.储户销户函数实现的功能是按照账号和密码对储户的信息进行删除;;4.储户密码修改函数可以实现对储户的密码进行修改;5.显示函数实现的是显示目前所有的有效储户记录信息。除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执2行。每一个储户记录都包含账号,姓名,密码,身份证号和余额,在程序当中,将储户记录类型定义为结构体类型,添加以及追加的储户信息直接写入E盘的account.dat文件中,其它函数每次对储户记录的访问,其数据来源都是account.dat文件,这样做不但可以保证储户信息的一致性,而且可以对储户信息进行永久保存,保证每次运行程序都可以采用原来的数据。二、程序流程图1.程序总体结构图当1输入值n=1?真假储户开户函数add()n=2?真假余额查询函数show()n=3?真假储户销户函数delete()真假n=4?密码修改函数change()退出n=5?图1程序总体结构图2.具体功能框图3(1)储户开户函数add以追加方式打开E盘account.dat文件成功?真假输出文件打开失败真假以追加方式打开E盘account.dat文件成功?返回输入储户帐号姓名输入储户身份证号输入储户密码输入储户金额小于10关闭文件学生信息写入文件真假不予开户图2添加储户信息函数(2)读取储户信息函数reads以读方式打开E盘account.dat文件成功?真假输出文件打开失败返回循环变量i=0当文件未结束时i++关闭文件读取储户信息到数组元素dep[i]中返回储户人数i图3读取储户信息(3)储户销户函数del4循环变量i=0;输入待删除账号number,密码t当in时i++n=reads(dep)dep[i].num=number&&dep[i].sec=t?真假break真假i=n?输出没有找到该储户信息!j=i+1当jn时stu[j-1]=stu[j]j++调用更新文件函数save(dep,n-1)输出提示“销户成功”图4删除储户记录5三、核心技术的实现说明及相应程序段本程序主要由九个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其它函数来实现要求的所有功能。在这些函数当中,添加储户开户函数、余额查询函数和储户销户函数是程序中较为核心的部分,下面分别进行说明。1.储户开户函数开户分为两种情况,其一是在储户文件(account.dat)不存在的情况下,首先由程序创建一个新文件,并将录入的储户信息写入该文件当中;其二是在储户文件(account.dat)已经存在的情况下,此时文件以追加的方式打开,这样才可以保证以前已经存在的信息不丢失。具体的程序段如下:if((fp=fopen(account.dat,a))==NULL)//如果文件已经存在,可以追加储户信息{if((fp=fopen(account.dat,w))==NULL)//文件不存在时,创建新文件,输入储户信息{printf(用户不存在!\n);return;}}printf(\n请输入储户帐号,并按回车键确认:\n);scanf(%s,dep.num);fprintf(fp,\n%s\n,dep.num);printf(\n请输入储户姓名,并用回车键确认:\n);6scanf(%s,dep.name);fprintf(fp,\n%s\n,dep.name);printf(\n请输入储户身份证号,并用回车键确认:\n);scanf(%s,dep.per);fprintf(fp,\n%s\n,dep.per);printf(\n请输入储户密码,并用回车键确认:\n);scanf(%f,&dep.sec);fprintf(fp,\n%f\n,dep.sec);printf(\n请输入储户金额,并按回车键确认:\n);scanf(%f,&dep.mon);fprintf(fp,\n%f\n,dep.mon);if(dep.mon10){printf(\n储户金额低于十元,不予开户\n);return;}printf(\n**********************开户成功*************************\n);fclose(fp);}2.余额查询函数对储户的余额查询首先调用reads函数将文件中的储户信息读入数组当中,并由用户输入待查询储户的账号和密码,而后按照该账号和密码进行查找,如果文件中存在该储户的信息,则采用查询函数进行查询,否则输出输入错误的提示信息。具体程序段如下:n=reads(dep);printf(\n请用户输入账号,密码,用空格隔开,按回车键确认:\n);scanf(%s%f,s,&t);for(i=0;in;i++)if(strcmp(s,dep[i].num)==0&&t==dep[i].sec)break;if(i=n||t!=dep[i].sec)7{printf(\n输入错误\n);return;}else{printf(*********************储户的余额如下**********************\n);printf(余额\n);printf(\n%11.2f\n,dep[i].mon);printf(**********************************************************\n);}3.储户销户函数该函数的核心内容是删除算法以及最终对源文件的更新。该函数执行时,首先调用reads函数将文件中的储户信息读入数组当中,并由用户输入待删除储户的账号和密码,而后按照该账号和密码进行查找,如果文件中存在该储户的信息,则采用删除算法删除,否则输出储户信息不存在的提示信息。对储户信息的具体删除算法是在结构体数组中实现的,当储户的信息被找到后,位于数组中该储户后面的储户记录依次向前移动一个元素的位置,这些操作完成后,要删除的储户信息就被后面的数组元素覆盖掉了,也就实现了删除。在数组中删除储户信息后,还要将更改后的信息重新写回文件当中,以保证数据的一致性。具体程序8段如下:n=reads(dep);printf(\n请输入要删除储户账号,密码,用空格隔开,按回车键确认:);scanf(%s%f,number,&t);for(i=0;in;i++)if(strcmp(number,dep[i].num)==0&&t==dep[i].sec)break;if(i=n||t!=dep[i].sec){printf(没有找到该储户信息!\n);return;}else{for(j=i+1;jn;j++)dep[j-1]=dep[j];}save(dep,n-1);printf(销户成功!\n);}四、课设总结本次课设,我感受很多。深刻地懂得了理论联系实际的重要性。在课设过程中,我发现了自己有很多欠缺的地方,比如:涉及的相关知识不全面,知识学得不够透彻,在课设时就会遇到重重困难,它启示着我在以后的学习中要精益求精,对有用的知识要做到深入研究。9我很感谢指导老师,和在课设过程中帮助过我的同学,他们能在我困难的时候,帮我从困境中解脱出来,让我能顺利地在有限的时间里,完成任务。本次课设,不仅深化了我对课本内容的理解,而且拓宽了我的知识面。我的程序按照指导任务书的要求顺利地完成了任务,实现了所有的功能,整个程序采用模块化设计方法,在程序界面,以菜单的形式调用各功能函数;程序可读性强,界面友好;输出形式美观。五、参考文献1谭浩强.C程序设计.北京:清华大学出版社,20052刘成等.C语言程序设计实验指导与习题集.北京:中国铁道出版社,2006六、源程序#includestdio.h#includestring.h#includestdlib.h#includeconio.h#defineN20structdepositor{charnum[20];10charname[20];charper[20];floatsec;floatmon;};voidmenu();intreads(structdepositordep[N]);voidsave(structdepositordep[N],intn);voidadd();voiddel();voidchange();voidshow();voidmain(){intn;while(1){menu();printf(\n请输入您要选择的操作序号,按回车键确认:);scanf(%d,&n);switch(n){case1:add();break;case2:show();break;case3:del();break;case4:change();break;case5:exit(0);default:printf(输入错误,请输入列表中存在的序号!\n);}}}voidmenu(){printf(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%);11printf(\n*************************银行个人账户管理系统***************************);printf(\n1储户开户);printf(\n2余额查询);printf(\n3储户销户);printf(\n4密码修改);printf(\n5退出);prin
本文标题:C语言课程设计银行个人账户管理系统
链接地址:https://www.777doc.com/doc-5488910 .html