Java课程设计.docx
- 文档编号:9005385
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:18
- 大小:45.03KB
Java课程设计.docx
《Java课程设计.docx》由会员分享,可在线阅读,更多相关《Java课程设计.docx(18页珍藏版)》请在冰豆网上搜索。
Java课程设计
河南理工大学
计算机科学与技术学院
课程实训报告
2011—2012学年第二学期
课程名称JAVA语言高级编程课程设计
设计题目计算器实现分数的各种运算
学生姓名于珍珍
学号311009060506
专业班级软件JAVA10-05
2012年6月22日
目录
目录I
第一章基础知识1
1.1事件处理1
1.2图形绘制1
第二章总体设计5
2.1题目分析5
2.11设计目的……………………………………………………………….5
2.12功能模块设计…………………………………………………………5
2.13系统功能图……………………………………………………………5
2.14界面设计代码………………………………………………………….6
第三章详细设计8
3.1具体代码实现8
3.2程序结果15
3.3程序分析15
第4章总结16
第1章采用的相关技术
1.1事件处理
1、Java语言是简单的。
Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。
另一方面,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。
特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。
2、Java语言是一个面向对象的。
Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。
Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。
总之,Java语言是一个纯的面向对象程序设计语言。
3、Java语言是分布式的。
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。
Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
4、Java语言是健壮的。
Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。
对指针的丢弃是Java的明智选择。
Java的安全检查机制使得Java更具健壮性。
5、Java语言是安全的。
Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。
除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。
6、Java语言是体系结构中立的。
Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。
这种途径适合于异构的网络环境和软件的分发。
7、Java语言是可移植的。
这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。
Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSIC实现的。
8、Java语言是解释型的。
如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。
在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。
9、Java是高性能的。
与那些解释型的高级脚本语言相比,Java的确是高性能的。
事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。
10、Java语言是多线程的。
在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。
通常有两种方法来创建线程:
其一,使用型构为Thread(Runnable)的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。
值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。
线程的活动由一组方法来控制。
Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。
11、Java语言是动态的。
Java语言的设计目标之一是适应于动态变化的环境。
Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。
这也有利于软件的升级。
另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。
1.2图形绘制
Java的SDK最早叫JavaSoftwareDevelopKit,后来改名LDK,它是JavaDevelopmentKit的缩写,中文简称Java开发包或Java开发工具。
Java平台由Java虚拟机(JavaVirtualMachine)和Java应用编程接口(ApplicationProgrammingInterface、简称API)构成。
Java应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。
在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。
现在Java平台已经嵌入了几乎所有的操作系统。
这样Java程序可以只编译一次,就可以在各种系统中运行。
Java应用编程接口已经从1.1x版发展到1.2版。
目前常用的Java平台基于Java1.5,最近版本为Java1.7。
Java分为三个体系JavaSE(Java2PlatformStandardEdition,java平台标准版),JavaEE(Java2Platform,EnterpriseEdition,java平台企业版),JavaME(Java2PlatformMicroEdition,java平台微型版)。
*JavaSE(JavaPlatform,StandardEdition)。
JavaSE以前称为J2SE。
它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的Java应用程序。
JavaSE包含了支持JavaWeb服务开发的类,并为JavaPlatform,EnterpriseEdition(JavaEE)提供基础。
*JavaEE(JavaPlatform,EnterpriseEdition)。
这个版本以前称为J2EE。
企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端Java应用程序。
JavaEE是在JavaSE的基础上构建的,它提供Web服务、组件模型、管理和通信API,可以用来实现企业级的面向服务体系结构(service-orientedarchitecture,SOA)和Web2.0应用程序。
*JavaME(JavaPlatform,MicroEdition)。
这个版本以前称为J2ME。
JavaME为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。
JavaME包括灵活的用户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的连网和离线应用程序的丰富支持。
基于JavaME规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能
第2章总体设计
2.1题目分析
2.11设计目的
图形界面设计,熟悉java.awt包中的组件,掌握图形界面设计方法,理解委托事件处理模型。
从而检测对这门课的掌握情况,有助于及时查漏补缺。
2.12功能模块设计
⏹标准计算器
以下为标准计算器的基本功能:
(1)加法
两个数据进行加操作,可以为小数。
(2)减法
两个数据进行减操作,可以为负数相减。
(3)乘法
两个数相乘操作。
(4)除法
两个数相除操作。
(5)倒数
对任意一个数进行倒数运算。
2.13系统功能图
2.14界面设计代码
计算器的界面由一个菜单栏一个文本框及27个按钮组成,具体实现代码如下所示:
MenuBarmyB=newMenuBar();
setMenuBar(myB);
Menum1=newMenu("编辑(E)");
MenuItemm11=newMenuItem("复制(C)Ctrl+C");
m11.addActionListener(this);
m1.add(m11);
MenuItemm12=newMenuItem("粘贴(P)Ctrl+V");
m12.addActionListener(this);
m1.add(m12);
myB.add(m1);
Menum2=newMenu("查看(V)");
m2.add(newMenuItem("标准型(T)"));
m2.add(newMenuItem("科学型(S)"));
m2.addSeparator();
m2.add(newMenuItem("数字分组(I)"));
m2.addActionListener(this);
myB.add(m2);
Menum3=newMenu("帮助(H)");
MenuItemm31=newMenuItem("帮助主题(H)");
m31.addActionListener(this);
m3.add(m31);
m3.addSeparator();
MenuItemm32=newMenuItem("关于计算器(A)");
m32.addActionListener(this);
m3.add(m32);
myB.add(m3);
//////////
JPanelpa1=newJPanel();
pa1.setBackground(newColor(236,231,210));
text=newJTextField("0.",31);
pa1.add("North",text);
//面板添加和按钮的设置
JPanelpa=newJPanel();
JPanelpa2=newJPanel();
JButtonbt1=newJButton("Backspace");
JButtonbt2=newJButton("CE");
JButtonbt3=newJButton("C");
bt1.addActionListener(this);
bt2.addActionListener(this);
bt3.addActionListener(this);
pa2.add(bt1);
pa2.add(bt2);
pa2.add(bt3);
pa.setLayout(newBorderLayout());
pa.add(pa2,"North");
JPanelp1=newJPanel();
p1.setLayout(newGridLayout(4,1,2,5));
JButtonbt4=newJButton("MC");
JButtonbt5=newJButton("MR");
JButtonbt6=newJButton("MS");
JButtonbt7=newJButton("M+");
p1.add(bt4);
p1.add(bt5);
p1.add(bt6);
p1.add(bt7);
pa.add(p1,"West");
JPanelp=newJPanel();
p.setLayout(newGridLayout(4,5,2,5));
Stringbuttons[]={"7","8","9","/","sqrt","4","5","6","*","%","1","2","3","-","1/x","0",".","=","+","+/-"};
JButtonbtn[]=newJButton[buttons.length];
for(inti=0;i {addButton(p,buttons[i]); pa.add(p,"Center"); } pa1.add("South",pa); this.getContentPane().add(pa1); } privatevoidaddButton(Containerc,Strings) {JButtonb=newJButton(s); c.add(b); b.addActionListener(this); 第3章详细设计 3.1JAVA程序设计计算器的具体实现代码 importjava.awt.*; importjava.awt.event.*; importjavax.swing.*; publicclassjisuanqiextendsJFrameimplementsActionListener,ItemListener{ JTextFieldtext; JTextFieldtextMemory; booleanclickable; doublememoryd;//使用内存中存储的数字 intmemoryi; Stringcopy; publicjisuanqi(){ super("计算器"); setSize(357,253); } publicvoidinit(){ clickable=true; //添加菜单栏 MenuBarmyB=newMenuBar(); setMenuBar(myB); Menum1=newMenu("编辑(E)"); MenuItemm11=newMenuItem("复制(C)Ctrl+C"); m11.addActionListener(this); m1.add(m11); MenuItemm12=newMenuItem("粘贴(P)Ctrl+V"); m12.addActionListener(this); m1.add(m12); myB.add(m1); Menum2=newMenu("查看(V)"); m2.add(newMenuItem("标准型(T)")); m2.add(newMenuItem("科学型(S)")); m2.addSeparator(); m2.add(newMenuItem("数字分组(I)")); m2.addActionListener(this); myB.add(m2); Menum3=newMenu("帮助(H)"); MenuItemm31=newMenuItem("帮助主题(H)"); m31.addActionListener(this); m3.add(m31); m3.addSeparator(); MenuItemm32=newMenuItem("关于计算器(A)"); m32.addActionListener(this); m3.add(m32); myB.add(m3); ////////// JPanelpa1=newJPanel(); pa1.setBackground(newColor(236,231,210)); text=newJTextField("0.",31); pa1.add("North",text); //面板添加和按钮的设置 JPanelpa=newJPanel(); JPanelpa2=newJPanel(); JButtonbt1=newJButton("Backspace"); JButtonbt2=newJButton("CE"); JButtonbt3=newJButton("C"); bt1.addActionListener(this); bt2.addActionListener(this); bt3.addActionListener(this); pa2.add(bt1); pa2.add(bt2); pa2.add(bt3); pa.setLayout(newBorderLayout()); pa.add(pa2,"North"); JPanelp1=newJPanel(); p1.setLayout(newGridLayout(4,1,2,5)); JButtonbt4=newJButton("MC"); JButtonbt5=newJButton("MR"); JButtonbt6=newJButton("MS"); JButtonbt7=newJButton("M+"); p1.add(bt4); p1.add(bt5); p1.add(bt6); p1.add(bt7); pa.add(p1,"West"); JPanelp=newJPanel(); p.setLayout(newGridLayout(4,5,2,5)); Stringbuttons[]={"7","8","9","/","sqrt","4","5","6","*","%","1","2","3","-","1/x","0",".","=","+","+/-"}; JButtonbtn[]=newJButton[buttons.length]; for(inti=0;i {addButton(p,buttons[i]); pa.add(p,"Center"); } pa1.add("South",pa); this.getContentPane().add(pa1); } privatevoidaddButton(Containerc,Strings) {JButtonb=newJButton(s); c.add(b); b.addActionListener(this); } //功能的实现 publicvoidactionPerformed(ActionEventevt) { Strings=evt.getActionCommand(); if(s.equals("CE")||s.equals("C")){ text.setText(""); } //////////////////// elseif(s.equals("+/-"))//单击"+/-"选择输入的运算数是正数还是负数 {doublex; x=Double.parseDouble(text.getText().trim()); text.setText(""+(-x)); } else if(s=="sqrt"){ Strings1=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())))); } elseif(s.equals("%"))//单击了"%"按钮 {doublex; x=Double.parseDouble(text.getText().trim()); text.setText(""+(0.01*x)); //str.setLength(0); //y=0d; } elseif(s.equals("1/x"))//单击了"1/X"按钮 {doublex; x=Double.parseDouble(text.getText().trim()); if(x==0) { text.setText("除数不能为零"); } else { text.setText(""+(1/x)); } //按下'+/-'按钮时处理 if(s=="+/-"&&clickable==true){ booleanisNumber=true; Strings1=text.getText(); for(inti=0;i if(! (s1.charAt(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(inti=1;i chara=s1.charAt(i); text.setText(text.getText()+a); } } //如果当前字符串第一个字符不是符号,则添加一个符号在首字母处 else text.setText('-'+s); } } //计算器有关内存操作 //'MC'的操作,将内存清0 else if(s=="MC"&&clickable==true){ memoryd=memoryi=0; textMemory.setText(""); } //'MS'的操作,将当前文本框内容保存入内存,显示'M' else if(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)