我的学号:201571030104

小伙伴的学号:201571030109

实验要求

软件基本功能要求如下:

在《实验二 软件工程个人项目》中,同学们实现了一个命令行四则运算出题小程序,本次实验采用结对编程方式,设计开发一个小学生四则运算练习软件,使之具有以下功能:

(1)由计算机从题库文件中随机选择20道加减乘除混合算式,用户输入算式答案,程序检查答案是否正确,每道题正确计5分,错误不计分,20道题测试结束后给出测试总分;

(2)题库文件可采用实验二的方式自动生成,也可以手工编辑生成,文本格式如下:

(3)程序为用户提供三种进阶四则运算练习功能选择:百以内整数算式(必做)、带括号算式、真分数算式练习;

(4)程序允许用户进行多轮测试,提供用户多轮测试分数柱状图,示例如下:

(5)程序记录用户答题结果,当程序退出再启动的时候,可为用户显示最后一次测试的结果,并询问用户可否进行新一轮的测试;

(6)测试有计时功能,测试时动态显示用户开始答题后的消耗时间。

(7)程序人机交互界面是GUI界面(WEB页面、APP页面都可),界面支持中文简体(必做)/中文繁体/英语,用户可以进行语种选择。

1、需求分析

该项目要求程序有人机交互界面,且可评判成绩。可为用户提供百以内整数算式、带括号算式、真分数算式三种练习,可为进行多轮测试并记录成绩生成柱状图并且记录用户消耗的时间。

2、功能分析

可实现基本要求,即可生成数字在 0 和 100 之间,运算符在3个到5个之间的计算表达式,并计算出表达式的结果

随机可生成带括号的运算式,括号不会超过运算符的个数

生成真分数的四则运算

有用户界面,可进行多轮测试

记录测试结果,并将以往成绩以柱状图展示

测试时,记录用户的测试用时

3、设计实现

4、运行测试

设计交互界面,首页登陆,登录用户名“admin”,密码123456。

答题界面

答题完毕后,可以点击保存练习过的题目(包括自己答题的答案)

答题结束后,可以查看自己得分情况(具体的用一个柱状统计图展示)

5、核心代码

登录界面

1 public classLogin {2

3 publicLogin()4 {5 JFrame f=newJFrame();6 f.setTitle("小学生四则运算答题系统");7 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);8 f.setExtendedState(JFrame.MAXIMIZED_BOTH);9 f.setVisible(true);10

11 //设置窗口的大小和位置

12 f.setSize(500,500);13 f.setLocation(200,200);14

15 Container con=f.getContentPane();//生成一个容器

16 con.setLayout(new GridLayout(7,1));17

18 JPanel pan1 =newJPanel();19 JLabel title=new JLabel("欢迎登陆小学生四则运算答题系统");20 title.setFont(new Font("宋体",Font.BOLD, 20));21 pan1.add(title);22 con.add(pan1);23 //生成一个新的版

24 JPanel pan2 = newJPanel();25 JPanel pan3 = newJPanel();26 JPanel pan4 = newJPanel();27 JPanel pan5 = newJPanel();28

29 con.add(pan2);30 con.add(pan3);31 con.add(pan4);32 con.add(pan5);33

34 JLabel name=new JLabel("用户名");35 pan2.add(name);36 TextField tf_name=new TextField(20);37 pan2.add(tf_name);38

39 JLabel pass = new JLabel("密码");40 pan3.add(pass);41 TextField password=new TextField(20);42 password.setEchoChar('*');43 pan3.add(password);44

45 JButton b_log=new JButton("登陆");46 b_log.addActionListener(newActionListener() {47 public voidactionPerformed(ActionEvent e) {48 //TODO Auto-generated method stub49 //获取用户名和密码,进行校验

50 String myUsername=tf_name.getText();51 String myPassword=password.getText();52 if(myUsername.equals("admin")&& myPassword.equals("123456")){53 JOptionPane.showMessageDialog(null, "登陆成功!");54 f.dispose();55 MyExGUI ui = newMyExGUI();56

57 }58 else{59 JOptionPane.showMessageDialog(null, "账号或密码错误!");60 name.setText( "");61 password.setText( "");62 }63

64 }65 });66 pan4.add(b_log);67

68 JButton b_exit=new JButton("退出");69 b_exit.addActionListener(newActionListener() {70 public voidactionPerformed(ActionEvent e) {71 //TODO Auto-generated method stub

72 JOptionPane.showMessageDialog(null, "谢谢使用!");73 f.setVisible(false);//隐藏窗体

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

75 }76 });77 pan5.add(b_exit);78 //登陆和退出这两个按钮放在第四个版面上

79

80

81 }82

83 }

View Code

练习界面

1 packageui_test;2

3 import java.awt.*;4 importjava.awt.event.ActionEvent;5 importjava.awt.event.ActionListener;6 importjava.io.BufferedOutputStream;7 importjava.io.File;8 importjava.io.FileOutputStream;9 importjava.io.IOException;10 importjava.util.ArrayList;11

12 import javax.swing.*;13

14

15 public class MyExGUI extendsJFrame{16 ArrayList user_zongti = new ArrayList();17 ArrayList user_zonganswer = new ArrayList();18 ArrayList user_answer = new ArrayList();19 ArrayList true_answer = new ArrayList();20 ArrayList jta_timu = new ArrayList();21 ArrayList jta_zong = new ArrayList();22 ArrayList user_fenshu = new ArrayList();23 JMenuBar jmb; //菜单条组件

24 JMenu menu1, menu2, menu3, menu4, menu5;//菜单

25 JMenuItem item1, item2, item3, item4, item5, item6;//菜单项

26 JMenu build; //二级菜单

27 JMenuItem file, project;28 TextArea answer_all = newTextArea();29 TextField jta = newTextField();30 TextField jta_answer = newTextField();31 JLabel num_answer = newJLabel();32 JLabel answer1;33 JToolBar jtb;//工具条

34 JButton jb1, jb2, jb3, jb4, jb5, jb6, jb7,jb_next;35 intanswer_count;36 intanswer_fenshu;37 publicMyExGUI()38 {39 //创建菜单

40 jmb = newJMenuBar();41

42 menu1 = new JMenu("文件(F)");43 menu1.setMnemonic('f'); //助记符

44 menu2 = new JMenu("编辑");45 menu2.setMnemonic('E');46 menu3 = new JMenu("格式");47 menu4 = new JMenu("查看");48 menu5 = new JMenu("帮助");49

50 build = new JMenu("新建");51

52 file = new JMenuItem("文件");53 project = new JMenuItem("答题");54 item1 = new JMenuItem("打开");55 item2 = new JMenuItem("保存(S)");56 item3 = new JMenuItem("另存为");57 item4 = new JMenuItem("页面设置");58 item5 = new JMenuItem("打印");59 item6 = new JMenuItem("退出");60

61 answer1 = new JLabel("第 1 题");62

63

64

65 //添加菜单项至菜单上

66 build.add(file);67 build.add(project);68

69 menu1.add(build);70 menu1.add(item1);71 menu1.add(item2);72 menu1.add(item3);73 menu1.addSeparator();74 menu1.add(item4);75 menu1.add(item5);76 menu1.add(item6);77 //将菜单加入至菜单栏

78 jmb.add(menu1);79 jmb.add(menu2);80 jmb.add(menu3);81 jmb.add(menu4);82 jmb.add(menu5);83

84

85 JPanel contentPanel = newJPanel();86 contentPanel.setLayout(null);87 JLabel daan = new JLabel("答案");88 JLabel dengyu = new JLabel("=");89 num_answer=answer1;90 num_answer.setFont(new Font("宋体",Font.BOLD, 22));91 jb_next = new JButton("下一题");92 jta.setFont(new Font("宋体",Font.BOLD, 22));93 jta_answer.setFont(new Font("宋体",Font.BOLD, 22));94 jb_next.setFont(new Font("宋体",Font.BOLD, 22));95 daan.setFont(new Font("宋体",Font.BOLD, 22));96 dengyu.setFont(new Font("宋体",Font.BOLD, 22));97

98 contentPanel.add(num_answer);99 contentPanel.add(daan);100 contentPanel.add(dengyu);101 contentPanel.add(jta);102

103 contentPanel.add(jta_answer);104 contentPanel.add(answer_all);105 contentPanel.add(jb_next);106

107 num_answer.setBounds(90, 20, 130, 50);108 daan.setBounds(250, 20, 90, 50);109 jta.setBounds(50, 70, 150, 30);110 dengyu.setBounds(205, 70, 20, 20);111 jta_answer.setBounds(230, 70, 100, 30);112 jb_next.setBounds(350, 70, 110, 30);113 answer_all.setBounds(50, 120, 400, 300);114

115 this.setJMenuBar(jmb); //添加菜单栏,不能设定位置,会自动放在最上部

116 this.add(contentPanel);117

118 this.setTitle("在线答题系统");119 this.setSize(600, 500);120 this.setVisible(true);121 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);122 item1.addActionListener(newActionListener() {123

124 @Override125 public voidactionPerformed(ActionEvent arg0) {126 //TODO Auto-generated method stub

127 JFileChooser jfc=newJFileChooser();128 jfc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES );129 jfc.showDialog(new JLabel(), "选择");130 File file=jfc.getSelectedFile();131 if(file.isDirectory()){132 //System.out.println("文件夹:"+file.getAbsolutePath());

133 }else if(file.isFile()){134 String s=file.getAbsolutePath();135 }136 }137 });138 item2.addActionListener(newActionListener() {139

140 @Override141 public voidactionPerformed(ActionEvent arg0) {142 FileOutputStream outSTr = null;143 BufferedOutputStream Buff = null;144 boolean flag = true;145 File file;146 //String test ;

147 do{148 //test = "test"+count;

149

150 String inputValue = JOptionPane.showInputDialog("Please input file name");151 file = new File(inputValue+".txt");152 if (!file.exists()) {153 //创建文件

154 try{155

156 flag=file.createNewFile();157

158 } catch(IOException e) {159 e.printStackTrace();160

161 }162 flag=false;163 }164 else{165

166 JOptionPane.showMessageDialog(null, "该文件名已存在,请重新输入", "ERROR", JOptionPane.ERROR_MESSAGE);167 flag=true;168 }169 }while(flag);170 //写入文件

171 String u_answer;172 try{173 outSTr = newFileOutputStream(file);174 Buff = newBufferedOutputStream(outSTr);175 System.out.println("选择是后执行的代码"+user_zongti.size()+user_answer.size());176 for (int i = 0; i < user_zongti.size(); i++)177 {178 try{179 Buff.write(user_zongti.get(i).getBytes());180 Buff.write(" ".getBytes());181 u_answer =user_answer.get(i);182 if(u_answer.equals(""))183 u_answer ="没有作答";184

185 Buff.write(u_answer.getBytes());186 Buff.write("\r\n".getBytes());187 } catch(IOException e) {188 e.printStackTrace();189 i--;190 }191 }192 Buff.flush();193 Buff.close();194

195 } catch(IOException e) {196 e.printStackTrace();197 }198 //Buff.close();

199 try{200 outSTr.close();201 } catch(IOException e) {202 e.printStackTrace();203 }204 user_zongti.clear();205 user_answer.clear();206 }207 });208

209

210 project.addActionListener(newActionListener() {211

212 @Override213 public voidactionPerformed(ActionEvent arg0) {214 arithmetic art = newarithmetic();215 true_answer=art.list_answer;216 jta_timu =art.list_timu;217 jta_zong =art.list;218 answer_count=1;219 answer_all.setText("");220 for (int i = 0; i < art.list_timu.size(); i++)221 {222 user_zongti.add(jta_zong.get(i));223 answer_all.append(jta_timu.get(i));224 answer_all.append("\r\n");225 }226 num_answer.setText("第 "+answer_count+" 题");227 jta.setText(jta_timu.get(answer_count-1));228 answer_count++;229

230

231 }232 });233 jb_next.addActionListener(newActionListener() {234

235 @Override236 public voidactionPerformed(ActionEvent arg0) {237 String temp;238 temp =jta_answer.getText();239

240 if(jta.getText().equals(""))241 {242 JOptionPane.showMessageDialog(null, "错误,请导入题库", "错误", JOptionPane.ERROR_MESSAGE);243 return;244 }245 jta_answer.setText("");246 if(answer_count<=20)247 {248 if(isInteger(temp))249 {250

251 user_answer.add(temp);252 System.out.println("选择否后执行的代码"+temp+"user_size"+user_answer.size());253 num_answer.setText("第 "+answer_count+" 题");254 jta.setText(jta_timu.get(answer_count-1));255 answer_count++;256 }257 else{258 JOptionPane.showMessageDialog(null, "错误", "请输入数字", JOptionPane.ERROR_MESSAGE);259 }260 }261 else{262 user_answer.add(temp);263 System.out.println("选择否后执行的代码"+temp+"user_size"+user_answer.size());264 answer_fenshu=0;265 for(int i=0;i

279 }else{280 Object[] option = { "是", "取消"};281 int res1=JOptionPane.showOptionDialog(null, "继续新一轮答题", "新一轮答题",282 JOptionPane.DEFAULT_OPTION, JOptionPane.YES_NO_OPTION,283 null, option, option[0]);284

285 if(res1==JOptionPane.YES_OPTION){286 arithmetic art = newarithmetic();287 true_answer=art.list_answer;288

289 jta_timu =art.list;290 answer_count=1;291 answer_all.setText("");292 jta_answer.setText("");293 for (int i = 0; i < art.list_timu.size(); i++)294 {295 user_zongti.add(jta_timu.get(i));296 answer_all.append(jta_timu.get(i));297 answer_all.append("\r\n");298 }299 num_answer.setText("第 "+answer_count+" 题");300 jta.setText(jta_timu.get(answer_count-1));301 answer_count++;302

303 }else{304

305 }306

307 }308

309

310

311 }312

313

314

315 }316 });317

318

319

320

321 }322

323 public static booleanisInteger(String str) {324 for (int i = str.length();--i>=0;){325 if (!Character.isDigit(str.charAt(i))){326 return false;327 }328 }329 return true;330 }331

332

333

334

335 }

View Code

绘图界面

1 packageui_test;2

3 importjava.awt.Color;4 importjava.awt.Graphics;5 importjava.awt.Graphics2D;6 importjava.util.ArrayList;7 importjava.util.Random;8

9 importjavax.swing.JFrame;10

11 public class chart extendsJFrame{12 //绘制柱形统计图

13 ArrayList ran=new ArrayList();14 public chart(ArrayListscores)15 {16 super();17 getContentPane().setForeground(Color.CYAN);18 setForeground(Color.CYAN);19 setBackground(Color.CYAN);20 for(int i=0;i

26 setTitle("绘制柱形图");27 setSize(600, 400);28 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);29 }30 @Override31 public voidpaint(Graphics g){32 int Width =getWidth();33 int Height =getHeight();34 int leftMargin = 20;//柱形图左边界

35 int topMargin = 50;//柱形图上边界

36 Graphics2D g2 =(Graphics2D) g;37 g2.setColor(Color.WHITE);//绘制白色背景

38 g2.fillRect(0, 0, Width, Height-100);//绘制矩形图

39 g2.setColor(Color.black);40 for(int i=0;i<=10;i++)41 {42 //绘制灰色横线和百分比

43 g2.drawString((100-10*i)+"", 15, topMargin+30*i);44 g2.drawLine(5, topMargin+30*i, Width, topMargin+30*i);//绘制灰色横线

45 }46 g2.setColor(Color.YELLOW);47 for(int i=0;i<=ran.size();i++)48 {49 //绘制柱形图

50 int step = (i+1)*40;//设置每个柱形图的水平间隔为4051 //绘制矩形

52 g2.fillRoundRect(leftMargin+step*2-5,(100-ran.get(i))*3+50, 40, 300-(100-ran.get(i))*3, 40, 10);53 //列出测试轮数

54 g2.drawString("第"+(i+1)+"轮", leftMargin+step*2, 380);55 }56 }57

58

59 }

View Code

随机产生四则远算式

1 packageui_test;2

3 importjava.io.BufferedOutputStream;4 importjava.io.File;5 importjava.io.FileOutputStream;6 importjava.io.IOException;7 importjava.util.ArrayList;8 importjava.util.Random;9 importjava.util.Scanner;10

11 public classarithmetic12 {13 ArrayList list = new ArrayList();14 ArrayList list_timu = new ArrayList();15 ArrayList list_answer = new ArrayList();16 publicarithmetic()17 {18 FileOutputStream outSTr = null;19 BufferedOutputStream Buff = null;20 int number_n=20,count;21

22 ArrayList list_temp = new ArrayList();23 String[] operator = new String[]{"+","-","*","/"};24

25 Random rand = newRandom();26 File file1 = new File("result.txt");27 if(file1.exists()) {28 //创建文件

29 try{30 file1.createNewFile();31 } catch(IOException e) {32 e.printStackTrace();33 }34 }35

36

37 while(number_n>0)38 {39 int[] number_temp = new int[rand.nextInt(2)+3];40 String[] str_temp = new String[number_temp.length-1];41 for(int i=0;i

50 }51

52 else

53 {54 number_temp[i]=rand.nextInt(100);55 list_temp.add(String.valueOf(number_temp[i]));56 }57 }58

59 count=calculate_RPN(produce_RPN(list_temp));60 if(count !=-1)61 {62 list_timu.add(transform_string(list_temp));63 list_answer.add(String.valueOf(count));64 list_temp.add(" = "+count);65 list.add(transform_string(list_temp));66 number_n--;67 list_temp.clear();68 }69 else

70 list_temp.clear();71 System.out.println(number_n);72

73 }74 try{75 outSTr = newFileOutputStream(file1);76 Buff = newBufferedOutputStream(outSTr);77 try{78 Buff.write("201571030104 丁炜轩".getBytes());79 Buff.write("\r\n".getBytes());80 } catch(IOException e) {81 e.printStackTrace();82 }83 for (int i = 0; i < list.size(); i++)84 {85 try{86 Buff.write(list.get(i).getBytes());87 Buff.write("\r\n".getBytes());88 } catch(IOException e) {89 e.printStackTrace();90 i--;91 }92 }93 Buff.flush();94 Buff.close();95

96 } catch(IOException e) {97 e.printStackTrace();98 }99 //Buff.close();

100 try{101 outSTr.close();102 } catch(IOException e) {103 e.printStackTrace();104 }105

106 for (int i = 0; i < list.size(); i++)107 {108 System.out.print(list.get(i));109 System.out.println();110 }111 System.out.print("计算完毕!");112

113 }114

115 public static int calculate_RPN(ArrayListlist_temp)116 {117 int i=0,t;118 double a=0,b=0;119 String l_temp;120 Stack sk=new Stack(20);121 for(t=0;t

144 }145 if(!sk.myisempty())146 {147 a =sk.mypop();148 b = a-(int)a;149 System.out.println("a: "+a);150 if(a>0 && b==0)151 {152 return (int)a;153 }154 else

155 return -1;156 }157 else

158 return -1;159

160 }161

162

163 public static ArrayList produce_RPN(ArrayListlist_temp)164 {165 int t=0,i=0;166 String tmp;167 Tack mytack = new Tack(20);168 ArrayList lt_temp = new ArrayList();169 while(true)170 {171 tmp = list_temp.get(i++);172 if(isInteger(tmp))173 {174 lt_temp.add(tmp);175 }176 else{177 if(mytack.myisempty())178 {179 mytack.mypush(tmp);180 }181

182

183 else{184 if(isCPriority(tmp, mytack.mypeek()))185 mytack.mypush(tmp);186 else{187 lt_temp.add(mytack.mypop());188 mytack.mypush(tmp);189 }190

191 }192 }193 if(i>=list_temp.size())194 {195 while(!mytack.myisempty())196 lt_temp.add(mytack.mypop());197 System.out.println(transform_string(list_temp));198 list_temp =lt_temp;199 System.out.println(list_temp);200 returnlist_temp;201 }202 }203

204

205 }206

207

208

209 public static booleanisInteger(String str) {210 for (int i = str.length();--i>=0;){211 if (!Character.isDigit(str.charAt(i))){212 return false;213 }214 }215 return true;216 }217 public static booleanisCPriority(String str,String s) {218 if((str+s).equals("*+") || (str+s).equals("*-") || (str+s).equals("/+") || (str+s).equals("/-"))219 return true;220 else

221 return false;222 }223 public static String transform_string(ArrayListlist_temp)224 {225 String s="";226 for(int i=0;i

232 }233

234 static classStack235 {236 intmytop;237 doublestk[];238

239 public Stack(intnum) {240 mytop=-1;241 stk=new double[num];242 }243 /*出栈*/

244 doublemypop()245 {246 double peek=stk[mytop];247 mytop--;248 returnpeek;249 }250 /*入栈*/

251 void mypush(doublex)252 {253 mytop++;254 stk[mytop]=x;255

256 }257 /*判空*/

258 Boolean myisempty()259 {260 if(mytop==-1)261 return true;262 else

263 return false;264 }265 /*取栈顶元素*/

266 doublemypeek()267 {268 double peek=stk[mytop];269 returnpeek;270 }271 /*栈大小*/

272 intmysize()273 {274 return mytop+1;275 }276 }277

278 static classTack279 {280 intmytop;281 String tk[];282

283 public Tack(intnum) {284 mytop=-1;285 tk=newString[num];286 }287 /*出栈*/

288 String mypop()289 {290 String peek=tk[mytop];291 mytop--;292 returnpeek;293 }294 /*入栈*/

295 voidmypush(String x)296 {297 mytop++;298 tk[mytop]=x;299

300 }301 /*判空*/

302 Boolean myisempty()303 {304 if(mytop==-1)305 return true;306 else

307 return false;308 }309 /*取栈顶元素*/

310 String mypeek()311 {312 String peek=tk[mytop];313 returnpeek;314 }315 /*栈大小*/

316 intmysize()317 {318 return mytop+1;319 }320

321

322 }323

324

325 }

View Code

main函数

1 packageui_test;2

3 public classMain {4

5 public static voidmain(String[] args) {6 Login lg = newLogin();7 //new MyExGUI();

8

9 }10

11 }

View Code

6、总结

通过本次实验,对于结对编程有了非常浓厚的兴趣,也体会到了结对编程对于项目的重要意义,总之收获很多。

在项目的设计、编写、调试、优化中,遇到了很多熟悉而又陌生的问题,花费的时间也比较多。由于对于计算机语言的偏好,对于有些语言,我选择舍弃,注重计算机的一门语言,努力做到最好。闻道有先后,术业有专攻。

7、结对编程(照片)

8、展示PSP

PSP2.1

任务内容

计划完成需要的时间(min)

实际完成需要的时间(min)

Planning

计划

30

30

Estimate

估计这个任务需要多少时间,并规划大致工作步骤

30

30

Development

开发

360

300

Analysis

需求分析 (包括学习新技术)

100

60

Design Spec

生成设计文档

10

10

Design Review

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

20

10

Coding Standard

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

10

5

Design

具体设计

60

35

Coding

具体编码

120

130

Code Review

代码复审

10

10

est

测试(自我测试,修改代码,提交修改)

30

40

Reporting

报告

30

43

Test Report

测试报告

25

30

Size Measurement

计算工作量

2

3

Postmortem & Process

Improvement Plan

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

3

10

9、请使用汉堡评价法给你的小伙伴一些点评。

我的小伙伴是傅康,他很认真,对待每一件事都有一个积极的态度,在这次结对编程中,承担主要的工作量,如果他是赛车手,我就是导航员,如果他是狙击手,我就是观察员,如果他是机长,我就是副机长,我们相辅相成,缺一不可。在生活中,我的小伙伴是我的室友,我对他也有一个比较全面的了解,他的工作能力强,有责任心,对待事物和热情。在这次编程中,我们两个都提出了建设性的意见。在这次编程中,我们两个都提出了建设性的意见,互相修改代码,虽然有些争执,但是还是很好的解决了,完成了这次编程任务。

10、 结对编程真的能够带来1+1>2的效果吗?通过这次结对编程,请谈谈你的感受和体会。

结对编程,在每一时刻都是一个程序员在编程,说效率如何高,也只是1+1>1,但是否大于2呢?答案是肯定的。首先,一个人的编程,平均很难实现1>80%×1的工作效力。但是在和同伴一起工作时,必须保持思维一直高度集中,所以平均都可以达到1>80%×1的个人效力,同时有了一遍代码评审,使得出错几率就降低,减少了bug的产生。也由于两个人的思想汇集,能创造了很多新编程算法或结构重用等。所以着眼于整个项目来看,这个实践确实大大提高了效率。本次结对编程,就很好的证明了1+1>2这一点。

小学算术运算测试程序java_Java实现小学四则运算练习系统(UI)相关推荐

  1. 小学生算术测试c语言报告,C语言课程设计报告小学算术运算测试.doc

    C语言课程设计报告小学算术运算测试 东北石油大学 计算机科学系 课程设计报告 2016- 2017学年第 一 学期 课程名称 C语言课程设计 设计题目 <小学算术运算测试> 学生姓名 罗燕 ...

  2. 小学生算术测试c语言报告,C语言课程设计报告-小学算术运算测试.doc

    C语言课程设计报告-小学算术运算测试 河南理工大学 课程设计报告 20013-2014学年第 一 学期 课程名称 数据结构课程设计 设计题目 <小学算术运算测试> 学生姓名 学 号 专业班 ...

  3. 小学数学动画 android,小学数学动画教学下载-小学数学动画 安卓版v5.0-pc6手机下载...

    小学数学动画教学软件是一款能让孩子爱上数学的客户端应用,小学数学动画app以动画的形式带领孩子学习数学知识以及各类公式原理,测底掌握数学方法. 功能介绍 小学数学动画通过形象.生动.清楚.易懂的触摸动 ...

  4. 小学听课计算机笔记范文,小学教师听课记录精选10篇【最新】.pdf

    小学教师听课记录精选10篇[最新] 小学教师听课记录精选 小学语文听课记录教学 一.导入新课: 这节课我们继续学习-- (齐读课题 二.复习旧知: 1. 这些词语还认识吗?(钓鱼.从未见过.允许.遵守 ...

  5. 计算机科学系小学教育专业就业前景,小学教育专业就业方向与就业前景

    [导语]现在大学生就业形势越来越严峻,在填报志愿时,如果不是特别喜欢某一专业的话,选一个好就业的专业就显得尤为重要了,就业的专业排名是很多考生和家长朋友们关心的问题,以下是无忧考网整理的小学教育专业就 ...

  6. 小学计算机教案表格式,小学信息技术教案表格数据处理.docx

    小学信息技术教案表格数据处理 小学信息技术教案表格数据的处理 表格数据的处理 一.教学目标: 1.知识与技能:(1).理解信息的表格化.掌握表格数据的处理,能利用公式计算数据:(2).选择恰当的软件加 ...

  7. 小学教师听课体会 计算机,小学教师听课心得体会

    去听别的老师讲课应该是每位老师都会经历到的,因为确实可以让我们学习到不同的教课方式,增进我们的教学能力,所以需要认真对待.以下是由出国留学网小编为大家整理的"小学数学教师听课心得体会2020 ...

  8. 小学计算机教室外墙文化建设,4款小学教室外墙布置图片 小学教室走廊班牌班级文化墙设计图片...

    4款小学教室外墙布置图片 小学教室走廊班牌班级文化墙设计图片 小学教室外墙布置设计很不错,斑斓的色彩在这里呈现,仿佛回到了学生时代.灰棕色的墙壁粉刷,干净利落,底部彩绘了很多小花小草,抽象的元素在这里 ...

  9. 小学计算机的板书设计,小学信息技术介绍我自己教学设计

    小学信息技术是一门面向未来为学生长远发展而开设的课程,对学生综合能力和信息技术的培养都是起到积极的促进作用.接下来小编为你整理了小学信息技术介绍我自己教学设计,一起来看看吧. 小学信息技术介绍我自己教 ...

最新文章

  1. Xianfeng轻量级Java中间件平台:用户管理
  2. arcgis下的python编程-面向ArcGIS的Python脚本编程
  3. Unity3D Image 组件附入图片问题
  4. 数据结构与算法--二叉树第k个大的节点
  5. json返回页面读取data里的值都是object_【一】尤大神都说Vite香,让我来手把手分析Vite原理...
  6. citrixreceiver云桌面系统_CStack xView桌面云平台与方德操作系统完成兼容性认证
  7. [渝粤教育] 中国地质大学 运筹学1 复习题
  8. 服务器与客户端的简单实现
  9. goproxy代理软件 v10.3 轻量级高性能代理软件+链式代理+正向代理+反向代理
  10. 《蔡康永的说话之道》思维导图学习笔记
  11. 应用服务器和数据库服务器有什么区别
  12. 十二星座----射手
  13. php只取时间的下士_PHP获取各种起止时间
  14. 车载测试-HIL硬件在环测试
  15. 从官网下载mysql 5.7
  16. 长沙最牛逼的互联网公司都在这里了
  17. 微信小程序商城怎么在线制作
  18. 分析:以拼多多为例 谈谈何为社交电商
  19. http、https加密过程
  20. cf服务器维护时能否更新游戏,CF新版本今日更新维护公告

热门文章

  1. 【采样算法】拉丁超立方采样
  2. iOS信鸽推送:解决通过账号推送不成功的问题
  3. IP地址和MAC地址, 路由器, 交换机和集线器
  4. 自动生成文章摘要[JavaScript 版本]
  5. 关于vue的组件重新加载
  6. 小程序 - 微信授权登录 微信授权绑定手机号
  7. Leetcode #765 情侣牵手(贪心算法)
  8. 传智播客C语言视频第二季(第一季基础上增加诸多C语言案例讲解,有效下载期为10.5-10.10关闭)...
  9. vue在线动态切换主题色方案
  10. 高通宣布苹果_苹果当时宣布的一切都过得很顺利