日期: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. easyui 进阶之tree的常见操作

    前言 easyui是一种基于jQuery的用户界面插件集合,它为创建现代化,互动,JavaScript应用程序,提供必要的功能,完美支持HTML5网页的完整框架,节省网页开发的时间和规模.非常的简单易 ...

  2. python之第三方模块安装

    1. 直接打开cmd窗口运行 pip install xxx   #可联网情况下使用,联网下载 xxx表示要安装的模块名称 pip问题及解决方法: 1. 配置环境变量,将如下两个路径都加到系统path ...

  3. JSTL 递增序号

    <c:forEach items="${signBusList}" var="sign" varStatus="xh"> ${x ...

  4. 【报错】java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[

    报错 java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleExce ...

  5. asyncio模块中的Future和Task

      task是可以理解为单个coroutine,经过ensure_future方法处理而形成,而众多task所组成的集合经过asyncio.gather处理而形成一个future. 再不精确的粗略的说 ...

  6. VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNTION(翻译)

    0 - ABSTRACT 在这个工作中,我们研究了卷积网络的深度对于它在大规模图像识别设置上的准确率的效果.我们的主要贡献是对使用非常小的卷积核(3×3)来增加深度的网络架构进行彻底评估,这说明了通过 ...

  7. SFTP远程连接服务器上传下载文件-vs2010项目实例

    本项目仅测试远程连接服务器,支持上传,下载文件,更多功能开发请看API自行开发. 环境:win7系统,vs2010 vs2010项目实例下载地址:CSDN下载 如果没有CSDN积分,百度网盘下载(密码 ...

  8. 使用ENCKEYS方法加密数据

    要使用这种数据加密方法,您需要配置Oracle GoldenGate以生成加密密钥并将密钥存储在本地ENCKEYS文件中.此方法使用的永久密钥只能通过根据使用加密密钥填充ENCKEYS文件中的说明重新 ...

  9. 20165231 2017-2018-2 《Java程序设计》第4周学习总结

    教材学习内容总结 第五章 子类与父类: 所谓的子类,必须是一个类继承了另一个类,这个类才是子类:比如:public class A extend B这就是说A类继承了B类,那么A就是B的子类:B是A的 ...

  10. 一言难尽的js变量提升

    基础知识  在这个课题开始之前我们先做一些基础知识的讲解 1.在顶级的区域内声明的变量为 window级别的变量. 也就是说var a=100 等价于 window.a=100; 2.局部的重新声明变 ...