Java课程设计 (阶段一文档)

 

 

 

 

 

 

 

 

 

Java课程设计

(阶段一文档)

       
   
 
     

 

 

 

 

 

 

 

 


二〇二〇年七月

 

目    录

1 选题................................................................................................. 1

2 系统需求分析................................................................................. 2

2.1 系统可行性分析.................................................................. 2

2.2 系统需求分析...................................................................... 2

2.3 项目进度安排...................................................................... 2

3系统设计.......................................................................................... 4

3.1 算数运算测试...................................................................... 4

3.2猜数字游戏........................................................................... 4

4系统实现.......................................................................................... 6

4.1算数运算测试系统实现....................................................... 6

4.2 猜数字游戏系统实现实现.................................................. 6

5系统测试.......................................................................................... 8

6结论和心得...................................................................................... 9

 

 

1 选题

选题一

算术运算测试

题目要求

实现十道100以内加减法数学题,根据题目计算出答案,用户输入答案,用户输入答案与正确答案相比,判断用户答案是否正确,最后计算用户得分,在控制台输出。

 

 

 

 

 

使用Java知识

  1. Java基本输入输出
  2. 运算符
  3. for循环
  4. 选择分支if(){}else{}

 

 

 

 

选题二

猜数游戏

题目要求

计算机产生随机数,用户输入输入所猜的数,用户输入数与计算机随机数进行比较,猜大了、猜小了都给出提示,猜正确了即为胜利,并显示用户猜的次数,还可以进行下一局,或者退出游戏

 

 

 

 

 

 

使用Java知识

  1. 分支if(){}else{}
  2. GUI界面
  3. 变量

 

 

 

 

 

 


2 系统需求分析

2.1 系统可行性分析

一.算术运算测试

  1. 技术可行性:学习过Java基础语言
  2. 经济可行性:有电脑、网络,还有编译软件Eclipse.
  3. 操作可行性:可以用学过的Java基础语言来做

二.猜数游戏

  1. 技术可行性:学习过Java基础语言、GUI图形界面
  2. 经济可行性:有电脑、网络,还有编译软件Eclipse和GUI图形界面插件、
  3. 操作可行性:可以用GUI来设计界面,用学过的Java知识来实现功能

2.2 系统需求分析

一.算术运算测试

通过跟用户沟通(老师)算术运算测试需求如下:

计算机生成十道算术题->加减法随机产生->用户输入答案->判断用户输入答案是否正确->显示正确答案和用户输入的答案->统计用户所得成绩并在控制台输出。功能图见图2-1

二.猜数字游戏  

通过跟用户沟通(老师)猜数字游戏需求如下:

计算机产生随机数->用户输入所猜的数->比较用户输入的数->对比两个数判断用猜的是否正确,不正确提示用户猜大了或者小了->统计用户猜的次数在控制台输出。功能图见图2-2

 

 

图2-1 算术运算测试功能模块图

 

 

图2-2 猜数字功能模块图

2.3 进度安排

阶段一进度安排如表3-1所示。

表3-1 进度安排表

阶段

持续时间

阶段描述

输出

构思阶段

两个小时

需求分析

需求说明,功能模块图

设计阶段

三个小时

系统设计

设计说明-可以画流程图;数据库设计

实现阶段

一天

编写代码

项目工程源代码

一天

系统测试

进行黑盒测试(功能测试)-测试说明

运行阶段

一天

部署、运行

系统使用说明、运维报告、录制视频

 

 

 

3 系统设计

根据系统的实际功能需求分析,对系统功能部分进行了设计。

3.1 算术运算测试

首先呢计算机随机生成十道加减法算术题并且计算机计算出每一道题的正确答案,用户根据题目计算出自己的答案并且在控制台输入,计算机进行用户答案与正确答案对比,判断用户输入的答案是否正确,并且在控制台对比输出正确答案和用户的答案,如果正确就给用户加十分,十道题都计算完后在控制台输出用户所得分数。

3.2     猜数字游戏

计算机产生一个随机数,用户输入一个自己猜的数,点击按键猜,就会出现一个窗口告诉用户才猜数的结果,如果猜对了弹窗就会显示恭喜你猜对了,如果猜错了弹窗就会提示显示很遗憾你猜错了,并且提示猜大了还是猜小了。弹窗还会显示用户本轮游戏猜的次数。最后用户还可以进行下一局游戏或者点击退出键,退出程序。

 

4 系统实现

4.1 算术运算测试实现

import java.awt.Toolkit;

 

import java.util.Scanner;

 

 

//产生十道100以内算数题,用户输入答案,

 

//判断用户输入的答案是否正确,

 

//给出用户得出的成绩,

 

//输出正确答案和用户答案

 

public class SumSubtractive {

  

public static void main(String[] args) {

      

Scanner input=new Scanner(System.in);

      

System.out.println("计算下列10道算术题,写出正确答案。(每题十分,共一百分)");

  

int count=0;//用来计算用户得出的成绩

      

int count1=0;

      

int sum=0;//记录用户获得的总成绩

      

int c = 0;//用来接收a+b的答案

      

//随机产生10道题

      

System.out.println();

      

for(int i=1;i<=10;i++) {

         

//产生100以内随机数

         

int a=(int)(Math.random()*100);

         

int b=(int)(Math.random()*100);

         

int z=(int)(Math.random()*10);

   //通过判断奇偶数让系统随机生成加减法

         

if(z%2==0) {

         

System.out.println("第"+i+"题"+":"+a+"+"+b+"=?");

      

System.out.print("第"+i+"题答案:");

         

int result=input.nextInt();

         

c=a+b;

         

System.out.print("正确答案是:"+c);

         

if(result==c) {

             

count+=10;

             

System.out.println("   恭喜你答对了! 你真棒");

         

    

       }

else {

             

System.out.println("   很遗憾你答错了!请继续努力");

      

       }

         

 

 

   }

 

      

else {

      

   if(a

             

          int t;

          t=a;

          a=b;

          b=t;

         

}

         

 System.out.println("第"+i+"题"+":"+a+"-"+b+"=?");

      

System.out.print("第"+i+"题答案:");

         

int result=input.nextInt();

         

c=a-b;

         

System.out.print("正确答案是:"+c);

         

if(result==c) {

             

count1+=10;

             

System.out.println("   恭喜你答对了! 你真棒");

      

        }

else {

             

System.out.println("   很遗憾你答错了!请继续努力");

      

       }

   }

      

}

      

sum=count+count1;

      

System.out.println("**********");

      

System.out.println("你的总成绩是:"+sum);

 

   }

 

 

}

 

 

 

图4-1-1算术运算测试界面

4.2猜数字游戏
package cn.pxy;

//猜数字游戏:1.产生随机数

 

//     2.用户输入数字

//     3.用户输入数字与随机数相比较

//     4.显示用户猜大了、小了或者猜对了

//     5.显示用户猜的次数

//     7.退出

import java.awt.BorderLayout;

 

import java.awt.EventQueue;

 

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.border.EmptyBorder;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JTextField;

import javax.swing.JButton;

import java.awt.event.ActionListener;

import java.sql.Date;

import java.util.Calendar;

import java.awt.event.ActionEvent;

 

public class Guess extends JFrame {

 

  private JPanel contentPane;

  private JTextField textField;

  JLabel lblNewLabel_2;

 

  /**

   * Launch the application.

   */

  public static void main(String[] args) {

     EventQueue.invokeLater(new Runnable() {

       public void run() {

          try {

            Guess frame = new Guess();

            frame.setVisible(true);

          } catch (Exception e) {

            e.printStackTrace();

          }

       }

     });

  }

 

  /**

   * Create the frame.

   *

   */

  //产生随机数a

  int a;

  //int a=(int) (Math.random()*100);

  //用count记录用户猜的次数

  int count=0;

 

  public Guess() {

  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

     setBounds(100, 100, 450, 300);

     contentPane = new JPanel();

     contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

     setContentPane(contentPane);

     contentPane.setLayout(null);

    

     JLabel lblNewLabel = new JLabel("  用户输入");

     lblNewLabel.setBounds(22, 83, 90, 15);

     contentPane.add(lblNewLabel);

     //textField 用户输入的数

     textField = new JTextField();

     textField.setBounds(122, 80, 99, 21);

     contentPane.add(textField);

     textField.setColumns(10);

    

     JButton btnNewButton = new JButton("猜");//按键猜

     btnNewButton.addActionListener(new ActionListener() {

       public void actionPerformed(ActionEvent e) {

          //e.getSource()事件源。如果e.getSource()==btnNewButton触发按钮

         if(e.getSource()==btnNewButton) {

            count++;//猜的次数

            //把text.Field转换为int类型,textField.getText()得到textField文本

          if(Integer.parseInt(textField.getText())>a) {

               //弹窗

              JOptionPane.showMessageDialog(null, "很遗憾!猜大了"+"   你猜了:"+ count+" 次", "猜数游戏",JOptionPane.WARNING_MESSAGE); 

            }else if(Integer.parseInt(textField.getText())

              JOptionPane.showMessageDialog(null, "很遗憾!猜小了"+"   你猜了:"+ count+" 次", "猜数游戏",JOptionPane.WARNING_MESSAGE); 

            }else {

              JOptionPane.showMessageDialog(null, "恭喜你猜对了!"+"   你猜了:"+ count+" 次", "猜数游戏",JOptionPane.WARNING_MESSAGE);

           

            }

           

          }

       }

    

     });

     btnNewButton.setBounds(172, 218, 93, 23);

     contentPane.add(btnNewButton);

    

     JButton btnNewButton_1 = new JButton("退出");//退出按键

     btnNewButton_1.addActionListener(new ActionListener() {

       public void actionPerformed(ActionEvent e) {

          System.exit(0);//退出程序

       }

     });

     btnNewButton_1.setBounds(289, 218, 93, 23);

     contentPane.add(btnNewButton_1);

    

     JLabel lblNewLabel_1 = new JLabel("  猜数字游戏");

     lblNewLabel_1.setBounds(172, 10, 82, 15);

     contentPane.add(lblNewLabel_1);

    

     lblNewLabel_2 = new JLabel();

     lblNewLabel_2.setBounds(-39, 218, 175, 32);

     contentPane.add(lblNewLabel_2);

    

     JButton btnNewButton_3 = new JButton("生成随机数");

     btnNewButton_3.addActionListener(new ActionListener() {

       public void actionPerformed(ActionEvent e) {

         //JOptionPane.showMessageDialog(null, "欢迎进入游戏随机数以产生", "猜数游戏",JOptionPane.WARNING_MESSAGE);

          a=(int) (Math.random()*100);

       }

     });

     btnNewButton_3.setBounds(22, 218, 117, 23);

     contentPane.add(btnNewButton_3);

    

     JLabel lblNewLabel_3 = new JLabel("欢迎进入游戏!");

     lblNewLabel_3.setBounds(148, 146, 231, 15);

     contentPane.add(lblNewLabel_3);

    

    

  }

}

 

 

 

 

 

图4-2-1  猜数字游戏界面

 

 

5 系统测试

1.在算术运算测试模块中主要对随机产生十道算术题、判断用户答案是否正确、输出用户成绩的功能模块进行测试,测试结果如表6-1所示。

表6-1 算术运算测试表

编号

测试功能

输入描述

预期结果

运行结果

HP01

产生十道加减法算术题

运行程序产生十道算术题

产生十道加法或减法的算术题

正常,与预期结果一致

HP02

判断用户输入的答案是否正确

用户输入数后,回车

控制台显示用户输入的答案是否正确,并输出正确答案

正常,与预期结果一致

HP03

输出用户成绩

答完十道题,回车

输出用户成绩

正常,与预期结果一致

从测试结果中可以看出该模块的所有功能均能正常实现,且测试结果与预期结果一致。

2.在猜数字模块中主要对用户输入的数与随机数对比、用户猜数次数输出、退出的功能模块进行测试,测试结果如表6-2所示

表6-2 猜数字游戏表

 

编号

测试功能

输入描述

预期结果

运行结果

HP01

用户输入的数与随机数对比

用户输入数后点击猜按钮

弹窗显示猜的是否正确

正常,与预期结果一致

HP02

用户猜数次数输出

点击猜按钮后,弹窗显示猜的次数

弹窗显示猜的次数

正常,与预期结果一致

HP03

退出

点击退出按钮

退出小游戏

正常,与预期结果一致

从测试结果中可以看出该模块的所有功能均能正常实现,且测试结果与预期结果一致

总结:

对算术运算测试课题设计并实现的所有功能模块进行测试,并给出测试表格和验证结果。结果表明本课题经过测试,所有功能都符合需求分析并且均能正常实现。

对猜数字游戏课题设计并实现的所有功能模块进行测试,并给出测试表格和验证结果。结果表明本课题经过测试,所有功能都符合需求分析并且均能正常实现。

 

 

 

6 结论和心得

心得:在完成本次项目中,我复习了之前学习的知识,并且对知识的运用也更加熟练了。同时也学到了很多新的东西。在做项目中有高兴也有烦恼,高兴的是程序有思路,并且能实现功能,烦恼的是在在实现功能的时候遇到问题无法解决。

总的来说,这次做项目使我有了很大进步。

 

你可能感兴趣的:(Java课程设计 (阶段一文档))