zoukankan      html  css  js  c++  java
  • java阶段一项目设计

     

     

     

    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

     

    1 选题

    选题一

    猜数游戏

    题目要求

    计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,

    继续猜,直至猜到,给出所用时间和评语。保留用户测试成绩,做出成绩排行榜。

    排行榜存放到文件或数据库中。

    使用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类型


    2 系统需求分析

    2.1 系统可行性分析

    猜数游戏:随机生成1到100的随机数,让几位玩家猜数,直到每个人猜对为止,根据每位玩家的次数和时间进行排血,然后将成绩存储到文件中。

    简易计算器:设计一个简易计算器实现加减乘除等四则运算。历次计算器存放在文件中。

    2.2 系统需求分析


     

     

    2.3 进度安排

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

    表3-1 进度安排表

    阶段

    持续时间

    阶段描述

    输出

    构思阶段

    30min

    需求分析

    需求说明,功能模块图

    设计阶段

    30min

    系统设计

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

    实现阶段

    3h

    编写代码

    项目工程源代码

    5h

    系统测试

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

    运行阶段

    1h

    部署、运行

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

     


    3 系统设计

    3.1 系统设计

       项目二:猜数游戏

    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<=2) {      

              int cishu=0;

              for(int i=0;i<2;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<0) {

                    System.out.println("游戏结束");

                    break;

                 }

                 else if(num<suiji) {

                    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(" ");

                      fw.write(+(n-1)+"号玩家所用次数为:");

                      String data = Integer.toString(cishu);

                      fw.write(data);

                      fw.write(" ");

                      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<a.length;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<10;i++)     //将数组中0到9设置为标签

            { 

                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<12;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<0) 

                 { 

                     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<0) 

                { 

                    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);}   //设置水平对齐

        } 

               

    4 系统实现

    4.1 猜数游戏

    两个玩家猜数:

     

     


    4.2简易计算器

     

    33的平方:

     

     

     

    5 系统测试

    表6-1 猜数游戏测试表

    编号

    测试功能

    输入描述

    预期结果

    运行结果

    HP01

    猜数超出界限

    1.输入一个小于0或大于100的数

    显示游戏结束并退出循环

    正常,与预期结果一致

    HP02

    猜数功能

    1.任意输入1到100之间的整数

    2.根据系统提示猜大或猜小继续输入,,知道猜对为止

    根据玩家每次输入的数,系统将会显示猜大,猜小或者猜对了

    正常,与预期结果一致

    HP03

    排序功能

    1.输入不同玩家所猜测的数字直到猜对为止

    根据不同玩家猜对的次数进行排序

    正常,与预期结果一致

    表6-1 计算器测试表

    编号

    测试功能

    输入描述

    预期结果

    运行结果

    HP01

    加减乘除四则运算

    1.输入数字按运算符号得出结果

    显示出正确运算结果

    正常,与预期结果一致

    HP02

    平方及平方根运算

    1.输入数字求出那个数的平方及平方根

    显示出正确运算结果

    正常,与预期结果一致

    HP03

    归零功能

    1.输入数字按C归零

    将输入的数字归零

    正常,与预期结果一致

     

     

     

    6 结论和心得

    心得:通过本次实验,加深了我对GUI的了解,也让我在之前的java 学习中找到了不足,以及遗忘的知识漏洞。这次实验让我巩固了曾经学习的java知识,也让我学习上的漏洞得以弥补,还加强了我在编程的活学活用的能力。希望在以后的学习中加强对知识的巩固,不要遗漏任何一点知识。

  • 相关阅读:
    封装一个php语言的api提示类
    Content-Type四种常见取值
    postman中 form-data、x-www-form-urlencoded、raw、binary的区别
    ansible find
    Linux系统中根目录下或者新挂载的磁盘目录下有一个叫lost+found,它的作用是什么?
    rm /mv需要注意的
    mount
    es number_of_shards和number_of_replicas
    logstash设置配置路径
    ES7.8 设置 xpack
  • 原文地址:https://www.cnblogs.com/zsc961644823/p/13205684.html
Copyright © 2011-2022 走看看