java阶段一项目设计
2021-05-01 22:28
标签:mic 运算符 空格 nts dac 一个 四则运算 jbutton 缓冲区 Java课程设计 (阶段一文档) 目
录 1 选题................................................................................................. 1 3 系统需求分析................................................................................. 2 3.1 系统可行性分析.................................................................. 2 3.2 系统需求分析...................................................................... 2 3.3 项目进度安排...................................................................... 2 4 系统设计......................................................................................... 4 4.1 系统设计.............................................................................. 4 4.2 数据库设计(有则写-无则删除,如果是文件直接写文件).............................................................................................. 4 5 系统实现......................................................................................... 6 5.1 管理员登录界面实现.......................................................... 6 5.2 管理用户信息界面实现...................................................... 6 6 系统测试......................................................................................... 8 7 结论和心得..................................................................................... 9 选题一 猜数游戏 题目要求 计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了, 继续猜,直至猜到,给出所用时间和评语。保留用户测试成绩,做出成绩排行榜。 排行榜存放到文件或数据库中。 使用Java知识 数组,Random
random = new Random();定义一个随机数,for循环,while循环 if循环,多重if 选择结构,Scanner input= new Scanner() ;声明一个Scanner类的对象,并实例化, 计算时间方法,文件的读写,Arrays类:对数组元素的排序 选题二 简易计算器模拟程序 题目要求 仿照
Windows 计算器,编写一具有 GUI 的计算器,能实现整数的 加、减、乘、除四则运算。历次计算需存放在文件或数据库中,下回启动可重复 使用。功能具体参考
windows 计算器(查看菜单选择:标准型即可) 使用Java知识 private JPanel p1 = new JPanel(); 声明面板p1 private JTextField声明文本框 private JLabel label声明标签 super()调用父类的构造方法 Container c = getContentPane(); 初始化一个容器 label.setForeground(Color.blue); 将前景设为蓝色 p2.add(label);
在p2面板上添加标签 addActionListener 添加监听对象 p1.setLayout(new GridLayout()); 给按钮面板设置网格布局 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 设置按X时退出程序 setVisible(true); 将窗口隐藏 setResizable(false); 生成窗口的大小是固定的 setHorizontalAlignment设置水平对齐 getText().trim():在获得得的文本中去除空格 Double.parseDouble:把其他数据转化为double类型 猜数游戏:随机生成1到100的随机数,让几位玩家猜数,直到每个人猜对为止,根据每位玩家的次数和时间进行排血,然后将成绩存储到文件中。 简易计算器:设计一个简易计算器实现加减乘除等四则运算。历次计算器存放在文件中。 阶段一进度安排如表3-1所示。 表3-1 进度安排表 阶段 持续时间 阶段描述 输出 构思阶段 30min 需求分析 需求说明,功能模块图 设计阶段 30min 系统设计 设计说明-可以画流程图;数据库设计 实现阶段 3h 编写代码 项目工程源代码 5h 系统测试 进行黑盒测试(功能测试)-测试说明 运行阶段 1h 部署、运行 系统使用说明、运维报告、录制视频 项目二:猜数游戏 import java.util.Arrays; import java.util.Random; import java.util.Scanner; import java.io.FileWriter; import java.io.IOException; public
class Guess{ public
static void main(String[] args){ int
n=1; int
[]a=new int[2]; while(n
int
cishu=0; for(int
i=0;i
System.out.println("请输入"+n+"号玩家猜的数字:"); Random
random = new Random(); //生成一个随机数 int
suiji = random.nextInt(100); Scanner
input = new Scanner(System.in); long
startTime = System.currentTimeMillis(); while(true) { int
num =input.nextInt(); if(num>100||num
System.out.println("游戏结束"); break; } else
if(num System.out.println("您猜的数偏小了");cishu++; } else
if(num>suiji) { System.out.println("您猜的数偏大了");cishu++; } else
{ System.out.println("恭喜您猜对了");cishu++; break; } }n++; long
endTime = System.currentTimeMillis(); long
Time = endTime-startTime; System.out.println("共用"+cishu+"次猜对"); System.out.println("用时"+Time+"毫秒猜对"); a[i]=cishu; startTime=0;endTime=0; FileWriter fw = null; try { fw = new FileWriter("d:\\程序测试\\测试.txt", true); fw.write("\n"); fw.write(+(n-1)+"号玩家所用次数为:"); String data =
Integer.toString(cishu); fw.write(data); fw.write("\n"); fw.write(+(n-1)+"号玩家所用时间为:"); String counts =
Integer.toString((int) Time); String info = counts;
fw.write(info); fw.flush(); } catch (IOException e) { e.printStackTrace(); } } } System.out.println("根据次数排行榜为:"); Arrays.sort(a); for(int
m=0;m System.out.println(+a[m]);} System.out.println("保存成功"); } } 项目三:简易计算器 package com.gui.test; import javax.swing.*; import javax.swing.JTextField; import java.awt.*; import java.awt.event.*; import java.lang.*; import java.awt.Color;
public class CalculateTest extends
JFrame implements ActionListener {
private JPanel p1 = new JPanel();
//建立面板p1
private JPanel p2 = new JPanel();
//建立面板p2
private JTextField t1; //建立文本框t1
private JTextField t2; //建立文本框t2
private JLabel label; //声明标签
StringBuffer str; //设置显示屏为字符串形式
double x,y; int z; private JButton b[] = new
JButton[13]; //用数组创建13个按钮的空间
private JButton b1,b2,b3,b4,b5,b6,b7,b8,b9;
public CalculateTest() //构造方法
{ super("简易计算器"); //设置窗口的名称 Container c = getContentPane(); //创建面板对象 t1 = new JTextField(30); //给文本框t1分配空间 t1.setEditable(false); //使t1编辑框不能编辑 t2 = new JTextField(30); //给文本框t2分配空间 t2.setEditable(false); //使t2编辑框不能编辑 label = new JLabel("郑思聪设计的计算器"); //设置标签的名字 label.setForeground(Color.blue); //将前景设为蓝色
str=new StringBuffer();
p2.add(label); //在p2面板上添加标签 p2.add(t2); //在p2面板上添加文本框 p2.add(t1); p2.setLayout(new GridLayout(5,1)); //设置四行一列的布局
for(int i=0;i
{ String s=""+i; b[i]= new JButton(s); b[i].addActionListener(this); //添加监听对象 }
b[10]= new
JButton("-/+"); b[11]= new
JButton("."); b1= new JButton("/"); b2= new JButton("Back"); b3= new JButton("*"); b4= new JButton("C"); b5= new JButton("+"); b6= new JButton("Sqrt"); b7= new JButton("-"); b8= new JButton("="); b9= new JButton("^2"); for(int i=0;i
{
b[i].setForeground(Color.blue);
//设置前景颜色 }
b1.setForeground(Color.red); b3.setForeground(Color.red); b5.setForeground(Color.red); b7.setForeground(Color.red); b2.setForeground(Color.blue); b4.setForeground(Color.blue); b6.setForeground(Color.red); b8.setForeground(Color.blue); b9.setForeground(Color.red); p1.add(b[7]); p1.add(b[8]);
p1.add(b[9]); p1.add(b1); p1.add(b2); p1.add(b[4]); p1.add(b[5]);
p1.add(b[6]); p1.add(b3); p1.add(b4); p1.add(b[1]); p1.add(b[2]);
p1.add(b[3]); p1.add(b5); p1.add(b6); p1.add(b[0]); p1.add(b[10]);
p1.add(b[11]);p1.add(b7);p1.add(b8); p1.add(b9); //添加面板 p1.setLayout(new
GridLayout(5,5,5,5)); //给按钮面板设置网格布局
b[10].addActionListener(this); b[11].addActionListener(this); b1.addActionListener(this);
b2.addActionListener(this); b3.addActionListener(this);
b4.addActionListener(this); b5.addActionListener(this);
b6.addActionListener(this); b7.addActionListener(this);
b8.addActionListener(this); b9.addActionListener(this); //添加监听对象 c.add(p2); c.add(p1); c.setLayout(new FlowLayout()); //设置为顺序布局
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置按X时退出程序 setVisible(true); //将窗口隐藏 setResizable(false); //生成窗口的大小是固定的 setSize(400,400); //设定窗口的尺寸
}
public static void main(String[] args) //创建一个方法实现一个窗口
{ CalculateTest f = new
CalculateTest(); }
public void actionPerformed(ActionEvent e) //实现按钮的事件处理
{
try
{ if(e.getSource()==b4) //调用e.getSource()如果得到Jbutton点击的是b4 {
t1.setText("0"); //清零
t1.setHorizontalAlignment(JTextField.RIGHT); //设置水平对齐 str.setLength(0); //清空字符串缓冲区 }
else if(e.getSource()==b[10]) {
x=Double.parseDouble(t1.getText().trim()); //getText().trim():在获得得的文本中去除空格 t1.setText(""+(-x));
t1.setHorizontalAlignment(JTextField.RIGHT); //设置水平对齐 }
else if (e.getSource()==b5) {
x=Double.parseDouble(t1.getText().trim()); //Double.parseDouble:把其他数据转化为double类型 str.setLength(0); y=0d; //给y赋初始值0且这个数字类型为double z=0; }
else if(e.getSource()==b7) {
x=Double.parseDouble(t1.getText().trim()); str.setLength(0); //setLength:设置动态数组长度 y=0d; z=1; }
else if(e.getSource()==b3) {
x=Double.parseDouble(t1.getText().trim()); str.setLength(0); y=0d; z=2; }
else if(e.getSource()==b1) {
x=Double.parseDouble(t1.getText().trim()); str.setLength(0); y=0d; z=3; }
else if(e.getSource()==b8) {
str.setLength(0); switch(z) {
case 0:
t1.setText(""+(x+y)); t1.setHorizontalAlignment(JTextField.RIGHT);break; case 1:
t1.setText(""+(x-y));
t1.setHorizontalAlignment(JTextField.RIGHT);break; case 2:
t1.setText(""+(x*y));
t1.setHorizontalAlignment(JTextField.RIGHT);break; case 3:
t1.setText(""+(x/y));
t1.setHorizontalAlignment(JTextField.RIGHT);break; }
} else if(e.getSource()==b9) { x=Double.parseDouble(t1.getText().trim()); if(x
{
t1.setText("数字格式异常");
t1.setHorizontalAlignment(JTextField.RIGHT); //设置水平对齐 }
else {
t1.setText(""+Math.pow(x,2)); //添加平方
t1.setHorizontalAlignment(JTextField.RIGHT); }
str.setLength(0); y=0d; } else if(e.getSource()==b[11]) {
if(t1.getText().trim().indexOf(‘.‘)!=-1) //判断字符串中是否包含小数 {
}
else {
if(t1.getText().trim().equals("0")) //初始值显示为0 { t1.setText(str.append(e.getActionCommand()).toString());
t1.setHorizontalAlignment(JTextField.RIGHT); } else
if(t1.getText().trim().equals(""))
//初始值显示为空不做任何操作 {} else {
t1.setText(str.append(e.getActionCommand()).toString());
t1.setHorizontalAlignment(JTextField.RIGHT); }
}
y=0d;
}
else if(e.getSource()==b6) {
x=Double.parseDouble(t1.getText().trim()); if(x
{
t1.setText("数字格式异常");
t1.setHorizontalAlignment(JTextField.RIGHT); //设置水平对齐 }
else {
t1.setText(""+Math.sqrt(x)); //添加平方根
t1.setHorizontalAlignment(JTextField.RIGHT); }
str.setLength(0); y=0d; }
else
{
if(e.getSource()==b[0]) //零的数字键 {
if(t1.getText().trim().equals("0"))//如果显示为零不做任何操作 {} else
t1.setText(str.append(e.getActionCommand()).toString());
t1.setHorizontalAlignment(JTextField.RIGHT);
y=Double.parseDouble(t1.getText().trim()); }
else if (e.getSource()==b2) //back按键 {
if(!t1.getText().trim().equals("0")) //如果显示不为零 { if(str.length()!=1) {
t1.setText(str.delete(str.length()-1,str.length()).toString());
t1.setHorizontalAlignment(JTextField.RIGHT); } else { t1.setText("0");
t1.setHorizontalAlignment(JTextField.RIGHT);
str.setLength(0); } }
y=Double.parseDouble(t1.getText().trim()); }
else { t1.setText(str.append(e.getActionCommand()).toString());
t1.setHorizontalAlignment(JTextField.RIGHT);
y=Double.parseDouble(t1.getText().trim()); //把其他数据转化为double类型 } }
}
catch(NumberFormatException e1){
t1.setText("数字格式异常");
t1.setHorizontalAlignment(JTextField.RIGHT); }
catch(StringIndexOutOfBoundsException
e1){t1.setText("字符串索引越界"); //Java API指出StringIndexOutOfBoundsException异常 t1.setHorizontalAlignment(JTextField.RIGHT);} //设置水平对齐
} }
两个玩家猜数:
33的平方: 表6-1 猜数游戏测试表 编号 测试功能 输入描述 预期结果 运行结果 HP01 猜数超出界限 1.输入一个小于0或大于100的数 显示游戏结束并退出循环 正常,与预期结果一致 HP02 猜数功能 1.任意输入1到100之间的整数 2.根据系统提示猜大或猜小继续输入,,知道猜对为止 根据玩家每次输入的数,系统将会显示猜大,猜小或者猜对了 正常,与预期结果一致 HP03 排序功能 1.输入不同玩家所猜测的数字直到猜对为止 根据不同玩家猜对的次数进行排序 正常,与预期结果一致 表6-1 计算器测试表 编号 测试功能 输入描述 预期结果 运行结果 HP01 加减乘除四则运算 1.输入数字按运算符号得出结果 显示出正确运算结果 正常,与预期结果一致 HP02 平方及平方根运算 1.输入数字求出那个数的平方及平方根 显示出正确运算结果 正常,与预期结果一致 HP03 归零功能 1.输入数字按C归零 将输入的数字归零 正常,与预期结果一致 心得:通过本次实验,加深了我对GUI的了解,也让我在之前的java 学习中找到了不足,以及遗忘的知识漏洞。这次实验让我巩固了曾经学习的java知识,也让我学习上的漏洞得以弥补,还加强了我在编程的活学活用的能力。希望在以后的学习中加强对知识的巩固,不要遗漏任何一点知识。 java阶段一项目设计 标签:mic 运算符 空格 nts dac 一个 四则运算 jbutton 缓冲区 原文地址:https://www.cnblogs.com/zsc961644823/p/13205684.html
1 选题
2
系统需求分析
2.1
系统可行性分析
2.2
系统需求分析
2.3 进度安排
3 系统设计
3.1 系统设计
4 系统实现
4.1 猜数游戏
4.2简易计算器
5 系统测试
6 结论和心得
上一篇:Spring Cloud简介
下一篇:python设置自动任务。