当前位置:文档之家› ATM取款机模拟程序 课程任务书

ATM取款机模拟程序 课程任务书

ATM取款机模拟程序 课程任务书
ATM取款机模拟程序 课程任务书

课程设计任务书

课程名称:C++程序设计课程设计

设计题目:ATM取款机模拟程序

已知技术参数和设计要求:

1. 问题描述:

课题的任务是设计一个A TM取款机的模拟程序。日常生活中,我们常使用A TM取款机,对它的操作过程有所了解。这里我们要模拟的是用户所见的A TM取款机的属性和行为,A TM机与网络连接的部分不包括在这个任务中。设计中应尽可能把它模拟得与真实的A TM接近一些,我们抽象出下列问题:

(1) 用户插卡,A TM验证用户帐号信息。

(2) 用户首次操作须验证密码。

(3) 用户查询余额,A TM显示余额。

(4) 用户取款,A TM操作交易过程。

(5) 用户转账,A TM请求插入转入卡,然后操作交易过程。

(6) 用户更改密码,A TM受理此业务。

(7) 用户退卡。A TM清理现场。

(8) 所有用户信息保存在文件中。

(9) 对于一个在线用户,如果超过一定时间用户没有任何操作,A TM锁机,

直到用户退卡为止。

(10) A TM向用户显示欢迎词及其他提示信息。

2. 功能要求:

(1)插卡功能(用卡号模拟);

(2)取款功能;

(3)查询余额功能;

(4)验证帐号功能;

(5)更改密码功能;

(6)退卡功能;

(7)锁卡功能。

3. 界面要求:

用户界面设计不做统一规定,但应做到界面友好,易于操作。

4. 技术要求:

要求所有用户的信息以密文形式保存在数据文件中,加密算法为:字节各位取反,然后高半字节和低半字节交换位置。用户输入密码时不能以明文形式显示在屏幕上,应以“*”号代替来显示用户密码的输入。

要求利用面向对象的方法以及C++的编程思想来完成系统的设计;在设计的过程中,建立清晰的类层次;在系统设计中要分析和定义各个类,每个类中要有各自的属性和方法;要求运用面向对象的机制来实现系统功能。要求主函数(或图形界面下的主调函数)很“干净”,只有一些类对象的定义和某个类对象的一个成员函数的调用。

5. 课程设计时间:15周、16周

6. 课程设计的考核方式及评分方法

1)考核方式

?课程设计结束时,在机房当场验收。

?教师提供测试数据,检查运行结果是否正确。

?回答教师提出的问题。

?学生提交课程设计文档(A4纸打印)

2)评分方法

上机检查 :书面报告:答辩=6 :3 :1,没有通过上机检查的其成绩直接记录不及格

指导教师签名:日期:

教研室主任签名:日期:

系主任签名:日期:

摘要

本实验设计说明书编写的是一个A TM取款机模拟程序。日常生活中,我们常使用A TM 取款机,对它的操作过程和功能有一定的了解。因此在该设计书中我们模拟的就是A TM取款机的属性和行为,主要包括插卡,取款,查询余额,更改密码,退卡,锁卡功能。

本书主要内容分为三个部分,第一部分主要是阐述该程序的设计内容和要求,设计的题目以及设计出的程序应有哪些实用功能。第二部分是对该问题的整体描述,对问题进行深入的分析,设计,到最后编写出程序并进行测试。第三部分为该书的总结,主要是写在编写程序的时候所遇到的问题,解决方法以及心得。

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

关键词:链表;面向对象方法;A TM取款模拟;文件和流;类和对象

目录

1设计内容与要求 (1)

2设计说明 (2)

2.1 问题描述与功能设计 (2)

2.2流程图 (2)

2.3 类定义和链表 (4)

2.4 界面设计 (5)

2.5 测试 (7)

3总结 (8)

参考文献 (9)

附录A 源代码 (10)

1.设计内容和要求

设计内容

课题的任务是设计一个A TM取款机的模拟程序。日常生活中,我们常使用A TM取款机,对它的操作过程有所了解。这里我们要模拟的是用户所见的A TM取款机的属性和行为,A TM 机与网络连接的部分不包括在这个任务中。设计中应尽可能把它模拟得与真实的A TM接近一些,我们抽象出下列问题:

(1) 用户插卡,A TM验证用户帐号信息。

(2) 用户首次操作须验证密码。

(3) 用户查询余额,A TM显示余额。

(4) 用户取款,A TM操作交易过程。

(5) 用户转账,A TM请求插入转入卡,然后操作交易过程。

(6) 用户更改密码,A TM受理此业务。

(7) 用户退卡。A TM清理现场。

(8) 所有用户信息保存在文件中。

(9) 对于一个在线用户,如果超过一定时间用户没有任何操作,A TM锁机,直到用户退卡为止。

(10) A TM向用户显示欢迎词及其他提示信息。

设计要求

<1>功能要求:

(1)插卡功能(用卡号模拟);

(2)取款功能;

(3)查询余额功能;

(4)验证帐号功能;

(5)更改密码功能;

(6)退卡功能;

(7)锁卡功能。

<2>界面要求:

用户界面设计不做统一规定,但应做到界面友好,易于操作。

<3> 技术要求:

要求所有用户的信息以密文形式保存在数据文件中,加密算法为:字节各位取反,然后高半字节和低半字节交换位置。用户输入密码时不能以明文形式显示在屏幕上,应以“*”号代替来显示用户密码的输入。

要求利用面向对象的方法以及C++的编程思想来完成系统的设计;在设计的过程中,建立清晰的类层次;在系统设计中要分析和定义各个类,每个类中要有各自的属性和方法;要求运用面向对象的机制来实现系统功能。要求主函数(或图形界面下的主调函数)很“干净”,只有一些类对象的定义和某个类对象的一个成员函数的调用。

1

2.设计说明

2.1问题描述与功能设计

问题描述

课题的任务是设计一个A TM取款机的模拟程序。日常生活中,我们常使用A TM取款机,对它的操作过程有所了解。这里我们要模拟的是用户所见的A TM取款机的属性和行为,A TM 机与网络连接的部分不包括在这个任务中。设计中应尽可能把它模拟得与真实的A TM接近一些,我们抽象出下列问题:

(1) 用户插卡,A TM验证用户帐号信息。

(2) 用户首次操作须验证密码。

(3) 用户查询余额,A TM显示余额。

(4) 用户取款,A TM操作交易过程。

(5) 用户转账,A TM请求插入转入卡,然后操作交易过程。

(6) 用户更改密码,A TM受理此业务。

(7) 用户退卡。A TM清理现场。

(8) 所有用户信息保存在文件中。

(9) 对于一个在线用户,如果超过一定时间用户没有任何操作,A TM锁机,直到用户退卡为止。

(10) A TM向用户显示欢迎词及其他提示信息。

功能设计

该程序应具有以下功能:

(1)插卡功能(用卡号模拟);

(2)取款功能;

(3)查询余额功能;

(4)验证帐号功能;

(5)更改密码功能;

(6)退卡功能;

(7)锁卡功能。

2.2流程图

2

33

2.3类定义和链表

class Card{

public:

Card(char a[10],int b,double c)

{

strcpy(num,a);

code=b;

money=c;

}

char num[10];

int code;

double money;

};

struct node

{

Card *cod;

node *next;

};

在该程序中定义了类Card,,同时声明了3个数据成员。该类有一个构造函数,用来给数据成员赋值。3个数据成员用来保存用户的信息,包括卡号,密码,帐户余额。链表中声明了一个Card类类型的指针,以通过链表中的结点访问该指针,从而访问到定义在类中的数据成员,即用户信息。函数要访问数据成员时,都用这种指向方式,如head->cod->num。而另外一个node指针的数据成员,指向当前结点的下一个结点,利用这种方法遍历链表。将类定义和链表结合起来,可以简化该问题,在一定程度上减少了程序代码。然后再将文件里的信息依次读到链表的各个结点中,就完成了数据成员即用户信息的初始化,使问题变得简单。这就是用类定义和链表的好处所在。

4

2.4界面设计

该程序的界面设计总的来说是体现了对用户的友好性。首先是欢迎界面,看起来非常美观,还有欢迎语句:欢迎使用本银行A TM机。在用户每次输入前,都有输出语句提醒用户,同时在用户进行完每步操作后都循环输出提示信息,用户可自行选择继续或退出。当用户操作有误或交易失败时,界面上会输出出错信息告知用户,三次密码输入错误即锁卡。最后用户退出时,输出语句:谢谢使用,欢迎下次光临。同时提醒用户取卡。界面的设计体现了程序设计的友好性,同时易于操作。

欢迎界面:

出错提醒界面:

5

用户退出时输出界面:

6

2.6测试

测试该程序的主函数十分简单,只有一些提示信息的输出和功能函数的调用。主函数首先调用创建链表的函数进行创建,同时每创建一个节点就从文件中读出一条信息初始化数据成员。创建完后输出欢迎信息,然后进入程序让用户输入卡号,调用验证卡号的函数,如果正确则进行后面的操作,输入错误则退出程序。接下来是输出提示信息让用户输入卡号的密码,再调用验证密码的功能函数,正确则可进行取款等操作,错误再提示用户重新输入,三次输入错误就锁卡。若用户卡号和密码都输入正确,则输出菜单让用户选择操作。菜单中有五个选项,取款,查询余额,转账,更改密码,退卡。定义一个变量接收用户从键盘输入的数据,后面有五个if语句,根据用户输入的数据来判断执行哪个if语句中的函数,这些函数的功能和菜单中提供的操作是相对应。用户输入1表示取款,2表示查询余额,3表示转账,4表示更改密码,5表示退出,调用完功能函数后再调用一个函数将修改后的信息存进文件中,用户下次进入时将会显示修改后的信息。同时在退出每一个if程序块后又再一次输出菜单选项供用户选择,菜单的循环输出可以方便用户连续进行不同的操作。若用户选择退出则输出:谢谢使用,欢迎下次光临。同时还有输出语句提醒用户取卡。

以下是测试函数的一部分代码:

cout<<"请选择您需要的操作:";

int r;

cin>>r;

if(r==1)

{

cout<<"【取款】"<

fetchmoney(temp);

save(listhead);

}

if(r==2)

{

cout<<"【查询余额】"<

search(temp);

save(listhead);

if(r==3)

{ cout<<"【转帐】"<

zhuan(temp,listhead);

save(listhead);

}

if(r==4)

{ cout<<"【更改密码】"<

change_code(temp);

save(listhead);

}

测试后得到的结果正确,说明功能函数实现了预定的功能。

7

3.总结

该课程设计的题目是设计一个A TM模拟程序。在设计任务中,为尽可能把它模拟得跟真实的A TM接近一些,要求要具有以下功能:取款,查询余额,转帐,更改密码,退卡,锁卡等。同时要求界面要美观,友好,易操作。在技术上要把所有用户的信息以密文形式保存在数据文件中,且用户输入密码时不能以明文形式显示在屏幕上。由于这次课程设计有两个星期的时间,所以时间还算充足。但在编写过程中也遇到了不少的困难。

首先,由于要保存用户的帐号,密码,余额等个人信息,所以考虑用类来实现,将这三种信息设计为类的数据成员。文件中保存的也不止一个人的信息,而这些用户的信息又都访问,所以在类的基础上再构建链表。通过返回链表的头结点,外部函数只要遍历链表则可访问文件中所有用户的信息。为安全起见,用户的信息是加密后再存入数据文件中的,在这个地方就要用到加密的函数。所以总的来说,这个程序是将类,链表,文件这三大块的知识结合在一起,只要将这些条理理清楚,这个任务可以说已经完成一半了。这是分析设计这个程序的过程。

接下来,就是写程序,实现函数功能的过程了。在实现过程中实现了取款,查询余额,转帐,更改密码,退卡,锁卡等功能函数,通过主函数调用这些函数来完成相应的功能。在每个功能函数中都有错误提醒和相应的操作,退出程序或重新输入。该部分也有涉及到算法。由于要实现的功能比较多,所以函数的代码也比较长。编写的过程中难免会出现错误,在同学和老师的帮助下解决了出现的问题。

最后是界面的设计以及测试的过程。考虑到对用户的友好性,在每次输入前都有提醒语句,同时在用户选择操作前也有菜单输出以提示用户。用户三次输入错误A TM取款机即锁卡。总的来说,界面还算美观,易于操作。测试主要是测试功能函数是否能达到预定的要求,还有就是错误测试。当用户的输入出错或者进行错误的操作时,该程序能提醒拥护所出现的错误,并对不同的错误采取不同的解决方案。测试是程序设计中必不可少的步骤,因为这是验证程序是否能达到某些功能的最好方法。测试也有助与我们发现程序中的缺点,从而帮助我们完善程序,编写出更健壮,功能更强大的程序。

在这次课程设计中,更深入地理解了链表,类以及文件,并掌握了如何综合利用它们去编写程序。同时,程序设计能力和设计风格也有很大程度的提高。

8

参考文献

王挺,周会平,贾丽丽,徐锡山。C++程序设计(第二版)。北京:清华大学出版社,2004 Bruce Eckel。C++编程思想(第二版,影印版)。北京:机械工程出版社,2002

Bjarne Stroustrup。C++程序设计语言(特别版,影印版)。北京:高等教育出版社,2001 谭浩强。C程序设计(第二版)。北京:清华大学出版社,2000

齐治昌,谭庆平,宁洪。软件工程(第二版)。北京:高等教育出版社,2004

9

附录A源代码

#include

#include

#include

class Card{

public:

Card(char a[10],int b,double c)

{

strcpy(num,a);

code=b;

money=c;

}

char num[10];

int code;

double money;

};

struct node

{

Card *cod;

node *next;

};

node *createlist(int n);//创建链表

node *findnum(char m[10],node *head);//核对卡号

int findcode(int q,node *head);//核对密码

void fetchmoney(node *head);//取款

void search(node *head);//查询余额

void zhuan(node *head,node *curnode);//转帐

void change_code(node *head);//更改密码

void exit();//退卡

void lock();//锁卡

void save(node *head);//保存信息

int main()

{

node *temp, *listhead=NULL;

int times=0;

listhead=createlist(2);

cout<<"★☆★☆★☆★☆★☆欢迎使用本银行A TM取款机☆★☆★☆★☆★☆★"<

cout<<"请输入您的卡号:";

char p[10];

cin>>p;

temp=findnum(p,listhead);

if(temp)

{

while(times<3)

{

cout<<"请输入您的密码:";

int q;

cin>>q;

if(findcode(q,temp)==0)

{

cout<<"您输入的密码有误,请重新输入!"<

times++;

}

else

{

for(int i=0; ;i++)

{

cout<<" "<

cout<<" "<

cout<<"本机可办理以下业务:"<

cout<<"********************"<

cout<<"1>取款"<<" "<<"2>查询余额"<

cout<<"3>转帐"<<" "<<"4>更改密码"<

cout<<"5>退出"<

cout<<"********************"<

cout<<"请选择您需要的操作:";

int r;

cin>>r;

cout<<" "<

cout<<" "<

if(r==1)

{

cout<<"【取款】"<

fetchmoney(temp);

save(listhead);

}

else if(r==2)

{

cout<<"【查询余额】"<

search(temp);

save(listhead);

}

else if(r==3)

{

cout<<"【转帐】"<

zhuan(temp,listhead);

save(listhead);

}

else if(r==4)

{

cout<<"【更改密码】"<

change_code(temp);

save(listhead);

}

else if(r==5)

{

exit();

goto end;

}

else

cout<<"输入错误,请重新输入"<

}

}

}

if(times==3)

lock();

}

else

cout<<"对不起,您输入的卡号不存在,请查正后再输!"<

return 0;

end:

return 1;

}

node *createlist(int n)

{

node *temp, *tail=NULL, *head=NULL;

head=new node;

char x[10];

int y;

double z;

ifstream infile("outfile.txt",ios::in);

infile>>x>>y>>z;

if(head==NULL)

{

cout<<"No memory available!";

return NULL;

}

else

{

head->cod=new Card(x,y,z);

head->next=NULL;

tail=head;

}

for(int i=0;i

{

temp=new node;

char x[10];

int y;

double z;

if(temp==NULL)

{

cout<<"No memory available!";

return head;

}

else

{

while(!infile.eof())

infile>>x>>y>>z;

infile.close();

temp->next=NULL;

temp->cod=new Card(x,y,z);

tail->next=temp;

tail=temp;

}

}

return head;

}

node *findnum(char m[10],node *head)

{

while(head)

{

if((strcmp(head->cod->num,m))==0)

{

return head;

}

head=head->next;

}

return NULL;

}

int findcode(int q,node *head)

{

if(head->cod->code==q)

return 1;

return 0;

}

void fetchmoney(node *head)

{

cout<<"请输入取款金额:";

double s;

cin>>s;

if(s<0)

cout<<"请输入正确的数字!"<

if((head->cod->money)>s)

{

head->cod->money=(head->cod->money)-s;

cout<<"交易成功,请收好钱!"<

}

else

{

cout<<"对不起,您的余额不足!"<

}

}

void search(node *head)

{

cout<<"您的帐户余额为:"<cod->money<<"!"<

void zhuan(node *head,node *curnode)

{

cout<<"请输入对方卡号:";

char t[10];

cin>>t;

node *hold=findnum(t,curnode);

if(hold)

{

cout<<"请输入转帐金额:";

double d;

cin>>d;

if((head->cod->money)>d)

{

cout<<"交易成功!"<

head->cod->money=(head->cod->money)-d;

hold->cod->money=(hold->cod->money)+d;

}

else

cout<<"对不起,您的余额不足!"<

}

else

cout<<"对不起,您输入的卡号不存在,请查正后再输!";

}

void change_code(node *head)

{

cout<<"请输入您的原密码:";

int e,f,g;

cin>>e;

if((head->cod->code)==e)

{

cout<<"请输入您的新密码:";

cin>>f;

cout<<"请再次输入您的新密码:";

cin>>g;

if(f==g)

{

(head->cod->code)=g;

cout<<"密码修改成功,请牢记!"<

}

else

cout<<"您两次输入的密码不一致,操作失败!"<

}

else

cout<<"原密码输入错误,操作失败!"<

}

void exit()

{

cout<<"谢谢使用,欢迎下次光临!"<

cout<<"请取回卡!"<

return ;

}

void lock()

{

cout<<"对不起,由于您三次密码输入错误,卡已被锁!"<

}

void save(node *head)

{ ofstream outfile("outfile.txt",ios::out);

while(head)

{

outfile<cod->num<<" "<cod->code<<" "<cod->money<

head=head->next;

}

outfile.close();

}

ATM柜员机模拟系统-代码

Win.java import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.sql.*; public class Win extends JFrame implements ActionListener { JTextField text[]=new JTextField[6]; JTextArea show=new JTextArea(9,30); JTable table;//标签 JButton insert,update,select,delete,C,Q; Win() { setLayout(new FlowLayout()); for(int i=0;i<5;i++) { text[i]=new JTextField(10); } add(new JLabel("卡号:")); add(text[0]); add(new JLabel("姓名:")); add(text[1]); add(new JLabel("密码:")); add(text[2]); add(new JLabel("余额:")); add(text[3]); add(new JLabel("序号:")); add(text[4]); C=new JButton("存款"); C.addActionListener(this); add(C);

Q=new JButton("取款"); Q.addActionListener(this); add(Q); update=new JButton("修改密码"); update.addActionListener(this); add(update); insert=new JButton("添加新用户"); insert.addActionListener(this); add(insert); select=new JButton("查询用户信息"); select.addActionListener(this); add(select); delete=new JButton("删除用户信息"); delete.addActionListener(this); add(delete); add(new JScrollPane(show)); add(new JLabel("提示:1.每次取款金额为100的倍数,总额不能超过5000元,支取金额不允许透支")); add(new JLabel("2.存款金额不能为负存款")); add(new JLabel("3.新密码长度不小于6位,不允许出现6位完全相同的情况")); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void actionPerformed(ActionEvent e) { Operation modify=new Operation(); modify.setDatasourceName("XX"); if(e.getSource()==insert) {

柜员机模拟程序

课程论文 现代软件工程与实践题目: ATM柜员机模拟程序学院(系):信息工程学院专业班级: 学生姓名: 指导教师: 2011 年 12月 4日

摘要 通过设计ATM柜员模拟程序,加深自己对Java编程尤其是对Java图形用户界面编程的了解,将自己的学到的编程知识融会贯通,同时培养自身面向对象软件开发的思维,初步了解软件开发的一般流程,提高用Java实际动手能力并增强自己对面向对象的了解。通过这次编程设计,加深了对Java图形界面编程中各个模块和组件的应用了解,以及类和类之间的关系,界面排版的处理等。 设计要求是,当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行(规则可以按照实际系统做需求):(1)查询余额:初始余额为10000元。(2)ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。(3)ATM存款:不能出现负存款。(4)修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。 该程序设置了7个类,1个主类6个辅助类,6个辅助类都是内部类的形式,辅助类包括五个实现ATM的功能,一个存放客户资料,之所以用内部类来实现是为了在各个界面转换时不至于要创建多个对象,每一个辅助类的对象只要在主类中创建一次就可以在各个内部类中引用。该程序利用的功能是利用Java事件监听技术来实现的,各种功能单独的创建一个类来实现,不会互相混淆,更加容易理清楚思路。设计的程序完美的实现了设计要求,具有查询、取款、存款、修改密码等功能。

javaATM柜员机模拟程序文件

课程论文 现代软件工程与实践 题目: ATM柜员机模拟程序学院(系):信息工程学院专业班级: 学生: 指导教师: 2011 年 12月 4日

摘要 通过设计ATM柜员模拟程序,加深自己对Java编程尤其是对Java图形用户界面编程的了解,将自己的学到的编程知识融会贯通,同时培养自身面向对象软件开发的思维,初步了解软件开发的一般流程,提高用Java实际动手能力并增强自己对面向对象的了解。通过这次编程设计,加深了对Java图形界面编程中各个模块和组件的应用了解,以及类和类之间的关系,界面排版的处理等。 设计要,当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行(规则可以按照实际系统做需求):(1)查询余额:初始余额为10000元。(2)ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。(3)ATM存款:不能出现负存款。(4)修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。 该程序设置了7个类,1个主类6个辅助类,6个辅助类都是部类的形式,辅助类包括五个实现ATM的功能,一个存放客户资料,之所以用部类来实现是为了在各个界面转换时不至于要创建多个对象,每一个辅助类的对象只要在主类中创建一次就可以在各个部类中引用。该程序利用的功能是利用Java事件监听技术来实现的,各种功能单独的创建一个类来实现,不会互相混淆,更加容易理清楚思路。设计的程序完美的实现了设计要求,具有查询、取款、存款、修改密码等功能。

课程设计-ATM柜员机模拟程序

课程设计-ATM柜员机模拟程序

软件学院 课程设计报告书 课程名称面向对象程序设计 设计题目ATM柜员机模拟程序 专业班级软件工程 学号 姓名 指导教师刘腊梅

1 设计时间 2015 年月 2 设计目的 掌握图形用户界面设计方法,掌握常用swing组件的使用和事件处理程序设计. 3 设计题目 ATM柜员机模拟程序 4 设计任务 使用图形用户界面。当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行: (1)查询余额功能:初始余额为10000元 (2)ATM取款功能:每次取款金额为100的倍数,总额不超过5000元,支取金额不 允许透支。 (3)ATM存款功能:不能出现负存款。 (4)修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密 码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。 5设计内容 5.1 kehu类代码 import javax.swing.*; import javax.swing.event.*; import java.awt.*; import java.awt.event.*; // 导入包 import java.util.*; class kehu // 定义客户类 { String zh; //定义账号 String pswf; //定义密码 double jine; //定义金额 public kehu() { } //构造GUKE public kehu(String zh, String pswf, double jine) { this.zh = zh; this.pswf = pswf; this.jine = jine;

自动取款机(ATM)模拟程序(C#控制台应用程序)

自动取款机(ATM)模拟程序 一、需求 我们需要设计一个具备如下功能的ATM模拟程序。 ●开户:用户能够通过ATM来开设帐号,开户需要设置密码。 ●登录:用户能够登录到已经开设的帐号上,登录需要验证密码。 ●管理帐号:用户登录到帐号上后,能够进行如下的操作。 ■存款:将指定的款项存到帐号中。 ■取款:从帐号中取出指定的款项。 ■查询余额:查询帐号的余额。 ■修改密码:修改帐号的密码。 二、分析 面向对象编程的第一步是进行面向对象分析。面向对象分析的目标是建立问题领域的模型,包括如下模型。 ●功能模型:即画出每一个功能要求的用例图。 ●对象模型:对用例模型进行分析,把系统分解成互相协作的类,通过类图/对象图描述对 象、对象的属性、对象间的关系。 ●动态模型:描述系统的动态行为,通过序列图来描述对象的交互,以揭示对象间如何写 作来完成每个具体的用例,单个对象的状态变化和动态行为可以通过状态图来表达。1.功能模型 根据我们的需求,可以很容易地画出A TM模拟程序的用例图: 可以看出,用户可以开户和登录帐号,开户或者登录帐号之后就能管理帐号。要管理账号,就必须首先登录帐号或者开户。管理帐号的功能包括存款、取款、查询余额和修改密码。

2.对象模型 ATM是银行相连的设备,因此银行是A TM模拟程序的相关对象,所有的操作都是针对帐号的,因此帐号是其中的核心对象。此外,需要一个程序来启动ATM。因此,在ATM模拟程序中,我们需要处理四个类,或者说四类对象:启动程序、A TM、银行及帐号。 1)帐号类Account 帐号类Account包含所有的帐号信息负责所有的帐号操作。基本的帐号信息包括: ●帐号名name ●帐号密码password ●帐号余额balance 主要的帐号操作包括: ●登录Login ●存款Deposit ●取款Withdraw ●查询余额Get_Balance ●修改密码ChangePassword 2)银行类Bank 银行类Bank的本质就是一组帐号的组合,并负责管理帐号。基本的银行信息包括: ●银行名name ●已经开户的帐号数usedAccountNum ●可以容纳的最大账户数MaxAccountNum ●帐号集accounts 主要的银行操作包括: ●开户OpenAccount ●登录帐号LoginAccount ●撤销帐号,但是由于A TM不能撤销帐号,因此我们不关心这个操作 3)ATM类 ATM类与银行类之间在一对一的关联关系,ATM提供用户界面,并将用户的请求提交给银行、将银行的反馈提交给用户。基本的ATM信息包括: ●银行Bank 主要的ATM操作包括: ●启动Start ●开户OpenAccount ●登录帐号LoginAccount ●管理帐号ManageAccount ●一些显示不同信息的辅助操作(PrintLogo、Print、Pause等)。 4)启动程序类Program 启动程序类Program的唯一功能就是创建银行类和ATM类的实例,并将它们关联起来,然后启动ATM(执行A TM对象的Start方法)。因此,这个类仅仅包含程序的入口点Main方法。 5)ATM模拟程序的类图 根据上述各类的分析,可以画出A TM模拟程序的类图:

java课程设计_ATM柜员机模拟程序文件

课程设计(大作业)报告 课程名称:面向对象程序设计课程设计设计题目:ATM柜员机模拟程序 院系:信息技术学院 班级: 设计者: 学号: 指导教师: 设计时间:2016-1-4-2016-1-8 信息技术学院 学院课程设计(大作业)任务书

课程设计(大作业)报告 一、题目分析 1.系统需求分析 (1)设计目标:随着市场经济的繁荣发展,人们的物质生活得到极大的提高,手中的剩余资金也日益增多。受传统观念影响,绝大多数人喜欢把资金投进银行,而在需要使用现金的时候再到银行提取现金。这就导致银行业务的急剧增加。虽然银行网点越来越多,银行的工作效率也随着信息化有较明显的增长,但是依旧不能满足广大用户的需要。而一味的增加营业网点,从理论上虽然能稍微的缓解银行的压力,但是治标不治本,而且每增加一个网点,不仅要付出昂贵的资金成本,还需要长期投入人力资本,成本非常之昂贵。这时候就迫切的需要一种自动的,易于普及的,低成本的设备来解决这一问题。于是ATM机系统应运而生了。 自动柜员机,即ATM,是指银行在不同地点设置一种小型机器,利用一信用卡大小的胶卡上的磁带记录客户的基本户口资料(通常就是银行卡),让客户可以透过机器进行提款、存款、转账等银行柜台服务,大多数客户都把这种自助机器称为自动提款机。 本文正是通过设计一个ATM模拟模拟程序来实现ATM机系统的基本功能,充分运用自己所学的Java知识进行设计编程。 (2)题目设计要求:本ATM柜员机的主要功能如下所述: 要求使用图形用户界面。当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行: ●查询余额:初始余额为10000元。 ●ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透 支。 ●ATM存款:不能出现负存款。 ●修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密 码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。 2.ATM模拟系统总体设计结构 (1)设计思想:通过程序要求,我们可以清楚的知道本次设计的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.帐户信息存放在文件,储户存取款记录保存在中;(在目录下创建这两

个文件) j.采用模块化程序设计方法来实现,即main()显示主菜单、调用相关函数实现相应功能,起主控作用; k.储户一天内输错密码的次数不能超过3次,否则无法进入系统; l.有效避免输入存款金额、取款金额为负数等异常情况的出现。 较为突出的功能是注册、登录时账号密码的核对验证;存款转出转入金额的核对。是否超过余额,是否不符合格式,是否为冲突操作。 (2)程序运行截图及说明(每图限50到100字); 进入程序,menu1可选择登录、注册功能。 选择登录,输入账号密码,通过输入内容与文件的匹配,判断是否成功登录。若登录失败,则重新选择。

ATM柜员机模拟系统-代码

import .*; import .*; import .*; public class Win extends JFrame implements ActionListener { JTextField text[]=new JTextField[6]; JTextArea show=new JTextArea(9,30); JTable table;次取款金额为100的倍数,总额不能超过5000元,支取金额不允许透支")); add(new JLabel("2.存款金额不能为负存款")); add(new JLabel("3.新密码长度不小于6位,不允许出现6位完全相同的情况")); setVisible(true); setDefaultCloseOperation; } public void actionPerformed(ActionEvent e) { Operation modify=new Operation(); ("XX"); if()==insert) {

("INSERT INTO XX VALUES ('"+text[4].getText()+"','"+text[0].getText()+"','"+text[1].getText()+"','"+tex t[2].getText()+"','"+text[3].getText()+"')"); String backMess=(); ("添加新用户"+backMess); } else if()==C) { Connection con=null; Statement sql; ResultSet rs = null; try{ double n=2000; con=("jdbc:odbc:XX","",""); (false); sql=(); rs=("SELECT * FROM XX WHERE 卡号='123456'"); 码 =+'"+text[2].getText()+"' WHERE (((XX.卡号)=+'"+text[0].getText()+"'));"); String backMess=(); ("修改密码"+backMess); }

c语言程序设计atm自动取款机实验报告

程设计报告课程类别:本科 课程名称:程序设计基础(C语言) 课程代号:指导教师: 银行ATM自动取款机系统课程设计姓名:学号: 姓名:学号: 姓名:学号: 学院: 班级:

目录 1. 课程设计内容....................... 2. 课程设计要求....................... 3.可行性研究........................ 4.需求分析......................... 5. ...................................................................... 概要设计. 5.1 功能模块图 ..................... 5.2 功能模块描述 ..................... 5.3 数据结构 ...................... 6. ...................................................................... 详细设计. 6.1 功能流程图 ..................... 6.2 重点设计 ...................... 7. 测试与调试........................ 8. 总结. ....................................................... 8.1 心得体会 ....................... 8.2 不足与改进 ...................... 9. 参考文献. ................................................. 1. 课程设计内容

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

仲恺农业工程学院工程实训报告 ATM取款机 课程名称C语言程序设计工程实训 姓名林少烈 院(系)计算机科学与工程学院 专业班级计算机113班 学号201110214317 指导教师王成 仲恺农业工程学院教务处制

目录 1 需求分析 (1) 2 系统总框图和功能模块说明 (1) 2.1 系统总框图 (1) 2.2 功能模块说明 (1) 3 系统设计 (2) 3.1 主要结构体 (2) 3.2主要功能函数 (2) 3.3 关键函数的流程图 (3) 4 系统调试 (12) 5 总结 (25) 6 源程序清单 (28) 6.1头文件 (28) 6.2主程序 (29) 6.3 解除被冻结用户 (64) 6.4 用户注册 (66)

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); //输入账号

JAVA课程设计-ATM机模拟系统

《Java语言程序设计》 课程设计报告 题目:ATM柜员机 专业:信息与计算科学 学号:23 姓名:单焱 指导教师:李又良 成绩: 2010 年 12 月 10 日

目录 1课程设计研究背景及意义 (2) 2课程设计题目描述和基本功能设计要求 (2) 3系统需求分析 (2) 3.1 功能需求分析 (2) 3.2 其他需求分析 (3) 4 系统设计 (3) 4.1 总体设计 (3) 4.2 ATM柜员机界面设计 (4) 4.3 各功能模块设计 (5) 4.3.1 登陆页面模块设计 (5) 4.3.2 选择服务模块设计 (6) 4.3.3 取款模块设计 (7) 4.3.4 修改密码模块设计 (8) 4.3.5 查询余额模块设计 (9) 4.3.6 退卡模块设计 (9) 4.4 异常处理情况说明 (10) 5 系统实现与测试 (10) 6 课程设计总结 (13) 6.1 遇到的问题及解决办法 (13) 6.2 心得体会 (14) 参考文献 (14) 附录(源码) (14)

1课程设计研究背景及意义 这次课程设计是通过JAVA编程来实现ATM柜员机的功能。以前,人们用手算取钱,不管从方便的角度还是速度的角度来看都不及现在。电子技术的不断发展使得ATM自动化的功能不断完善。在二十一世纪的今天,A TM柜员机是人们生活中重要的工具,所以,对ATM柜员机的研究的课程设计具有重大意义。 这次课程设计的主要目的是结合面向对象程序设计课程,培养我们面向对象开发的思维,初步了解软件开发的一般流程,提高用JA V A编程的实际动手能力并增强大家对面向对象的了解。这次课程设计的主要内容是独立用JA V A语言开发一个小的应用程序。 2 课程设计题目描述和基本功能设计要求 本次设计的ATM柜员机主要是由各个Windows窗口组成,它是由登录页面、选择服务、取款、查询余额、修改密码和退卡等功能。它的各种按钮的事件和功能可以简单的模拟ATM柜员机的要求。 组员分工: 组长(单焱):负责分配其他组员的任务,构建需求分析,系统实现及异常处理情况,调试程序等,把握ATM柜员机的整体布局。 组员1(刘星):负责登陆界面模块,选择服务模块及退卡模块,编写相应代码。 组员2(王玲玲):负责取款、修改密码、查询余额模块,编写相应代码。 3 系统需求分析 3.1 功能需求分析 本ATM柜员机的主要功能如下所述: 要求使用图形用户界面。当输入给定的卡号和密码(初始卡号为000000和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行: ●查询余额:初始余额为50000元 ●ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允 许透支。 ●ATM存款:不能出现负存款。

软件工程建设_ATM柜员机系统_课程设计

软件工程课程设计 题目:ATM柜员机系统 学院:信息科学与工程学院 专业:计算机科学与技术 学号: 班级: 学生姓名:

一可行性研究 1编写目的 1.1 目的 这份可行性研究报告是对ATM柜员机的可行性研究分析及指出存在的必要性。 1.2 预期的读者 软件管理人员、开发人员、维护人员、顾客用户。 2 问题定义 2.1 ATM柜员机介绍 ATM柜员机使用与ATM机相似的图形用户界面,当用户在登录界面输入给定的卡号和密码时,系统能登录ATM柜员机系统,通过数据链接操作来达到独立的客户与机器交互从而进行取款、存款、转账、查询余额、修改密码等业务办理的目的。 2.2 基本目标 ATM柜员机主要是由各个实体窗口组成,它是由登录页面、选择服务、存款、取款、查询余额、修改密码以及查看交易记录等功能。它的各种按钮的事件和功能可以简单的模拟ATM柜员机的要求,让用户在电脑上可以轻松体验ATM取款机的使用流程,以达到易学易用的效果,避免用户在真实的ATM机上出现失误,带来不必要的损失。 2.3 经济目标 由于本软件的主要背景(为课程设计)在经济上不注重直接的经济收益,而是注重小组成员整体水平的提高。 3 可行性研究的方法及评价度 3.1 可行性研究所采用的方法 根据调查,本小组成员多数有JA V A编程经验,也具备MY SQL的使用经验,因而开发此系统采用JA V A结合MY SQL的数据库系统开发。 3.2 评价尺度 此软件暂时只是一个初级产品,实现的功能也只能完成初步的工作。 4 工作产品 4.1 设计目标 为了减少银行的业务处理压力,尽量节省人们取钱所花费的时间和价值;并且尽可能的防止一些非法的业务操作,同时它的使用可以有效解决用户信息和资金信息的繁杂问题。

(完整word版)模拟ATM自动取款机系统C++版

《面向对象程序设计》课程设计报告模拟ATM自动取款机系统 姓名 : 学号 : 专业班级 : 完成时间 : 指导老师 :

目录 一、需求分析 (2) 二、程序的主要功能 (2) 三、程序运行平台 (2) 四、流程图 (2) 五、程序类的说明 (2) 六、模块分析 (3) 七、比较有特色的函数 (4) 八、存在的不足与对策 (4) 九、程序源代码 (4)

一、需求分析 为了方便用户的及时取款,查询,及时修改密码的方便,本课题设计并模拟银行的自动取款机使用过程中的界面和用户交互过程。实现查询银行卡余额,取款,修改密码,退出系统等功能。 二、程序的主要功能 1、锁机功能: 卡号,密码输入最多三次,否则直接退出系统。 2、取款功能: 取款金额受卡余额,机单笔最大取款金额及机当前剩余金额的限制。 3、查询功能: 实现查询余额的功能。 4、更改密码: 实现密码更改功能,对于密码要有2次验证。 5、退卡功能: 实现退出系统功能。 三、程序运行平台 Dev c++ 四、流程图 图1 系统流程图 五、程序类的说明 5.1 ATM 类: 该类主要实现取款,查询,修改密码,登录界面等功能。 class ATM//ATM 类 { public: ATM(YongHu& y):yh(y) 登陆界面 主界面 取款功能 查询功能 修改密码 锁卡功能 退出系统

{} ............... private: int times; YongHu& yh; }; 5.2 YongHu类: 该类主要实现卡号,密码,余额的获取函数等功能。 class YongHu//用户类 { public: friend class ATM; ............ private: char ID[20];//卡号 char password[10];//密码 float money;//卡上余额 }; 5.3 查询函数: 调用YongHu类的获取函数将信息输出 void ATM::CX() { ........... } 5.4 修改密码函数: 使用do while语句实现修改密码的功能 void ATM::GG() { ......... } 5.5 密码星号函数: 通过while语句实现输入密码时每输入一个字符就显示一个星号的功能char * ATM::GetPassword() { ........ } 六、模块分析 1、锁机功能: 卡号,密码输入最多三次,否则直接退出系统。

ATM取款机模拟程序 课程任务书

课程设计任务书 课程名称:C++程序设计课程设计 设计题目:ATM取款机模拟程序 已知技术参数和设计要求: 1. 问题描述: 课题的任务是设计一个A TM取款机的模拟程序。日常生活中,我们常使用A TM取款机,对它的操作过程有所了解。这里我们要模拟的是用户所见的A TM取款机的属性和行为,A TM机与网络连接的部分不包括在这个任务中。设计中应尽可能把它模拟得与真实的A TM接近一些,我们抽象出下列问题: (1) 用户插卡,A TM验证用户帐号信息。 (2) 用户首次操作须验证密码。 (3) 用户查询余额,A TM显示余额。 (4) 用户取款,A TM操作交易过程。 (5) 用户转账,A TM请求插入转入卡,然后操作交易过程。 (6) 用户更改密码,A TM受理此业务。 (7) 用户退卡。A TM清理现场。 (8) 所有用户信息保存在文件中。 (9) 对于一个在线用户,如果超过一定时间用户没有任何操作,A TM锁机, 直到用户退卡为止。 (10) A TM向用户显示欢迎词及其他提示信息。 2. 功能要求: (1)插卡功能(用卡号模拟); (2)取款功能; (3)查询余额功能; (4)验证帐号功能; (5)更改密码功能; (6)退卡功能; (7)锁卡功能。 3. 界面要求: 用户界面设计不做统一规定,但应做到界面友好,易于操作。 4. 技术要求: 要求所有用户的信息以密文形式保存在数据文件中,加密算法为:字节各位取反,然后高半字节和低半字节交换位置。用户输入密码时不能以明文形式显示在屏幕上,应以“*”号代替来显示用户密码的输入。

要求利用面向对象的方法以及C++的编程思想来完成系统的设计;在设计的过程中,建立清晰的类层次;在系统设计中要分析和定义各个类,每个类中要有各自的属性和方法;要求运用面向对象的机制来实现系统功能。要求主函数(或图形界面下的主调函数)很“干净”,只有一些类对象的定义和某个类对象的一个成员函数的调用。 5. 课程设计时间:15周、16周 6. 课程设计的考核方式及评分方法 1)考核方式 ?课程设计结束时,在机房当场验收。 ?教师提供测试数据,检查运行结果是否正确。 ?回答教师提出的问题。 ?学生提交课程设计文档(A4纸打印) 2)评分方法 上机检查 :书面报告:答辩=6 :3 :1,没有通过上机检查的其成绩直接记录不及格 指导教师签名:日期: 教研室主任签名:日期: 系主任签名:日期:

ATM柜员机模拟实现分析

ATM柜员机模拟实现 摘要 计算机科学技术的发展不仅极大地促进了整个科学的发展,而且明显加快了经济信息化和社会信息化的进程。金融业ATM取款机的诞生不仅是世界金融行业中的一大进步,更是其发展历史性的转折点。目前国内的银行大力发展银行自动取款机(ATM),以提高工作效率和降低成本。 全文共分为绪论、课题要求及分析、系统需求分析、系统设计、系统实现与测试、课程设计总结六个部分,利用JA V A语言强大功能,并具有面向对象开发等的特点,联系实际ATM应用界面,以win8操作系统后台开发出了一套自动取款机系统。在此论文中ATM柜员机模拟系统主要是由各个Windows窗口组成,它具有登录页面、选择服务、存取款、查询余额、修改密码和退卡等功能,它的各种按钮的事件和功能能够实现模拟ATM柜员机的基本要求。 完成整个程序设计之后,经过测试表明该ATM柜员机模拟系统运行稳定且各项功能都能正确运行,达到预期的要求。 关键词:ATM柜员机;存取款;查询;JA V A语言

SIMULATION OF ATM TELLER MACHINES TO ACHIEVE ABSTRACT The development of computer science and technology not only greatly enhance the development of science, but also significantly speeds up the information of the economy and society. The birth of the financial industry ATM machine is not only a great progress of world financial industry, is a turning point in the development history of. At present the domestic bank developing bank automatic teller machine(ATM), and to improve the work efficiency and reduce cost. The full text is divided into introduction, the requirements of the project and analysis, system requirements analysis, system design, system implementation and testing, curriculum design is summarized in six parts, the use of JA V A language and powerful function, and has the characteristic of object-oriented development, contact the actual ATM application interface, based on win8operating system backstage developed an automatic teller machine system. In this paper the ATM teller machine simulation system is mainly composed of various Windows window, it has the login page, select a service, withdrawals,balance inquiries, modify passwords and other functions button back card, itsevents and functions can simulate the ATM machine to the basic requirements. After completing the design of the whole procedure, after testing showed that the ATM teller machine simulation system is stable in operation and the variousfunctions are correct operation, to achieve the desired requirements. Key words:ATM machine; Deposit; Query; JA V A language

ATM柜员机模拟系统说明书

******************* 实践教学 ******************* 兰州理工大学 计算机与通信学院 2014年秋季学期 面向对象课程设计 题目:ATM柜员机 专业班级: 姓名: 学号: 指导教师: 成绩:

问题描述: 此次课题的任务旨在设计一个ATM模拟程序。余额查询在设计中,我们对它尽可能的与真实的ATM模拟的相近一些,我们把它抽象出一些小模块:用户帐号信息,登录密码验证,用户余额查询,用户存取款(交易过程),用户密码的更改,用户退出程序,对于一个在线用户,如果密码输入次数达三次后,ATM 锁机,直到用户退卡为止,此外,ATM向用户显示欢迎词及其他提示性信息,这样,方便了用户对ATM的使用。 背景: 自2000年以来,中国的ATM机总保有量便以24.62%的年均复合增长率高速增长。截至2010年底,中国联网ATM机保有量已经达到27.10万台,同比增长26.11%。我国已经取代日本成为全球第二大ATM市场,排在美国之后。 现今的社会发展迅速,人们的物质生活得到极大的提高,手中的剩余资金日益增多,受传统影响,绝大多数人喜欢把资金存起来,而在需要现金的时候又可以很方便的取到现金,就这样,ATM成为了人们在银行方面不可缺少的使用工具,使用ATM的人越来越多,所以ATM的数量以及技术指标也在迅速的增长着,模拟此程序其极大的方便了人们的日常生活,同时又在使用的过程中也会遇到这样那样的问题,如果有一款软件模拟ATM,可以帮助人们了解其运行过程,避免有些不必要的麻烦,方便了人们的生活。 实现方式: 要求ATM柜员机模拟程序利用面向对象的方法以及C++的编程思想来完成系统的设计。C++相对众多的面向对象的语言,具有相当高的性能。C++引入了面向对象的概念,使得开发人机交互类型的应用程序更为简单、快捷。在设计的过程中,建立清晰的类层次,各个类中要有各自的属性和方法,运用面向对象的机制(继承、派生及多态性)来实现系统功能,基于Microsoft visual C++6.0条件下实现的.。

模拟ATM自动存取款机界面

实验(四) 学号:姓名: 实验项目:选择结构程序设计之switch语句 实验日期:年月日 实验目的及要求: 1.熟练掌握switch语句的一般书写形式和执行过程。2.学习使用switch语句设计多分支选择结构的程序。实验技术要点:switch语句 switch(表达式) { case 常量表达式1:语句组;[break;] …… case 常量表达式n:语句组;[break;] [ default:语句组;[break; ] ] } 实验内容: 任务一:模拟ATM自动存取款机界面。 提示与要求: 主界面:查询余额、存款、取款、退卡四个功能。 查询余额界面:显示余额

存款界面:100、500、输入存款金额、返回取款界面:100、500、输入取款金额、返回退卡界面:退出程序。 附源程序如下:#include int main() { char getkey; int getnum; int total=10000,money; printf("-----------\n"); printf("1.查询余额\n"); printf("2.取款\n"); printf("3.退卡\n"); printf("4.退出\n"); printf("-----------\n"); getkey=getchar(); switch(getkey) { case'1': printf("----------\n"); printf("您的余额为%元\n",total); printf("----------\n");

break; case'2': printf("-----------\n"); printf("1.100\n"); printf("2.500\n"); printf("3.输入取款金额\n"); printf("4.退出\n"); printf("-----------\n"); scanf("%d",&getnum); } switch(getnum) { case '1': // 取款100元 puts("======================="); puts("| 您的取款金额为100元|"); puts("| 请按任意键返回|"); puts("======================="); getch(); break; case '2': // 取款500元 puts("======================="); puts("| 您的取款金额为500元|");

ATM柜员机模拟程序

阿坝师范高等专科学校电子信息工程系课程设计ATM柜员机模拟系统 学生姓名李其林 专业名称嵌入式 班级2011级 学号20113122 阿坝师范高等专科学校电子信息工程系 2013年6月

摘要 通过设计ATM柜员模拟程序,加深自己对Java编程尤其是对Java图形用户界面编程的了解,将自己的学到的编程知识融会贯通,同时培养自身面向对象软件开发的思维,初步了解软件开发的一般流程,提高用Java实际动手能力并增强自己对面向对象的了解。通过这次编程设计,加深了对Java图形界面编程中各个模块和组件的应用了解,以及类和类之间的关系,界面排版的处理等。 设计要求是,当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以进行以下操作: (1)查询余额:初始余额为10000元。 (2)ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。 (3)ATM存款:不能出现负存款。 (4)修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。 该程序设置了7个类,1个主类6个辅助类,6个辅助类都是内部类的形式,辅助类包括五个实现ATM的功能,一个存放客户资料,之所以用内部类来实现是为了在各个界面转换时不至于要创建多个对象,每一个辅助类的对象只要在主类中创建一次就可以在各个内部类中引用。该程序利用的功能是利用Java事件监听技术来实现的,各种功能单独的创建一个类来实现,不会互相混淆,更加容易理清楚思路。设计的程序完美的实现了设计要求,具有查询、取款、存款、修改密码等功能。

相关主题
文本预览
相关文档 最新文档