Java的两个实验程序
日期:2018.10.07
星期五
博客期:015
Part1:----------------第一个是二柱子出30道小学数学题:
一、程序设计思想
本程序设计由三部分构成,第一部分因为循环30次的需要,做出for语句来循环30次,从流程图中看也清晰明了,所以只需要在循环里输出语句就好了,这一部分分为生成处理和输出处理两部分!生成处理部分,就是利用Random类生成随机数的方法,生成1000以内的两个正整数m和n,在生成随机字符c的时候,先得到0~3的随机数,然后分别代表‘+’、‘-’、‘*’和‘/’四个字符!之后按照格式输出即可!
二、程序流程图
三、源程序
package ready; import java.util.Random; public class Test {
//============================<数据区>=================================//
//左操作数
private int leftNumber;
//右操作数
private int rightNumber;
//运算符
private char operator;
//============================<方法区>=================================//
//--------------------------------主函数
public static void main(String[] args) {
for(int i=1;i<=30;i++)
{
Test n = new Test(true);
System.out.print(i+"、 ");
n.display_s(false);
}
}
//--------------------------------set、get函数
//---[operator的set、get函数]
public void setOperator(char operator) {
this.operator = operator;
}
public char getOperator() {
return operator;
}
//---[RightNumber的set、get函数]
public void setRightNumber(int rightNumber) {
this.rightNumber = rightNumber;
}
public int getRightNumber() {
return rightNumber;
}
//---[LeftNumber的set、get函数]
public void setLeftNumber(int leftNumber) {
this.leftNumber = leftNumber;
}
public int getLeftNumber() {
return leftNumber;
}
//--------------------------------展示函数
public void display(){
System.out.print(leftNumber+" "+operator+" "+rightNumber);
}
public void display_s(){
System.out.println(leftNumber+" "+operator+" "+rightNumber);
}
public void display(boolean x){
if(x)
System.out.print(leftNumber+" "+operator+" "+rightNumber+" = "+answer());
else
System.out.print(leftNumber+" "+operator+" "+rightNumber+" = ");
}
public void display_s(boolean x){
if(x)
System.out.println(leftNumber+" "+operator+" "+rightNumber+" = "+answer());
else
System.out.println(leftNumber+" "+operator+" "+rightNumber+" = ");
}
//--------------------------------运行函数
//返回结果
public int answer(){
int result = 0;
switch(operator)
{
case '+':result=leftNumber+rightNumber;break;
case '*':result=leftNumber*rightNumber;break;
case '/':result=leftNumber/rightNumber;break;
case '-':result=leftNumber-rightNumber;break;
default:break;
}
return result;
}
//--------------------------------构造函数
public Test(){
leftNumber = 0;
operator = '+';
rightNumber = 0;
}
public Test(boolean x){
Random ra = new Random();
leftNumber = ra.nextInt(1000)+1;
int temp = ra.nextInt(4);
switch(temp)
{
case 0:operator = '+';break;
case 1:operator = '-';break;
case 2:operator = '*';break;
case 3:operator = '/';break;
}
rightNumber = ra.nextInt(1000)+1;
}
public Test(int leftnum,char oper,int rightnum){
leftNumber = leftnum;
operator = oper;
rightNumber = rightnum;
}
}
四、实现结果截图
五、实验总结
本次程序老师要求在20分钟以内完成,实际上还是存在一些问题的!比如说输出问题,以及小学二年级的数学题目究竟是怎样的!应该如何去遍历这个“软件”,需不需要加入“ = ”,输出格式多一个换行等等的问题都需要解决的!
Part2:----------------第二个是窗口验证码的问题:
一、程序设计思想
本程序只是实现了验证码功能!就难度而言,不难!但是就复杂度而言,算是比较繁杂的了!程序需要制作一个窗口,并对其构成容器,再在容器里添加内部项,添加按钮、添加标签和输入框!对成员逐一进行排版,格式设置!对按钮添加监听器,当按下按钮时,刷新程序的验证码!
二、程序流程图
三、源程序
package ready; import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
//import java.awt.Image;
import java.util.Random; //import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField; public class Window extends JFrame{
//=============================<数据区>====================================//
//---------------[自动生成]
private static final long serialVersionUID = -2971058395175770886L;
//---------------[截取随机数]
protected Random ra = new Random();
//---------------[验证码字符]
private final char[] CHAR_CODE = { '1', '2', '3', '4', '5', '6',
'7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
'k', 'm', 'n', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y',
'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L',
'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' };
//---------------[标识]
protected JLabel firstSay = new JLabel("登录名:");
protected JLabel secondSay = new JLabel(" 密码:");
protected JLabel thirdSay = new JLabel("验证码:");
//---------------[按钮]
protected JButton getIn = new JButton(" 登陆 ");
protected JButton setIn = new JButton(" 快速注册 ");
protected JButton resettitle = new JButton(" 刷新 ");
//---------------[输入框]
protected JTextField firstTitle = new JTextField(10);
protected JTextField secondTitle = new JTextField(10);
protected JTextField thirdTitle = new JTextField(10);
protected JTextField rentlyWords = new JTextField(5);
//=============================<方法区>====================================//
//---------------[主方法]
public static void main(String[] args) throws IOException{
new Window();
}
//---------------[构造方法]
public Window() throws IOException{
this.setVisible(true);
Container c = this.getContentPane();
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.getContentPane().setLayout(new FlowLayout());
this.add(thirdTitle);
this.setLocation(1000,500);
this.setSize(400,380);
this.setTitle("请登录");
JLabel t = new JLabel(" ");
firstSay.setFont(new java.awt.Font("Dialog",1,25));
secondSay.setFont(new java.awt.Font("Dialog",1,25));
thirdSay.setFont(new java.awt.Font("Dialog",1,25));
firstTitle.setFont(new java.awt.Font("Dialog",2,25));
secondTitle.setFont(new java.awt.Font("Dialog",2,25));
thirdTitle.setFont(new java.awt.Font("Dialog",2,25));
setIn.setFont(new java.awt.Font("Dialog",1,25));
getIn.setFont(new java.awt.Font("Dialog",1,25));
resettitle.setFont(new java.awt.Font("Dialog",1,25));
rentlyWords.setFont(new java.awt.Font("Dialog",5,25));
firstTitle.setText("用户名/邮箱");
c.add(firstSay);
c.add(firstTitle);
c.add(t);
c.add(secondSay);
c.add(secondTitle);
t = new JLabel(" ");
c.add(t);
c.add(thirdSay);
c.add(thirdTitle);
t = new JLabel(" ");
c.add(t);
rentlyWords.setEditable(false);
Reset();
resettitle.setBorderPainted(false);
c.add(rentlyWords);
c.add(resettitle);
requestFocus();
t = new JLabel(" ");
c.add(t);
c.add(getIn);
t = new JLabel(" ");
c.add(t);
c.add(setIn);
resettitle.addActionListener//为转换按钮添加监听事件
(
new ActionListener()
{
public void actionPerformed(ActionEvent arg0){
Reset();
}
}
);
}
//---------------[返回随机字符]
public final char getRandom(){
int temp = ra.nextInt(58);
return CHAR_CODE[temp];
}
//---------------[设置随机码]
public void Reset(){
rentlyWords.setText(getRandom()+""+getRandom()+""+getRandom()+""+getRandom());
}
}
四、实现结果截图
五、实验总结
本次实验相当的顺利,虽然没有用老师要求的RandomStr类来自动生成验证码字符串,不过效果是一样的!用Random配合类型转化一样可以生成验证码字符串,对文本框的排版也是很大的问题!因为在这之前的程序我都没有设计过界面的排版!
Java的两个实验程序的更多相关文章
- java版两人聊天程序
server.java import java.io.*; import java.net.*; import java.text.SimpleDateFormat; import java.util ...
- Java中两种实现多线程方式的对比分析
本文转载自:http://www.linuxidc.com/Linux/2013-12/93690.htm#0-tsina-1-14812-397232819ff9a47a7b7e80a40613cf ...
- 20162330 实验二 《Java面向对象程序设计》 实验报告
2016-2017-2 实验报告目录: 1 2 3 4 5 20162330 实验二 <Java面向对象程序设计> 实验报告 课程名称:<程序设计与数据结构> 学生班级:162 ...
- Java第5次实验提纲(Java图形界面编程)
1. Swing与NetBeans 使用NetBeans编写简单界面.见GUI实验参考文件中的0.第06次实验(图形程序设计.事件处理与Swing).doc 题目1: Swing用户界面组件与事件处理 ...
- Java第8次实验(IO流)
参考资料 本次作业参考文件 正则表达式参考资料 第1次实验 1. 字符流与文本文件:使用 PrintWriter(写),BufferedReader(读) 参考文件:基础代码目录Student.jav ...
- Java第6次实验提纲(异常)
PTA与参考资料 题集:集合 异常实验文件 第1次实验 1.1 7-1 常用异常 如何进行强制转换 如何捕获多种类型的异常 1.2 7-2 使用异常机制处理异常输入 在哪里加catch 1.3 7-3 ...
- 20175209 实验二《Java面向对象程序设计》实验报告
20175209 实验二<Java面向对象程序设计>实验报告 一.实验前期准备 了解三种代码 伪代码 产品代码 测试代码 我们先写伪代码,伪代码 从意图层面来解决问题: 有了伪代码 我们用 ...
- 20175315 实验二《Java面向对象程序设计》实验报告
20175315 实验二<Java面向对象程序设计>实验报告 一.实验内容及步骤 1.初步掌握单元测试和TDD 单元测试 任务一:三种代码 用程序解决问题时,要学会写以下三种代码: 伪代码 ...
- 2018-2019-2 20175320实验二《Java面向对象程序设计》实验报告
2018-2019-2 20175320实验二<Java面向对象程序设计>实验报告 一.实验步骤及内容 (一)了解使用JUint,并对示例代码MyUtil进行测试 1.先在IDEA中安装J ...
随机推荐
- 如何快速上手一个新技术之vue学习经验
碰到紧急项目挪别人的vue项目过来直接改,但是vue是18年初看过一遍,18年底再来用,早就忘到九霄云外了,结果丢脸的从打开vue开始学,虽然之前在有道云笔记做了很多记录,然后没有系统整理.所以借这次 ...
- python 08
函数 函数定义: 你可以定义一个由自己想要功能的函数,以下是简单的规则: 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号(). 任何传入参数和自变量必须放在圆括号中间.圆括号之间可以用于 ...
- RocketMQ RPC
(1)NameServer:在MQ集群中做的是做命名服务,更新和路由发现 broker服务: (2)Broker-Master:broker 消息主机服务器: (3)Broker-Slave:brok ...
- Codeforces Round #545 (Div. 2)(B. Circus)
题目链接:http://codeforces.com/contest/1138/problem/B 题目大意:贼绕口的题目,就是给你两个字符串s1,s2,然后每一个人代表一列,第一列代表技能一每个人是 ...
- Django学习手册 - ORM 多对多表
定义表结构: class Host(models.Model): hostname = models.CharField(max_length=32) port = models.IntegerFie ...
- light oj 1254 - Prison Break 最短路
题目大意:n个点m条边的有向图,q次询问c,s,t,表示汽车邮箱容量为c,求从起点s到终点t的最小费用.汽车在每个点可以加任意的油,每个点的单位油价为a[i]. 题目思路:利用最小费优先队列优化最短路 ...
- 【NLP CS224N笔记】Lecture 1 - Introduction of NLP
I. 什么是NLP NLP全称是Natural Language Processing,即自然语言处理,这是一门计算机科学.人工智能以及语言学的交叉学科. NLP涉及的几个层次由下图所示.可以看到输入 ...
- Django入门------基础(1)
基础 Django 是用 Python 写的一个自由和开放源码 web 应用程序框架.web框架是一套组件,能帮助你更快.更容易地开发web站点.当你开始构建一个web站点时,你总需要一些相似的组件: ...
- 为Oracle GoldenGate准备数据库
了解如何为Oracle GoldenGate准备数据库,包括如何配置连接和日志记录,如何在数据库中启用Oracle GoldenGate,如何设置闪回查询以及如何管理服务器资源. 为集成进程配置连接 ...
- valgrind--内存泄漏检测(转)
Valgrind 概述 体系结构 Valgrind是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合.Valgrind由内核(core)以及基于内核的其他调试工具组成.内核类似于一个框 ...