`
- 浏览:
105745 次
- 性别:
- 来自:
长春-沈阳
-
把前两天做的实验用GUI实现...
主要的接口都没有变,所以实现比较容易...
代码如下:
1/** *//**
2*title 模拟银行存储实验——GUI实现
3*@author realsmy
4*date 2006-10-26 8:10
5*/
6
7import java.io.*;
8import java.awt.*;
9import javax.swing.*;
10import java.awt.event.*;
11import javax.swing.JPanel.*;
12
13//login applicatiion
14class Login extends JFrame{
15 Container c;
16 JTextField text;
17 JPasswordField password;
18 MyPanel panel;
19 JLabel label_name,label_password;
20 JButton button1,button2;
21 String lg_name,lg_password;
22 File fl;//帐户资料文件声明
23 Login(){
24 super("模拟银行存储系统");
25 c = getContentPane();
26 c.setLayout(new BorderLayout());
27 //初始化组件
28 text = new JTextField();
29 password = new JPasswordField();
30 label_name = new JLabel("教工号 :");
31 label_password = new JLabel("密 码 :");
32 panel = new MyPanel();
33 button1 = new JButton("LOGIN");
34 button2 = new JButton("RESET");
35 //添加监听
36 button1.addActionListener(new ActionListener()
37 {
38 public void actionPerformed(ActionEvent e)
39 {
40 lg_name = text.getText();
41 lg_password = password.getText();
42 if ( lg_name.equals("admin") && lg_password.equals("admin")){
43 setVisible(false);
44 GuanLi gl = new GuanLi();
45 gl.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
46 }
47 else{
48 try{
49 fl = new File("frozen",lg_name+".txt");
50 if(fl.exists()){
51 JOptionPane.showMessageDialog(null,"对不起,您的帐户已被冻结!");
52 }
53 else{
54 fl = new File(lg_name+".txt");
55 //判断帐户是否存在
56 if(!fl.exists()){
57 JOptionPane.showMessageDialog(null,"对不起,您输入的帐户并不存在,请重新输入:");
58 }
59 else{
60 //帐户存在,开始判断密码
61 BufferedReader reader = new BufferedReader(new FileReader( lg_name + ".txt"));
62 String pw = reader.readLine();
63 int money = Integer.parseInt(reader.readLine());
64 //判断密码
65 if(lg_password.equals(pw)){
66 JOptionPane.showMessageDialog(null,"登陆成功\n"+"您的用户尚有余额"+money+"元");
67 ZhangHu zh = new ZhangHu(lg_name,lg_password,money);
68 setVisible(false);
69 YongHu yh = new YongHu(zh);
70 yh.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
71 }
72 else{
73 JOptionPane.showMessageDialog(null,"对不起,您输入的密码不正确,请重新输入:");
74 }
75 }
76 }
77 }catch(HeadlessException a){}catch(IOException b){}
78 }
79 }
80 });
81 button2.addActionListener(new ActionListener()
82 {
83 public void actionPerformed(ActionEvent e)
84 {
85 text.setText("");
86 password.setText("");
87 }
88 });
89
90 //设置容器
91 panel.setLayout(new GridLayout(3,2,10,15));
92 panel.add(label_name);
93 panel.add(text);
94 panel.add(label_password);
95 panel.add(password);
96 panel.add(button1);
97 panel.add(button2);
98
99 c.add(panel,BorderLayout.CENTER);
100 setSize(300,200);
101 setLocation(300,200);
102 setVisible(true);
103 }
104}
105
106//定义管理界面
107class GuanLi extends JFrame{
108 private Container c;
109 JButton button1,button2,button3,button4;
110 MyPanel panel;
111 JLabel label1,label2;
112 Manager manager;
113 //String name,password,password2;
114 //int money;
115 GuanLi(){
116 super("模拟银行存储系统");
117 c = getContentPane();
118 c.setLayout(new BorderLayout());
119 //数据初始化
120 //button = new JButton("");
121 panel = new MyPanel();
122 label1 = new JLabel("欢迎光临赵家银行!");
123 label2 = new JLabel("请选择你要进行的操作:");
124 button1 = new JButton("1.添加帐户");
125 button2 = new JButton("2.删除用户");
126 button3 = new JButton("3.冻结用户");
127 button4 = new JButton("4.退出");
128
129 //按钮监听
130 button1.addActionListener(new ActionListener(){
131 public void actionPerformed(ActionEvent e){
132 manager = new Manager();
133 manager.add();
134 }
135 });
136 button2.addActionListener(new ActionListener(){
137 public void actionPerformed(ActionEvent e){
138 manager = new Manager();
139 manager.del();
140
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
在本实验项目“银行模拟业务(数据结构 实验 MFC)”中,主要涉及了三个核心概念:数据结构、MFC(Microsoft Foundation Classes)以及银行业务的模拟实现。这三个方面共同构建了一个完整的银行数据管理系统,旨在让...
在本操作系统作业中,我们将通过Java语言来模拟银行家算法,并设计一个图形用户界面(GUI)以直观展示其运行过程。 银行家算法的核心在于预先设定每个进程的最大需求以及当前已分配的资源,同时定义系统总的资源...
- **逻辑实现**:通过定义各种变量和数组来存储资源信息,并实现银行家算法和安全性算法的逻辑。 综上所述,本实验不仅帮助学生深入理解了操作系统中资源管理和避免死锁的关键概念,还通过实际编程增强了他们的编程...
实验可能还会涵盖一些高级主题,比如银行家算法,这是预防死锁的一种方法,通过预先检查资源分配的安全性来防止系统进入无法恢复的状态。此外,你可能还会接触到缓存管理,学习如何利用高速缓存提高系统性能。 总之...
Java编写的银行家算法是一种用于预防死锁的经典策略,它源于计算机系统中资源调度的问题。在多任务或多线程环境中,资源(如内存、CPU时间、磁盘空间等)的有效分配至关重要,不当的分配可能导致死锁,即多个进程...
- 类与对象:在模拟ATM机时,我们可能会定义如`BankAccount`(银行账户)、`ATM`(自动取款机)和`User`(用户)等类。 - 属性和方法:每个类都可能包含表示状态的属性(如余额、账号、密码)以及描述行为的方法...
【简易银行卡管理系统】是一个计算机科学领域的实验项目,旨在让学生们理解和掌握数据库管理、用户界面设计以及基本的软件工程概念。这个系统可能包含了创建、查询、更新和删除银行卡账户的功能,以此来模拟实际银行...
模拟银行服务过程,处理客户进入、接受服务、离开等事件。 使用多线程编程实现事件的同步和互斥。 检查事件是否按照预期进行,确保所有客户都能接受服务。 2. 动态分区存储管理 实现多种内存分配策略,包括首次...
本压缩包"java两个实验与简单计算器与银行管理系统.zip"包含两个基于Java的实验项目:一个简单的图形计算器和一个图形化的银行管理系统。这两个项目都是初学者在学习Java GUI(图形用户界面)编程时常见的实践案例。...
三、银行家算法模拟实验 1. 银行家算法用于避免系统死锁,预先分配资源并检查系统是否安全。 - 安全序列不是唯一的,只要能确保所有进程都能完成即可。 - work向量用于表示系统当前可分配的资源,确保不导致死锁...
7. **用户界面**:在C语言实现中添加图形用户界面(GUI)可以让用户直观地输入进程需求,查看系统状态,并模拟资源分配过程。这通常会涉及使用如Tkinter或SDL等库来创建窗口和控件。 在这个实验中,学生将通过操作...
【基于Java的模拟ATM取款机系统】是一个利用编程技术构建的仿真实验,它旨在模拟真实的自动取款机(ATM)操作流程。在这个系统中,主要使用了Java语言,特别是Java AWT(Abstract Window Toolkit)和SWING库,这两个...
例如,学生可能会编写一个模拟银行转账的程序,其中两个线程同时进行转账操作,这需要理解线程的并发控制。 实验 6 图形用户界面编程: 这部分实验会使用Java的Swing或JavaFX库来创建GUI应用程序,包括按钮、文本框...
- 在实验中,学生可能会通过模拟实现信号量、管程、PV操作等来解决进程间的同步问题,确保资源的互斥访问。 5. **死锁预防与避免**: - 学习者可能研究了死锁的概念,了解银行家算法、资源预留策略等避免死锁的...
该实验报告是关于一个基于Java的ATM柜员机模拟程序的大作业,旨在让学生掌握面向对象程序设计的基本技能,包括需求分析、UML建模、程序流程设计以及Java编程实践。以下是该大作业涉及的关键知识点: 1. **需求分析*...
实验中可能模拟设备驱动编写,理解中断处理流程,以及如何使用缓冲技术提高I/O效率。 五、死锁预防与避免 在并发环境中,多个进程可能因资源分配不当而陷入无法继续执行的状态,即死锁。实验将讲解死锁的四个必要...
在进行VB.NET实验时,肥城市和储蓄额整儿可能指的是模拟银行系统或财务管理的应用场景。这可能涉及到数据的输入、存储、计算和显示,比如创建一个存款和取款的界面,使用数据库存储账户信息,以及实现利息计算等功能...
在提供的代码片段中,可以看到Guest类作为模拟银行客户的模型,包含了账号(zh)、密码(pswf)和金额(jine)这三个属性。类的方法包括获取和设置这些属性值,以及存款(cunkuan)、取款(quqian)和修改密码...
总的来说,这个实验报告展示了如何使用MATLAB来实现DTMF拨号系统的模拟,包括信号的生成、GUI界面的设计以及基本的用户交互功能。通过这样的模拟,我们可以深入理解DTMF的工作原理,并为实际通信系统中的DTMF应用...
8. **用户界面**:如果ATM系统有图形用户界面(GUI),那么可能会用到Java的Swing或JavaFX库,创建按钮、文本框等组件,并实现事件监听。 9. **测试**:实验报告和作业报告可能包含单元测试和集成测试,使用JUnit或...