JAVA课设.docx
- 文档编号:25218316
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:13
- 大小:71.20KB
JAVA课设.docx
《JAVA课设.docx》由会员分享,可在线阅读,更多相关《JAVA课设.docx(13页珍藏版)》请在冰豆网上搜索。
JAVA课设
吉林工程技术师范学院
《JAVA》课程设计报告书
设计题目:
多线程端口扫描器
专业:
计算机科学与技术班级:
0942
学生姓名:
学号:
17
指导教师:
2010年7月
信息工程学院
目录
一概述2
二总体方案设计3
三详细设计4
四程序的调试与运行结果说明7
五课程设计总结9
六附录10
一设计任务书
1.程序具备的功能:
(1)使用图形用户界面:
一个文本框;0-9数字按钮;加、减、乘、除运算符;“等于”符号;复位按钮;
(2)完成整数、实数的四则运算(加、减、乘、除);
(3)通过按钮点击实现数据的复位(清零);
(4)实数运算中小数位的精度一致。
2.课程设计的主要设计思想
对于此计算器程序,首先要设计其GUI界面,总体界面有一个文本框,18个按钮,总体界面用BorderLayout布局。
文本框放置在最NORTH,然后0到9以及+,-,*,/的按钮放置到一个面板Panel中,添加到整体布局的CENTER,界面设计完成。
布局设计好后再添加按钮事件。
对于此程序要考虑到点击加、减、乘、除按钮时是否有点击数字按钮,如果是第一次点击数字按钮或者是点击数字按钮前点击了加、减、乘、除按钮则直接把数字按钮的数值设置到文本框中,否则则应把文本框中的内容加上你所点击按钮的数值设置到文本框中。
在进行加、减、乘、除计算时要把点击加、减、乘、除按钮之前的数值保存下来,运算时是这个被保存下来的数值和文本框中的数值加、减、乘、除。
二总体方案设计
1.界面设计
界面设计要求用GUI,界面设计中有用到swing组件的TextField和Button,用到awt中的BorderLayout和GridLayout布局管理方式,其图形界面如下:
2.功能介绍
这是计算器中的一种:
简单计算器,本项目用到了Java中的GUI界面和swing组件以及awt布局,所以简单易用,它能完成如下的几个小功能:
点击按钮中的数字键和运算符键就能进行简单的加、乘、乘、除求模四则运算;
还能通过用户自己在文本框中输入数字,进行简单运算;
如果输入有误时可以按Clear撤销后重新输入新数据
三详细设计主题任务
程序流程图如下:
部分代码展示及说明:
这段代码主要是对程序的主框架进行相应的设置。
Framef=newFrame("计算器");
f.setBackground(Color.lightGray);
f.setForeground(Color.blue);
f.add(p1,BorderLayout.NORTH);
f.add(p2,BorderLayout.CENTER);
f.add(p3,BorderLayout.SOUTH);
f.setSize(350,300);//设置大小
f.setVisible(true);//设置为可视
这段代码是对程序如何进行运算的设计
if(y==0&&command!
="*"&&command!
="/"
&&command!
="+"&&command!
="-"
&&command!
="=")//判断输入是否为数字
{
s1=s1.concat(command);
tf.setText(s1);
}
if(command=="*"||command=="/"
||command=="+"||command=="-")//判断是否输入运算符
{
y=1;
s2=command;
}
if(y==1&&command!
="*"&&command!
="/"
&&command!
="+"&&command!
="-"
&&command!
="=")
{
s3=s3.concat(command);
tf.setText(s3);
}
if(command=="=")
{
Doubleob1=Double.valueOf(s1);
Doubleob3=Double.valueOf(s3);
d1=ob1.doubleValue();
d3=ob3.doubleValue();
if(s2=="+")d4=d1+d3;
if(s2=="-")d4=d1-d3;
if(s2=="*")d4=d1*d3;
Doubleob4=newDouble(d4);
tf.setText(ob4.toString());
if(s2=="/")
{if(d3==0)
tf.setText("除数不能为零");
else{d4=d1/d3;
ob4=newDouble(d4);
tf.setText(ob4.toString());}
}
y=0;
}
这段代码主要为窗口关闭按钮编写程序
classcloseWinextendsWindowAdapter//为关闭按钮编写程序
{
publicvoidwindowClosing(WindowEvente)
{System.exit(0);
}
}
四程序的调试与运行结果说明
事例1当除数为0时,程序运行结果如下:
事例2:
4561+8715预计结果13276实际结果
事例3:
189/2预计结果94.5实际结果:
事例4:
29-87预计结果-58实际结果:
五设计源代码
importjava.awt.*;
importjava.awt.event.*;
publicclassCalculatorimplementsActionListener
{Panelp1=newPanel();
Panelp2=newPanel();
Panelp3=newPanel();
TextFieldtf=newTextField(30);
Stringa[]={"7","8","9","/","4","5","6","*","1","2","3","-","0",".","=","+"};
ButtonB[];
Buttonb1=newButton("CE");
Buttonb2=newButton("退出");
Strings1=newString();
Strings2=newString();
Strings3=newString();//s1记录第一个数;s2记录运算符;s3记录第二个数;
doubled1,d3,d4;
inty=0;//y用于控制运算符
publicvoidinit()
{
Framef=newFrame("计算器");
f.setBackground(Color.lightGray);
f.setForeground(Color.blue);
p1.add(tf);
p3.setLayout(newGridLayout(1,2));
p3.add(b1);
p3.add(b2);
p2.setLayout(newGridLayout(4,4));
B=newButton[a.length];
for(inti=0;i { B[i]=newButton(a[i]); p2.add(B[i]); } f.add(p1,BorderLayout.NORTH); f.add(p2,BorderLayout.CENTER); f.add(p3,BorderLayout.SOUTH); f.setSize(350,300);//设置大小 f.setVisible(true);//设置为可视 B[0].addActionListener(this);//7 B[1].addActionListener(this);//8 B[2].addActionListener(this);//9 B[3].addActionListener(this);//除 B[4].addActionListener(this);//4 B[5].addActionListener(this);//5 B[6].addActionListener(this);//6 B[7].addActionListener(this);//* B[8].addActionListener(this);//1 B[9].addActionListener(this);//2 B[10].addActionListener(this);//3 B[11].addActionListener(this);//- B[12].addActionListener(this);//0 B[13].addActionListener(this);//. B[14].addActionListener(this);//= B[15].addActionListener(this);//+ b1.addActionListener(this); b2.addActionListener(this); f.addWindowListener(newcloseWin()); } publicvoidactionPerformed(ActionEvente) { Stringcommand=e.getActionCommand(); if(command=="CE")//清零键按下时返回初始状态 { y=0; tf.setText("0."); s1="";s2="";s3="";//记录输入值的变量清空 } elseif(command=="退出")System.exit(0);//退出键关闭应用程序 elseif(y==0&&command! ="*"&&command! ="/" &&command! ="+"&&command! ="-" &&command! ="=")//判断输入是否为数字 { s1=s1.concat(command); tf.setText(s1); } if(command=="*"||command=="/" ||command=="+"||command=="-")//判断是否输入运算符 { y=1; s2=command; } if(y==1&&command! ="*"&&command! ="/" &&command! ="+"&&command! ="-" &&command! ="=") { s3=s3.concat(command); tf.setText(s3); } if(command=="=") { Doubleob1=Double.valueOf(s1); Doubleob3=Double.valueOf(s3); d1=ob1.doubleValue(); d3=ob3.doubleValue(); if(s2=="+")d4=d1+d3; if(s2=="-")d4=d1-d3; if(s2=="*")d4=d1*d3; Doubleob4=newDouble(d4); tf.setText(ob4.toString()); if(s2=="/") {if(d3==0) tf.setText("除数不能为零"); else{d4=d1/d3; ob4=newDouble(d4); tf.setText(ob4.toString());} } y=0; } } publicstaticvoidmain(String[]args) { newCalculator().init(); } } classcloseWinextendsWindowAdapter//为关闭按钮编写程序 { publicvoidwindowClosing(WindowEvente) { System.exit(0); } } 六课程设计总结 在做本项目是时候,会遇到很多小问题,比如说: 如何保存输入的数字和下一个数进行加、减、乘、除运算。 还有如何判断它是第几个输入的数字。 后来进行多次研究和查询才知道可以通过设运算符标志位来判断是输入的第几个数值。 此次课程设计让我更了解熟悉了Java中的图形用户界面和它的编程方式。 在完成课题的过程中也不断充实了自己,学习到了很多以前没有学习到的知识,收获很大。 最大的收获就是对大学学习的总结和培养了解决困难的信心和能力,使我对所学知识能够融会贯通,又不断丰富了新知识。 Java计算器设计使得我们对所学的专业课有了更为深刻的认识,使得知识得到了巩固和提高。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA