日期: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的两个实验程序的更多相关文章

  1. java版两人聊天程序

    server.java import java.io.*; import java.net.*; import java.text.SimpleDateFormat; import java.util ...

  2. Java中两种实现多线程方式的对比分析

    本文转载自:http://www.linuxidc.com/Linux/2013-12/93690.htm#0-tsina-1-14812-397232819ff9a47a7b7e80a40613cf ...

  3. 20162330 实验二 《Java面向对象程序设计》 实验报告

    2016-2017-2 实验报告目录: 1 2 3 4 5 20162330 实验二 <Java面向对象程序设计> 实验报告 课程名称:<程序设计与数据结构> 学生班级:162 ...

  4. Java第5次实验提纲(Java图形界面编程)

    1. Swing与NetBeans 使用NetBeans编写简单界面.见GUI实验参考文件中的0.第06次实验(图形程序设计.事件处理与Swing).doc 题目1: Swing用户界面组件与事件处理 ...

  5. Java第8次实验(IO流)

    参考资料 本次作业参考文件 正则表达式参考资料 第1次实验 1. 字符流与文本文件:使用 PrintWriter(写),BufferedReader(读) 参考文件:基础代码目录Student.jav ...

  6. Java第6次实验提纲(异常)

    PTA与参考资料 题集:集合 异常实验文件 第1次实验 1.1 7-1 常用异常 如何进行强制转换 如何捕获多种类型的异常 1.2 7-2 使用异常机制处理异常输入 在哪里加catch 1.3 7-3 ...

  7. 20175209 实验二《Java面向对象程序设计》实验报告

    20175209 实验二<Java面向对象程序设计>实验报告 一.实验前期准备 了解三种代码 伪代码 产品代码 测试代码 我们先写伪代码,伪代码 从意图层面来解决问题: 有了伪代码 我们用 ...

  8. 20175315 实验二《Java面向对象程序设计》实验报告

    20175315 实验二<Java面向对象程序设计>实验报告 一.实验内容及步骤 1.初步掌握单元测试和TDD 单元测试 任务一:三种代码 用程序解决问题时,要学会写以下三种代码: 伪代码 ...

  9. 2018-2019-2 20175320实验二《Java面向对象程序设计》实验报告

    2018-2019-2 20175320实验二<Java面向对象程序设计>实验报告 一.实验步骤及内容 (一)了解使用JUint,并对示例代码MyUtil进行测试 1.先在IDEA中安装J ...

随机推荐

  1. luogu P4183 [USACO18JAN]Cow at Large P

    传送门 首先考虑N^2做法,每次从一个点出发,如果到达一个点,然后到达这个点的时间\(\le\)离这个点最近的叶子距离\(di_x\),那么答案+1,否则继续找点 这个暴力很不好优化.可以这样认为,如 ...

  2. python网络编程初识

    一,什么是计算机网络: 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和 [1]  信 ...

  3. Luogu P4859「已经没有什么好害怕的了」

    以前开过一遍这题,以为很难没刚下去 今天$ review$一遍分析了一下感觉也还好 luogu 4859 题意:给定长度为$ n \leq 2000$的数组$ A,B$求完全匹配使得$A>B$的 ...

  4. RabbitMQ简单应用の主题模式(topic)

    Topic exchange(主题转发器) 发送给主题转发器的消息不能是任意设置的选择键,必须是用小数点隔开的一系列的标识符.这些标识符可以是随意,但是通常跟消息的某些特性相关联.一些合法的路由选择键 ...

  5. PL/SQL 加字段 修改数据库之后 之后记得保存脚本

  6. UVA1660 电视网络 Cable TV Network

    题目地址:UVA1660 电视网络 Cable TV Network 枚举两个不直接连通的点 \(S\) 和 \(T\) ,求在剩余的 \(n-2\) 个节点中最少去掉多少个可以使 \(S\) 和 \ ...

  7. SQL Server - GO

    GO GO是批处理的标志,是一条或多条SQL语句的集合,SQL Server将批处理语句编译成一个可执行单元,此单元称为执行计划. GO语句把程序分成一个个代码块,即使一个代码块执行错误,它后面的代码 ...

  8. linux 用户空间获得纳秒级时间ns【转】

    转自:https://www.cnblogs.com/kekukele/p/3662816.html 一.引言 我们在测试程序的性能的时候往往需要获得ns级的精确时间去衡量一个程序的性能,下面介绍下l ...

  9. TreeGrid 控件集 :delphi 学习群 ---- 166637277 (Delphi学习交流与分享)

    delphi 学习群: 166637277  (Delphi学习交流与分享). 群主QQ: 1936431438 TreeGrid 控件集 收集: 1.https://www.lmd.de/produ ...

  10. 工程师死绝的世界答案-python3版

    エンジニアが死滅シタ世界|アンドロイドとふたりぼっちで生きろ. 荒れ果てた警察署 [MISSION LEVEL: D] 难度D 题目要求: あなたは 0 から 9 の数字を 3 つ入力すると開く扉を開 ...