《Java语言程序设计》报告.docx
- 文档编号:10380785
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:32
- 大小:186.27KB
《Java语言程序设计》报告.docx
《《Java语言程序设计》报告.docx》由会员分享,可在线阅读,更多相关《《Java语言程序设计》报告.docx(32页珍藏版)》请在冰点文库上搜索。
《Java语言程序设计》报告
黑龙江科技学院
计算机与信息工程学院
《Java语言程序设计》
课程设计报告
姓名:
113
班级:
123
指导教师:
123
2010年7月7日
课程设计综合成绩评定
设计题目1:
计算器程序
设计题目2:
万年历
考核项目
分值
A
C
得分
设计情况(共70分)
设计工作量与难度
20
设计工作量大与设计有一定难度
设计工作量与难度一般,基本达到了要求
设计
方案
15
设计方案正确、合理
设计方案较正确、基本合理,但不是最优
设计完成情况
35
完成了选题的设计内容,设计功能完整,相关算法设计正确,程序结果正确、直观性好
基本完成了选题的设计内容及主要选题功能,相关算法设计基本正确,程序结果正确
设计报告(共15分)
报告组织结构及内容
10
内容组织及结构合理、内容充实、层次清晰、图表得当
内容组织及结构较合理、内容较充实、层次较清晰、图表应用基本得当
报告排版格式
5
格式规范,完全符合要求
格式基本规范,基本符合要求
设计态度
(共15分)
15
设计态度认真、积极
设计态度比较认真
综合得分
课程设计综合成绩(折合为优、良、中、及格与不及格计)
其它说明:
一.计算器
目录
一、设计内容2
二、设计过程2
2.1需求分析2
2.2概要设计2
2.3详细设计3
2.4代码实现3
2.5程序运行与发布13
三、总结13
四、参考文献13
一、设计内容
该程序是一个图形界面的简单的java计算器,使用人员能快捷简单地进行操作。
即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。
可以进行简单的四则运算(加、减、乘、除,以及求倒数,求相反数),有退格功能,归零表示初始化,界面颜色为灰白,该程序支持键盘操作。
二、设计过程
2.1需求分析
随着科学技术的不断发展,计算机已经成为我们工作学习和生活中不可缺少的工具。
文本编辑器是个人计算机最司空见惯的应用程序了,在学习了Java语言之后,我决定使用Java语言编写一个简单的计算器,可以实现简单的运算功能,满足日常基本的工作学习和娱乐需要。
2.2概要设计
1.界面及功能描述
(1)界面布局。
创建一个面板,先将所有按钮:
所有数字键和运算符键等放在面板上,采用网格布局,具体设计为4行,4列的网格,十六个格子。
再添加一个1行4列的网格布局来放置三个功能键:
归零,退格,倒数,负号。
然后,对以上两个面板,采用BorderLayout布局,将按键面板放在计算机的中部,功能键面板放右上角,作为一个新的面板。
最后,将文本框放在左上角,新面板放中央,采用边界布局管理器,做为界面的整体布局,这样界面布局就搞定了。
(2)按退格键,将返回到前一次输入状态。
(3)按归零键,输入的数字第一个数字为零。
2.简要的设计流程:
2.3详细设计
程序中所用的类:
类名:
lushuaishuaijsq
作用:
主类
继承的父类:
Frame类
实现的接口:
KeyListener类,ActionListener类
publicclasslushuaishuaijsqextendsFrameimplementsActionListener,KeyListener{
Strings="";//S控制文本框
floatk=0;//KP保存值
floatp=0;
intb=0;//控制运算符号
其中s为文本框内的数据,k,p,b分别为相应的保存值和控制运算符号所用。
publicvoidactionPerformed(ActionEvente)语句实现了ActionListener接口,因此可以调用addActionListener(this)方法对按钮进行点击监听,在下面的publicvoidactionPerformed(ActionEvente)方法里面对各个点击事件进行处理。
程序中的主要方法:
privatevoidlistener()添加侦听器对象,对来自键盘和点击的事件进行监听;
publicvoidactionPerformed(ActionEvente)添加监视器,对来自键盘和鼠标点击的事件进行捕捉;
publicvoidkeyPressed(KeyEvente)
publicvoidkeyReleased(KeyEventarg0)
publicvoidkeyTyped(KeyEventarg0)
针对键盘操作而设计的键盘操作;
2.4代码实现
importjava.awt.event.KeyListener;
importjava.awt.event.WindowAdapter;
importjava.awt.event.WindowEvent;
importjava.awt.event.KeyEvent;//实现键盘事件
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
publicclasslushuaishuaijsqextendsFrameimplementsActionListener,KeyListener{
Strings="";//S控制文本框
floatk=0;//KP保存值
floatp=0;
intb=0;//控制运算符号
Panelp1=newPanel();
Panelp2=newPanel();
TextFieldtext=newTextField(50);
GridLayoutgridLayout=newGridLayout();
Buttonbe=newButton("1/x");
Buttonbf=newButton("负号");
Buttonbb=newButton("退格");
Buttonbc=newButton("归零");
Buttonb0=newButton("0");
Buttonb1=newButton("1");
Buttonb2=newButton("2");
Buttonb3=newButton("3");
Buttonb4=newButton("4");
Buttonb5=newButton("5");
Buttonb6=newButton("6");
Buttonb7=newButton("7");
Buttonb8=newButton("8");
Buttonb9=newButton("9");
Buttonbd=newButton(".");
Buttonbj=newButton("+");
Buttonbji=newButton("-");
Buttonbs=newButton("*");
Buttonbchu=newButton("/");
Buttonbden=newButton("=");
privatevoidinit(){
gridLayout.setColumns(4);
gridLayout.setRows(4);
gridLayout.setHgap(8);
gridLayout.setVgap(8);
p1.add(text,"West");
p1.add(bc,"East");
p1.add(bb,"East");
p1.add(be,"East");
p1.add(bf,"East");
p2.setLayout(gridLayout);
p2.add(b7);
p2.add(b8);
p2.add(b9);
p2.add(bchu);
p2.add(b4);
p2.add(b5);
p2.add(b6);
p2.add(bs);
p2.add(b1);
p2.add(b2);
p2.add(b3);
p2.add(bji);
p2.add(b0);
p2.add(bd);
p2.add(bj);
p2.add(bden);
}
privatevoidlistener(){
be.addActionListener(this);
bf.addActionListener(this);
bb.addActionListener(this);
bc.addActionListener(this);
b0.addActionListener(this);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
b6.addActionListener(this);
b7.addActionListener(this);
b8.addActionListener(this);
b9.addActionListener(this);
bd.addActionListener(this);
bj.addActionListener(this);
bji.addActionListener(this);
bs.addActionListener(this);
bchu.addActionListener(this);
bden.addActionListener(this);
}
publicstaticvoidmain(String[]args){//函数入口处main方法
lushuaishuaijsqmainframe=newlushuaishuaijsq();
mainframe.setSize(600,350);
mainframe.setLocationRelativeTo(null);//居中
mainframe.setTitle("计算器");
mainframe.setVisible(true);
}
publicvoidactionPerformed(ActionEvente){
if(e.getActionCommand()=="0"){
if(b!
=5){
s=s+"0";
text.setText(s);
}
}
if(e.getActionCommand()=="1"){
if(b!
=5){
s=s+"1";
text.setText(s);
}
}
if(e.getActionCommand()=="2"){
if(b!
=5){
s=s+"2";
text.setText(s);
}
}
if(e.getActionCommand()=="3"){
if(b!
=5){
s=s+"3";
text.setText(s);
}
}
if(e.getActionCommand()=="4"){
if(b!
=5){
s=s+"4";
text.setText(s);
}
}
if(e.getActionCommand()=="5"){
if(b!
=5){
s=s+"5";
text.setText(s);
}
}
if(e.getActionCommand()=="6"){
if(b!
=5){
s=s+"6";
text.setText(s);
}
}
if(e.getActionCommand()=="7"){
if(b!
=5){
s=s+"7";
text.setText(s);
}
}
if(e.getActionCommand()=="8"){
if(b!
=5){
s=s+"8";
text.setText(s);
}
}
if(e.getActionCommand()=="9"){
if(b!
=5){
s=s+"9";
text.setText(s);
}
}
if(e.getActionCommand()=="."){
if(b!
=5){
if(s.indexOf(".")==-1)
s=s+".";
text.setText(s);
}
}
if(e.getActionCommand()=="归零"){
s="";
text.setText(s);
k=0;
p=0;
b=0;
}
if(e.getActionCommand()=="+"){
if(s!
=""){
//k=Float.parseFloat(s);
if(b!
=0&&b!
=5)
s=this.equal(s,p,k,b);
k=Float.parseFloat(s);
text.setText(s);
s="";
}
b=1;
}
if(e.getActionCommand()=="-"){
if(s!
=""){
if(b!
=0&&b!
=5)
s=this.equal(s,p,k,b);
k=Float.parseFloat(s);
text.setText(s);
s="";
}
b=2;
}
if(e.getActionCommand()=="*"){
if(s!
=""){
if(b!
=0&&b!
=5)
s=this.equal(s,p,k,b);
k=Float.parseFloat(s);
text.setText(s);
s="";
}
b=3;
}
if(e.getActionCommand()=="/"){
if(s!
=""){
if(b!
=0&&b!
=5)
s=this.equal(s,p,k,b);
k=Float.parseFloat(s);
text.setText(s);
s="";
}
b=4;
}
if(e.getActionCommand()=="="){
s=equal(s,p,k,b);
text.setText(s);
b=5;//b=5控制等号以后不能直接跟数字
}
if(e.getActionCommand()=="退格"){
s=s.substring(0,s.length()-1);
text.setText(s);
}
if(e.getActionCommand()=="负号"){
s=("-"+s);
text.setText(s);
}
if(e.getActionCommand()=="1/x"){
//intk;
floatk,j;
Stringm;
if(s=="0")
{
//System.out.println("asfsdfa");
text.setText("dsfaf");
}else{
k=Float.parseFloat(s);
j=1/k;
m=String.valueOf(j);
text.setText(m);
}
}
}
publicStringequal(Strings,floatp,floatk,intb){
if(s!
=""){
//System.out.println("programisrunhere");
p=Float.parseFloat(s);
if(b==1)
s=""+(p+k);
if(b==2)
s=""+(k-p);
if(b==3)
s=""+(p*k);
if(b==4)
if(p==0){
s="除数不能为零";
}else
s=""+(k/p);
}
returns;
}
publiclushuaishuaijsq(){
this.addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
dispose();
System.exit(0);
}//给窗口注册一个事件监听器,当你点了窗口右上方的叉号时,此方法被调用
});
this.init();
this.listener();
this.add(p1,"North");
this.add(p2,"Center");
}
publicvoidkeyPressed(KeyEvente){
//if(e.getKeyLocation()=="+")
}
publicvoidkeyReleased(KeyEventarg0){
}
publicvoidkeyTyped(KeyEventarg0){
}
}
2.5程序运行与发布
功能1,该程序为十进制计算器,可进行普通十进制计算。
功能2,可进行四则运算(加、减、乘、除)以及求负数,求倒数运算。
功能3,可进行退格,点击“退格”键将逐个删除已经输入的数据。
点击“归零”键可实现计算器的初始化。
计算器界面:
三、总结
程序不足之处:
1.该程序未添加异常处理事件,但是该程序在发生异常如溢出时,会在文本框内显示Infinity字符,提示不可操作或操作错误。
2.人机交互界面不够友好,相信日后会有改进。
个人体会:
通过此次课程设计,将我本学期所学的JAVA知识得到巩固和应用,在设计的过程中我遇到了很到问题,不过在老师和同学们的帮助和自己的思考下还是很好的完成了。
这此课程设计还让我懂得了写程序不能闭门造车,要努力拓宽知识面,开阔视野,拓展思维。
它还让我学会了在网上查阅那些无限的资料。
通过对此课题的开发,使我对用Eclipse开发平台有了一个比较清楚的认识,体会到理论和实践的重要性。
由于自己的分析设计和程序经验不足,该系统设计和实现过程中,还有许多没有完善的地方,比如用户界面设计不够美观,异常出错处理比较差等多方面问题,这些都有待进一步完善和提高。
当程序运行结束看到弹出的计算器的界面时,感到很欣慰,虽然只是一个小小的东西,但却是自己起步的成就,从中学到了很多书本知识不能体现的东西,对JAVA的学习有了一定的兴趣。
也通过这次的程序设计感觉到自己平时对于编程实际操作的贫乏,没有把书本上的知识真正的掌握牢固。
四、参考文献
1.宁书林等,《java2技能百练》,中国铁道出版社,2004。
2.JohnCowell著,《java简明教程》,施普林格出版社,1998。
3.埃克尔著,《java编程思想》,机械工业出版社,2002。
4.於东军[等]著,《Java程序设计与应用开发》,清华大学出版社,2005。
二.万年历
目录
一、设计内容2
二、设计过程2
2.1需求分析2
2.2概要设计2
2.3详细设计3
2.4代码实现5
2.5程序运行与发布10
三、总结12
四、参考文献12
一、设计内容
万年历是一个强大的日历系统,通过它可以实现对过去,现在以及将来日期的查找,通过在年份对话框中输入要查询的年份,再相应的在月份对应的下拉菜单选择要查询的月份,则可得到相应的日历。
本实验是对图形用户界面,布局管理器的综合运用,理解JAVA的时间处理机制,编写独立运行的窗口。
二、设计过程
2.1需求分析
本程序的要求为:
1.使用图形用户界面;2.本程序能够实现日期与星期的查询。
3.随着科学技术的不断发展,计算机已经成为我们工作学习和生活中不可缺少的工具。
文本编辑器是个人计算机最司空见惯的应用程序了,在学习了Java语言之后,我决定使用Java语言编写一个简单的万年历,可以实现查询日期和显示时间的功能,满足日常基本的工作学习和娱乐需要。
2.2概要设计
1.总天数的算法:
首先用if语句判断定义年到输入年之间每一年是否为闰年,是闰年,该年的总天数为366,否则,为365。
然后判断输入的年是否为定义年,若是,令总天数S=1,否则,用累加法计算出定义年到输入年之间的总天数,再把输入年的一月到要输出的月份之间的天数累加起来,若该月是闰年中的月份并且该月还大于二月,再使总天数加1,否则,不加,既算出从定义年一月一日到输出年的该月一日的总天数。
2.输出月份第一天为星期几的算法:
使总天数除以7取余加2得几既为星期几,若是7,则为星期日。
3.算出输出月份第一天为星期几的算法:
算出输出月份第一天为星期几后,把该日期以前的位置用空格补上,并总该日起一次输出天数直到月底,该月中的天数加上该月一日为星期几的数字再除以7得0换行,即可完整的输出该月的日历。
4.如果年份小于1582年则程序不予判断。
2.3详细设计
1.流程图
2.初始化组件:
importjava.applet.Applet;
importjava.awt.*;
importjava.util.*;
3.初始化数据:
publicclassCalendarAppletextendsApplet{
staticfinalintTOP=70;//顶端距离
staticfinalintCELLWIDTH=50,CELLHEIGHT=30;//单元格尺寸
staticfinalintMARGIN=3;//边界距离
staticfinalintFEBRUARY=1;
TextFieldtfYear=newTextField("2004",5);//显示年份的文本域
ChoicemonthChoice=newChoice();//月份选择下拉框
ButtonbtUpdate=newButton("更新");//更新按钮
GregorianCalendarcalendar=newGregorianCalendar();//日历对象
FontsmallFont=newFont("TimesRoman",Font.PLAIN,15);//显示小字体
FontbigFont=newFont("TimesRoman",Font.BOLD,50);//显示大字体
Stringdays[]={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
St
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java语言程序设计 Java 语言程序设计 报告
文档标签
- Java语言程序设计Java语言程序设计实验
- Java语言设计春北交Java语言
- Java语言程序设计Java语言程序设计教案
- java程序语言课程设计
- JAVA语言程序设计JAVA语言程序设计练习题
- Java语言程序设计教案
- JAVA程序设计报告学生
- Java语言程序设计Java语言程序设计考试
- Java拼图程序报告
- 高级程序语言设计报告
- 语言程序设计报告
- JAVA语言程序设计
- JAVA语言程序设计复习题JAVA语言程序设计
- Java程序设计语言
- Java语言程序设计ATMJava语言程序设计
- 语言程序报告
- Java语言设计Java语言设计
- 大学语言程序设计实验答案
- 语言程序设计实验
- Java语言实验项目Java语言
- 语言程序设计课程考核大纲
- Java程序设计课程教学大纲
- 语言程序设计大纲
- Java语言程序设计实验对象
- 程序设计语言实验