版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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程序设计进行大体编排 2011-12-28起至2011-12-3
3、0 对程序进行编写,运行,调试 2011-12-30 完成设计指导教师签字 年 月 日 课程设计(大作业)成绩学号:201011010208 姓名:蒋孝林 指导教师:何英 老师课程设计题目: 计算器程序设计总结:这次的课程设计,是我对Java有了进一步的了解和体会。 对于这次课程设计,我最大的感受就是自己对教材并不是很熟悉,所掌握和熟悉的知识不够,在设计的过程中出现了很多弯路,所以在以后进一步的学习和深入中,我会多查阅一些相关资料,多想,多实践,更好的巩固所学的知识,以求加深对java的理解。我会总结在课程设计中发现的技巧性知识,在议会的学习中 学会学以致用,把学会的更好的应用在生活中,在学习
4、中发现问题。提出问题,然后解决问题。多想同学和老师请教,在以后的学习中取得好的成绩指导教师评语:成绩:填表时间:指导教师签名: 课程设计(大作业)报告1、 课程设计介绍 41.1课程设计内容 .41.2课程设计要求 .42、 总体设计 42.1课设题目总体设计、算法描述42.1.1、功能模块设计4、界面设计代码.42.2功能模块图、流程图分析.63、 调试与性能分析 (相关截图)64、 参考文献.8附 录(程序清单).91、 课程设计介绍 1.1课程设计内容 本计算器是由java语言所编程设计的标准计算器,可以进行十进制下的四则运算(加、减、乘、除)、开根号、百分号、求倒数,还可以实现数值的符
5、号转换操作。 ,Backspace表示退格, CE表示将当前文本框内数据清除,C表示文本框内数据清除。此外还提供了“编辑”、“查看”、“帮助”三个菜单项,使用者可通过使用菜单项实现复制、粘贴功能。界面类似windows自带计算器界面。 1.2课程设计要求(1)设计一个标准型的计算器应用程序,完成简单的算法运算。(2)该程序可以通过鼠标一次键入参加计算的数值,不仅可以参加加减乘除运算,还可以完成开方、百分运算、倒数运算等这些运算,并且还有小数点、正负号、退格、清零这些功能。2、总体设计2.1、课设题目总体设计、算法描述 2.1.1、功能模块设计 计算器基本功能 (1)加法 两个数据进行加操作,可
6、以为小数。 (2)减法 两个数据进行减操作,可以为负数相减。 (3)乘法 两个数相乘操作。 (4)除法 两个数相除操作。 (5)开平方 对任意一个数进行开方运算,可以是小数。 (6)百分号 对任意一个数进行百分号运算。 (7)倒数 对任意一个数进行倒数运算。算法分析:事件监听器的事件处理方法void actionPerformed(ActionEvent evt)完成主要的按钮事件的处理。事件处理分为以下几种情况:数字按钮事件(“0”、“1”、“2”、“3”、.“8”、“9”),运算符按钮事件(“+”、“-”、“,”“*”、“/”、“%”),正负值按钮事件(“+/-”),小数点按钮事件(“.”
7、),等号按钮事件(“=”),求倒按钮事件(“1、x”),退格按钮事件(“CE”),清除按钮事件(“C”),、 界面设计代码 计算器的界面由一个文本框及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 bt
8、1=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 BorderLayout(); pa.add(pa2,"North"
9、);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")
10、;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",&quo
11、t;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(Container
12、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.event.*;impo
13、rt javax.swing.*;public class jisuanqi extends JFrame implements ActionListener,ItemListenerJTextField text;JTextField textMemory;boolean clickable;double memoryd; /使用内存中存储的数字int memoryi;String copy;public jisuanqi()super("计算器");setSize(357,253);public void init()clickable = true;JPanel pa
14、1=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
15、 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 BorderLayout(); pa.add(pa2,"North");JPanel p1=new JPanel();p1.setLayout(new GridLayout
16、(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.setLayout(new GridLayout
17、(4, 5,2,5); String buttons = "7","8","9","/","sqrt","4","5","6","*","%","1","2","3","-","1/x","0",".","=","+",
18、"+/-" 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(Container c, String s) JButton b = new JButton(s); c.add(b); b
19、.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.getT
20、ext().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.get
21、Text(); 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"按钮 double x;x=Double.parseDouble(text.getText().trim(); if(x=0) text.setTe
22、xt("除数不能为零"); else text.setText(""+(1/x); /按下'+/-'按钮时处理 if (s= "+/-" && clickable = true) boolean isNumber = true; String s1 = text.getText(); for (int i = 0; i < s.length(); i+) if (! (s1.charAt(i) >= '0' && s1.charAt(i) <= '
23、;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.
24、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&qu
25、ot; && 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(double存储器) if (isDot = true) memoryd = Double.parseDouble(text.getText
26、(); 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(memoryd); if (memoryi != 0) text.se
27、tText(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 (isDot = 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
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 银行市场营销总结
- 食品行业行政后勤工作总结
- 地产行业销售员工作总结
- 2024年秋八年级上册新目标英语全册课文重难点讲解
- 2024物业客服个人年终总结范文(35篇)
- 农村小产权房购房合同(2篇)
- 《物权法草案》课件
- DB33T 2143-2018 森林抚育目标树选择和密度控制技术规程
- 2025正规委托合同范文
- 2024年度四川省公共营养师之三级营养师通关题库(附带答案)
- 2024年江西人民出版社有限责任公司招聘笔试参考题库附带答案详解
- 职高家长会课件
- CSR法律法规及其他要求清单(RBA)2024.3
- T-ZJPA 002-2023 注射剂包装密封性检查 微生物挑战:浸入式暴露试验要求
- 80四川省内江市2023-2024学年八年级上学期期末考试历史试题
- 民航空乘英语全套教学课件
- 2024奥数竞赛5年级培训题-答案版
- 主题班会记录表20篇
- 2024年北京通建信息系统有限公司招聘笔试参考题库含答案解析
- 秦代建筑配色特征研究报告
- 安徽省建设工程工程量清单计价依据说明
评论
0/150
提交评论