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

上传人:无*** 文档编号:162482184 上传时间:2022-10-18 格式:DOC 页数:15 大小:205KB
收藏 版权申诉 举报 下载
面向对象程序设计课程设计划书模板new(计算器设计)_第1页
第1页 / 共15页
面向对象程序设计课程设计划书模板new(计算器设计)_第2页
第2页 / 共15页
面向对象程序设计课程设计划书模板new(计算器设计)_第3页
第3页 / 共15页
资源描述:

《面向对象程序设计课程设计划书模板new(计算器设计)》由会员分享,可在线阅读,更多相关《面向对象程序设计课程设计划书模板new(计算器设计)(15页珍藏版)》请在装配图网上搜索。

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

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

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

4、习中取得好的成绩指导教师评语:成绩:填表时间:指导教师签名: 课程设计(大作业)报告1、 课程设计介绍 41.1课程设计内容 .41.2课程设计要求 .42、 总体设计 42.1课设题目总体设计、算法描述42.1.1、功能模块设计42.1.2、界面设计代码.42.2功能模块图、流程图分析.63、 调试与性能分析 (相关截图)64、 参考文献.8附 录(程序清单).91、 课程设计介绍 1.1课程设计内容 本计算器是由java语言所编程设计的标准计算器,可以进行十进制下的四则运算(加、减、乘、除)、开根号、百分号、求倒数,还可以实现数值的符号转换操作。 ,Backspace表示退格, CE表示将

5、当前文本框内数据清除,C表示文本框内数据清除。此外还提供了“编辑”、“查看”、“帮助”三个菜单项,使用者可通过使用菜单项实现复制、粘贴功能。界面类似windows自带计算器界面。 1.2课程设计要求(1)设计一个标准型的计算器应用程序,完成简单的算法运算。(2)该程序可以通过鼠标一次键入参加计算的数值,不仅可以参加加减乘除运算,还可以完成开方、百分运算、倒数运算等这些运算,并且还有小数点、正负号、退格、清零这些功能。2、总体设计2.1、课设题目总体设计、算法描述 2.1.1、功能模块设计 计算器基本功能 (1)加法 两个数据进行加操作,可以为小数。 (2)减法 两个数据进行减操作,可以为负数相

6、减。 (3)乘法 两个数相乘操作。 (4)除法 两个数相除操作。 (5)开平方 对任意一个数进行开方运算,可以是小数。 (6)百分号 对任意一个数进行百分号运算。 (7)倒数 对任意一个数进行倒数运算。算法分析:事件监听器的事件处理方法void actionPerformed(ActionEvent evt)完成主要的按钮事件的处理。事件处理分为以下几种情况:数字按钮事件(“0”、“1”、“2”、“3”、.“8”、“9”),运算符按钮事件(“+”、“-”、“,”“*”、“/”、“%”),正负值按钮事件(“+/-”),小数点按钮事件(“.”),等号按钮事件(“=”),求倒按钮事件(“1、x”),

7、退格按钮事件(“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,text); /面板添加和按钮的设置 JPanel pa=new JPanel();JPanel pa2=new JPanel();JButton bt1=new JButton(Backspace);JButton bt2=new JButto

8、n(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 BorderLayout(); pa.add(pa2,North);JPanel p1=new JPanel();p1.setLayout(new GridLayout(4,1,2,5);JButton bt4=new JButton(MC);JButt

9、on 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.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 JButtonbut

10、tons.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);2.2功能模块图、流程图分析标准计算器加法运算减法运算乘法运算除法运算开平方运算百分号运算倒

11、数运算3、调试与性能分析 (相关截图) (1)标准计算其界面(2) 、加、减、乘除运算演示分别输入8和4进行运算演示加法8 + = 乘法*=开方运算sqrt百分号运算%倒数运算1/x4、 参考文献Java语言程序设计(第6版) 机械工程出版社5、附录(程序清单)import java.awt.*;import java.awt.event.*;import javax.swing.*;public class jisuanqi extends JFrame implements ActionListener,ItemListenerJTextField text;JTextField text

12、Memory;boolean clickable;double memoryd; /使用内存中存储的数字int memoryi;String copy;public jisuanqi()super(计算器);setSize(357,253);public void init()clickable = true;JPanel pa1=new JPanel();pa1.setBackground(new Color(236,231,210);text=new JTextField(0.,31);text.setHorizontalAlignment(JTextField.RIGHT);/从右到左p

13、a1.add(North,text); /面板添加和按钮的设置 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.setLa

14、yout(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 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 JPa

15、nel(); 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 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 addButt

16、on(Container c, String s) JButton b = new JButton(s); c.add(b); b.addActionListener(this); /功能的实现public void actionPerformed(ActionEvent evt) String s = evt.getActionCommand(); if(s.equals(CE)|s.equals(C) text.setText(); / else if(s.equals(+/-)/单击+/-选择输入的运算数是正数还是负数 double x;x=Double.parseDouble(text

17、.getText().trim(); text.setText(+(-x); else if (s = sqrt) String s1 = text.getText(); if (s1.charAt(0) = -& clickable = true) text.setText(负数不能开根号); clickable = false; else text.setText(Double.toString(java.lang.Math.sqrt(Double. parseDouble(text.getText(); else if(s.equals(%)/单击了%按钮 double x;x=Doub

18、le.parseDouble(text.getText().trim(); text.setText(+(0.01*x); /str.setLength(0); /y=0d; else if(s.equals(1/x)/单击了1/X按钮 double x;x=Double.parseDouble(text.getText().trim(); if(x=0) text.setText(除数不能为零); else text.setText(+(1/x); /按下+/-按钮时处理 if (s= +/- & clickable = true) boolean isNumber = true; Stri

19、ng s1 = text.getText(); for (int i = 0; i = 0 & s1.charAt(i) = 9 | s1.charAt(i) = . | s1.charAt(i) = -) isNumber = 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.

20、getText() + a); /如果当前字符串第一个字符不是符号,则添加一个符号在首字母处 else text.setText(- + s); /计算器有关内存操作 /MC的操作,将内存清0 else if (s = MC & 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

21、; i text.getText().length(); i+) if (. = text.getText().charAt(i) isDot = true; break; /如果是double,则存入memoryd(double存储器) if (isDot = true) memoryd = Double.parseDouble(text.getText(); memoryi = 0; /保证存储器中存放最新的值 /如果是int,则存入memoryi(int存储器) else memoryi = Integer.parseInt(text.getText(); memoryd = 0; /保

22、证存储器中存放最新的值 /MR的操作,将存储器中的信息输出 else if (s = MR & clickable = true) if (memoryd != 0) text.setText(Double.toString(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.ge

23、tText().length(); i+) if (. = text.getText().charAt(i) isDot = true; break; if (memoryi != 0) /存储中是一个int型数 if (isDot = false) /被加数是一个int型数 memoryi += Integer.parseInt(text.getText(); else /被加数是一个double型数,则将int存储器中数传入double存储器与当前数相加,int存储器清零 memoryd = memoryi + Double.parseDouble(text.getText(); memo

24、ryi = 0; else memoryd += Double.parseDouble(text.getText(); else if (0 = s.charAt(0) & s.charAt(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 d

25、ouble x=Double.parseDouble(text.getText(); calculate(x); op = s; start = true; public 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);

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!