收藏 分销(赏)

面向对象程序设计课程设计划书模板new(计算器设计).doc

上传人:快乐****生活 文档编号:2473832 上传时间:2024-05-30 格式:DOC 页数:15 大小:206KB
下载 相关 举报
面向对象程序设计课程设计划书模板new(计算器设计).doc_第1页
第1页 / 共15页
面向对象程序设计课程设计划书模板new(计算器设计).doc_第2页
第2页 / 共15页
面向对象程序设计课程设计划书模板new(计算器设计).doc_第3页
第3页 / 共15页
面向对象程序设计课程设计划书模板new(计算器设计).doc_第4页
第4页 / 共15页
面向对象程序设计课程设计划书模板new(计算器设计).doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、课程设计(大作业)报告课程名称:java课程设计 设计题目:计算器设计 院 系:信息技术学院 班 级:计算机科学与技术(2)班 设 计 者: 学 号:201011010208 指导教师: 设计时间:2011-12-272011-12-29 昆明学院昆明学院课程设计(大作业)任务书姓 名:蒋孝林 院 系:信息技术学院 专 业:计算机科学与技术专业 学 号: 201011010208任务起止日期: 2011-12-272011-12-29 课程设计题目:计算器设计 课程设计要求:(1) 课程设计任务及要求(2) 设计思路、功能原理、功能规划(3) 总体设计与详细设计-数据分析,算法思路,类设计,功

2、能实现(含程序流程图,主要代码及注释),界面等(4) 运行调试与分析讨论-给出运行屏幕截图,分析运行结果,有何改进想法等.(5) 设计体会与小结-设计遇到的问题及解决办法,通过设计学到了哪些新知识, 巩固了那些知识,有哪些提高。矚慫润厲钐瘗睞枥庑赖。(6) 参考文献(7) 报告格式见昆明学院课程设计报告模板,按格式要求完成设计报告。 追求完善,不要仅仅应付老师的检查、,程序要求有良好的结构及编码风格,有必要的注释。(8)严禁抄袭,如有发现,按不及格处理工作计划及安排 2011-12-26起至2011-12-27 查询相关资料,对这个关于计算机的Java程序设计进行大体编排聞創沟燴鐺險爱氇谴净。

3、 2011-12-28起至2011-12-30 对程序进行编写,运行,调试 2011-12-30 完成设计指导教师签字 年 月 日 课程设计(大作业)成绩学号:201011010208 姓名:蒋孝林 指导教师:何英 老师课程设计题目: 计算器程序设计总结:这次的课程设计,是我对Java有了进一步的了解和体会。 对于这次课程设计,我最大的感受就是自己对教材并不是很熟悉,所掌握和熟悉的知识不够,在设计的过程中出现了很多弯路,所以在以后进一步的学习和深入中,我会多查阅一些相关资料,多想,多实践,更好的巩固所学的知识,以求加深对java的理解。我会总结在课程设计中发现的技巧性知识,在议会的学习中 学会

4、学以致用,把学会的更好的应用在生活中,在学习中发现问题。提出问题,然后解决问题。多想同学和老师请教,在以后的学习中取得好的成绩残骛楼諍锩瀨濟溆塹籟。指导教师评语:成绩:填表时间:指导教师签名: 课程设计(大作业)报告1、 课程设计介绍 41.1课程设计内容 .4酽锕极額閉镇桧猪訣锥。1.2课程设计要求 .42、 总体设计 42.1课设题目总体设计、算法描述42.1.1、功能模块设计42.1.2、界面设计代码.42.2功能模块图、流程图分析.63、 调试与性能分析 (相关截图)64、 参考文献.8附 录(程序清单).9彈贸摄尔霁毙攬砖卤庑。1、 课程设计介绍 1.1课程设计内容 本计算器是由ja

5、va语言所编程设计的标准计算器,可以进行十进制下的四则运算(加、减、乘、除)、开根号、百分号、求倒数,还可以实现数值的符号转换操作。 ,Backspace表示退格, CE表示将当前文本框内数据清除,C表示文本框内数据清除。此外还提供了“编辑”、“查看”、“帮助”三个菜单项,使用者可通过使用菜单项实现复制、粘贴功能。界面类似windows自带计算器界面。謀荞抟箧飆鐸怼类蒋薔。 1.2课程设计要求(1)设计一个标准型的计算器应用程序,完成简单的算法运算。(2)该程序可以通过鼠标一次键入参加计算的数值,不仅可以参加加减乘除运算,还可以完成开方、百分运算、倒数运算等这些运算,并且还有小数点、正负号、退

6、格、清零这些功能。厦礴恳蹒骈時盡继價骚。2、总体设计2.1、课设题目总体设计、算法描述 2.1.1、功能模块设计 计算器基本功能 (1)加法 两个数据进行加操作,可以为小数。 (2)减法 两个数据进行减操作,可以为负数相减。 (3)乘法 两个数相乘操作。 (4)除法 两个数相除操作。 (5)开平方 对任意一个数进行开方运算,可以是小数。 (6)百分号 对任意一个数进行百分号运算。 (7)倒数 对任意一个数进行倒数运算。算法分析:事件监听器的事件处理方法void actionPerformed(ActionEvent evt)完成主要的按钮事件的处理。事件处理分为以下几种情况:数字按钮事件(“0

7、”、“1”、“2”、“3”、.“8”、“9”),运算符按钮事件(“+”、“-”、“,”“*”、“/”、“%”),正负值按钮事件(“+/-”),小数点按钮事件(“.”),等号按钮事件(“=”),求倒按钮事件(“1、x”),退格按钮事件(“CE”),茕桢广鳓鯡选块网羈泪。清除按钮事件(“C”),2.1.2、 界面设计代码 计算器的界面由一个文本框及27个按钮组成,具体实现代码如下所示:JPanel pa1=new JPanel();pa1.setBackground(new Color(236,231,210);text=new JTextField(0.,31);pa1.add(North,te

8、xt); /面板添加和按钮的设置 JPanel pa=new JPanel();JPanel pa2=new JPanel();JButton bt1=new JButton(Backspace);JButton bt2=new JButton(CE);JButton bt3=new JButton(C);bt1.addActionListener(this);bt2.addActionListener(this);bt3.addActionListener(this);pa2.add(bt1);pa2.add(bt2);pa2.add(bt3);pa.setLayout(new Border

9、Layout(); pa.add(pa2,North);JPanel p1=new JPanel();p1.setLayout(new GridLayout(4,1,2,5);JButton bt4=new JButton(MC);JButton bt5=new JButton(MR);JButton bt6=new JButton(MS);JButton bt7=new JButton(M+);p1.add(bt4);p1.add(bt5); p1.add(bt6); p1.add(bt7); pa.add(p1,West);JPanel p = new JPanel(); p.setLay

10、out(new GridLayout(4, 5,2,5); String buttons = 7,8,9,/,sqrt,4,5,6,*,%,1,2,3,-,1/x,0,.,=,+,+/-;鹅娅尽損鹌惨歷茏鴛賴。 JButton btn=new JButtonbuttons.length; for (int i = 0; i buttons.length; i+) addButton(p, buttonsi); pa.add(p, Center); pa1.add(South,pa);this.getContentPane().add(pa1); private void addButton(C

11、ontainer c, String s) JButton b = new JButton(s); c.add(b); b.addActionListener(this);2.2功能模块图、流程图分析标准计算器加法运算减法运算乘法运算除法运算开平方运算百分号运算倒数运算3、调试与性能分析 (相关截图) (1)标准计算其界面(2) 、加、减、乘除运算演示分别输入8和4进行运算演示加法8 + = 乘法*=开方运算sqrt百分号运算%倒数运算1/x4、 参考文献Java语言程序设计(第6版) 机械工程出版社5、附录(程序清单)import java.awt.*;import java.awt.eve

12、nt.*;import javax.swing.*;public class jisuanqi extends JFrame implements ActionListener,ItemListener籟丛妈羥为贍偾蛏练淨。JTextField text;JTextField textMemory;boolean clickable;double memoryd; /使用内存中存储的数字int memoryi;String copy;public jisuanqi()super(计算器);setSize(357,253);public void init()clickable = true;J

13、Panel pa1=new JPanel();pa1.setBackground(new Color(236,231,210);text=new JTextField(0.,31);text.setHorizontalAlignment(JTextField.RIGHT);/从右到左預頌圣鉉儐歲龈讶骅籴。pa1.add(North,text); /面板添加和按钮的设置 JPanel pa=new JPanel();JPanel pa2=new JPanel();JButton bt1=new JButton(Backspace);JButton bt2=new JButton(CE);JBut

14、ton bt3=new JButton(C);bt1.addActionListener(this);bt2.addActionListener(this);bt3.addActionListener(this);pa2.add(bt1);pa2.add(bt2);pa2.add(bt3);pa.setLayout(new BorderLayout(); pa.add(pa2,North);JPanel p1=new JPanel();p1.setLayout(new GridLayout(4,1,2,5);JButton bt4=new JButton(MC);JButton bt5=new

15、 JButton(MR);JButton bt6=new JButton(MS);JButton bt7=new JButton(M+);p1.add(bt4);p1.add(bt5); p1.add(bt6); p1.add(bt7); pa.add(p1,West);JPanel p = new JPanel(); p.setLayout(new GridLayout(4, 5,2,5); String buttons = 7,8,9,/,sqrt,4,5,6,*,%,1,2,3,-,1/x,0,.,=,+,+/-;渗釤呛俨匀谔鱉调硯錦。 JButton btn=new JButtonbu

16、ttons.length; for (int i = 0; i buttons.length; i+) addButton(p, buttonsi); pa.add(p, Center); pa1.add(South,pa);this.getContentPane().add(pa1); private void addButton(Container c, String s) JButton b = new JButton(s); c.add(b); b.addActionListener(this); /功能的实现public void actionPerformed(ActionEven

17、t evt) String s = evt.getActionCommand(); if(s.equals(CE)|s.equals(C) text.setText(); / else if(s.equals(+/-)/单击+/-选择输入的运算数是正数还是负数 double x;x=Double.parseDouble(text.getText().trim(); text.setText(+(-x); else if (s = sqrt) String s1 = text.getText(); if (s1.charAt(0) = -& clickable = true) text.setT

18、ext(负数不能开根号); clickable = false; else text.setText(Double.toString(java.lang.Math.sqrt(Double.铙誅卧泻噦圣骋贶頂廡。 parseDouble(text.getText(); else if(s.equals(%)/单击了%按钮 double x;x=Double.parseDouble(text.getText().trim(); text.setText(+(0.01*x); /str.setLength(0); /y=0d; else if(s.equals(1/x)/单击了1/X按钮 doubl

19、e x;x=Double.parseDouble(text.getText().trim(); if(x=0) text.setText(除数不能为零); else text.setText(+(1/x); /按下+/-按钮时处理 if (s= +/- & clickable = true) boolean isNumber = true; String s1 = text.getText(); for (int i = 0; i = 0 & s1.charAt(i) = 9 | s1.charAt(i) = . |擁締凤袜备訊顎轮烂蔷。 s1.charAt(i) = -) isNumber

20、= false; break; if (isNumber = true) /如果当前字符串首字母有-号,代表现在是个负数,再按下时,则将首符号去掉 if (s.charAt(0) = -) text.setText(); for (int i = 1; i s1.length(); i+) char a = s1.charAt(i); text.setText(text.getText() + a); /如果当前字符串第一个字符不是符号,则添加一个符号在首字母处 else text.setText(- + s); /计算器有关内存操作 /MC的操作,将内存清0 else if (s = MC

21、& clickable = true) memoryd = memoryi = 0; textMemory.setText(); /MS的操作,将当前文本框内容保存入内存,显示M else if (s = MS & clickable = true) boolean isDot = false; textMemory.setText( M); for (int i = 0; i text.getText().length(); i+) if (. = text.getText().charAt(i) isDot = true; break; /如果是double,则存入memoryd(doub

22、le存储器) if (isDot = true) memoryd = Double.parseDouble(text.getText(); memoryi = 0; /保证存储器中存放最新的值 /如果是int,则存入memoryi(int存储器) else memoryi = Integer.parseInt(text.getText(); memoryd = 0; /保证存储器中存放最新的值 /MR的操作,将存储器中的信息输出 else if (s = MR & clickable = true) if (memoryd != 0) text.setText(Double.toString(

23、memoryd); if (memoryi != 0) text.setText(Integer.toString(memoryi); /M+的功能,将当前文本框里的数据和存储器中数据相加后,再存入存储器 else if (s = M+ & clickable = true) boolean isDot = false; for (int i = 0; i text.getText().length(); i+) if (. = text.getText().charAt(i) isDot = true; break; if (memoryi != 0) /存储中是一个int型数 if (is

24、Dot = false) /被加数是一个int型数 memoryi += Integer.parseInt(text.getText(); else /被加数是一个double型数,则将int存储器中数传入double存储器与当前数相加,int存储器清零贓熱俣阃歲匱阊邺镓騷。 memoryd = memoryi + Double.parseDouble(text.getText();坛摶乡囂忏蒌鍥铃氈淚。 memoryi = 0; else memoryd += Double.parseDouble(text.getText(); else if (0 = s.charAt(0) & s.ch

25、arAt(0) = 9 | s.equals(.)蜡變黲癟報伥铉锚鈰赘。 / text.setText(); if (start) text.setText(s); else text.setText(text.getText() + s); start = false; else if (start) if (s.equals(-) text.setText(s); start = false; else op = s; else double x=Double.parseDouble(text.getText(); calculate(x); op = s; start = true; p

26、ublic void calculate(double n) if (op.equals(+) arg += n; else if (op.equals(-) arg -= n; else if (op.equals(*) arg *= n; else if (op.equals(/) arg /= n; else if (op.equals(=) arg = n; text.setText( + arg); private double arg = 0; private String op = =; private boolean start = true; public void itemStateChanged(ItemEvent e) public static void main(String args)JFrame frame=new JFrame();jisuanqi myMenu=new jisuanqi();myMenu.init();myMenu.setVisible(true);- 14 -

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服