C语言课程设计---模拟银行存取款业务

合集下载

c模拟取款机课程设计

c模拟取款机课程设计

c 模拟取款机课程设计一、课程目标知识目标:1. 学生能够理解ATM机的基本工作原理和功能操作流程;2. 学生能够掌握运用编程语言进行ATM机模拟程序的设计;3. 学生能够运用基本的数学运算实现账户余额的查询、取款和存款功能。

技能目标:1. 学生能够运用所学知识,独立设计并编写一个简单的ATM取款机模拟程序;2. 学生能够通过编程解决实际问题,提高逻辑思维和问题解决能力;3. 学生能够通过团队协作,共同完成项目任务,提高沟通与协作能力。

情感态度价值观目标:1. 学生能够认识到编程在生活中的实际应用,增强学习信息技术的兴趣;2. 学生能够在项目实践中体会团队合作的重要性,培养合作精神;3. 学生能够通过解决实际问题,认识到学习知识可以改善生活,提高社会责任感。

分析课程性质、学生特点和教学要求,本课程旨在帮助学生在掌握ATM机基本知识的基础上,运用编程技能实现模拟程序的设计,培养学生解决实际问题的能力。

课程目标具体、可衡量,以便学生和教师能够清晰地了解课程的预期成果,为后续的教学设计和评估提供依据。

二、教学内容1. 理论知识:- 了解ATM机的基本功能及其工作原理;- 学习编程语言的基本语法和结构;- 掌握条件语句、循环语句和函数的定义与使用。

2. 实践操作:- 设计并编写ATM机模拟程序;- 实现账户余额查询、取款、存款和退出功能;- 学习调试程序,解决编程过程中遇到的问题。

3. 教学大纲:- 第一周:ATM机基本功能介绍,学习编程语言基础;- 第二周:编写ATM机模拟程序,实现查询余额和取款功能;- 第三周:实现存款和退出功能,学习调试程序;- 第四周:项目展示与评价,总结反馈。

4. 教材章节:- 《信息技术》第三章:程序设计基础;- 《信息技术》第四章:算法与程序设计。

教学内容根据课程目标进行选择和组织,保证科学性和系统性。

教学大纲明确了教学内容的安排和进度,确保学生在学习过程中逐步掌握所需知识,为实践操作打下坚实基础。

【C语言】课程设计-ATM机模拟操作(附源码)

【C语言】课程设计-ATM机模拟操作(附源码)

C语言-ATM机模拟操作程序实现功能点:a.查询:查询帐户的存款余额。

按任意键返回主菜单;b.取款:输入100、500、1000、2000、5000、其它金额为取款金额,取款金额不超过帐户余额,操作后帐户余额应相应减少,之后可返回主菜单;c.存款:输入100、500、1000、2000、5000、其它金额为存款金额,存款金额不超过20000元,操作后帐户余额应相应增加。

之后可返回主菜单;d.转帐:输入一个帐户号,程序判断与文件信息是否相符,储户确认无误后,再输入100、500、1000、2000、5000、其它金额为转帐金额,转帐金额不得超过帐户余额,操作后帐户余额应相应减少。

之后可返回主菜单;e.修改密码:连续输入两次新密码(两次输入结果完全相同)后,新密码取代旧密码,并存放到帐户信息文件中。

之后可返回主菜单;f.退出:退出系统;g.帮助:增加趣味性;h.存款时,可正可负,正表示存款,负表示取款;i.帐户信息存放在accounts.txt文件,储户存取款记录保存在records.txt中;(在目录下创建这两个文件)j.采用模块化程序设计方法来实现,即main()显示主菜单、调用相关函数实现相应功能,起主控作用;k.储户一天内输错密码的次数不能超过3次,否则无法进入系统;l.有效避免输入存款金额、取款金额为负数等异常情况的出现。

较为突出的功能是注册、登录时账号密码的核对验证;存款转出转入金额的核对。

是否超过余额,是否不符合格式,是否为冲突操作。

(2)程序运行截图及说明(每图限50到100字);●进入程序,menu1可选择登录、注册功能。

●选择登录,输入账号密码,通过输入内容与文件的匹配,判断是否成功登录。

若登录失败,则重新选择。

●选择注册,输入账号密码,写入文件中。

●进入menu2,有五大功能选择,输入对应的序列号进入。

●余额查询功能输出账号所对应的余额。

●取款功能,需要安装要求取出格式化的金额。

C语言课程设计…………银行自动存取款机模拟

C语言课程设计…………银行自动存取款机模拟

printf("log in successfully,please select operation\n");
fprintf(fg,"log in successfully,please select operation\n");
dljm();Biblioteka break;}else
{
printf("password input error\n");
printf("enter password again!");
fprintf(fg,"password input error\n");
fprintf(fg,"enter password again!\n");
scanf("%d",&password);
fprintf(fg,"%d\n",password);
{fputs(b,fp);
fclose(fp);}
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力通根保1据过护生管高产线中工敷资艺设料高技试中术卷资0配不料置仅试技可卷术以要是解求指决,机吊对组顶电在层气进配设行置备继不进电规行保范空护高载高中与中资带资料负料试荷试卷下卷问高总题中体2资2配,料置而试时且卷,可调需保控要障试在各验最类;大管对限路设度习备内题进来到行确位调保。整机在使组管其高路在中敷正资设常料过工试程况卷中下安,与全要过,加度并强工且看作尽护下可关都能于可地管以缩路正小高常故中工障资作高料;中试对资卷于料连继试接电卷管保破口护坏处进范理行围高整,中核或资对者料定对试值某卷,些弯审异扁核常度与高固校中定对资盒图料位纸试置,卷.编保工写护况复层进杂防行设腐自备跨动与接处装地理置线,高弯尤中曲其资半要料径避试标免卷高错调等误试,高方要中案求资,技料编术试写5交、卷重底电保要。气护设管设装备线备置4高敷、调动中设电试作资技气高,料术课中并3试、中件资且卷管包中料拒试路含调试绝验敷线试卷动方设槽技作案技、术,以术管来及架避系等免统多不启项必动方要方式高案,中;为资对解料整决试套高卷启中突动语然过文停程电机中气。高课因中件此资中,料管电试壁力卷薄高电、中气接资设口料备不试进严卷行等保调问护试题装工,置作合调并理试且利技进用术行管,过线要关敷求运设电行技力高术保中。护资线装料缆置试敷做卷设到技原准术则确指:灵导在活。分。对线对于盒于调处差试,动过当保程不护中同装高电置中压高资回中料路资试交料卷叉试技时卷术,调问应试题采技,用术作金是为属指调隔发试板电人进机员行一,隔变需开压要处器在理组事;在前同发掌一生握线内图槽部纸内 故资,障料强时、电,设回需备路要制须进造同行厂时外家切部出断电具习源高题高中电中资源资料,料试线试卷缆卷试敷切验设除报完从告毕而与,采相要用关进高技行中术检资资查料料和试,检卷并测主且处要了理保解。护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。

c语音存取款课程设计

c语音存取款课程设计

c语音存取款课程设计一、课程目标知识目标:1. 学生能理解C语言中文件操作的基本概念,掌握文件打开、关闭、读写等基本操作。

2. 学生能够运用C语言实现简单的银行存取款系统,理解数据持久化的过程。

3. 学生掌握结构体在C语言中的应用,并能运用结构体存储和管理客户账户信息。

技能目标:1. 学生通过课程学习,能够独立设计并编写出银行存取款系统的核心功能代码。

2. 学生掌握使用C语言进行问题分析、程序设计、编码和调试的能力。

3. 学生能够运用所学知识解决实际问题,培养编程思维和逻辑分析能力。

情感态度价值观目标:1. 学生通过课程学习,培养对编程的兴趣和热情,提高信息素养。

2. 学生在小组合作完成项目过程中,学会沟通与协作,培养团队精神。

3. 学生能够认识到编程在实际生活中的应用,激发学习动力,树立正确的价值观。

课程性质:本课程为C语言程序设计课程的一部分,通过实际项目设计,使学生将所学知识应用于实际问题,提高编程实践能力。

学生特点:学生已经掌握了C语言的基本语法和编程技巧,具有一定的编程基础。

教学要求:课程要求学生在理解基本概念的基础上,能够运用所学知识解决实际问题,注重培养学生的编程实践能力和团队协作能力。

教学过程中,教师应引导学生主动思考、积极探索,提高学生的自主学习能力。

通过课程目标的实现,为学生后续学习C语言高级编程打下坚实基础。

二、教学内容1. 文件操作基本概念:文件类型、文件指针、文件打开关闭函数、读写函数等。

- 教材章节:第三章 文件操作2. 结构体应用:定义结构体类型、结构体变量声明与初始化、结构体数组、结构体指针等。

- 教材章节:第二章 数据类型与表达式3. 银行存取款系统功能实现:- 功能需求分析:账户注册、登录、存款、取款、查询余额、退出系统等。

- 教材章节:第五章 函数与模块化设计- 教学内容:编写各功能模块代码,实现数据持久化存储。

4. 编程实践与调试:代码编写规范、调试技巧、优化程序性能等。

c语言课程设计atm

c语言课程设计atm

c语言课程设计atm一、课程目标知识目标:1. 理解ATM机的基本功能需求,掌握利用C语言进行结构化程序设计的方法。

2. 学会使用C语言中的基本数据类型、控制结构、函数等知识点,实现ATM 系统的登录、查询余额、取款、存款和退出等功能。

3. 了解并在程序中应用模块化设计思想,实现代码的有效组织和复用。

技能目标:1. 能够运用所学知识,独立设计并编写一个简单的ATM系统程序。

2. 掌握调试程序的方法,能够解决程序中出现的常见错误。

3. 培养学生的计算思维和问题解决能力,能够将实际问题转化为程序逻辑。

情感态度价值观目标:1. 培养学生对计算机编程的兴趣,激发其学习积极性。

2. 增强学生的团队合作意识,学会在团队中分享观点和经验。

3. 引导学生认识到编程在现实生活中的应用,提高其社会责任感。

分析课程性质、学生特点和教学要求,本课程目标旨在使学生在掌握C语言基础知识的基础上,通过实际案例教学,让学生深入了解ATM系统的实现过程,提高编程实践能力。

课程将目标分解为具体的学习成果,以便在后续的教学设计和评估中,更好地检验学生的学习效果。

二、教学内容本章节教学内容将围绕以下三个方面进行组织:1. C语言基础回顾:- 数据类型:整型、浮点型、字符型等。

- 控制结构:顺序结构、选择结构、循环结构。

- 函数:函数定义、函数调用、参数传递。

2. ATM系统功能实现:- 登录功能:用户身份验证。

- 查询余额:显示用户当前余额。

- 取款、存款功能:处理用户资金操作。

- 退出系统:安全退出程序。

3. 编程实践与调试:- 程序设计:模块化设计,编写各功能模块代码。

- 代码组织:合理划分文件,实现代码复用。

- 调试与优化:学习调试技巧,解决程序中的错误和性能问题。

教学内容按照以下进度安排:1. 第一周:回顾C语言基础知识,讲解ATM系统功能需求。

2. 第二周:学习函数定义和调用,实现ATM系统登录和查询余额功能。

3. 第三周:学习控制结构,实现ATM系统取款和存款功能。

C语言程序设计报告(模拟ATM取款机)

C语言程序设计报告(模拟ATM取款机)

C语言程序设计报告(模拟ATM 取款机)仲恺农业工程学院工程实训报告ATM取款机课程名称C语言程序设计工程实训姓名林少烈院(系)计算机科学与工程学院专业班级计算机113班学号201110214317指导教师王成仲恺农业工程学院教务处制目录1 需求分析 (1)2 系统总框图和功能模块说明 (1)2.1 系统总框图 (1)2.2 功能模块说明 (1)3 系统设计 (2)3.1 主要结构体 (2)3.2主要功能函数 (3)3.3 关键函数的流程图 (3)4 系统调试 (11)5 总结 (21)6 源程序清单 (23)6.1头文件 (23)6.2主程序 (23)6.3 解除被冻结用户 (40)6.4 用户注册 (41)1 需求分析所设计的ATM取款机应具备以下功能:●插入银行卡(用账号输入的方式代替);●密码的输入;●用户信息查询;●用户余额查询;●取款;●转账;●修改密码;●退卡。

2 系统总框图和功能模块说明2.1 系统总框图图1 系统总框图2.2 功能模块说明输入用户账号模块:在运行时,完成用户账号的输入(代替插卡);输入账号密码模块:①在输入账号之后,完成用户密码的输入;②在修改密码的过程中,完成用户输入旧密码的功能;信息读取功能模块:完成用户信息的读取;冻结账号功能模块:当输入密码3次错误时,冻结用户账号:查询用户信息模块:完成用户的信息查询(不包括余额查询);查询余额功能模块:完成用户余额的查询;取款功能模块:完成取款功能模块:转账功能模块:完成转职功能;修改密码功能模块:完成用户修改密码功能;退卡功能模块:完成退卡功能(即:退出程序功能)。

3 系统设计3.1 主要结构体用户账号、姓名、密码、余额struct User //用户数据{char num[20]; //用户账号char name[10]; //姓名char password[7]; //密码float balance; //余额};3.2主要功能函数void read_info(); //用户信息读取void input_num(char * num); //输入账号void now_exist(char * num); //判断是否被冻结或不存在void existed(char * num);void input_password(char * p_word,char * W); //输入密码void face(); //界面显示void balance_refer(); //余额查询void choose(int c); //菜单选择void draw_money(); //取款void set_password(); //修改密码void input_new_password(char * old_password); //设置新密码void tran_account(); //转账void stamp(); //打印单条void info_refer(); //信息查询void out(); //退出程序void lock(); //冻结账号void save_info(); //存储信息3.3 关键函数的流程图Nnow_exitedinput_password 流choose 函数流程图draw_money 函数input_new_passwo 读取文件数lock 函数流程图save_info 函数流程图4 系统调试首先运行程序,系统提示输入账号。

c银行存取款课程设计

c银行存取款课程设计

c 银行存取款课程设计一、教学目标本节课的教学目标是让学生掌握银行存取款的基本操作流程,理解存取款业务的相关概念,并能够运用所学知识解决实际问题。

具体目标如下:1.知识目标:学生能够说出银行存取款业务的定义,了解各种存取款方式的特点,掌握存取款操作的基本流程。

2.技能目标:学生能够熟练使用银行存取款设备,独立完成存取款业务操作,正确填写相关单据。

3.情感态度价值观目标:培养学生诚实守信、遵纪守法的意识,使学生认识到银行存取款业务在日常生活的重要性,提高学生的金融素养。

二、教学内容本节课的教学内容主要包括以下几个部分:1.银行存取款业务的定义及分类2.各种存取款方式的特点和操作流程3.存取款设备的使用的注意事项4.存取款业务中的法律法规和诚信意识三、教学方法为了提高学生的学习兴趣和主动性,本节课将采用以下教学方法:1.讲授法:教师通过讲解银行存取款业务的定义、分类和操作流程,使学生掌握相关知识。

2.讨论法:教师学生分组讨论存取款业务在实际生活中的应用,促进学生对知识的理解和运用。

3.案例分析法:教师提供一些典型的存取款业务案例,引导学生分析并解决问题。

4.实验法:学生在教师的指导下,使用银行存取款设备进行实际操作,巩固所学知识。

四、教学资源为了支持教学内容和教学方法的实施,本节课将准备以下教学资源:1.教材:银行存取款业务教程2.参考书:银行存款业务知识手册3.多媒体资料:存取款设备操作演示视频4.实验设备:银行存取款设备(如ATM机、柜员机等)以上教学资源将有助于丰富学生的学习体验,提高学生的学习效果。

五、教学评估本节课的评估方式将包括以下几个方面:1.平时表现:通过观察学生在课堂上的参与度、提问回答等情况,评估学生的学习态度和理解程度。

2.作业:布置与银行存取款业务相关的练习题,要求学生在规定时间内完成,评估学生的知识掌握和应用能力。

3.考试:安排一次银行存取款业务知识考试,评估学生对知识的全面理解和运用能力。

[VIP专享]C语言课程设计…………银行自动存取款机模拟

[VIP专享]C语言课程设计…………银行自动存取款机模拟
Void dl ()
Void dljm ()

int level(BinTreeNodlesevt}r*Beutsl,icnBt(rtrTuiontrcaoTetgtert,_eyapNnpetg)oy;oeN_pddinoeeodtd;fde*esreafc*ttrphsB*au{l)ti;cilrn/duh/tT;ciB/lr/tdo1eiTt;u1ea//NcnrNgoto_loiu(fdn(dtnbe*oetpivdlt{(roe(e}TbidpEititrcfrl(ero!-pbmu>tintrTvritgaey-l(>hlpbulteeie,rtrf=xdt)e,=apr{xkextta,)rt;ru{;k,kr)sd+n;tra+;u1t;ac}0txyBpieTNxv},ooidi{ndet&m*lkac)hi}nil(de)}l;s/e/ js+tr}+uj;cBf+BtoB.+Bid.r.L(;+adikTe+taanN=;t[agojB]e[tdkh=l.se+L+eA1e*+]nr.i;dfc=g(d.-[d;{aiB]1a/it;f/a.;t(dkaA[}ia[]>.kBtdB<}=a];aii.T[BLjt+;aNke.+d[Loni;-]aed-g>t)netahg,B[jt*]+h.)wBd+]{avhi;T=otilareiAedi[n(Be.i{dtm;.<Laive=etAoarngi.0[dLgie],e;jt2Ch=n(o{Sg-0ut9q1h,n/kAL])/t)/iL/[;2s1/e1AtA…aABBmf"…,.S(h+Bq"mniLT6m+irsnet8]e&mhBTen),amidn+dtn&a2Ot*acx(7o10u)n+t)0x{11*ixf=0( nT+o1)d*{ex2i_1f c(+(o!uT2/xn/-*10>tx+l2+cxh=1il;+dnx)o&2/d/h&e=tt_(pn!c:To0o//-duw>1enrw*_c2t/wchx-oi0.1ldu;xon)/)1c*t;cinx6o42.1ucleonfmtt+d/+5ap;t-a5//r7iLg9Cihs4ot8lNuet5nmof9ttdreLp4iegme.=h*ap3tMfAmBol(a[aTrTlit]ex(-;(><i2)nAlccetl[ha0i]}ise=l=ds1,0}A…Tc;[yoine2pu<-nT6ein=-yH>12tp)(]Te;v;enn[Co1-A-ti1o3m1d[u]nA)pHin-[/;in(tv-kL21]ene;]1reyais=A+)nef=[+(t-nm(k1Ta])eAT-p){y>nyA;r-p%c2eh…1iAld3e[2,1]3c,2e1oi20Vn0(u3e=bt×n4i{)n3t1a5)B0);,5b20A}{7,B(2ce[2a150,(l0)ds0cn(a20e,a)]×ie[13j1)1cnr2,a17Af2e0A4,i58g2jtB]b1u(B03}(a5r4,21[En)]06a1B;=07A51([}{0]b937S<A/3)56/HaL([06C0c,sT1b3)]uo[A.>81A0c5u,493]cBn<B0.]=taC5H[L8(0,A1De(4g]k/,Aa5>2EBef0,[)Fy,<]*4C[G)G]b[=2B1,,DHk)g+[]e>,I1AEJy,/[<(,81%C1c]-[8,a5bD1)]C>3C]B,D1<[D1]2Bd62,GFc3E>=41A,V5</1I5EdH475,Gf1231>01+0*J5,91<420G4+0e*30G241,7W1d+*787>13P031,4*9<1L74=41f=0+,515a24953>**/546,17<5+15=0g37413,2*0c5572>/4+517,5<6451*g524,0d+3>956,*5<0315f9+2,3e5W12>14P,12*<3L157g+=56,52f13053>105*693}64*1,{73+80217+9596510*77046873+1*71249264+*9503182+79012*176208590=*2092+8123169831731237*793}W2+531P352L5*0313173+s3T3125158*,21T2052=5,2…915W063…303P5,LTS Tini k1i(2i={a1b,2c,d…e…fg}S0)1,1k10in1i011k11k10n+1kk1Pn21>r+0ikm…00…11+1k0s1=0n11+n21K…ru…snkas1l ns,s=nk,nk a11a121a02K1)aru2s2kaa=2l203*:9(a1i+03/1jA2-03aB(3a131+Aa12=3B+42[…0+]3A…+a3aij1+n3inn149-+iH10-41au+jnfi84+fnm4+16a5B8n+58F1544):52=5706305306.986,2T76:0150,D811:00148110683171,F10ST6:06D413S024H515,1H12:007412101402H*1291u60+22f{f7m4*63a2+n58307*71836+21102*72306+722774*0674128+493}*()4+86*312=513219 5:13/5671(130+7822+6261+p03a1+341352+401143,41)p0=83,21a.8425,913,,p66331:121,0A1a24B13G,,CP4pJ9AD3KG21EHD12AFDaJ3GBH,EPaDHKBApGIBM3J2HEKIF1AJMCKCAEFCMFIIM
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《C语言程序设计》课程设计报告题目:模拟银行存取款业务学生姓名学号时间目录第1章绪论 (1)1.1设计目的 (1)1.2 背景 (1)1.3 开发环境 (1)1.4 运行环境 (1)第2章系统总体设计 (2)2.1系统设计的组成框图 (2)2.2功能描述 (2)第3章系统详细设计 (3)3.1程序设计流程图 (3)3.2功能模块设计 (4)3.2.1 登陆界面 (4)3.2.2 普通用户登陆 (4)3.2.3 管理员登陆 (6)3.3函数功能描述 (9)第4章系统使用说明 (10)4.1管理员使用说明 (10)4.2 普通用户使用说明 (10)附录 (10)第1章绪论1.1设计目的1)银行存取款系统是针对银行账目的日常管理而设计。

银行账目管理系统不仅要求操作方便而且要求界面简洁,它还需要实现账目管理,用户查询功能。

2)并了解银行存取款业务的流程,使用C语言和数据程序知识模拟银行存取款系统。

1.2 背景说明:a.待开发的软件系统的名称:模拟银行存取款业务。

b.本项目的任务由安博思软的严武军老师提出,面向的用户是银行的管理员和普通用户。

c.面对日新月异的计算机的普及,利用计算机对储蓄的用户进行综合的管理。

1.3 开发环境Vi 编辑器 gcc编译器1.4 运行环境Red Hat第2章系统总体设计2.1系统设计的组成框图2.2功能描述系统实现的主要功能有:1.管理员登陆管理员可以实现对账户的管理:注销用户,添加用户,查看用户,退出。

2.普通用户登陆普通用户可以实现对自己的账户的管理:取款,存款,查看余额,退出。

第3章系统详细设计3.1程序设计流程图3.2功能模块设计3.2.1 登陆界面进入系统,显示欢迎界面,选择普通用户操作还是管理员用户操作。

3.2.2 普通用户登陆1.密码验证作为普通用户登陆时,需要验证账号和密码是否匹配,匹配成功即可进行其他操作。

2.存款功能登陆账号后,选择存款功能,并输入存款金额,写入文件,原有金额增加,可使用查询功能进行查询。

3.取款功能:存款功能输入存款金额存档结束入金额是否大于原有存款,若大于原有金额显示输入错误,余额不足,若输入金额小于原有金额则取出钞票,并写入文件,原有金额减小,可使用查询功能进行查询。

4.查询模块:查询功能:查询账户现有存款。

3.2.3 管理员登陆1.密码验证管理员的权限很大,可以添加,注销,查看,用户信息,在此系统中,管理员的默认账号是555,密码是555。

2.注销用户管理员登陆成功以后进行操作选择:输入要注销用户的账号,若存在就删除,若不存在就返回操作选择界面。

3.添加用户管理员登陆成功以后进行操作选择:输入要添加用户的账号,密码,姓名,余额,若已存在此账号,则注册失败,返回操作选择界面。

4.查看用户管理员登陆成功以后进行操作选择:查看所有用户的信息。

3.3函数功能描述menu1()//登陆的第一个界面menu2()//超级管理员界面menu3()//普通用户界面is_mima()//验证管理员账号密码pass(struct person *head,long num,long password)//验证普通用户账号和密码creat() // 将银行卡信息.txt文本中的信息读取到链表中get_money(struct person *head,long num,int money)//用户取钱save_money(struct person *head,long num,int money)//用户存钱insert(struct person *head,struct person *p)//添加用户del(struct person *head,long num)//注销用户writeb(struct person *head)//将建立的链表存入银行卡信息.txt 中第4章系统使用说明4.1管理员使用说明1)输入账号555密码555,登陆界面。

若账号密码错误则重新输入。

2)登陆界面后,选择功能3)选择a为注销用户,输入要注销的账号,若存在则注销,若不存在,则操作失败4)选择b为添加用户,输入要添加的账号,密码,姓名,余额,若不存在此账号,则注册成功,否则失败。

5)选择c为查看用户信息,显示所有的用户信息。

6)选择d安全退出系统。

4.2 普通用户使用说明1)输入用户的账号和密码,登陆界面,若账号密码错误则重新输入。

2)登陆界面后,选择功能3)选择a.为取款功能,输入取款金额,若取款机金额小于原有存款,则取款成功,取出钞票。

4)选择b.为存款功能,输入存款金额,存档,存款成功。

5)选择c.为查看余额,显示账户的余额。

6)选择d.退出系统。

附录/*程序源代码*/#include<stdio.h>#include<string.h>#include<stdlib.h>struct person{long num;//账号char name[20];//姓名long money;//余额struct person *next;};struct person *head=NULL;int n;//文件的个数int a=-1;long id;//超级管理员的id是555long password;//超级管理员的密码是555void writeb(struct person *head)//将建立的链表存入银行卡信息.txt 中{FILE *pt;struct person *p;pt=fopen("银行卡信息.txt","w");if (pt==NULL){perror("银行卡信息.txt\n");exit(1);}p=head;while(p){fprintf(pt,"%d %d %s %d \n",p->num,p->password,p->name,p->money);p=p->next;}fprintf(pt,"%d %d",a,a);fclose(pt);}struct person *insert(struct person *head,struct person *p)//创建链表{struct person *p1;p1=head;while(p1->num!=p->num&&p1->next!=NULL){p1=p1->next;}if (p1->num==p->num){printf("已经存在此账号 \n请重新选择:\n");}p->next=head;head=p;printf("插入成功!\n");n++;writeb(head);return head;}struct person *del(struct person *head,long num) {struct person *p,*p2;if (head==NULL){printf("没有信息\n");exit(1);}p=head;while(p->num!=num&&p->next!=NULL){p2=p;p=p->next;}if (p->num==num){if(p==head)head=head->next;elsep2->next=p->next;printf("删除成功!\n");}else{printf("没有此信息\n");}writeb(head);/*pt=fopen("银行卡信息.txt","w");if (pt==NULL){exit(1);}p=head;while(p){fprintf(pt,"%d %d %s %d \n",p->num,p->password,p->name,p->money);p=p->next;}fprintf(pt,"%d %d",a,a);fclose(pt);*/return head;}struct person *creat() // 将银行卡信息.txt文本中的信息读取到链表中{FILE *pt;struct person *p,*p2;p=(struct person *)malloc(sizeof (struct person));p2=(struct person *)malloc(sizeof (struct person));pt=fopen("银行卡信息.txt","r");if (pt==NULL){perror("银行卡信息.txt");exit(1);}fscanf(pt,"%d %d %s %d ",&p->num,&p->password,&p->name,&p->money);if(p->num==-1)printf("数据库中没有信息");while(p->num!=-1){n++;if (n==1){head=p;}elsep2->next=p;p2=p;p=(struct person *)malloc(sizeof (struct person));fscanf(pt,"%d %d %s %d ",&p->num,&p->password,&p->name,&p->money);}p2->next=NULL;return (head);}struct person *save_money(struct person *head,long num,int money)//用户存钱{struct person *p1,*p2;if(head==NULL){printf("卡中无记录\n");return 0;}p1=head;while(p1->num!=num&&p1->next!=NULL){p2=p1;p1=p1->next;}if (p1->num==num){p1->money=p1->money+money;printf("已经存入%d\n",money);printf("可用余额为%d\n",p1->money);}elseprintf("不存在此卡号\n");return head;}struct person *get_money(struct person *head,long num,int money)//用户取钱{struct person *p1,*p2;if(head==NULL){printf("卡中无记录\n");return 0;}p1=head;while(p1->num!=num&&p1->next!=NULL)p2=p1;p1=p1->next;}if (p1->num==num){if(p1->money>money){p1->money=p1->money-money;printf("已经取出%d\n还剩余额%d\n",money,p1->money);}elseprintf("余额不足,操作失败!\n");}elseprintf("不存在此卡号\n");return head;}/*int know_money(int num){int money=-1;struct person *p1,*p2;if(head==NULL){printf("卡中无记录\n");return 0;}p1=head;while(strcpy(p1->num,num)!=0&&p1->next!=NULL){p2=p1;p1=p1->next;}if (strcpy(p1->num,num)==0){money=p1->money;printf("余额为:%d\n",money);}elseprintf("不存在此卡号\n");return money;struct person *pass(struct person *head,long num,long password)//验证普通用户账号和密码{struct person *p;/*if(head==NULL);{printf("没有信息\n");exit(1);}*/p=head;while(p->num!=num&&p->next!=NULL){p=p->next;}if (p->num==num&&p->password==password){printf("登陆成功\n");return p;}else{printf("账号或密码错误\n");return NULL;}}void _printf(struct person *head){struct person *p;p=head;printf("账号姓名余额\n");while(p){//printf("%d %d %s %d \n",p->num,p->password,p->name,p->money);printf("%3d %5s %6d \n",p->num,p->name,p->money);p=p->next;}}{printf("*********************************************\n");printf(" 欢迎进入此银行服务系统!\n");printf("*********************************************\n");getchar();}void menu2()//超级管理员界面{printf("********************************************\n");printf(" a 注销用户 b 添加用户 c 查看所有用户 d 退出\n");printf("********************************************\n");}void menu3()//普通用户界面{printf("********************************************\n");printf(" a 取款 b 存款 c 查看余额 d 退出 \n");printf("********************************************\n");printf("请选择:\n");}int is_mima()//验证管理员账号密码{printf("输入管理员账号\n");scanf("%d",&id);printf("输入管理员密码\n");scanf("%d",&password);if ((id!=555)||(password!=555)){printf("密码或者账户错误\n");return 0;}elsereturn 1;}int main(){struct person *temp;struct person *p3;char ch;int b1;// int b2;int money;temp=(struct person *)malloc(sizeof(struct person));p3=(struct person *)malloc (sizeof(struct person));head=creat();system("color f0");menu1();printf("*********************************************\n");printf(" 1超级管理员登陆\n");printf(" 2普通用户登陆\n");printf("*********************************************\n");scanf("%c",&number);while(1){if (number=='1'||number=='2'){break;}printf("操作错误,请重新选择: ");getchar();scanf("%c",&number);}switch(number){case '1':{while(1){b1=is_mima();if (b1==1){printf("管理员登陆成功!\n");break;}elseprintf("重新输入\n");}menu2();getchar();scanf("%c",&ch);{switch(ch){long b3;case 'a':{printf("输入要注销的账号:");scanf("%d",&b3);head=del(head,b3);getchar();scanf("%c",&ch);}break;case 'b':{printf("添加的账号密码姓名余额\n");scanf("%d %d %s %d",&p3->num,&p3->password,p3->name,&p3->money);head=insert(head,p3);getchar();scanf("%c",&ch);}break;case 'c':{_printf(head);getchar();scanf("%c",&ch);}break;default:break;}if(ch=='d'){printf("安全退出!\n");break;}}break;}{while(1){printf("输入用户账号:");scanf("%d",&id);printf("输入用户密码");scanf("%d",&password);temp=pass(head,id,password);if (temp!=NULL){break;}}menu3();getchar();scanf("%c",&ch);while(ch=='a'||ch=='b'||ch=='c'){switch(ch){case 'a':{printf("输入要取的金额\n");scanf("%d",&money);head=get_money(head,temp->num,money);writeb(head);getchar();scanf("%c",&ch);}break;case 'b':{printf("输入要存的金额\n");scanf("%d",&money);head=save_money(head,temp->num,money);writeb(head);getchar();scanf("%c",&ch);}break;case 'c':{getchar();scanf("%c",&ch);}break;case 'd':break;default:break;}if(ch=='d'){printf("已安全退出\n");break;}}}break;default:{printf("输入错误\n");getchar();scanf("%c",&number);}break;}return 0;}。

相关文档
最新文档