C 课程设计

发布 2022-09-30 15:47:28 阅读 8806

c++面向对象程序设计。

课程设计**。

题目:抚州建行atm取款机管理系统。

专业统计学。

学号1031040111

姓名黄传祯。

指导教师丁木华。

2013 年 1 月 9 日。

抚州建行atm取款机管理系统。

摘要。本文主要研究抚州建行atm取款机管理系统的程序设计。根据日常生活中对atm取款机的了解,模拟设计出atm取款机的属性和行为,利用c++编程软件对atm取款机管理系统进行程序设计,设计主要包括建行开户,实时取款,实时存款,查询余额,更改密码,转账,退卡等功能。

本文主要内容分为三个部分,第一部分主要阐述该程序的设计内容和要求,设计的题目以及设计出的程序应有哪些实用功能。第二部分对该问题进行整体描述,并深入的分析、设计,最后编写出程序并进行测试。第三部分为总结,主要阐述系统的优缺点,编程过程中遇到的问题、解决办法及心得。

最后,程序设计是一个创作的过程,解决问题的方法不是唯一的。所以独立思考问题,多想想解决方法,才更有助于程序设计水平的提高。

关键字:c+课程设计;atm取款机管理系统;类和对象;

1 需求分析。

1.1 功能介绍。

软件设计的一个重要的环节就是需求分析。本章在对atm取款管理系统的应用情况作了全面调查的基础上,确定系统目标,并对系统所需要的基础功能进行分析,从而确定用户的需求。以下是atm取款机管理系统所需要的需求分析。

atm取款管理系统包含开户,实时存款,实时取款,余额查询,修改密码,转账等六个功能。

建行开户:输入个人姓名、身份证号等信息后,atm取款管理系统自动给用户开户,并给账号,密码由用户自行设定;

实时存款:登入atm取款管理系统,输入账号和密码,选择实时存款业务,进入atm存款界面,如果账号或密码输入错误,atm会给予提示信息,需用户重新输入账号和密码,若输入账号和密码连续出错超过3次,则atm取款管理系统将吃掉用户账号,并打印出凭条;

实时取款:用户选择实时取款业务后,可按界面相应操作取出卡内存款,若输入取款额超过卡内余额,则atm取款管理系统会自动给予用户提示信息,要求重新输入取款金额;

余额查询:进入余额查询界面即可查询用户的卡内余额;

修改密码:此功能负责用户自行修改密码,密码的设定要求是输入6为数字,若用户输入的字数少于或多于6位,atm取款管理系统给出出错信息,要求用户重新设定密码;

转账:用户可将本账户中的存款转入其他账户,转账过程中,需要转入账户的账号;

1.2 操作。

本程序通过键盘操作。在运行过程中,当用户输入正确的账号和密码时,会出现一个功能界面,按照功能界面操作。1.

建行开户;2.实时存款;3.实时取款;4.

查询余额;5.修改密码;6.转账;7.

退出系统,按相应的序列号后再按enter键,执行相应的操作。

2 总体设计。

2.1 atm取款管理系统功能结构体。

2.2 整体操作流程图。

程序开始运行进入登陆界面,用户输入自己的卡号和密码,成功登陆即能进入功能界面,如果用户卡号密码错误超过3次,系统会自动没收卡,根据功能界面,用户可以执行相应的操作,操作完毕,退出系统。

3 详细设计与实现。

3.1类的设计。

设计了atm类。atm类完成atm取款管理系统的模拟,包括:建行开户,实时存款,实时取款,余额查询吗,修改密码,转账等功能。类的定义和实现均保存在头文件文件中。

atm类的设计:

class atm

public:

atm(){默认构造函数。

void kaihu()/开户。

void cunkuan()/实时存款。

void qukuan()/实时取款。

void chaxunyue//查询余额。

void xiugaimima//修改密码。

void zhuanzhang//转账。

private:

char name[20];

long double cardid;

double psw;

double money;

long double haoma;

time_t timep;

3.2 atm取款管理系统模块设计与实现。

1)登陆模块。

程序运行首先要求用户输入账号密码,帐号密码首先由建行开户得到,登入时用if函数判断账号密码是否一致,一致允许登陆,如果输入错误则再给予3次登陆机会,如果3次都输入错误,则atm自动吃掉账号密码,并打印出凭条。

相关**:void main() 主函数。

time (&timep) /返回系统时间。

do{} 输出登陆界面(具体程序由于不好排版,再次省略)

cin>>i; /选择业务序号。

if(i==7) break; /退出系统。

switch(i){}选择所需的业务序号。

图3-1 登陆界面流程图。

2)建行开户模块。

此模块完成用户建行开户的功能,开户要求用户输入姓名及身份证号码,如若姓名及证件号码正确,则atm系统给予开户,并自动产生银行账号,密码由用户自行设定。此功能类内定义的kaihu()函数执行,系统产生账号有随机行数rand()执行。

相关程序如下:

void kaihu() 开户。

cardid=(622700100*(0+rand() 10)+10*(0+rand() 10)+(0+rand() 10产生随机账号。

cout

图3-2 开户流程图。

3)存取款模块。

输入正确账号密码后,即可登陆柜员机主界面,其中可以选择取款和存款功能。

取款功能要求用户输入取钱金额,取钱功能用了if语句判断用户输入金额是否小于等于卡内余额,如果判断都为真,则顺利运行,余额为默认账户余额减去取钱金额,若输入的取款金额大于卡内余额,则要求用户重新输入取款金额。单次取钱功能顺利实现时,会提示用户时候继续实现取钱功能,若输入“y/y”则继续进行,若输入“n/n”则退回程序主见面。

存款功能要求用户输入不能为负值的金额,用if语句判断,符合条件,即可成功存款。

存款功能实现相关**:

void cunkuang() 存款。

if(id==cardid &&psw1==psw){}判断输入的账号和密码是否正确。

取款功能实现相关**:

void qukuang()/取款。

if(id==cardid &&psw1==psw) /判断账号密码是否正确。

money=money-money1 //结算余额。

图3-3 显示的是取款基本流程图。

4)查询余额模块。

输入正确账号密码后,即可登陆atm系统主界面,其中可以选择查询余额功能。在主函数中调用atm类中的chazhang()函数,若输入的账号或密码错误,同样给予3次重新输入机会,超过3次则自动吃掉账号。

相关**:void chazhang() 查询余额。

if(id==cardid &&psw1==psw)//判断账号和密码的正确性。

图3-4 查询余额基本流程图。

5)修改密码模块。

新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。

输入正确账户密码后,或者实现其他功能退回主界面后都可以选择atm系统的修改密码功能,该功能首先定义了一个chenk_passwsd函数提取用户默认账号密码,在运行过程中现要求用户输入旧密码,用strcmp函数判断用户输入的旧密码是否和默认密码相同,若相同则继续运行,若不同则再给予3次输入机会,3次都输入错的时候吃掉账号并打印凭条。输入旧密码争取后系统会要求用户定义新密码,新密码要重复输入两次,要求两次必须重复正确且新秘密大于等于6位数才能修改成功,用了do-while循环处理改项功能。

相关**:xiugaimima() 修改密码函数。

chenk_passwsd //提取旧密码。

strcmp //判断新密码与旧密码是否相同。

do-while //控制密码的位数。

图3-5 修改密码流程图。

6)转账模块。

输入正确账号密码登入主界面后,选择转账业务序号,输入转账对象的账号,利用if语句判断所转金额是否超过卡内余额,若超过则返回主界面要求重新转账,若不超余额则顺利进行。

相关**:void zhuanzhang()/转账。

if(money>=money1) /判断卡内余额是否充足。

图3-6 转账流程图。

4 测试。程序测试是检验程序设计的好方法,只有不断的对程序进行测试,才能设计出想要的软件,对运行及测试结果进行说明,并添加运行界面的截图。

4.1 登陆界面。

图 4-1 登入界面图。

4.2 建行开户。

图4-2 申请账号图。

4.3 实时存款。

图4-3 存款操作图。

4.4 实时取款。

图4-4 取款操作图。

4.5 余额查询。

图4-5 查询余额结果图。

4.6 转账。

图4-6 转账结果图。

4.7 修改密码。

图4-7 修改密码成功图。

图4-8 修改密码不成功图。

5 小结。一)系统优缺点。

软件设计是一个很具有挑战性的工程,每一个过程都得认真仔细,只要有一个标点符号的错误就运行出错,任何软件都有它的优缺点,只有认识到它的优缺点,在改进中不断的改进,精益求精才能使得自己设计的软件缘来缘完美,下面我将分析atm系统的优缺点。

优: 站在巨人的肩膀上再迈进了一步。

本程序设计参考了网上的设计资料,但资料中的程序很粗糙,且运行不出来,漏洞百出。我仔细研读并改进后可以进行基本操作,在此基础上,我不断进行改进程序,如在各模块函数前加上inline函数,利用内置函数的高效性,就大大缩短了运行时间,提高程序运行效率,在对结果界面加以美化,使得本atm系统具有一定的可读性、可操作性。

用随机函数产生开户账号。

原始程序在进入登入界面时没有开户这一项,使得登入的账号只能自己首先给定并输入,后面的操作都只能用给定的哪一个账号,这使得系统运用很局限,不是真正意义上操作系统。经过改进,我加了申请账号这一项,使得用户可以随时给自己开户,并由atm系统随机给出账号,这大大提升了系统的开放性和真实性。

C 课程设计

自动走迷宫小游戏。根据课堂讲授内容,做相应的自主练习,消化课堂所讲解的内容 通过调试典型例题或习题积累调试c 程序的经验 通过完成辅导教材中的编程题,逐渐培养学生的编程能力 用计算机解决实际问题的能力。同时在设计的过程中发现自己的不足之处,对以前所学过的知识理解的更加深刻,掌握得更加牢固。迷宫生成。...

c 课程设计

哈尔滨 课程设计报告。课程 c 学号 姓名 班级 教师 1.管理系统的功能说明。课程信息管理 能够增加数据,删除数据,显示数据,修改数据,按姓名和首字母查询数据和一些基本的程序功能。2.存储数据的描述。coursenumber 课程号coursename 课程名subject 所属专业xingzhi...

C课程设计

面向对象程序设计课程设计。一 设计要求。1 课程设计以3 4人为一组,每人一个模块 2 课程设计时间为1周 在处理系统的时候,要从分析系统的需求入手,根据系统需求进行详细分析,明确系统功能,然后设计系统整体架构以及划分系统模块,按照模块分配小组中每个组员的具体任务,完成设计。二 系统设计规范。1 命...