第四届ITAT大赛副赛四个应用小程序.docx
- 文档编号:13529151
- 上传时间:2023-06-15
- 格式:DOCX
- 页数:15
- 大小:118.63KB
第四届ITAT大赛副赛四个应用小程序.docx
《第四届ITAT大赛副赛四个应用小程序.docx》由会员分享,可在线阅读,更多相关《第四届ITAT大赛副赛四个应用小程序.docx(15页珍藏版)》请在冰点文库上搜索。
第四届ITAT大赛副赛四个应用小程序
目录
1需求分析1
2设计目的1
3设计平台1
4Java应用程序求一元二次方程1
4.1功能模块设计1
4.2程序源代码1
4.3运行结果3
5输出、输入流实例4
5.1功能模块设计4
5.2程序源代码4
5.3运行结果5
6Windows计算器5
6.1功能模块设计5
6.2程序源代码5
6.3运行结果7
7链表实例8
7.1功能模块设计8
7.2程序源代码8
7.3运行结果9
总结9
参考文献10
后记10
1需求分析
(1)Java应用程序求一元二次方程:
利用java程序求解一元二次方程,并对方程有两个相同的根,有两个不同的实根,无实根分别作出判断。
(2)输出、输入流实例:
利用java程序来实现对本程序代码的倒序输出。
(3)Windows计算器:
利用java程序做出一个计算器,实现计算器的基本功能,加减乘除,并对结果做出正确的计算。
(4)链表实例:
利用java程序,结合链表的知识,解决循环问题输出链表中最后一个元素。
2设计目的
本课程设计是在学习JAVA课程之后进行的一次全面的训练,JAVA程序设计的设计目的是加深对理论教学内容的理解和掌握,使我们能够较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为我们综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。
3设计平台
Eclipse是开发源码项目,由于其开放源码,任何人都可以免费使用,并可以在此基础上开发各自的插件,eclipse不只作为一个JAVAIDE的开发平台,而且是作为一个平台框架,各种各样的插件都可以安装在它上面,从而形成各种各样的工具,它有开源软件,使用插件功能,可以完成比较复杂的开发等优点。
此Java程序设计就是在Eclipse环境平台下开发的。
4Java应用程序求一元二次方程
4.1功能模块设计
以下为一元二次方程的基本功能:
(1)求解一元二次方程的根
(2)判断一元二次方程是否有实根
(3)运行测试程序,调试纠正运行错误。
(4)调试无误,运行,测试具体编辑功能。
4.2程序源代码
编写一个Java应用程序,在其中编写一个类,该类封装了一元二次方程共有的属性和功能,即该类有刻画方程系数的3个成员变量以及计算实根的方法。
并给出计算实根的过程。
importjava.awt.*;//调用抽象窗口工具中的类
importjava.awt.event.*;//调用事件类和处理事件的接口
importjava.text.*;//调用文本包里的类
importjava.math.*;//调用数学包里的类
classWinextendsFrameimplementsActionListener{//创建一个类Win,它是窗口的子类并声明事件接口
TextFieldtext1,text2,text3,text4;//声明4个文本框
doublea,b,c,x1,x2,i1,i2,flag;//定义变量
Labellabel1,label2,label3,label4;
Win(Strings)
{super(s);//调用父类构造方法
text1=newTextField(15);//创建文本框
text2=newTextField(15);
text3=newTextField(15);
text4=newTextField(15);
label1=newLabel("输入二次项系数:
");//创建label标签并
label2=newLabel("输入一次项系数:
");
label3=newLabel("输入常数项:
");
label4=newLabel("答案为:
");
setLayout(newFlowLayout());//设置为流式布局
add(label1);//添加label了标签
add(text1);//添加text文本框
add(label2);
add(text2);
add(label3);
add(text3);
add(label4);
add(text4);
text1.addActionListener(this);//将窗口作为text的监视器
text2.addActionListener(this);
text3.addActionListener(this);
setBounds(100,100,300,200);//设置窗口大小
setVisible(true);//窗口可见
validate();/组件可以正常显示
addWindowListener(newWindowAdapter()//关闭窗口
{publicvoidwindowClosing(WindowEvente)
{System.exit(0);
}
});
}
publicvoidactionPerformed(ActionEvente){//重写方法
a=Integer.parseInt(text1.getText());//获取text中的内容并转换为整型
b=Integer.parseInt(text2.getText());
c=Integer.parseInt(text3.getText());
doubleflag=b*b-4*a*c;//赋值
if(flag<0)
{text4.setText("方程无根");}//输出flag<0时运算结果
elseif(flag==0){
x1=x2=(-b+Math.sqrt(flag))/2/a;//调用方法计算结果
x1=newDouble(newDecimalFormat(".00").format(x1));//运算结果保留两位小数
text4.setText("x1=x2="+x1);//输出flag=0时运算结果
}
else{
x1=(-b+Math.sqrt(flag))/2/a;//调用方法计算结果
x2=(-b-Math.sqrt(flag))/2/a;
x1=newDouble(newDecimalFormat(".00").format(x1));//运算结果保留两位小数
x2=newDouble(newDecimalFormat(".00").format(x2));text4.setText("x1="+x1+",x2="+x2);//输出flag>0时运算结果
}
}
}
publicclasscccc
{publicstaticvoidmain(Stringargs[])
{Winwin=newWin("一元二次方程运算");//命名窗口名
}
}
4.3运行结果
1、无根:
当Δ=b*b-4*a*c<0时,运行结果如图一所示。
图一.“无根”界面
2、有实根
(1)、当Δ=0时,只有一个二重根,运行结果如图二所示。
图二.“一个二重根”界面
(2)、当Δ>0时,有两个实根,运行结果如图三所示。
图三.“两个不同实根”界面
5输出、输入流实例
5.1功能模块设计
以下为此程序的基本功能:
(1)对输入文本进行倒序输出
(2)运行测试程序,调试纠正运行错误。
(3)调试无误,运行,测试具体编辑功能。
5.2程序源代码
编写一个Java应用程序,开启一个文本文件(以本程序源文件为例读取),一次读取其内的一行文本,令每行形成一个String,并将读出的String对象置于LinkedList中,以相反次序显示出LinkerList内的所有内容。
importjava.io.*;//调用输入输出类
importjava.util.*;//调用数据类型类
publicclassTEXT2{
publicstaticvoidmain(String[]args)throwsIOException{
BufferedReaderbr=newBufferedReader(newFileReader(""+
"C:
\\DocumentandSettings\\k10\\workspace\\A\\src\\TEXT2.java"));//读取文件路径
List
Stringline=null;//定义line为空
while((line=br.readLine())!
=null){//条件语句
l.add(line);//将line添加到链表中
}
Collections.reverse(l);//逆序排列
Iterator
while(it.hasNext())//如果文本中有下一行就输出
{
System.out.println(it.next());
}
}
}
5.3运行结果
图四.“输出、输入流”界面
6Windows计算器
6.1功能模块设计
以下为计算器的基本功能:
(1)加法
两个数据进行加操作,可以为小数。
(2)减法
两个数据进行减操作,可以为负数相减。
(3)乘法
两个数相乘操作。
(4)除法
两个数相除操作。
6.2程序源代码
Windows操作系统自带的计算器是个很方便的小工具,利用Java的GUI编程,实现一个JavaGUI计算器应用程序界面,窗口标题为“计算器”,窗口布局如下图所示,在此计算器应用程序中实现“+、-、*、/”运算操作。
importjava.awt.*;//调用抽象窗口工具中的类
importjava.awt.event.*;//调用事件类和处理事件的接口
importjavax.swing.*;//windows桌面应用程序包括的控件
publicclasseg1{
publicstaticvoidmain(String[]args){
newCaculator();
}
}
classCaculatorimplementsActionListener{//创建一个类Caculator,并声明事件接口
JFramej;//声明窗口j
JButtonb[];//声明是用数组的方式创建按钮
JButtoncls;//声明按钮cls
JTextFieldtxt;//声明文本框txt
JPanelp1,p2,p3;//声明3个面板
Strings="987+654-321*0.=/";//定义字符串
Stringflag=null;//定义flag为空
doublenum1=0,num2,result=0;//定义3个变量
publicCaculator(){
j=newJFrame("科学计算器V1.0");//创建j窗口并命名为:
科学计算器V1.0
txt=newJTextField(20);//创建txt文本框
cls=newJButton("清零");//创建cls按钮并命名为:
清除
b=newJButton[16];//创建b按钮
p1=newJPanel();//创建p1面板
p1.add(txt);//把txt添加到p1面板中
p2=newJPanel();//创建p2面板
p2.setLayout(newGridLayout(4,4));//设置布局为网格布局
p3=newJPanel();//创建p3面板
p3.add(cls);//把cls添加到p3面板中
for(inti=0;i b[i]=newJButton(""+s.charAt(i)); p2.add(b[i]);//创建按钮并添加到面板2中 b[i].addActionListener(this);//将窗口作为b[i]的监视器 } txt.setEditable(false);//窗口大小不可变*/ cls.addActionListener(this);//将窗口作为cls的监视器 j.add(p1,BorderLayout.NORTH);//将p1添加到窗口的北面 j.add(p2,BorderLayout.CENTER);//将p2添加到窗口的中心 j.add(p3,BorderLayout.SOUTH);//将p3添加到窗口的南面 j.setVisible(true);//窗口可见 j.pack();//根据窗口中的布局确定大小 j.setLocationRelativeTo(null);//使窗口显示到屏幕中央 } publicvoidactionPerformed(ActionEvente){//重写方法 Stringch=((JButton)e.getSource()).getText();//获取按钮上文本 if("9876543210".contains(ch)){//获取的文本与字符串比较 txt.setText(txt.getText()+ch);//在文本框中输出获取到的文本 } elseif("+-*/".contains(ch)){//获取的文本与字符串比较 flag=ch;//将获取到的文本赋值给flag num1=newDouble(txt.getText());//将文本框中的内容赋值给num1 txt.setText("");//文本框清空 } elseif(ch.equals(".")&&! txt.getText().contains(".")){//判断是否有小数点 txt.setText(txt.getText()+ch);//显示小数 } elseif(ch.equals("=")){//是否按等号 num2=newInteger(txt.getText());//将文本赋值给num2 if(flag.equals("+")) result=num1+num2;//进行加法运算 if(flag.equals("-")) result=num1-num2;//进行减法运算 if(flag.equals("*")) result=num1*num2;//进行乘法运算 if(flag.equals("/")) result=num1/num2;//进行除法运算 txt.setText(String.valueOf(result));//将结果转化为整型输出 } else txt.setText("");//清空 } } 6.3运行结果 1、输入第一个加数4时,运行结果如图五所示。 图五.“输入加数4”界面 2、输入第二个加数5时,运行结果如图六所示。 图六.“输入加数5”界面 3、输出结果,运行结果如图七所示。 图七.“输出结果”界面 4、清零,运行结果如图八所示。 图八.“清零”界面 7链表实例 7.1功能模块设计 以下为此程序的基本功能: (1)对输入n个数进行循环报数并输出最后一个数 (2)运行测试程序,调试纠正运行错误。 (3)调试无误,运行,测试具体编辑功能。 7.2程序源代码 有500个小朋友拉成一个圆圈,从其中一个小朋友开始依次编号1-500,从1号小朋友开始循环1-3报数,数到3的小朋友就退出。 编写一个Java应用程序,计算出最后一个小朋友的号码是多少? importjava.util.*;//调用数据类型类 publicclassccc{ publicstaticvoidmain(String[]args){ System.out.println("剩下的人在原来的位置是: "+cycle(500,3));//输出并调用cycle } publicstaticObjectcycle(inttotal,intk){ LinkedListdataList=newLinkedList();//创建一个新链表 for(inti=0;i dataList.add(i+1);}//在链表中插入元素 intindex=0;//赋初值 while(dataList.size()>1){ index=(index+k-1)%dataList.size();//利用循环链表找出符合条件的数 dataList.remove(index);//删除不符合条件的数 } returndataList.get(0);//返回链表最后一个元素 } } 7.3运行结果 1、运行结果如图九所示 图九.“结果”界面 总结 此次课程设计,我们用类对象的创建及函数使用方法、自定义类的方法、图形用户界面设计、输入输出流类的应用把4个应用程序的功能得以实现,虽然制作的4个应用程序在功能上基本能够满足要求,但是也有很多不足的地方,一元二次方程文本式子未显示。 通过对程序的不断调试与完善,所有功能均可实现,所设计已基本达到了设计要求,实现了主要的计算功能,实现了对文本的倒序输出以及输出最后一个元素等功能,基本达到了预期设想。 参考文献 [1]耿祥义,张跃平.Java2实用教程(第三版),清华大学出版社,2011.7 [2]朱喜福,徐剑魁.Java程序设计(第2版),清华大学出版社,2010.5 [3]洪维恩,何嘉.java2面向对象程序设计,中国铁道出版社,2005.1 [4]孙印杰,刘斌,孙玉强.Java编程案例精解,电子工业出版社,2005.1 后记 Java程序设计是一门博大精深的课程,我们只上了一学期的Java课,尽管时间有限,但是Java中的知识是值得我们花费更多的时间去学习的。 通过这次的课程设计,让我真正明白了实践在理工科学习中的重要性。 也许只是一个初级基础的小程序,但也运用到了很多知识点。 在Java中,整体思想也很重要,每个部分怎么安排,都需要我们去仔细思考后用最简洁明了的方式把他们表现出来。 随着计算机的发展和网络技术的应用,当今社会正快速向信息化社会前进,信息自动化的作用越来越大,而在日常生活中信息技术的不断融入,在技术越来越先进的同时,应该从以前繁琐的事物中解放出来,对于应用程序来说,方便了我们的生活。 使用计算机可以告诉,快捷的完成工作。 在此我们非常感谢王爱民、方霞老师的帮助和我们组的成员的共同努力。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四 ITAT 大赛 四个 应用 程序
![提示](https://static.bingdoc.com/images/bang_tan.gif)