JAVA课设模拟计算机报告含源代码Word文件下载.docx

上传人:b****7 文档编号:22548465 上传时间:2023-02-04 格式:DOCX 页数:26 大小:76.02KB
下载 相关 举报
JAVA课设模拟计算机报告含源代码Word文件下载.docx_第1页
第1页 / 共26页
JAVA课设模拟计算机报告含源代码Word文件下载.docx_第2页
第2页 / 共26页
JAVA课设模拟计算机报告含源代码Word文件下载.docx_第3页
第3页 / 共26页
JAVA课设模拟计算机报告含源代码Word文件下载.docx_第4页
第4页 / 共26页
JAVA课设模拟计算机报告含源代码Word文件下载.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

JAVA课设模拟计算机报告含源代码Word文件下载.docx

《JAVA课设模拟计算机报告含源代码Word文件下载.docx》由会员分享,可在线阅读,更多相关《JAVA课设模拟计算机报告含源代码Word文件下载.docx(26页珍藏版)》请在冰豆网上搜索。

JAVA课设模拟计算机报告含源代码Word文件下载.docx

2.2.2编译软件

Eclipse

2.2图形界面设计

通过图形界面设计,掌握JFrame类、JPanel类、5种布局管理器、文本框、标签及按钮的使用方法。

2.3基本功能

包括加减乘除四则运算、倒数、平方根及清除结果等功能。

2.4特殊功能

通过按钮点击实现数据的复位(清零),回退,以及记忆加,记忆减,记忆功能。

第三章.系统总体设计

3.1系统界面结构图

图3.1

3.2详细设计

3.2.1主界面设计

显示框数字及操作按钮菜单栏

图3.2.1

3.2.2具体功能设计

主框架及界面的设置

this.setLayout(newBorderLayout(5,5));

this.add(createPN(),BorderLayout.NORTH);

this.add(createPW(),BorderLayout.WEST);

this.add(createPC(),BorderLayout.CENTER);

Fontfonts=newFont("

楷体"

Font.PLAIN,25);

super.setFont(fonts);

tfNumber.setFont(fonts);

tfNumber.setHorizontalAlignment(JTextField.RIGHT);

this.setSize(400,250);

主界面包括数字按钮,功能按钮,显示栏以及菜单栏,显示栏用JTextField()实现,整体布局使用边界布局,菜单栏使用JMenu()实现,主界面用将不同的面板添加到一个框架上的方法实现。

为所有按钮添加事件的监听

jbt.addActionListener(this);

sech.addActionListener(newActionListener())

about.addActionListener(newActionListener())

为所有的按钮添加事件的监听,并绑定功能与事件的触发,

四则运算算法的实现

d1=Double.parseDouble(tfNumber.getText());

switch(k1){

case0:

k1=-1;

d2+=Double.parseDouble(tfNumber.getText());

tfNumber.setText(Double.toString(d2));

break;

case1:

d2-=Double.parseDouble(tfNumber.getText());

case2:

d2*=Double.parseDouble(tfNumber.getText());

case3:

if(tfNumber.getText().equals("

0"

)){

tfNumber.setText("

除数不能为零"

);

number=false;

}else{

k1=-1;

d2/=Double.parseDouble(tfNumber.getText());

}

第四章.系统调试

4.1系统功能界面

4.2课设过程中遇到的问题及解决方法

4.2.1记忆功能的实现

一般的计算器都具有记忆功能,为了实现计算器的记忆功能,设置了一个双精度型浮点数用来寄存所记忆的数字,从而实现了计算器的记忆功能。

4.2.2小数点问题的解决

在计算器中小数点只能输入一次,重复按小数点只显示一个小数点,只需设置一个标志位,便可以解决小数点的所有问题。

case'

.'

:

tcnt=tfNumber.getText();

booleang=false;

//对计算栏中的数据进行检验

//如果其中有小数点则用户再次单机按钮不添加小数点

for(inti=0;

i<

tcnt.length();

i++){

if(tcnt.charAt(i)=='

){

g=true;

//数据中已有小数点

if(g==true){

if(g==false){

tfNumber.setText(tcnt+"

."

第五章.收获与感想

这次Java课设是自己完全用心做的一次,由于知道自己能力水平,所以在选题的时候,选了这个比较简单的模拟计算器,题目虽然简单,但自己却是用心做了,而且在做的过程也学会了很多东西,从开始界面的布局,到最后附加功能的添加,事件的绑定,以及一些菜单栏的细节信息的添加,都是自己认证思考然后设计,有时候总做不出自己想要的界面,然后又去查相关界面布局等方面的知识,通过自己查到的以及参考其他程序相关的代码,终于写出了让自己满意的界面,但是最后不在异常的处理上自己还是有考虑不到的地方,有些比较明显的异常,并没有捕获并且处理,说明自己在写程序方面还是有考虑不周全,以后要多多注意这方面的问题,通过这次课设,自己对eclipse这个编译平台的了解也得到巩固,深刻体会到理论与实际相结合的重要性,也使自己明白只有不断的去尝试编写更多的程序,才能成为一名优秀的程序员,Java语言是所有高级语言中最受欢迎的语言之一,随着以后移动设备的发展,已经安卓系统在移动设备中所占用的份额,Java语言也将成为越来越重要的语言,因此,作为一名准程序员,熟悉以及精通Java语言的是基本技能之一,但是Java编程思想博大精深,自己还有很漫长的学习过程要经历,只有不断地尝试努力,才能成为一名优秀的程序员。

第六章.关键代码附录

请参考0909120716-马俊-源代码.docx

【参考文献】

《Java语言程序设计》……………………郭克华主编,清华大学出版社

《Java语言程序设计课程时间》……………………陈明主编,清华大学出版社

《Java程序设计实验指导与习题测试》……………………余青松主编,清华大学出版社

《Java编程思想》……………………埃克尔主编,机械工业出版社

附录:

packagecalc;

importjava.awt.*;

importjavax.swing.*;

importjava.awt.event.*;

importjava.lang.Math;

publicclassCalcextendsJFrameimplementsActionListener{

privateJMenuBarmb=newJMenuBar();

privateJMenuhelp=newJMenu("

帮助(H)"

privateJMenuauthor=newJMenu("

查看(S)"

privateJMenuItemsech=newJMenuItem("

查看帮助"

privateJMenuItemabout=newJMenuItem("

关于计算器"

privateJMenuItemauth=newJMenuItem("

关于作者"

privateImageimg;

privatedoubled0=0.0,d1=0.0,d2=0.0;

privateStringtcnt;

//用来存储计算栏中的内容

booleannumber=false;

//用来标记用户是否是数字

shortk1=-1;

//k1用来标示用户所按下的计算按钮即加减乘除,k1为0表示+,k1为1表示-,k1为2表示*,k1为3表示/

//k2取值-1~5,k2为-1,表示第一次按下=按钮,为5说明不是第一次按下=按钮

//k2为0,1,2,3分别代表+,-,*,/

shortk2=-1;

JTextFieldtfNumber=newJTextField(15);

//文本输入框

publicJPanelcreatePN(){

JPanelpn=newJPanel();

pn.setLayout(newBorderLayout(5,5));

pn.add(tfNumber,BorderLayout.CENTER);

returnpn;

}

//最左边的一栏

publicJPanelcreatePW(){

JPanelpw=newJPanel();

pw.setLayout(newGridLayout(5,1,5,5));

JButton[]jbts=newJButton[5];

String[]labels=newString[]{"

MC"

"

MR"

MS"

M+"

M-"

};

for(inti=0;

i<

jbts.length;

i++){

JButtonjbt=newJButton(labels[i]);

jbt.setForeground(Color.red);

pw.add(jbt);

jbt.addActionListener(this);

}

returnpw;

publicJPanelcreatePC(){

JPanelpc=newJPanel();

pc.setLayout(newBorderLayout(5,5));

pc.add(createPCN(),BorderLayout.NORTH);

pc.add(createPCC(),BorderLayout.SOUTH);

returnpc;

publicJPanelcreatePCN(){

JPanelpcn=newJPanel();

pcn.setLayout(newGridLayout(1,3,5,5));

JButton[]jbts=newJButton[3];

Backspace"

CE"

C"

pcn.add(jbt);

returnpcn;

publicJPanelcreatePCC(){

JPanelpcc=newJPanel();

pcc.setLayout(newGridLayout(4,5,5,5));

JButton[]jbts=newJButton[20];

7"

8"

9"

/"

sqrt"

4"

5"

"

6"

*"

%"

1"

2"

3"

-"

1/x"

+/-"

+"

="

if(labels[i].endsWith("

)||labels[i].endsWith("

||labels[i].endsWith("

jbt.setForeground(Color.red);

}else{

jbt.setForeground(Color.BLUE);

}

pcc.add(jbt);

returnpcc;

publicvoidactionPerformed(ActionEventae){

Strings;

s=ae.getActionCommand();

/*MS表示存储显示栏中的数字到d1

*MR表示在显示栏中显示存储的数字

*MC表示清除存储的数字

*M+表示将显示栏中的数字加到存储的数字上

*M-表示存储的数字减去显示栏中的数字

*/

if(s.equals("

)&

&

number){

d0=0.0;

d0=Double.parseDouble(tfNumber.getText());

tfNumber.setText(Double.toString(d0));

tfNumber.setText(Double.toString(d0+Double.parseDouble(tfNumber.getText())));

tfNumber.setText(Double.toString(d0-Double.parseDouble(tfNumber.getText())));

tcnt=tfNumber.getText();

tfNumber.setText("

"

//先将计算栏里的字符清空,再添加出最后一个字符的字符串

for(inti=0;

tcnt.length()-1;

charc=tcnt.charAt(i);

tfNumber.setText(tfNumber.getText()+c);

//清空计算栏

number=false;

d2=0.0;

d1=0.0;

if(tcnt.charAt(0)=='

-'

){

tfNumber.setText("

负数不能被开放"

number=false;

tfNumber.setText(Double.toString(Math.sqrt(Double

.parseDouble(tcnt))));

//点击1/x求倒数按钮&

求倒数分母不能为0

if(tcnt.equals("

求倒数分母不能为零"

tfNumber.setText(Double.toString(1/Double.parseDouble(tcnt)));

//取余数运算

if(d2==0){

tcnt=tfNumber.getText();

tfNumber.setText(tcnt);

booleang=false;

for(inti=0;

tfNumber.getText().length();

if(tfNumber.getText().charAt(i)=='

g=true;

break;

}

//double直接除100

if(g==true){

doubledtemp=Double.parseDouble(tfNumber.getText());

dtemp=dtemp/100.0;

tfNumber.setText(Double.toString(dtemp));

}else{

if(Integer.parseInt(tfNumber.getText())%100==0){

intitemp=Integer.parseInt(tfNumber.getText());

itemp/=100;

tfNumber.setText(Integer.toString(itemp));

}else{

doubledtemp=Double.parseDouble(tfNumber

.getText());

dtemp=dtemp/100.0;

tfNumber.setText(Double.toString(dtemp));

}

}

}}

//对正负数的处理

if(s.equals("

if(tcnt.charAt(0)=='

tfNumber.setText("

for(inti=1;

tcnt.length();

tfNumber.setText(tfNumber.getText()+tcnt.charAt(i));

}else{

+tcnt);

//按下+号

switch(k2){

case0:

d2+=Double.parseDouble(tfNumber.getText());

break;

case1:

case2:

case3:

if(tfNumber.getText().equals("

tfNumber.setText("

number=false;

k1=-1;

d2/=d1;

tfNumber.setText(Double.toString(d2));

default:

d2=Double.parseDouble(tfNumber.getText());

k2=k1=0;

//按下减号

if(s.equals("

)){

switch(k2){

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1