测试系统java代码_java测试银行系统源代码

1 packageKaoshi;2

3 /*信1705-3 20173442 田昕可*/

4 import java.util.*;5 import java.io.*;6

7 classAccount8 {9 privateString accountID;10 privateString accountname;11 private String operatedate;//时间

12 private int operatetype;//操作

13 private String accountpassword;//密码

14 private int accountbalance;//余额

15 private int amout;//流水金额

16

17 public Account(String accid,String accna,String opeda,String password,intbalance)18 {19 this.accountID=accid;20 this.accountname=accna;21 this.operatedate=opeda;22 this.accountpassword=password;23 this.accountbalance=balance;24 }25

26 publicString getaccountID()27 {28 returnaccountID;29 }30 publicString getaccountname()31 {32 returnaccountname;33 }34 publicString getoperatedate()35 {36 returnoperatedate;37 }38 public intgetoperatetype()39 {40 returnoperatetype;41 }42 publicString getaccountpassword()43 {44 returnaccountpassword;45 }46 public intgetaccountbalance()47 {48 returnaccountbalance;49 }50 public intgetamout()51 {52 returnamout;53 }54 public voidsetaccountID(String accid)55 {56 accountID=accid;57 }58 public voidsetaccountname(String accna)59 {60 accountname=accna;61 }62 public voidsetoperatedate(String opeda)63 {64 operatedate=opeda;65 }66 public void setoperatetype(intopety)67 {68 operatetype=opety;69 }70 public voidsetaccountpassword(String password)71 {72 accountpassword=password;73 }74 public void setaccountbalance(intbalance)75 {76 accountbalance=balance;77 }78 public void setamout(intamo)79 {80 amout=amo;81 }82

83 public voidjiemian()84 {85 System.out.println("**************************************************************************");86 System.out.println(" 欢迎"+accountID+"使用中国工商银行自助柜员系统 ");87 System.out.println("**************************************************************************");88 }89

90 public voidcaozuo()91 {92 Scanner scan1=newScanner(System.in);93 inta;94 intb;95 intc;96 String s;97 String s1;98 switch(operatetype)99 {100 case 1:System.out.println("请输入存款金额 : ");101 a=scan1.nextInt();102 accountbalance+=a;103 System.out.println("存取款操作完成");104 System.out.println("存款余额为 :"+accountbalance);105 //差一个try语句;

106 break;107 case 2:System.out.println("当前账户每日可支取2万");108 System.out.println("1.100");109 System.out.println("2.500");110 System.out.println("3.1000");111 System.out.println("4.1500");112 System.out.println("5.2000");113 System.out.println("6.5000");114 System.out.println("7.其他金额");115 b=scan1.nextInt();116 switch(b)117 {118 case 1:accountbalance-=100;break;119 case 2:accountbalance-=500;break;120 case 3:accountbalance-=1000;break;121 case 4:accountbalance-=1500;break;122 case 5:accountbalance-=2000;break;123 case 6:accountbalance-=5000;break;124 case 7:System.out.println("输入金额 :");c=scan1.nextInt();accountbalance-=c;break;125 };126 System.out.println("取取款操作完成");127 System.out.println("存款余额为 :"+accountbalance);128 break;129 case 3:break;130 case 4:131 System.out.println("请输入修改后的密码");132 s1=scan1.nextLine();133 accountpassword=s1;//修改密码

134 System.out.println("修改成功,当前密码为"+accountpassword);135 case 5:System.out.println("当前账户余额为:"+accountbalance);136 }137

138 }//六项操作

139

140 }141 public classXixiguanli {142

143 public static voidmain(String[] args) {144 //TODO Auto-generated method stub

145 File file1 = new File("accountlist.txt");146 File file2 = new File("accountinformation.txt");147 inti;148 int j=0;149 int t=0;150 intb;151 String c;152 System.out.println("**************************************************************************");153 System.out.println(" 欢迎使用中国工商银行自动柜员系统 ");154 System.out.println("**************************************************************************");155

156 Account[] a = new Account[5];157 Account s1=new Account("20173442","田昕可","2018-9-20","123456",0);158 Account s2=new Account("00000001","张","2018-9-20","123456",0);159 Account s3=new Account("00000002","王","2018-9-20","123456",0);160 Account s4=new Account("00000003","李","2018-9-20","123456",0);161 Account s5=new Account("00000004","赵","2018-9-20","123456",0);162 a[0]=s1;163 a[1]=s2;164 a[2]=s3;165 a[3]=s4;166 a[4]=s5;167 System.out.println(" 请输入您的账号");168

169 String id;170 String password;171 Scanner scan=newScanner(System.in);172 id=scan.next();173 for(i=0;i<5;i++)174 {175 if(id==a[i].getaccountID())176 j=i;177 }178 /*while(id.length()!=8||j==6);179 {180 if(id.length()!=8)181 System.out.println("不是工行号,请重新输入");182 else if(j==6)183 System.out.println("该账号不存在,请重新输入");184 System.out.println("请输入您的账号");185 id=scan.next();186 }*/

187

188 a[j].jiemian();189 System.out.println(" 请输入密码");190 password=scan.next();191 /*if(a[j].getaccountpassword() equals password)192 {193 System.out.println("密码正确");194 a[j].jiemian();195 System.out.println("1.存款");196 System.out.println("2.取款");197 System.out.println("3.转账汇款");198 System.out.println("4.修改密码");199 System.out.println("5.查询余额");200 }*/

201 a[j].jiemian();202 System.out.println("1.存款");203 System.out.println("2.取款");204 System.out.println("3.转账汇款");205 System.out.println("4.修改密码");206 System.out.println("5.查询余额");207 System.out.println("6.退出");208 System.out.println("请输入要实现的功能 :");209 b=scan.nextInt();210 while(b!=6)211 {212 a[j].setoperatetype(b);//将操作数字赋值给类成员

213 /*if(b==3)214 {215 System.out.println("请输入转账账户");216 c=scan.nextLine();217 for(i=0;i<5;i++)218 {219 if()220 }221 }//类外函数不能实现的转账功能*/

222 a[j].caozuo();223 a[j].jiemian();224 System.out.println("1.存款");225 System.out.println("2.取款");226 System.out.println("3.转账汇款");227 System.out.println("4.修改密码");228 System.out.println("5.查询余额");229 System.out.println("请输入要实现的功能 :");230 b=scan.nextInt();231 }232

233 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第4章 文件系统接口测试 文件系统攻击分为两类:基于介质的攻击和基于文件的攻击 基于介质的攻击 基于介质的攻击目标是模拟存储介质本身-软盘、硬盘、CD-ROM等 攻击1 按容量填满文件系统 按容量填满文件系统会确保你的应用程序很好地处理满磁盘的情况。一旦Canned HEAT模拟了满状态下的磁盘,就应该抓住每个机会试者强制应用程序打开、关闭、读取、写入和修改文件。这样能发现访问文件的位置,但是对满状态下的磁盘,软件无法实施检查。 攻击2 强制介质忙或不可用 强制介质忙或不可用会保证与存在问题的存储设备相关的错误条件得到测试。其思想是,当应用程序访问硬驱、软驱或其他外部存储机制时,强制错误返回码标明介质存在的问题。如果开发人员无法对这些条件编写适当的错误处理程序,应用程序就会失效。 攻击3毁坏介质 模拟被破坏的存储介质对任务关键的应用程序是有用的,这种应用程序在受损介质下也必须仍然能够运行。这种攻击有助于对开发人员没有编写存取文件或写文件时的错误处理代码这种情况进行测试。 基于文件的攻击 攻击4 赋给无效文件名 赋给无效文件名用来发现在哪里没有对读取或写入文件标识符进行约束。由于名字常受限于操作系统,如果应用程序对名字没有真正的约束,创建有效名字的失败会引发失效。其思想就是试着用很长的,且包含非法字符和字符组合的名字进行命名。 如何进行攻击? 第一组测试是使应用程序进入相当于“另存为...”对话框,并键入操作系统不能接收的名字。 第二组测试是使用操作系统以应用程序可能不接收的有效文件名创建文件。 攻击5 改变文件访问许可 改变文件访问许可会发现难以察觉的隐错,当应用程序使用的文件可在该应用程序控制之外得到处理时才显示出来。该攻击强调创建和修改文件访问许可,然后驱动应用程序访问文件内容。如果用以检查各种许可处理的错误代码丢失或出错,那么应用程序就会失效。 如何进行攻击? 在不同应用程序中打开和关闭同一文件,并试着在某个应用程序中打开在另一个程序中已打开的文件。 攻击6 更改或破坏文件内容 更改和破坏文件内容模拟对文件故意地或偶然地修改。如果在读取文件以前没有编写错误代码来检查文件内容,则软件可能会崩溃。可使用Canned HEAT来模拟这些事件,以便测试员能强制文件操作,并密切观察可能的文件失效。 有两种基本方法来实现攻击-手工损坏文件或使用运行期故障植入作为文件进行操作。 文件系统攻击小结 基于介质的攻击 1.看软件是否能处理满状态的存储介质。填满硬驱,然后强制软件执行文件操作(通过打开、移动和保存文件)。 2.看软件是否能有条不紊地处理忙文件系统。一些应用程序没有真正的超时/等待机制,所以当文件系统忙于响应另一个应用程序的请求时就会失效。强制软件执行与后台应用程序相关联的文件操作,这些后台应用程序也在执行文件操作。 3.试图在受损介质上强制软件进行文件操作。在这种场景下,有一些故障的处理代码的应用程序常会失效。 基于文件的攻击 4.对应用程序的数据文件、临时文件和只读文件试图赋给无效文件名,然后强制软件使用这些文件。 5.修改应用程序数据文件的访问许可。用户许可和读-写-执行-删除许可常被开发人员所忽视。 6.看软件是否能处理文件中损坏的数据。由于大多数数据破坏会导致失败的循环冗余校验,所以Canned HEAT是植入这种故障的理想机制。否则,使用十六进制/文本编辑器来修改文件内容,然后强制软件打开文件或从中读取。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值