atm取款机实训文档_第1页
atm取款机实训文档_第2页
atm取款机实训文档_第3页
atm取款机实训文档_第4页
atm取款机实训文档_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1、长沙学院课程设计说明书题目程序设计基础课程设计系(部)计算机科学与技术系专业(班级)2012级计科1班姓名刘江惠学号2012021102指导教师黄娟起止日期2013.9.2-2013.9.6课程设计任务书课程名称:程序设计基础课程设计课程编码: JX020139课程类别: 集中性实践教学环节学分数:1学时数: 1 周开课学期: 3设计题目:银行ATM存取款系统、个人通信录系统(任选一题)已知技术参数和设计要求:需求说明及要求题目一:银行ATM存取款系统银行ATM存取款系统业务描述如下:银行 ATM 存取款系统能为用户提供存款、取款、查询、转账和修改密码的功能。 为了模拟真实的 ATM 业务环境

2、,本系统必须实现存款、取款、查询、转账、修改密码 以及开户的功能。用户通过开户业务在本系统开立银行账户,之后可以通过该银行账户 登陆 ATM 系统,在系统中实现存款、取款、查询账户信息、修改密码的操作。本系统 各个业务有如下注意点:( 1) 登陆系统用户登陆之前,必须在登陆界面输入其银行账户,通过其正确输入的银行账户登陆 系统。( 2) 开户业务 要使用本系统必须首先执行开户业务开立新的银行账户,并且将此新开的银行存 储于文件当中。同时,系统以身份证号码作为开户的充分条件,即一个身份证号码只能 开立一次银行账户。( 3) 存款业务客户登陆系统后,选择存款业务,即可以将输入的存款金额存入相应的账

3、户。( 4) 取款业务客户登陆系统后, 选择取款业务,即可以将输入的取款金额从相应的银行账户取出, 但是取款金额必须大于目前的账户余额。( 5) 查询业务客户登陆系统后,可以选择查询业务,查询账户余额。( 6) 转账业务客户登陆系统后,可以选择转账业务,进行转账。注意的是转账的目的账户必须是 本系统已经存在的银行账户。( 7) 修改密码 客户登陆系统后,可以选择修改密码业务,进行密码修改。各阶段具体要求:1、需求分析阶段 熟悉系统业务,从业务中抽取出系统的需求,形成完善的需求说明书。2、系统设计阶段 根据需求,进行程序设计,包括定义系统的界面、定义系统数据的存储方式等,形成完 善的设计说明书。

4、3、编码实现阶段(1)完成代码编写(2)要求代码编写规范4、系统测试阶段(1)完成功能调试(2)要求完成必要的测试工作5、交付实施阶段(1)提交可正常执行的系统(2)提交系统需求说明书、设计说明书、程序代码(3)撰写课程设计报告书(4)要求规范地书写文档 设计工作量:(1)软件设计:完成问题陈述中所提到的所有需求功能。(2)论文:要求撰写不少于 3000 个文字的文档,详细说明各阶段具体要求。工作计划: 软件开发进度如下,论文同步进行; 1. 选定题目( 2 课时)2. 需求分析( 2 课时)3. 概要设计( 2 课时)4. 详细设计( 2 课时)5. 编码实现(8课时)6. 系统测试(1课时

5、)7. 模拟实施(1课时)8. 答辩(2课时)班级周次节次教室内容指导教师12计科1班1周周一3-4致远楼1403布置任务黄娟1周周一5-8致远楼1403上机调试1周周二3-4致远楼1403上机调试1周周三5-8致远楼1403答疑1周周四5-8致远楼1403上机调试1周周五5-8致远楼1408答辩注意事项提交文档?长沙学院课程设计任务书(每学生1份)?长沙学院课程设计论文(每学生1份)?长沙学院课程设计鉴定表(每学生1份)指导教师签名:日期:教研室主任签名:日期:系主任签名:日期:长沙学院课程设计鉴定表姓名刘江惠学号2012021102专业计算机科学与技术班级12计科1设计题目银行ATM存取款

6、系统指导教师黄娟指导教师意见:评定等级:教师签名:日期:答辩小组意见:评定等级:答辩小组长签名:日期:教研室意见:教研室主任签名:_ 日期:_一系(部)意见:系主任签名:日期:说明课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类;目录第 1 章 问题描述 21.1 设计内容 21.2 设计要求 21.2.1 功能要求 21.2.2 界面要求 31.2.3 技术要求 3第 2 章 系统设计与实现 42.1 系统总体设计 42.1.1 数据结构设计. 42.1.2 各功能模块间的关系 . 52.2 系统详细设计与实现. 52.2.1 主函数 72.2.2 注册函数 72.2.3 登陆函数

7、 92.2.4 存款函数 112.2.5 取款函数 122.2.6 转账函数 152.2.7 查询函数 172.2.8 修改密码 18第 3 章 系统测试 223.1 主菜单界面 223.2 开户界面 223.3 登陆界面 233.3.1 存款 233.3.2 取款 243.3.3 转账 243.3.4 修改密码 253.3.5 查询 26总结 27第一章 问题描述1.1 设计内容本次实训设计了一个银行 ATM存取款模拟管理系统,具有注册、登陆功能。用户登陆该系统后 能为用户提供存款、取款、查询、转账和修改密码的功能。在这个过程中,利用到了文件等技术。1.1.1 设计要求1. 菜单设计:要有两

8、个菜单,登陆之前有一个登陆和注册菜单,然后登陆进去后要有一个可以 进入各个功能的菜单。2. 注册设计:要求输入用户的一些个人信息。能够自己设置密码。并且给予客户账号。3. 登陆设计:要求要验证用户的账号和密码。4. 存款设计:要能输入金额并且能够与余额累加。5. 取款设计:要能验证余额并且能够与余额相减。6 转账设计:要能验证转入账号并且能够验证转出金额不大于余额。7 账户查询设计:要能打印出账户的余额。1.2.1 功能要求? 开户功能 客户需要提供姓名、身份证号等信息,经过系统处理后,将产生的用户账号及客户信息写入账 户文件中。2. 登录功能 用户登陆时,必须在登陆界面输入其银行账户和密码,

9、通过其正确输入的银行账户登陆系统, 进入登陆界面后即可进行以下操作:( 8) 取款 要求客户输入取款金额,经过系统处理后,更新该账户所对应的账户余额。( 9) 存款 要求客户输入存款金额,经过系统处理后,更新该账户所对应的账户余额。( 10) 转账 要求客户输入目标账号,再经过确认其账号输入是否有误来判断转账是否继续,在余额充足的 条件下进行转账程序,否则提示余额不足。( 11) 查询 系统根据该客户的账户信息查询其信息文件,将查询结果显示出来。( 12) 修改密码 客户登陆系统后,可以选择密码修改业务,进行修改。1.2.2 界面要求 界面设计要清晰合理; 排版要整洁易于看懂; 给出相关的注释

10、。1.2.3 技术要求 函数的定义和调用; 循环语句的应用 Switch 语句的多分支选择; If 条件语句使用:包括 if 语句类型的选择,及嵌套使用; 熟悉结构体的应用及如何定义; 函数跳转需求的实现; 熟悉对文件的使用;第2章系统设计与实现2.1系统总体设计2.1.1数据结构设计在整个程序中,有结构体类型的数据构成了一个链表,这里所用到的数据,有账户、姓名、密码、 账户余额。具体类型定义如表2.1所示。表2.1数据类型定义数据定义类型长度姓名char20账户号码char8密码char10账户余额double-注:1)账户号码、客户名称、客户密码通常是一行字符串,所以将其设计成字符数组,再

11、规定 其字符串的长度。2)账户余额通常是带小数的,在C语言中可以用float、double等数据类型定义。 在这里将账户余额定义为double类型的变量。2.1.2各功能模块间的关系该ATM银行管理系统的主界面由七个主要功能构成,在登陆界面中又由五个功能构成,其大致图1.1功能流程图2.2系统详细设计与实现2.2.1 主函数2.1在打开的主界面中,通过switch语句来选择各项操作,在进入各函数的算法过程。其流程图如所示。图2.1主函数流程图主要代码 :/ 1 主函数/登录的初始页面int main()int flog=0;char a4;printf(= 欢迎使用 ATM 系统 =n); p

12、rintf(| 1开户n);printf(| 2登陆n);printf(=n); while (flog=0)printf( 请输入您的选项: );scanf(%s,a); / 或者用 gets(a);也可以switch(a0)case 1:kh();flog=1;break;/跳转致开户函数case 2:dl(),flog=1;break;/跳转致登陆函数default:printf( 输入错误,请从新输入! n); flog=0;break;system(pause);return 0;2.2.2 功能模块:注册对应函数: zc() 输入:姓名,账号,密码,存款金额 函数跳转:跳转到 ma

13、in;实现功能:为客户注册开户 流程图:主要代码:void kh()图22注册函数流程图/ 2新用户注册FILE *fp;int i,s,flog=1;double money;char name20,password7,count20;printf( 请输入你的姓名,账号,密码及存款数目 n); / 新用户信息输入 scanf(%s %s %s %lf,name,count,password,&money);i=strlen(password); / 计算字符串数组长度函数if(i6)printf( 密码应小于六位!请重新输入! n);kh();/ 跳转致开户函数界面fp=fopen(tex

14、t.txt,r);/打开一个文本文件text( 只读 )for(i=0;inumber;i+)/磁fscanf(fp,%s %s %s %lf,,useri.password,useri.password,&useri.money); 盘文件输入函数if(strcmp(count,useri.count)=0)flog=0; / 标记为已经注册用户fclose(fp);if(flog!=0)fp=fopen(text.txt,a+);/打开一个文件文本text( 读写 )fprintf(fp,%s %s %s %.2lfn,name,count,password,money

15、); / 新用户信息收集 fclose(fp);number+=1;/ 标记已经注册的用户数量printf( 恭喜您注册成功 n);printf ( 返回按 1n);scanf(%d,&s);if(s=1)system(cls);main ();/清屏并且跳转致主函数界面else printf( 该用户已存在,您不能使用! n);kh();2.2.3 功能模块:登录对应函数: dl() 输入:账号,密码 函数跳转:跳转到存款、取款、转账、查询修改密码相应功能项的函数; 实现功能:登录进入功能选项;流程图:主要代码:开始图2.3登陆函数流程void dl()/ 已注册用户FILE *fp;pri

16、ntf( 请输入您的账号及密码! n);int flog=0,i,a=100;char temp_name20,temp_password7,temp_count20,k2; / 用户登录 while(flog=0)scanf(%s %s,temp_count,temp_password); /调试时空格分别输入fp=fopen(text.txt,r);/打开一个文本文件 text( 只读 )for(i=0;inumber;i+)/检索已经注册用户的信息fscanf(fp,%s %s %s %lf,,useri.count,useri.password,&useri.mon

17、ey); if(strcmp(temp_password,useri.password)=0&strcmp(temp_count,useri.count)=0) a=i;fclose(fp);if(anumber) / 当已经注册的用户大于 100 人时清屏system(cls);menu(usera.count); / 跳转至选择函数界面flog=1;/ 标记为已经登陆用户elseprintf( 输入错误,请重新输入! n); dl();break; /跳转至登陆函数界面,结束循环break;system(pause);2.2.4功能模块:存款对应函数:ck()输入:金额;函数跳转:存款后返

18、回到登录函数;实现功能:向账户存入一定金额; 流程图:图 2.4 存款函数流程图主要代码:void ck(char x20)/ 1 存款功能FILE *fp;int i,a=0;double t;printf( 请输入存储金额: n);scanf(%lf,&t);/ 记录存款金额fp=fopen(text.txt,r);for(i=0;inumber;i+)fscanf(fp,%s %s %s %lf,,useri.count,useri.password,&useri.money); if(strcmp(x,useri.count)=0)a=i; / 找到存款者 fclo

19、se(fp); usera.money+=t; / 资金累加 fp=fopen(text.txt,w);/打开一个文本文件 (只写 )for(i=0;inumber;i+)fprintf(fp,%s %s %s %lfn,,useri.count,useri.password,useri.money); fclose(fp);printf( 存储成功 !n);printf( 返回请按 1n);/ 返回主函数scanf(%d,&i);if(i=1)system(cls);menu(usera.count); /清屏并且跳转至选择函数界面2.2.5 功能模块:取款对应函数: q

20、c() 输入:账户,密码; 函数跳转:取款成功后返回登陆函数,不成功则返回主函数; 实现功能:从账户中取出一定金额,并保存剩余金额数;流程图:图2.5取款函数流程图主要代码:void qk(char x20)/ 2取款功能FILE *fp;int i,a=0;double t; / 定义一个提取资金变量printf( 请输入提取金额: n);scanf(%lf,&t);fp=fopen(text.txt,r);/ 打开一个文件文本text( 只读 )for(i=0;i=t)/ 判断提取资金是否超出用户资金usera.money-=t;fp=fope n(text.txt,w);/ 打开一个文件

21、文本text(只写)for(i=0;inumber;i+)fprintf(fp,%s %s %s %lfn,,useri.count,useri.password,useri.money); / 储存用户账户金额fclose(fp);printf( 取款成功 !n);/返回主函数else printf( 取款失败 !n);printf( 返回请按 1n);scanf(%d,&i);if(i=1)system(cls);menu (usera.co un t);清屏并且跳转至选择函数界面2.2.6功能模块:转账对应函数:zhua nz()输入:账户,密码;函数跳转:转账成功跳

22、转到登录函数,否则回到主函数ma in;实现功能:实现用户间的转账;流程图:图 2.6 转账函数流程图主要代码:void zhuanz(char x20) / 3 转账功能FILE *fp;double t;int a=100,i,b=100;char z20;/定义一个被转账用户名字符数组printf( 请输入对方账号 !n); scanf(%s,z);/或者用 gets(z); 也可printf( 请输入转账金额 n); scanf(%lf,&t);fp=fope n(text.txt,r);打开一个文件文本text(只读)for(i=0;inumber;i+)fscanf(fp,%s %

23、s %s %lf,,useri.count,useri.password,&useri.money);/查询转账者if(strcmp(z,useri.count)=0)b=i;fclose(fp);fp=fopen(text.txt,r);for(i=0;inumber;i+)fscanf(fp,%s %s %s %lf,,useri.count,useri.password,&useri.money);/ 查询转账者if(strcmp(x,useri.count)=0)a=i;if(b=t) /判断转账资金是否大于底金和转账用户人数是否大于被转 账用户

24、人数fclose(fp);usera.money-=t;userb.money+=t;fp=fopen(text.txt,w);for(i=0;inumber;i+)fprintf(fp,%s %s %s %lfn,,useri.count,useri.password,useri.money); / 记录 转账后的信息fclose(fp);printf( 转账成功 !n);else printf(”账号或金额错误,转账失败n);printf(”返回请按1n);/返回主函数scan f(%d, &i);if(i=1)system(cls);menu (usera.co un

25、 t);2.2.7功能模块:查询对应函数:cx()输入:账户,密码;输出:账户余额;函数跳转;查询完毕后返回登录函数;实现功能:输出账户余额;流程图:图 2.7 查询函数流程图主要代码:void cx(char x20)/ 4 查询功能FILE *fp;printf( 您的信息如下 :n);int i,a=0;fp=fopen(text.txt,r);for(i=0;inumber;i+)fscanf(fp,%s %s %s %lf,,useri.count,useri.password,&useri.money); if(strcmp(x,useri.count)=0)a

26、=i; / 记录要查询的人printf( 姓 名 : %s 账 号 : %s 密 码 : %s 额 %.2lfn,,usera.count,usera.password,usera.money);fclose(fp);printf( 返回请按 1n);scanf(%d,&i);if(i=1)system(cls);menu(usera.count);2.2.8 功能模块:修改密码对应函数: xg() 输入:账户,密码;函数跳转:改密成功后返回到登录函数; 实现功能:输出账户余额;流程图:图 2.8 修改密码函数流程图/记/写入磁主要代码:/ 5 修改密码void xg(ch

27、ar x20)FILE *fp;int i,a;char password_17,password_27;printf( 请输入密码 n);fp=fopen(text.txt,r);for(i=0;inumber;i+)fscanf(fp,%s %s %s %lf,,useri.count,useri.password,&useri.money); 录下要修改密码的人if(strcmp(x,useri.password)=0)a=i;fclose(fp);scanf(%s,password_1);printf( 请再输入密码 n);/两次输入密码scanf(%s,password_2);if(strcmp(password_1,password_2)=0)strcpy(usera.password,password_1); / 把改过后的密码复制到原来密码函数 fp=fopen(text.txt,w);for(i=0;i:的额1需取? 1 S败按 请请即取返图3.5取款界面3.6转账界面;选择转账业务后,提醒输入转账金额及转入账户账号;账号及密码,提示转账成功;如密码或账号 错误则提示失败;完成后返回按1。请欄入转账金颔翔人对方账号亍01_6 旧炎迎使用机序款业务H ATM2.exe3 4 6务务 业业 监岀 转杳退辟髓

温馨提示

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

评论

0/150

提交评论