欢迎来到天天文库
浏览记录
ID:40557824
大小:277.00 KB
页数:17页
时间:2019-08-04
《java上机实验3》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、昆明理工大学理学院信息与计算科学专业操作性实验报告年级:10级姓名:刘陈学号:201011101128指导教师:朱志宁实验课程名称:java程序设计开课实验室:理学院机房实验成绩:学风(5)观察能力(15)操作能力(30)调试能力(50)其它总分实验内容:1.实验/作业题目:计算器2.实验/作业课时:各2学时,共4学时3.实验过程(包括实验环境、实验内容的描述、完成实验要求的知识或技能):实验环境:eclipse实验内容:编写一个简单的计算器,能实现如图所示的功能,利用面向对象的思想进行程序设计。完成实验要求的知识或技能:通过
2、这个实验,掌握java图形界面的设计、事件响应的操作和面向对象的编程思想。第17页4.程序结构(程序中的函数调用关系图)5.算法描述、流程图或操作步骤:第一个CalcControler类:packageCalculator;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.JTextField;publicclassCalcControlerimplementsActionListener{JTextFi
3、eldtextField;Stringop1,op2,operator;StringerrMsg="Error";intstate=0;CalcControler(JTextFieldtf){textField=tf;}publicvoidactionPerformed(ActionEvente)第17页{Strings;s=e.getActionCommand();switch(state){case0:inputState0(s);break;case1:inputState1(s);break;case2:inputSt
4、ate2(s);break;case3:inputState3(s);break;case4:inputState4(s);break;case5:inputState5(s);break;default:System.out.println("Unknowstateerror!");System.exit(1);}}privatebooleanisDigit(Strings){booleanb;b=s.equals("0")
5、
6、s.equals("1")
7、
8、s.equals("2")
9、
10、s.equals("3")
11、
12、s.eq
13、uals("4")
14、
15、s.equals("5")
16、
17、s.equals("6")
18、
19、s.equals("7")
20、
21、s.equals("8")
22、
23、s.equals("9");returnb;}privateintfN(floatfop1){第17页intruslt=0;if(fop1==0
24、
25、fop1==1){ruslt=1;}else{ruslt=(int)(fop1*fN(fop1-1));}returnruslt;}privatebooleanisOperator(Strings){returns.equals("+")
26、
27、
28、s.equals("-")
29、
30、s.equals("*")
31、
32、s.equals("/")
33、
34、s.equals("x^2")
35、
36、s.equals("x^3")
37、
38、s.equals("x^y")
39、
40、s.equals("sqrt")
41、
42、s.equals("sin")
43、
44、s.equals("cos")
45、
46、s.equals("tan")
47、
48、s.equals("n!")
49、
50、s.equals("(")
51、
52、s.equals(")");}privatevoidinputState0(Strings){if(isDigit(s)
53、
54、s.equals
55、("+/-")
56、
57、s.equals(".")){state=2;textField.setText("0");inputState2(s);}if(isOperator(s)){op1="0";operator=s;state=4;}if(s.equals("1/x")){textField.setText(errMsg);state=1;}}privatevoidinputState1(Strings){if(isDigit(s)
58、
59、s.equals("+/-")
60、
61、s.equals(".")){textField.setT
62、ext("0");state=0;第17页inputState0(s);}else{state=0;textField.setText("0");}}privatevoidinputState2(Strings){if(isDigit(s)){Stringtext=textF
此文档下载收益归作者所有