ATM柜员机模拟系统-代码

合集下载

ATM机的代码(作业)

ATM机的代码(作业)

ATM机的代码(作业)import java.util.Scanner;public class ATMDemo {/*** 简单ATM机取款过程模拟*/public static void main(String[] args) {String pass = ""; // 保存⽤户输⼊密码int amount = 0; // 取款⾦额String password = "111111"; // ⽤户密码int count = 0; // 记录密码输⼊次数boolean isPass = false; // 密码是否通过验证Scanner input = new Scanner(System.in);while (count < 3 && !isPass) {System.out.print("请输⼊密码:");pass = input.next();if (!password.equals(pass)) {count++;continue;}isPass = true; // 密码通过验证System.out.print("请输⼊⾦额:");amount = input.nextInt();while (amount > 0) {if (amount <= 1000 && amount % 100 == 0) {System.out.println("您取了" + amount + "元");System.out.println("交易完成,请取卡!");break; // 完成交易,退出} else {System.out.print("您输⼊⾦额的⾦额不合法,请重新输⼊:");amount = input.nextInt();continue; // 继续让⽤户输⼊⾦额}}}if (!isPass) { // ⽤户输⼊了3次错误密码System.out.print("密码错误,请取卡!");}}}。

模拟ATM代码

模拟ATM代码

package com.lovo.atm;import java.util.Scanner;public class A TM {private int cash = 50000;private final int MAX_CASH = 100000;private User theUser;public void run(){this.welcome();this.initData();boolean flag = this.login();if(flag){while(true){int choice = this.choice();switch(choice){case 1:this.queryMoney();break;case 2:this.saveMoney();break;case 3:this.getMoney();break;case 4:this.changPwd();break;case 5:this.exit();break;default:System.out.println("没有该功能,请重新选择!");break;}}}else{System.out.println("对不起,三次登陆失败!你的卡被没收!");}}private void welcome(){System.out.println("*************************************");System.out.println("* *");System.out.println("* 欢迎使用A TM系统*");System.out.println("* *");System.out.println("* *");System.out.println("* *");System.out.println("*************************************");}private void initData(){this.theUser = new User();this.theUser.setUsername("t90");this.theUser.setPassword("123456");this.theUser.setAccount(10000);}private boolean login(){Scanner scan = new Scanner(System.in);int num = 0;do{System.out.println("请输入您的用户名:");String inputName = scan.next();System.out.println("请输入您的密码:");String inputPwd = scan.next();if(inputName.equals(this.theUser.getUsername()) &&inputPwd.equals(this.theUser.getPassword())){System.out.println("登陆成功!欢迎您," + inputName);return true;}else{System.out.println("用户名密码有误,请查证!");}num++;}while(num < 3);return false;}private int choice(){Scanner scan = new Scanner(System.in);System.out.println("*************************************");System.out.println("* 1.查询余额*");System.out.println("* 2.存款*");System.out.println("* 3.取款*");System.out.println("* 4.修改密码*");System.out.println("* 5.退出*");System.out.println("*************************************");return scan.nextInt();}private void queryMoney(){}private void saveMoney(){}private void getMoney(){}private void changPwd(){}private void exit(){}}package com.lovo.atm;public class User {private String username;private String password;private int account;public int getAccount() {return account;}public void setAccount(int account) {this.account = account;}public String getPassword() {return password;}public void setPassword(String password) { this.password = password;}public String getUsername() {return username;}public void setUsername(String username) { ername = username;}}。

模拟ATM程序代码

模拟ATM程序代码
system("cls");
if(p)
{
while(t<3)
{
i=0;
printf("\n\t密码: ");
while((ch=getch())!='\r')
{
pass[i++]=ch;
putchar('*');
}
pass[i]='\0';
if(strcmp(p->password,pass)==0)
p=head;
system("cls");
if(p)
{
printf("\n");
printf("\n\t账号: ");
scanf("%s",acc);
while(p)
{
if(strcmp(p->account,acc)==0)
break;
else p=p->next;
}
while(t<3)
{
i=0;
printf("〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n");
printf("〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n");
printf("〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n");
printf("〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n");
printf("〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n");
{
system("cls");
printf("\n\t杰西银行ATM自动存取款机用户登录成功\n");

ATM自助取款机系统java代码(大全)

ATM自助取款机系统java代码(大全)

ATM自助取款机系统java代码(大全)第一篇:ATM自助取款机系统java代码(大全)public void actionPerformed(ActionEvent e)//界面显示控制 {String IC_Number=“";String password=”“;String IC_No=”“;z30.setVisible(false);floatleftmoney=0;floatmoneys=0;float mon=0;float money1=0;float money2=0;if(true){int No_50=0,No_100=0;String strin=”select NO_50,NO_100 from ATM ATM_ID='123456789'“;ResultSetrsSQLSelect=executeQuery(stri n);try{ if(rsSQLSelect.next()){No_50=Integer.parseInt(rsSQLSelect.getString(”NO_50“));No_100=Integer.parseInt(rsSQLSelect.getString(”NO_100“));where}}catch(Exception er){System.out.println(”查询ATM机信息出错!“);}if(No_50==0&&No_100==0){z1.setVisible(false);t1.setText(”对不起,本ATM自动取款机暂停服务!“);cl.show(c,”1“);}}cl.show(c,”1“);if(e.getSource()==z1){t3.setText(”“);text1.setText(”“);cl.show(c,”2“);}if(e.getSource()==z4||e.getSource()==z6||e.getSource()==z1 1||e.getSource()==z16||e.getSource()==z18||e.getSource()==z22) { closeDBConnectio n();cl.show(c,”1“);}if(e.getSource()==z2){ closeDBConnection();System.exit(0);}if(e.getSource()==z3){ IC_Number=text1.getText().trim();if(getname(IC_Number)){z5.setVisible(true);pw1.setVisible(true);t4.setVisible(true);pw1.setText(”“);t5.setText(”“);cl.show(c,”3“);}else{t3.setText(”您输入的卡号不存在,请重新输入!“);cl.show(c,”2“);}}if(e.getSource()==z5){password=pw1.getText().trim();IC_Number=text1.getText().tr im();if(!login(IC_Number,password)){t5.setText(”您输入的密码错误,请重新输入!“);pw1.setText(”“);n--;cl.show(c,”3“);}else{t5.setText(”“);cl.show(c,”4“);}if(n<0){n=2;t5.setText(”您已经三次输入错误密码,谢谢您的使用,欢迎下次光临!“);z5.setVisible(false);pw1.setVisible(false);t4.setVisible(false);cl.show(c,”3“);}}if(e.getSource()==z7){t33.setText(”“);cl.show(c,”5“);}if(e.getSource()==z8)//余额查询 { DBAccess d=new DBAccess();String str3=”“;String stri=”“;IC_Number=text1.getText().trim();t29.setText(IC_Number);leftmoney=getmoney(IC_Number);t30.setText(Float.toString(leftmoney));stri=”selectbank_name from IC,bank where IC.bank_NO=bank.bank_NO and IC_ID='“+IC_Number+”'“;ResultSetrsSQLSelect=d.executeQu ery(stri);try{if(rsSQLSelect.next()){str3=rsSQLSelect.getString(”bank_name“);//mit();}} catch(Exception er){}t32.setText(str3);cl.show(c,”10“);}if(e.getSource()==z9){t23.setText(”“);cl.show(c,”9“);}if(e.getSource()==z10){t28.setText(”“);cl.show(c,”11“);}if(e.getSource()==z12){ DBAccess d=new DBAccess();IC_Number=text1.getText().trim();fetchmoney=Integ er.parseInt(text2.getText());if(fetchmoney<=0){t9.setText(”取款金额非法!请重新输入!“);text2.setText(”“);cl.show(c,”6“);return;}if(fetchmoney>1000){t9.setText(”每次交易金额最大为1000元!“);text2.setText(”“);cl.show(c,”6“);return;}if(fetchmoney%50!=0){t9.setText(”取款金额只能为50的倍数!“);text2.setText(”“);cl.show(c,”6“);return;} leftmoney=getmoney(IC_Number);if(fetchmoney>leftmoney){t9.setText(”您的余额不足,请重新输入取款金额!“);text2.setText(”“);cl.show(c,”6“);return;}int No_50=0,No_100=0,x_50=0,x_100=0,mo=0;String str1=”select NO_50,NO_100 from ATM where ATM_ID='123456789'“;ResultSetrsSQLSelect=d.executeQuery(s tr1);try{ if(rsSQLSelect.next()){No_50=Integer.parseInt(rsSQLSelect.getString(”NO_50“));No_100=Integer.parseIn t(rsSQLSelect.getString(”NO_100“));}}catch(Exception er){System.out.println(”查询ATM机信息出错!“);}x_100=fetchmoney/100;if(No_100{ mo=fetchmoney-No_100*100;x_50=mo/50;if(x_50>No_50){t9.setText(”取款机现钞不足!“);text2.setText(”“);cl.show(c,”6“);return;}else{No_50=No_50-x_50;No_100=0;}}else{No_100=No_100-x_100;x_50=(fetchmoney-x_100*100)/50;if(x_50>No_50){t9.setText(”取款机50面值现钞不足!“);text2.setText(”“);cl.show(c,”6“);return;}else{No_50=No_50-x_50;}}String str2=”update ATM set NO_50=“+No_50+” where ATM_ID='“+ATM_id+”'“;String str3=”update ATM set NO_100=“+No_100+” whereATM_ID='“+ATM_id+”'“;d.executeUpdate(str2);d.executeUpd ate(str3);setmoney(fetchmoney,IC_Number);t12.setText(Float.toString(fetchmoney));cl.show(c,”7“);text2.setText(”");第二篇:ATM取款机java课程设计黄淮学院JAVA 课程设计报告题目:《ATM柜员机》课程设计学院:信息工程学院专业:计算机科学与技术指导老师:二0一三年六月目录课程设计过程概述.......................................................................................3 2 课程设计题目描述和基本设计要求...........................................................3 3 系统需求分析...............................................................................................3 3.1 功能需求分析···················································································· 3 3.2 其他需求分析.................................................................................... 4 4 系统设计........................................................................................................4 4.1 总体设计........................................................................................... 4 4.2 ATM柜员机界面设计......................................................................... 5 4.3 各功能模块设计.. (7)4.3.1 登陆页面模块设计............................................................. 7 4.3.2 选择服务模块设计............................................................. 8 4.3.3 取款模块设计..................................................................... 9 4.3.4 修改密码模块设计............................................................. 9 4.3.5 退卡模块设计. (10)4.4 异常处理情况说明.......................................................................... 10 5 系统实现与测试.........................................................................................11 6 课程设计总结.............................................................................................13 6.1 遇到的问题及解决办法.................................................................. 13 6.2 心得体会......................................................................................... 14 参考文献..........................................................................................................15 附录 (15)ATM初始账号:000000初始密码:123456ATM柜员机课程设计过程概述2013年6月,JAVA课程设计在1#楼六楼机房进行,持续时间为两周。

ATM柜员机模拟系统_代码

ATM柜员机模拟系统_代码

Win.javaimport 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){modify.setSQL("INSERT INTO XX VALUES('"+text[4].getText()+"','"+text[0].getText()+"','"+text[1].getText()+"','"+tex t[2].getText()+"','"+text[3].getText()+"')");String backMess=modify.modifyRecord();show.append("添加新用户"+backMess);}else if(e.getSource()==C){Connection con=null;Statement sql;ResultSet rs = null;try{double n=2000;con=DriverManager.getConnection("jdbc:odbc:XX","","");con.setAutoCommit(false);sql=con.createStatement();rs=sql.executeQuery("SELECT * FROM XX WHERE 卡号='123456'");//查询rs.next();double money=rs.getDouble(5);System.out.println("操作前用户的余额:"+money);double money1=money+n; //存款sql.executeUpdate("UPDATE XX SET 余额=+'"+money1+"' WHERE 卡号='123456'"); //存款后更新余额mit();con.setAutoCommit(true); //提交事务结果到数据库sql=con.createStatement(); //创建数据库操作对象}catch(SQLException e1){ try{ con.rollback(); } //如果操作失败则结束事务catch(SQLException exp){}System.out.println(""+e);}}else if(e.getSource()==Q){ Connection con=null;Statement sql;ResultSet rs = null;try{double n=5000;con=DriverManager.getConnection("jdbc:odbc:XX","","");con.setAutoCommit(false);sql=con.createStatement();rs=sql.executeQuery("SELECT * FROM XX WHERE 卡号='123456'");rs.next();double money=rs.getDouble(5);System.out.println("操作前用户的余额:"+money);double money2=money-n; //取款sql.executeUpdate("UPDATE XX SET 余额=+'"+money2+"' WHERE 卡号='123456'"); //取款后更新余额mit();con.setAutoCommit(true);sql=con.createStatement();}catch(SQLException e1){ try{ con.rollback(); }catch(SQLException exp){}System.out.println(""+e);}}else if(e.getSource()==update){modify.setSQL("UPDATE XX SET XX.密码 =+'"+text[2].getText()+"' WHERE (((XX.卡号)=+'"+text[0].getText()+"'));");String backMess=modify.modifyRecord();show.append("修改密码"+backMess);}else if(e.getSource()==delete){modify.setSQL("DELETE * FROM XX WHERE (((XX.卡号)=+'"+text[0].getText()+"'));");String backMess=modify.modifyRecord();show.append("删除用户信息"+backMess);}else if(e.getSource()==select){Query query =new Query();query.setDatasoureName("XX");query.setTableName("XX");Object a[][]=query.getRecord();String b[]={"序号","卡号","","密码","余额"};table=new JTable(a,b);JFrame frame=new JFrame();frame.add(new JScrollPane(table));frame.setVisible(true);frame.setBounds(400,400,600,200);}}public void setBounds(int i, int j, int k, int l) {}}Operation.javaimport java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class Operation{String datasourceName=""; //数据源名称String SQL,message=""; //表名public Operation() //增删改的主代码{try{ Class.forName(".microsoft.sqlserver.jdbc.SQLServerDriver"); } //操作数据源catch(Exception e){}}public void setSQL(String SQL) //建立一个新的数据源{ this.SQL=SQL; }public void setDatasourceName(String s){ datasourceName=s.trim(); }public String modifyRecord(){Connection con=null;Statement sql=null;try{ String uri="jdbc:odbc:"+datasourceName;String id="";String password="";con=DriverManager.getConnection(uri,id,password);sql=con.createStatement();sql.execute(SQL);message="操作成功";con.close();}catch(SQLException e){ message=e.toString(); }return message;} /*数据源读取初始化*/public void setTableName(String string) {} //表名public Object[][] getRecord() //存放操作结果数组{ return null; }}Query.javaimport java.sql.*;import .httpserver.Authenticator.Result;public class Query{ String datasourceName=""; //数据源名String tableName=""; //表名Object a[][];public Query(){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");} //桥接器 catch(ClassNotFoundException e){System.out.print(e);}}public void setDatasoureName(String s){ datasourceName=s.trim(); }public void setTableName(String s){ tableName=s.trim(); }public Object[][] getRecord() //获取表中记录{Connection con;PreparedStatement sql; //预处理命令ResultSet rs; //结果集try{String uri="jdbc:odbc:"+datasourceName;String number="";String password="";con=DriverManager.getConnection(uri,number,password); //初始化连接DatabaseMetaData metadata=con.getMetaData();//连接对象调用getMetaData()方法返回一个DatabaseMetaData对象ResultSet rs1=metadata.getColumns(null,null,tableName,null);//将表中的字段信息以行列的形式存储在Result中int 字段个数=0;while(rs1.next()){ 字段个数++;}int n=getAmount();a=new Object[n][字段个数];sql=con.prepareStatement("SELECT * FROM "+tableName); //查询表名rs=sql.executeQuery();int m=0;while(rs.next()) //输出结果集中的数据{ for(int k=1;k<=字段个数;k++){ a[m][k-1]=rs.getString(k); }m++;}con.close();}catch(SQLException e){ System.out.println("请输入正确的表名"+e); }return a;}public int getAmount(){Connection con;Statement sql;ResultSet rs;try{String uri="jdbc:odbc:"+datasourceName;String id="";String password="";con=DriverManager.getConnection(uri,id,password);sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_RE AD_ONLY); //以只读方式滚动查询rs=sql.executeQuery("SELECT * FROM "+tableName); //获取所在行st();int rows=rs.getRow(); //当前游标所指行号return rows;}catch(SQLException exp){System.out.println(""+exp);return 0;}}public void inputQueryResult() {}}ATM.javapublic class ATM {public static void main(String args[]){ Win win=new Win();win.setBounds(400,300,400,300); //设置组件在容器中的位置和本身的大小win.setTitle("ATM自动柜员机");}}。

pythonatm机程序代码

pythonatm机程序代码

pythonatm机程序代码Python ATM机程序代码随着科技的不断发展,ATM机已经成为了人们日常生活中不可或缺的一部分。

ATM机的出现,不仅方便了人们的生活,也提高了人们的生活质量。

而在ATM机的背后,是一系列复杂的程序代码在运行。

本文将介绍一种基于Python语言的ATM机程序代码。

一、ATM机的基本功能ATM机的基本功能包括:查询余额、取款、存款、转账、修改密码等。

在Python ATM机程序代码中,这些功能都被封装成了函数,方便调用。

1.查询余额查询余额是ATM机最基本的功能之一。

在Python ATM机程序代码中,查询余额的函数如下:```def query_balance():print("您的余额为:", balance)```其中,balance为全局变量,表示用户的余额。

2.取款取款是ATM机的另一个重要功能。

在Python ATM机程序代码中,取款的函数如下:```def withdraw():global balanceamount = int(input("请输入取款金额:"))if amount > balance:print("余额不足!")else:balance -= amountprint("取款成功!")print("您的余额为:", balance)```其中,amount为用户输入的取款金额,如果余额不足,则提示“余额不足!”;否则,从余额中扣除取款金额,并提示“取款成功!”。

3.存款存款是ATM机的另一个重要功能。

在Python ATM机程序代码中,存款的函数如下:```def deposit():global balanceamount = int(input("请输入存款金额:"))balance += amountprint("存款成功!")print("您的余额为:", balance)```其中,amount为用户输入的存款金额,将存款金额加入余额中,并提示“存款成功!”。

C语言模拟ATM机的编写程序

C语言模拟ATM机的编写程序

C语言模拟ATM机的编写程序#include <stdio.h>void main(){long int a,b,c,d,e,f,g,k,l,m,n,o,p,h;n=0;h=10000;k=123456;loop0: printf("\t\t\t欢迎使用中国邮政ATM取款机!\n\n");printf("请插入你的银行卡,并输入你的密码,三次密码输入错误,将终止程序:\n");scanf("%ld",&l);if(k==l){loop1: printf("请输入你选择的操作类型:\n");printf("请输入0-4进行选择:\n");printf("1:<转账>\t2:<查询>\t3:<取款>\t4:<修改密码>\t0:<取卡>\n");scanf("%ld",&a);switch(a){case 1: printf("请输入转账账号:\n");scanf("%d",&o);printf("请输入你需要转账的金额:\n");scanf("%d",&p);printf("请输入你选择的操作类型:\n");printf("请输入0或1进行选择:\n");printf("1:<确认>\t0:<返回>\n");h=10000-p;scanf("%ld",&b);switch(b){case 1:printf("\n转账%d元人民币成功!\n\n",p);goto loop1;break;case 0:goto loop1;break;default :printf("\n无此操作项!\n\n");goto loop1;}break;loop4:case 2:printf("请输入你选择的操作类型:\n");printf("请输入0-2进行选择:\n");printf("1:<查询余额>\t2:<查询明细>\t0:<返回>\n");scanf("%ld",&c);switch(c){case 1:printf("\n你的余额为:%5d\n\n",h);goto loop1;break;case 2:printf("\n你的账单为:******。

C语言ATM机代码,简单版。

C语言ATM机代码,简单版。

C语⾔ATM机代码,简单版。

#include <stdio.h>void main(){int i,j;int code=0,flag=0;int choice1=0,choice2=0,choice3=0;int RMB=100000,WB=100000;int cash1=0,cash2=0;char instruct='n';printf("************************************************************\n");printf("* *\n");printf("* *\n");printf("* 欢迎使⽤怪精 ATM取款机 *\n");printf("* *\n");printf("* 监制: rain version number:1.0.1 *\n");printf("* *\n"); printf("* *\n"); printf("************************************************************\n");printf("请键⼊您的密码:\n"); /*密码为9527*/for(i=0;i<3;i++){scanf("%d",&code);system("cls");if(code==9527){break;}if(code!=9527){printf("密码有误!请重新输⼊:\n");flag+=1;}}if(flag==3){printf("密码错误超限,请回去⾯壁思过,再见!");return;}while(instruct=='N'|| instruct=='n' ){if(code==9527){printf("请选择您所需服务!\n");printf("1.查询余额 2.取款 3.退出");scanf("%d",&choice1);system("cls");switch(choice1){case 1:printf("1.⼈民币 2.外汇");scanf("%d",&choice2);system("cls");switch(choice2){case 1:printf("您的⼈民币账户余额:¥%d\n",RMB);break;case 2:printf("您的外币账户余额:$%d\n",WB);break;}break;case 2:printf("1.⼈民币 2.外币");scanf("%d",&choice3);system("cls");switch(choice3){case 1:printf("请输⼊取款⾦额:\n");scanf("%d",&cash1);RMB=RMB-cash1;printf("您的账户余额为:¥%d\n",RMB); break;case 2:printf("请输⼊取款⾦额:\n");scanf("%d",&cash2);WB=WB-cash2;printf("您的账户余额为:$%d\n",WB); break;}break;case 3:break;}printf("是否退出程序<y表⽰是,n表⽰否>:"); scanf("%s",&instruct);}}}。

ATM自动取款机模拟程序

ATM自动取款机模拟程序

银行ATM自动取款机模拟程序本程序需要两个文件,ATM程序文件及系统管理员管理,两个文件必须在同一个文件或同一路径下!1.ATM程序文件://////CUser.h //////////#include<fstream>using namespace std;struct user{int Money;int User;int Password;};class CAtm{public:int Login();//登陆void GetBalance();//查询余额void ChangePassword();//修改密码void DrawMoney();//取款void TranserAccounts();//转账void BankSaving();//存款int Exit();//退出系统private:int Position;//数据位置user us[5];//保存文件内容user us[20];user s;};///////////User.cpp /////////////#include<iostream>#include<fstream>#include"CUser.h"using namespace std;int CAtm::Login() //登录{ int save[5];//保存被吃卡的用户的账号bool flag;int i,j,k,num;fstream iofile("atm.dat",ios::in|ios::binary);iofile.read((char*)&us,sizeof(us));fstream in("jiesuo.dat",ios::in|ios::out|ios::binary);in.read((char*)&save,sizeof(save));cout<<"请输入你的账号:";cin>>num;flag=true;for(i=0;i<5;i++){ if(us[i].User==num) {flag=false;j=i;}}if(flag==true) { cout<<"账号不存在!"<<endl;return 0;}for(k=0;k<5;k++)//判断账号是否已经被锁{if(save[k]==num){ cout<<"你的账号已锁,请寻系统管理员解锁!"<<endl;return 0;}}k=0;cout<<"请输入密码:";cin>>num;for(i=1;i<=3;i++){ k++;if(us[j].Password!=num){ if(k==3){ cout<<"你的卡被锁定了,请找系统管理员解锁!"<<endl;save[j]=us[j].User;in.close();fstream out("jiesuo.dat",ios::out|ios::binary);out.write((char*)&save,sizeof(save));out.close();return 0;}else { cout<<"请重新输入密码:";cin>>num;}}}cout<<"密码正确,进入系统!"<<endl;er=us[j].User;s.Money=us[j].Money;s.Password=us[j].Password;Position=j;iofile.close();return 1;}void CAtm::GetBalance()//查询余额{ cout<<"您的账户余额:"<<s.Money<<endl;}void CAtm::ChangePassword()// 修改密码{ fstream iofile("atm.dat",ios::in|ios::out|ios::binary);cout<<"请输入新密码:";cin>>s.Password;iofile.seekp((Position+1)*sizeof(s),ios::beg);iofile.write((char*)&s,sizeof(s));iofile.close();}void CAtm::DrawMoney()//取款{int j;cout<<"请输入取款金额:";cin>>j;while(j>s.Money){cout<<"金额不足,请重新输入取款金额:";cin>>j;}s.Money=s.Money-j;fstream iofile("atm.dat",ios::in|ios::out|ios::binary);iofile.seekp((Position+1)*sizeof(s),ios::beg);iofile.write((char*)&s,sizeof(s));cout<<"取款金额是:"<<j<<" "<<"取款成功!!"<<endl;iofile.close();}void CAtm::TranserAccounts()//转账{ int s1,p,i;cout<<"请输入要转入的账号:";cin>>s1;bool flag=true;for(i=0;i<5;i++){ if(us[i].User==s1) {flag=false; p=i;}}if(flag==true)cout<<"账号不存在!"<<"请重新输入账号:";cout<<"请输入要转入的金额:";cin>>s1;while(s1>s.Money){cout<<"请重新输入转入金额:";cin>>s1;}us[p].Money=s1;s.Money=s.Money-s1;us[Position].Money=s.Money;fstream iofile("atm.dat",ios::in|ios::out|ios::binary);iofile.write((char*)&us,sizeof(us));iofile.close();cout<<"转账成功!"<<endl;}void CAtm::BankSaving()//存款缴费{ int k;cout<<"请输入要存款的金额:";cin>>k;s.Money=s.Money+k;fstream iofile("atm.dat",ios::in|ios::out|ios::binary);iofile.seekp((Position+1)*sizeof(s),ios::beg);iofile.write((char*)&s,sizeof(s));iofile.close();}int CAtm::Exit()//退出系统{cout<<" 谢谢使用本程序!!!"<<endl;return 0;}//////////////main.cpp ////////////////#include<iostream>#include"CUser.h "using namespace std;int main(){ cout<<" 欢迎使用银行ATM自动取款机模拟程序!"<<endl;cout<<endl;cout<<" 首次使用本程序,请先运行系统管理员程序!"<<endl;cout<<endl;cout<<" 说明:账号,密码,金额相同"<<endl;cout<<endl;cout<<" 文件中定义为5个账户,分别为1.2.3.4.5 "<<endl;cout<<endl;cout<<" 初始化时,请注意这些!!!"<<endl;cout<<endl;CAtm atm;if(atm.Login()==1){ cout<<" 1 查询余额"<<endl;cout<<" 2 修改密码"<<endl;cout<<" 3 取款"<<endl;cout<<" 4 转账"<<endl;cout<<" 5 存款"<<endl;cout<<" 0 退出系统"<<endl;int n;cout<<"请选择操作:";while(cin>>n){if(n==0) return atm.Exit();//退出系统if(n==1) atm.GetBalance();//查询余额if(n==2) atm.ChangePassword();//修改密码if(n==3) atm.DrawMoney();//取款if(n==4) atm.TranserAccounts();//转账if(n==5) atm.BankSaving();//存款cout<<"请继续选择操作:";}}return 0;}2.系统管理员程序:#include<iostream>#include<fstream>using namespace std;struct user{int Money;int User;int Password;};int main(){ int a[5]={0,0,0,0,0};int n;user us[20];cout<<" 欢迎使用系统管理员程序"<<endl;cout<<endl;cout<<" 说明:本程序只能建立5个账户!"<<endl;cout<<endl;cout<<" 请输入相应数字选择操作:"<<endl;cout<<endl;cout<<"----------------------------"<<endl;cout<<"- 0 结束操作-"<<endl;cout<<"- 1 用户信息-"<<endl;cout<<"- 2 吃卡解锁-"<<endl;cout<<"- 3 系统初始化-"<<endl;cout<<"----------------------------"<<endl;cout<<endl;cout<<"说明:用户信息的操作是进行开户操作!"<<endl;cout<<" 系统初始化是采用已定义好的5个账户,即原始系统初始化!"<<endl;while(cin>>n){ if(n==1){ user u[5];int i;fstream iofile("..\\ATM自动取款机\\atm.dat",ios::in|ios::out|ios::binary);if(!iofile){cerr<<"打开文件失败!";return -1;}cout<<"请输入数据:"<<endl;cout<<"账号密码金额"<<endl;for(i=0;i<5;i++){cin>>u[i].User>>u[i].Password>>u[i].Money;}iofile.write((char*)&u,sizeof(u));iofile.close();cout<<endl;cout<<"数据输入结束!"<<endl;cout<<endl;continue;}if(n==2){ fstream iofile("..\\ATM自动取款机\\atm.dat",ios::in|ios::binary);iofile.read((char*)&us,sizeof(us));fstream in("..\\ATM自动取款机\\jiesuo.dat",ios::in|ios::out|ios::binary);int i,j,p;bool flag;cout<<"请输入要解锁的账号:";cin>>j;flag=true;while(flag==true){for(i=0;i<5;i++){ if(j==us[i].User) { flag=false;p=i; break; }if(flag==true) { cout<<"账号不存在!"<<endl;cout<<"请重新输入账号:"; }cin>>j;}}a[p]=0;cout<<"解锁成功"<<endl;in.write((char*)&a,sizeof(a));in.close();continue;}if(n==3){ cout<<"系统初始化"<<endl;fstream out("..\\ATM自动取款机\\jiesuo.dat",ios::out|ios::binary);out.write((char*)&a,sizeof(a));user u[5];int i;fstream iofile("..\\ATM自动取款机\\atm.dat",ios::out|ios::binary);if(!iofile){cerr<<"打开文件失败!";return -1;}for(i=0;i<5;i++){u[i].User=i+1;u[i].Password=i+1;u[i].Money=i+1;}iofile.write((char*)&u,sizeof(u));iofile.close();cout<<"初始化成功!!!"<<endl;continue;}if(n==0){ return 0;}}return 0;}。

c语言银行自动存取款机模拟

c语言银行自动存取款机模拟

C语言银行自动存取款机模拟介绍本文档将介绍如何使用C语言编写一个简单的银行自动存取款机模拟程序。

该程序可以模拟银行客户进行存款和取款操作,并实时更新账户余额。

功能此银行自动存取款机模拟程序具有以下功能:•登录功能:用户可以输入账号和密码进行登录。

•存款功能:用户可以输入存款金额进行存款,存款成功后会更新账户余额。

•取款功能:用户可以输入取款金额进行取款,取款成功后会更新账户余额。

•查询余额功能:用户可以查看账户余额。

•退出功能:用户可以选择退出程序。

程序设计数据结构在程序中,需要定义一个结构体来表示银行客户的账户信息。

每个账户包含账号、密码和余额:struct Account {int accountNumber;char password[20];double balance;};登录功能首先,用户需要输入账号和密码进行登录。

可以定义一个函数来实现登录功能:int login(struct Account *accounts, int numAccounts, int accountNumber, char *password) {for (int i = 0; i < numAccounts; i++) {if (accounts[i].accountNumber == accountNumber && strcmp(accounts[i].password, password) == 0) {return i; // 返回账号在数组中的索引}}return -1; // 登录失败,返回-1}存款和取款功能存款和取款功能可以分别定义两个函数来实现。

存款函数会增加账户余额,取款函数会减少账户余额。

```c void deposit(struct Account *account, double amount) { account->balance += amount; }void withdraw(struct Account *account, double amount) { if (account->balance >= amount) { account->balance -= amount; printf(。

ATM自动取款机模拟程序

ATM自动取款机模拟程序

2.3,ATM自动取款机模拟程序2.3.1总体设计:流程图2.3.2详细设计:登陆系统主界面开户业务模板:void openAccount()。

主要功能在于新开账户(也可为下面转账系统服务等做铺。

)且储存信息。

经提升,密码已可以包含字符。

用户可根据提示,一步步完成操作。

主要代码:void openAccount()//开户函数{system("cls");cout<<"\t************************************\n"<<endl;cout<<"\t* 开户业务*\n"<<endl;cout<<"\t************************************\n"<<endl;cout<<"\t欢迎使用开户业务,请按照提示操作!\n"<<endl;cout<<"\n"<<endl;cout<<"\t\t请输入你的用户名:";cin>>user[st].n;cout<<"\t\t请输入你的卡号:";int k1;//k1表示新用户输入的卡号cin>>k1;int a=-1;//用来做标示for(int i=0;i<st;i++){if(user[i].k==k1){a++;}}if(a==-1){user[st].k=k1;//将k1的数值赋值给user[st].k保存起来cout<<"\t\t请输入你的性别:";char xb[5];cin>>xb;strcpy(user[st].sex,xb);cout<<"\t\t请输入密码:";char m2[20];cin>>m2;strcpy(user[st].mm,m2);//保存用户输入可以包含字符的密码cout<<"\t\t请输入你的开户金额:";float km;cin>>km;//km表示用户的开户金额user[st].je=km;//je将开户时的金额赋值给user[st].je保存if(km<10){cout<<"\t\t你输入的金额小于10元或输入有误!\n";}else{cout<<"\t\t恭喜你,开户成功!\n"<<endl;cout<<"\t\t你的用户名为:"<<user[st].n<<endl;cout<<"\t\t你的卡号为:"<<user[st].k<<endl;cout<<"\t\t你的当前余额为:"<<user[st].je<<endl;cout<<"\n"<<endl;st++;//用于统计新开用户后现有的用户数}}else{cout<<"\t\t你输入的卡号已存在!请核实!\n"<<endl;}}缴费业务模板:主要提供给用户缴费服务关键代码:cout<<"\t\t请输入你要缴费的金额:";float j1;//j1表示用户存款时存取的金额cin>>j1;user[a].je=user[a].je+j1;cout<<"\t\t恭喜你,缴费成功!当前余额为:"<<user[a].je<<endl; 取款业务模板:主要功能用于用户的提款cout<<"\t\t请输入你要取出的金额:";float j1;//j1表示用户粗款时存取的金额cin>>j1;if(j1>user[a].je){cout<<"\t\t\a\a\a你输入账户余额仅为:"<<user[a].je;}else{user[a].je=user[a].je-j1;cout<<"\t\t取款成功!当前余额为:"<<user[a].je<<endl;查询余额业务模板:主要提供用户余额的查询服务cout<<"\t\t当前余额为:"<<user[a].je<<endl;查询个人信息业务模板:主要提供用户个人信息的模板cout<<"\t\t\t用户名:"<<user[a].n<<endl;cout<<"\t\t\t性别:"<<user[a].sex<<endl;cout<<"\t\t\t卡号:"<<user[a].k<<endl;cout<<"\t\t\t当前余额:"<<user[a].je<<endl;转账业务模板:提供用户转取个人金额服务的模板关键代码:cout<<"\t\t请输入你要转入的用户的账号:";int m2,b=-1;//b用来标示cin>>m2;for(int i=0;i<st;i++){if(user[i].k==m2){b=i;}} Array if(b!=-1){cout<<"\t\t你要转入用户的信息:\n"<<endl;cout<<"\t\t姓名:"<<user[b].n<<endl;cout<<"\t\t性别:"<<user[b].sex<<endl;cout<<"\t\t\a是否继续??继续请按任意键"<<endl;char n;n=getch();cout<<"\n\t\t请输入你要转取的金额:";float j1;//j1表示用户存款时存取的金额cin>>j1;if(j1>user[a].je){cout<<"\t\t你的账户余额不足,不能进行转账!"<<endl;}else{user[a].je=user[a].je-j1;cout<<"\t\t\a转账成功!当前你账户余额为:"<<user[a].je<<endl;}对卡服务模板:主要提供用户操作完毕后退卡的服务主要代码:cout<<"\t\t按Enter键返回主菜单!\n"<<endl;getchar();system("cls");代码:4.3 ATM自动取款机模拟程序(面向对象)#include<iostream.h>#include<stdio.h>#include<stdlib.h>class ATM{public:char name[10];//保存用户姓名long cardID;//保存卡号long psw;//密码ATM(){cardID=123123;psw=123;money=100;}void openAccount()//开户函数{system("cls");cout<<"\t************************************\n"<<endl;cout<<"\t* 开户业务*\n"<<endl;cout<<"\t************************************\n"<<endl;cout<<"\t欢迎使用开户业务,请按照提示操作!\n"<<endl;cout<<"\n"<<endl;cout<<"\t\t请输入您的姓名:"<<endl;cin>>name;cout<<"\t\t请输入您的卡号:"<<endl;cin>>cardID;cout<<"\t\t请输入您的密码:"<<endl;cin>>psw;cout<<"\t\t请输入您的预存金额:"<<endl;cin>>money;cout<<"\t\t恭喜您,开户成功!\n"<<endl;}void saveMoney()//缴费{system("cls");cout<<"\t************************************\n"<<endl;cout<<"\t* 存款业务*\n"<<endl;cout<<"\t************************************\n"<<endl;cout<<"\t欢迎使用存款业务,请按照提示操作!\n"<<endl;cout<<"\n"<<endl;long cid;long psw1;int money1;cout<<"\t\t请输入您的卡号:";cin>>cid;cout<<"\t\t请输入您的密码:";cin>>psw1;if(cid==cardID &&psw1==psw){cout<<"\t\t请输入您的存款金额:";cin>>money1;money=money+money1;cout<<"\t\t取款成功,卡上余额为:"<<money<<endl;}else{cout<<"\t\t您输入的卡号或密码有误!"<<endl;}}void takeMoney()//取款{system("cls");cout<<"\t************************************\n"<<endl;cout<<"\t* 取款业务*\n"<<endl;cout<<"\t************************************\n"<<endl;cout<<"\t欢迎使用取款业务,请按照提示操作!\n"<<endl;cout<<"\n"<<endl;long cid;long psw1;int money1;cout<<"\t\t请输入您的卡号:";cin>>cid;cout<<"\t\t请输入您的密码:";cin>>psw1;if(cid==cardID && psw1==psw){cout<<"\t\t请输入您取款的金额:";cin>>money1;money=money-money1;cout<<"\t\t取款成功,您卡上余额为:"<<money;}else{cout<<"\t\t温馨提示:您的卡号或密码错误,注意密码尝试三次后将被吞卡!\n"<<endl;}}void query()//查询余额{system("cls");cout<<"\t************************************\n"<<endl;cout<<"\t* 查询余额业务*\n"<<endl;cout<<"\t************************************\n"<<endl;cout<<"\t欢迎使用查询余额业务,请按照提示操作!\n"<<endl;cout<<"\n"<<endl;long cid;long psw1;cout<<"\t\t请输入您的卡号:";cin>>cid;cout<<"\t\t请输入您的密码:";cin>>psw1;if(cid==cardID && psw1==psw){cout<<"\t\t卡上余额为:"<<money<<endl;}else{cout<<"\t\t您的卡号或密码错误!\n";}}void transfer()//转账{system("cls");cout<<"\t************************************\n"<<endl;cout<<"\t* 转账业务*\n"<<endl;cout<<"\t************************************\n"<<endl;cout<<"\t欢迎使用转账业务,请按照提示操作!\n"<<endl;cout<<"\n"<<endl;long cid;long bcid;long psw1;int money1;cout<<"\t\t请输入您的卡号:"<<endl;cin>>cid;cout<<"\t\t请输入您的密码:"<<endl;cin>>psw1;if(cid==cardID && psw1==psw){cout<<"\t\t请输入您要转账的卡号:"<<endl;cin>>bcid;cout<<"\t\t请输入您要转账的金额:"<<endl;cin>>money1;money=money-money1;cout<<"\t\t转账成功!您卡上余额为:"<<money<<endl;}else{cout<<"\t\t您的卡号或者密码错误!"<<endl;}}int print1(){return cardID;}int print2(){return psw;}private:int number;int password;int money;};void main(){ATM per;int i=0,n,psw;int cardID;cout<<"\t*************************************************\n"<<endl;cout<<"\t* ICBC *\n"<<endl;cout<<"\t* 欢迎进入中国工商银行*\n"<<endl;cout<<"\t* ATM自助服务系统*\n"<<endl;cout<<"\t*************************************************\n"<<endl;cout<<"\n"<<endl;cout<<"请输入您的卡号:";cin>>cardID;cout<<"请输入您的密码:";cin>>psw;for(;;){if(cardID==per.print1 () &&psw==per.print2 ()){cout<<"请选择您要办理的手续:\n";cout<<"1.开户\n";cout<<"2.缴费\n";cout<<"3.取款\n";cout<<"4.查询\n";cout<<"5.转账\n";cout<<"6.退出\n";cout<<"请选择你要办理的业务:";cin>>n;if(n==6)break;switch(n){case 1:void openAccount();//开户break;case 2:void saveMoney();//缴费break;case 3:void takeMoney();//取款break;case 4:void query();//查询余额break;case 5:void transfer();//转账default:cout<<"你的输入有误,请输入1--7之间的数:\n";continue;}}else{for(i=1;i<3;i++){cout<<"密码或账号错误,请重新输入"<<endl;cout<<"请输入您的卡号:";cin>>cardID;cout<<"请输入您的密码:";cin>>psw;if(cardID==per.print1 () &&psw==per.print2 ())break;elsecontinue;}if(i==3){cout<<"您的密码尝试次数已达到上限,卡已被系统吞吃。

c语言atm机的编程

c语言atm机的编程

C语言ATM机的编程1. 简介ATM(Automated Teller Machine)机是一种自动提款机,它能够为用户提供多种服务,如取款、存款、查询余额、转账等。

本文将介绍如何使用C语言编写一个简单的ATM机程序。

2. 功能需求我们的ATM机程序需要实现以下功能: 1. 用户登录:用户可以输入正确的账号和密码进行登录。

2. 查询余额:用户登录成功后可以查询账户余额。

3. 存款:用户登录成功后可以存入指定金额到账户中。

4. 取款:用户登录成功后可以从账户中取出指定金额。

5. 转账:用户登录成功后可以将指定金额转入其他账户。

3. 程序设计我们将使用结构体来表示用户信息及其相关操作。

首先定义一个结构体User,其中包含用户名、密码和余额三个字段:typedef struct {char username[20];char password[20];double balance;} User;接下来,我们需要实现几个函数来完成不同的操作。

首先是登录函数login():int login(User* users, int numUsers) {char username[20];char password[20];printf("请输入用户名: ");scanf("%s", username);printf("请输入密码: ");scanf("%s", password);for (int i = 0; i < numUsers; i++) {if (strcmp(username, users[i].username) == 0 && strcmp(password, users[i].password) == 0) {printf("登录成功!\n");return i; // 返回用户索引}}printf("用户名或密码错误!\n");return -1; // 登录失败}登录函数会提示用户输入用户名和密码,并与已有的用户信息进行匹配。

ATM自动取款机系统的设计及实现--代码

ATM自动取款机系统的设计及实现--代码

ATM自动取款机系统的设计与实现---代码1.实现类//说明:1.管理员登录密码是:luolin//初始用户import java.util.Scanner;public class Achieve {Scanner in = new Scanner(System.in);public void login_interface()//初始界面{System.out.println("\n\n********************** ");System.out.println("** 欢迎进入ATM机**");System.out.println("**********************");System.out.println(" 选择登录方式:");System.out.println(" 1.管理员");System.out.println(" 2.客户");System.out.println(" 3.退出");System.out.println("**********************\n") ;System.out.print("请输入(1~3):");int n = in.nextInt();Bank_Manager bm = new Bank_Manager();User u = new User();switch(n){case 1 :bm.manager_login_passwd();case 2 :u.login();case 3 :System.out.println("本次操作结束!!");break;default: System.out.println("你输入有误,本次操作结束!!");System.exit(0);}}public static void main(String args[]) {Achieve a = new Achieve();a.login_interface();}}2.用户类:import java.util.Iterator;import java.util.Scanner;public class User {Scanner in = new Scanner(System.in);void login()//登录{boolean sign = true;boolean flag = true;Achieve a = new Achieve();System.out.println("请输入帐号:");int n = in.nextInt();System.out.println("请输入密码:");String m = in.next();Iterator<Bank_Manager> iter = Bank_er_list.iterator();while(iter.hasNext()){Bank_Manager b = iter.next();while(b.zhanghao == n && b.passwd.equals(m)){sign = false;if(flag){user_interface(b);}System.out.print("请输入(1~6或其他):");int s = in.nextInt();switch(s){case1 :deposit(b);System.out.println("\n请按“任意字符+回车”回到登录界面");in.next();user_interface(b);flag=false;continue;case2 :draw_money(b);System.out.println("\n请按“任意字符+回车”回到登录界面");in.next();user_interface(b);flag=false;continue;case3 :serch_money(b);System.out.println("\n请按“任意字符+回车”回到登录界面");in.next();user_interface(b);flag=false;continue;case4 :transform_money(b);System.out.println("\n请按“任意字符+回车”回到登录界面");in.next();user_interface(b);flag=false;continue;case5 :alter_passwd(b);System.out.println("\n请按“任意字符+回车”回到登录界面");in.next();user_interface(b);flag=false;continue;case6 :alter_login();System.out.println("\n请按“任意字符+回车”回到登录界面");in.next();user_interface(b);flag=false;continue;default : a.login_interface();}}}if(sign){System.out.println("账号或密码错误,退出主界面。

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

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

感谢您的耐心观看
汇报人:
添加标题
操作选择:用户选择 要进行的操作
添加标题
操作执行:执行用户 选择的操作,如存款、 取款、转账等
添加标题
操作结果:显示操作 结果,如存款成功、 取款成功、转账成功 等
添加标题
用户退出:用户选择 退出系统,结束程序
程序运行环境
操作系统: Windows、 Linux、Mac
OS等
开发环境: Java
登录按钮:点击登录,验证用户名和密 码
界面美化:使用美观的图标和颜色,提 高用户体验
账户管理模块实现
账户创建: 用户输入 账户信息, 系统自动 生成账户
账户查询: 用户输入 账户号, 系统返回 账户信息
账户修改: 用户输入 账户号和 修改信息, 系统更新 账户信息
账户删除: 用户输入 账户号, 系统删除 账户信息
系统从用户账户 中扣除存款金额
系统将存款金额 存入用户账户
查询余额模块实现
系统从数据库中获取用户银 行卡余额信息
系统将余额信息显示在界面 上
用户输入银行卡号,系统验 证银行卡号是否正确
用户可以查看自己的账户余 额
ATM柜员机模拟程序测 试
测试用例设计
不足:在程序实现过程中遇到了一些困难,如算法优化、界面设计等
展望:希望在未来的学习中,能够更深入地了解Java编程,提高编程能力,实现 更复杂的程序设计
对未来改进和发展的建议
增加用户界面友 好性,提高用户 体验
优化算法,提高 程序运行效率
增加安全机制, 确保用户数据安 全
拓展功能,如支 持在线支付、转 账等
转账:用户可以将资金从一个账户转移到另一个账户。
添加项标题

ATM取款机代码

ATM取款机代码
printf("您的余额不足\n按任意键返回\n");
getch();
}
else
{
person[i].money-=800;
printf(">>>>>>>>>>>>>>>>>\n");
printf("您已取款800元\n按任意键返回\n");
getch();
}
goto no2;
case 4: if(1000> person[i].money)
else
printf(">>>>>>>>>>>>>>>>>\n您输入的帐户有误请重新输入:\n");
}
printf(">>>>>>>>>>>>>>>>>\n");
printf("请选择转帐金额:\n");
scanf("%d",&key2);
switch(key2)
{
case 1:if(100> person[i].money)
getch();
}
goto no2;
case 2:if(400> person[i].money)
{
printf(">>>>>>>>>>>>>>>>>\n");

C语言ATM程序模拟

C语言ATM程序模拟

C语言A T M程序模拟As a person, we must have independent thoughts and personality.一、课题要求1、当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统。

2、查询余额:初始余额为10000元。

3、ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。

4、ATM存款:不能出现负存款。

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

二、代码#include ""#include ""#include ""#include ""#include ""void gotoxy(int x,int y); 改密码 *\n");printf("* 2.查询余额 *\n");printf("* 3.取款 *\n");printf("* 4.实时存款 *\n");printf("* 5.退出 *\n");printf("********************************\n");switch(getch()){case '1': mima(); break;case '2': yu_e(); break;case '3': qukuan(); break;case '4': cunkuan(); break;case '5': exit(); break;default:printf("error\n");}}回 2.退出 *\n");printf("* *\n"); printf("* *\n"); printf("********************************\n"); switch(getch()){case '1': caozuo(); break;case '2': exit(); break;}}. *\n");printf("* *\n"); printf("* *\n");printf("********************************\n"); delay();delay();system("cls");printf("********************************\n"); printf("* *\n"); printf("* 您的余额为 *\n"); printf("* *\n"); printf(" ");printf("%d",YU_E);printf("\n* *\n"); printf("* 1.返回 2.退出 *\n"); printf("********************************\n"); switch(getch()){case '1': caozuo(); break;case '2': exit(); break;}}它 *\n");printf("* *\n"); printf("* 7.返回 8.退出 *\n"); printf("********************************\n");switch(getch()){case '1': panduan(100); break;case '2': panduan(200); break;case '3': panduan(500); break;case '4': panduan(800); break;case '5': panduan(1000); break;case '6':system("cls");printf("********************************\n");printf("* *\n");printf("* 请输入您要取款的金额 *\n");printf("* *\n");printf("* *\n");printf("* *\n");printf("* *\n");printf("********************************\n");gotoxy(14,4);scanf("%d",&temp);panduan(temp); break;case '7':caozuo(); break;case '8':exit(); break;}}回 2.退出 *\n");printf("* *\n");printf("********************************\n");switch(getch()){case '1': qukuan();case '2': exit();}}beishu=z%100;if(beishu!=0){system("cls");delay();printf("********************************\n");printf("* *\n");printf("* 本ATM机只支持 100 的人民币 *\n");printf("* 请重新操作 *\n");printf("* *\n");printf("* 1.返回 2.退出 *\n");printf("* *\n");printf("********************************\n");switch(getch()){case '1': qukuan();case '2': exit();}}if(z==5000||z>5000){system("cls");printf("********************************\n");printf("* *\n");printf("* 每次取款不能超过 5000 元 *\n");printf("* 请重新操作 *\n");printf("* *\n");printf("* 1.返回 2.退出 *\n");printf("* *\n");printf("********************************\n");switch(getch()){case '1': qukuan();case '2': exit();}}YU_E=YU_E-z;success();}. *\n");printf("* *\n"); printf("* *\n"); printf("********************************\n"); delay();delay();system("cls");printf("********************************\n"); printf("* *\n"); printf("* 操作已成功 *\n"); printf("* *\n"); printf("* 1.返回 2.退出 *\n"); printf("* *\n"); printf("* *\n"); printf("********************************\n"); switch(getch()){case '1':caozuo(); break;case '2':exit(); break;}}. *\n");printf("* *\n");printf("* *\n");printf("********************************\n");delay();delay();enter_ATM();}//================================================================/ ///============== 简单转移函数=============//void zhuangyi(){mima();}//========================================//三、部分效果截图。

ATM模拟系统代码

ATM模拟系统代码

#include<stdio.h>#include<stdlib.h>struct time{int year,month,day;float hour,minute,second;char place[50];};struct person{int action;struct time*time;struct person*next;};struct st{ char name[9];int number;int password;int money;struct person*go;struct st*next;};void create(struct st ** head);struct st *check(struct st * head,int a ,int b);void mean ();void display(struct st *p);void revise (struct st *p);void reserch (struct st *p);void save (struct st *p);void take (struct st *p);void main (){int select=1,i=0,a,b;struct st *head=NULL,*p;create(&head);printf("\n\n\n\n\n\n\n\t\t欢迎使用本系统\n\n\t\t帐号:\n\t\t密码:");while(i<3){scanf("%d%d",&a,&b);p=check(head,a,b);if(!p){printf(i<2?"\t\t信息错误,请重新输入\n":"\t\t您无权使用本系统\n");i++;}else break;}if(i==3)exit(0);while(select!=6){ mean();printf("\t\t请选择服务:");scanf("%d",&select);switch(select){case 1:display(p);break;case 2:revise(p);break;case 3:reserch(p);break;case 4:save(p);break;case 5:take(p);break;case 6:printf("\n\t\t谢谢使用\n");break;}}}void create(struct st * *head){struct st *p;FILE *fp;fp=fopen("E:\\取款机.txt","r");while(!feof(fp)){p=(struct st * )malloc(sizeof(struct st));fscanf(fp,"%s",p->name);fscanf(fp,"%d",&p->number);fscanf(fp,"%d",&p->password);fscanf(fp,"%d",&p->money);p->next=*head;*head=p;} }struct st *check(struct st * head,int a ,int b){struct st *p;p=head;while(p){if(p->number==a&&p->password==b)return p;else p=p->next;}return NULL;}void mean (){printf("\n\t\t1: 显示所有信息\n");printf("\t\t2: 修改信息\n");printf("\t\t3: 查看信息\n");printf("\t\t4: 存款\n");printf("\t\t5: 取款\n");printf("\t\t6: 退出系统\n");}void display(struct st *p){printf("\t\t户主:%s\n",p->name);printf("\t\t账号:%d\n",p->number);printf("\t\t余额:%d\n",p->money);}void revise (struct st *p){printf("\t\t旧密码:%d\n",p->password);printf("\t\t请输入新密码:");scanf("%d",&p->password);printf("\t\t当前密码:%d",p->password);}void reserch (struct st *p){printf("\t\t余额: %d\n",p->money);}void save (struct st *p){ int a;printf("\t\t请输入存款金额:");scanf("%d",&a);p->money+=a;}void take (struct st * p){ int a,s=0,b;struct person*mm, *ma;FILE *fp;fp=fopen("E:\\11.txt","r");mm=(struct person*)malloc(sizeof(struct person));p->go=mm;mm->next=NULL;printf("\t\t请输入取款金额:");scanf("%d",&a);while(a<5000){if(p->money>=a){p->money-=a;s+=a;mm->action=a;if(s>50000){fscanf(fp,"%d%d%d",p->go->time->year,p->go->time->month,p->g o->time->day);fscanf(fp,"%f%f%f",p->go->time->hour,p->go->time->minute,p->g o->time->second);fscanf(fp,"%s",p->go->time->place);fclose(fp);}ma=(struct person*)malloc(sizeof(struct person));ma->next=NULL;mm-ma;printf("\n\t\t继续1 返回0 :");scanf("%d",&b);if(b==1){printf("\t\t请输入取款金额:");scanf("%d",&a);}else if(!b)break;elseprintf("\n\t\t输入有误");}else{printf("\t\t对不起,余额不足%d!\n",a);break;}}printf("\n\t\t对不起,每次取款不能超过5000\n");}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Win.javaimport 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){modify.setSQL("INSERT INTO XX VALUES('"+text[4].getText()+"','"+text[0].getText()+"','"+text[1].getText()+"','"+tex t[2].getText()+"','"+text[3].getText()+"')");String backMess=modify.modifyRecord();show.append("添加新用户"+backMess);}else if(e.getSource()==C){Connection con=null;Statement sql;ResultSet rs = null;try{double n=2000;con=DriverManager.getConnection("jdbc:odbc:XX","","");con.setAutoCommit(false);sql=con.createStatement();rs=sql.executeQuery("SELECT * FROM XX WHERE 卡号='123456'");//查询rs.next();double money=rs.getDouble(5);System.out.println("操作前用户的余额:"+money);double money1=money+n; //存款sql.executeUpdate("UPDATE XX SET 余额=+'"+money1+"' WHERE 卡号='123456'"); //存款后更新余额mit();con.setAutoCommit(true); //提交事务结果到数据库sql=con.createStatement(); //创建数据库操作对象}catch(SQLException e1){ try{ con.rollback(); } //如果操作失败则结束事务catch(SQLException exp){}System.out.println(""+e);}}else if(e.getSource()==Q){ Connection con=null;Statement sql;ResultSet rs = null;try{double n=5000;con=DriverManager.getConnection("jdbc:odbc:XX","","");con.setAutoCommit(false);sql=con.createStatement();rs=sql.executeQuery("SELECT * FROM XX WHERE 卡号='123456'");rs.next();double money=rs.getDouble(5);System.out.println("操作前用户的余额:"+money);double money2=money-n; //取款sql.executeUpdate("UPDATE XX SET 余额=+'"+money2+"' WHERE 卡号='123456'"); //取款后更新余额mit();con.setAutoCommit(true);sql=con.createStatement();}catch(SQLException e1){ try{ con.rollback(); }catch(SQLException exp){}System.out.println(""+e);}}else if(e.getSource()==update){modify.setSQL("UPDATE XX SET XX.密码 =+'"+text[2].getText()+"' WHERE (((XX.卡号)=+'"+text[0].getText()+"'));");String backMess=modify.modifyRecord();show.append("修改密码"+backMess);}else if(e.getSource()==delete){modify.setSQL("DELETE * FROM XX WHERE (((XX.卡号)=+'"+text[0].getText()+"'));");String backMess=modify.modifyRecord();show.append("删除用户信息"+backMess);}else if(e.getSource()==select){Query query =new Query();query.setDatasoureName("XX");query.setTableName("XX");Object a[][]=query.getRecord();String b[]={"序号","卡号","姓名","密码","余额"};table=new JTable(a,b);JFrame frame=new JFrame();frame.add(new JScrollPane(table));frame.setVisible(true);frame.setBounds(400,400,600,200);}}public void setBounds(int i, int j, int k, int l) {}}Operation.javaimport java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class Operation{String datasourceName=""; //数据源名称String SQL,message=""; //表名public Operation() //增删改的主代码{try{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); } //操作数据源catch(Exception e){}}public void setSQL(String SQL) //建立一个新的数据源{ this.SQL=SQL; }public void setDatasourceName(String s){ datasourceName=s.trim(); }public String modifyRecord(){Connection con=null;Statement sql=null;try{ String uri="jdbc:odbc:"+datasourceName;String id="";String password="";con=DriverManager.getConnection(uri,id,password);sql=con.createStatement();sql.execute(SQL);message="操作成功";con.close();}catch(SQLException e){ message=e.toString(); }return message;} /*数据源读取初始化*/public void setTableName(String string) {} //表名public Object[][] getRecord() //存放操作结果数组{ return null; }}Query.javaimport java.sql.*;import .httpserver.Authenticator.Result;public class Query{ String datasourceName=""; //数据源名String tableName=""; //表名Object a[][];public Query(){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");} //桥接器 catch(ClassNotFoundException e){System.out.print(e);}}public void setDatasoureName(String s){ datasourceName=s.trim(); }public void setTableName(String s){ tableName=s.trim(); }public Object[][] getRecord() //获取表中记录{Connection con;PreparedStatement sql; //预处理命令ResultSet rs; //结果集try{String uri="jdbc:odbc:"+datasourceName;String number="";String password="";con=DriverManager.getConnection(uri,number,password); //初始化连接DatabaseMetaData metadata=con.getMetaData();//连接对象调用getMetaData()方法返回一个DatabaseMetaData对象ResultSet rs1=metadata.getColumns(null,null,tableName,null);//将表中的字段信息以行列的形式存储在Result中int 字段个数=0;while(rs1.next()){ 字段个数++;}int n=getAmount();a=new Object[n][字段个数];sql=con.prepareStatement("SELECT * FROM "+tableName); //查询表名rs=sql.executeQuery();int m=0;while(rs.next()) //输出结果集中的数据{ for(int k=1;k<=字段个数;k++){ a[m][k-1]=rs.getString(k); }m++;}con.close();}catch(SQLException e){ System.out.println("请输入正确的表名"+e); }return a;}public int getAmount(){Connection con;Statement sql;ResultSet rs;try{String uri="jdbc:odbc:"+datasourceName;String id="";String password="";con=DriverManager.getConnection(uri,id,password);sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_RE AD_ONLY); //以只读方式滚动查询rs=sql.executeQuery("SELECT * FROM "+tableName); //获取所在行st();int rows=rs.getRow(); //当前游标所指行号return rows;}catch(SQLException exp){System.out.println(""+exp);return 0;}}public void inputQueryResult() {}}ATM.javapublic class ATM {public static void main(String args[]){ Win win=new Win();win.setBounds(400,300,400,300); //设置组件在容器中的位置和本身的大小win.setTitle("ATM自动柜员机");}}。

相关文档
最新文档