psp流程下四则运算

Posted on 2021-09-27 23:12  我来写作业了  阅读(71)  评论(0)    收藏  举报

PSP阶段

自己所花时间百分比

工程师所花时间百分比

计划

12

6

  •  明确需求和其他相关因素,估计每个阶段的时间成本

12

6

开发

92

88

  •  需求分析

11

10

  •  生成设计文档

5

6

  •  设计复审(和同事审核设计文档)

7

6

  •  代码规范(为目前的开发制定合适的规范)

6

3

  •  具体设计

9

12

  •  具体编码

38

21

  •  代码复审

6

9

  •  测试(自测、修改代码、修改提交)

10

21

报告

6

6

  •  测试报告

2

2

  •  计算工作量

2

1

  •  事后总结,并提出过程改进计划

2

3

代码:

  1 import java.awt.Color;
  2 import java.awt.Container;
  3 import java.awt.FlowLayout;
  4 import java.awt.Font;
  5 import java.awt.event.ActionEvent;
  6 import java.awt.event.ActionListener;
  7  
  8 import javax.swing.JButton;
  9 import javax.swing.JComboBox;
 10 import javax.swing.JFrame;
 11 import javax.swing.JLabel;
 12 import javax.swing.JOptionPane;
 13 import javax.swing.JTextField;
 14  
 15 public class gui_szys {
 16     private JFrame jFrame;//创建一个容器
 17     private Container contentPane; //容器,一个表面的桌布
 18     private JTextField field1,field2,field3;//创建文本框
 19     private JComboBox jcb;//下拉框
 20     private JLabel resultLabel;//创建运算=
 21     private JButton jb1,jb2,jb3;//创建按钮
 22     
 23     String [] strings= {"+","-","x","/"};
 24     
 25     //构造方法初始化
 26     public gui_szys() {
 27         jFrame=new JFrame("计算器");//初始化容器
 28         
 29         //设置大小
 30         jFrame.setSize(600,200);
 31         
 32         //设置窗口在显示屏的位置
 33         jFrame.setLocation(500, 300);
 34         
 35         //固定边框
 36         jFrame.setResizable(false);
 37         
 38         //设置直接关闭直接退出程序
 39         jFrame.setDefaultCloseOperation(jFrame.EXIT_ON_CLOSE);
 40         
 41         //创建一个获取三原色的类
 42         Color c=new Color(200,199,100);
 43         
 44         //初始化桌布容器
 45         contentPane=jFrame.getContentPane();  //获取相应的桌布对象
 46         
 47         //将背景颜色添加到桌布容器中
 48         contentPane.setBackground(c);
 49         
 50         //设置流式布局
 51         jFrame.setLayout(new FlowLayout());
 52         init();
 53     }
 54     
 55     
 56     //初始化方法
 57     public void init() {
 58         //1:初始化相应的组件
 59         field1=new JTextField(10);
 60         field2=new JTextField(10);
 61         field3=new JTextField(10);
 62         //初始化下拉框组件
 63         jcb=new JComboBox(strings);
 64         //初始化运算组件
 65         resultLabel=new JLabel("=");
 66         //初始化按钮组件
 67         jb1=new JButton("计算");
 68         jb2=new JButton("清空");
 69         jb3=new JButton("退出");
 70         
 71         //2:对各个组件进行字体,大小,加粗处理
 72         Font font=new Font("微软雅黑",Font.BOLD,15);
 73         
 74         //3:将这字体运用到各个组件中
 75         field1.setFont(font);
 76         field2.setFont(font);
 77         field3.setFont(font);
 78         jcb.setFont(font);
 79         resultLabel.setFont(font);
 80         jb1.setFont(font);
 81         jb2.setFont(font);
 82         jb3.setFont(font);
 83         //4:将对应的组件添加到容器中
 84         contentPane.add(field1);
 85         contentPane.add(jcb);
 86         contentPane.add(field2);
 87         contentPane.add(resultLabel);
 88         contentPane.add(field3);
 89         contentPane.add(jb1);
 90         contentPane.add(jb2);
 91         contentPane.add(jb3);
 92         
 93         //设置结果文本框不可编辑
 94         field3.setEditable(false);
 95         
 96         //设置输入为右边输入
 97         field1.setHorizontalAlignment(JTextField.RIGHT);
 98         field2.setHorizontalAlignment(JTextField.RIGHT);
 99         field3.setHorizontalAlignment(JTextField.RIGHT);
100         
101         //5:设置事件监听
102         //计算监听事件
103         jb1.addActionListener(new ActionListener() {
104             
105             @Override
106             public void actionPerformed(ActionEvent e) {
107                 String s1 = field1.getText().trim();//获取文本内容,去空格
108                 String s2 = field2.getText().trim();
109                 if (s1.equals("")||s2.equals("")) {
110                     //提示框
111                     JOptionPane.showMessageDialog(null, "请输入非空数据");
112                     return;
113                 }
114                 
115                 //将文本内容转换为整型
116                 int i1 = Integer.parseInt(s1);
117                 int i2 = Integer.parseInt(s2);
118                 
119                 //返回当前所选项,就是返回你选择的运算符
120                 String str1 = (String) jcb.getSelectedItem();
121                 
122                 
123                 //进行运算符判断,并进行相应的运算
124                 if (str1.equals("+")) {
125                     int num=i1+i2;
126                     field3.setText(num+"");
127                 }else if (str1.equals("-")) {
128                     int num=i1-i2;
129                     field3.setText(num+"");
130                 }else if (str1.equals("x")) {
131                     int num=i1*i2;
132                     field3.setText(num+"");
133                 }else if (str1.equals("/")) {
134                     //当为除时,除数是不能为零的,所以进行相应的判断
135                     if (i2==0) {
136                         JOptionPane.showMessageDialog(null, "除数不能为0");
137                         return;
138                     }
139                     int num=i1/i2;
140                     field3.setText(num+"");
141                 }
142                 
143             }
144         });
145         
146         //添加清空事件
147         jb2.addActionListener(new ActionListener() {
148             
149             @Override
150             public void actionPerformed(ActionEvent e) {
151                 field1.setText("");
152                 field2.setText("");
153                 field3.setText("");
154                 
155             }
156         });
157         
158         //添加退出事件
159         jb3.addActionListener(new ActionListener() {
160             
161             @Override
162             public void actionPerformed(ActionEvent e) {
163                 System.exit(0);
164                 
165             }
166         });
167  
168     }
169     
170     //启动窗口的方法
171     public void go() {
172         //显示窗口可见
173         jFrame.setVisible(true);
174     }
175     
176     public static void main(String[] args) {
177         new gui_szys().go();
178     } 
179  
180 }

程序运行测试:

 输入为空时:

 

测试运算: