Java课程设计选题模板教学教材
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java课程设计选题
Java课程设计说明
本次课程设计的目的是通过课程设计的各个项目的综合训练,培养学生实际分析问题、编程和动手能力,提高学生的综合素质。本课程设计尝试使用一些较生动的设计项目,激发学生的学习兴趣,引导学生主动学习,正确理解和接受需要重点掌握的知识点。
【课程设计步骤】
1、分析项目要求
每个课程设计项目都有其相关的设计要求,其中对项目实现的功能做了详细定义。如果某些知识面掌握的不是很好,可以再返回去重新熟悉与掌握。
2、自学新知识
每个课程设计项目都涉及一些新的知识面(老师没有在课堂上讲解的内容),在开始设计前,首先要查阅相关资料,学习和掌握项目中涉及的新知识,提高自学能力。
3、界面设计
本次课程设计都是图形界面程序,所以在实现程序功能前,可以先完成图形界面设计(建议采用swing组件或第三方swt组件)。在部分项目运行效果示例中,抓取了运行结果界面。项目图形界面所涉及了容器、组件、布局知识,在设计图形界面前,可以再回顾下以上知识(建议采用较智能的开发工具如:eclipse、Jbuilder等)。
4、项目功能实现
每种功能其实就是相应控件的响应事件,所以要根据课程设计要求把各种功能转换成相应组件的响应事件。如动作事件(ActionEvent)、键盘事件(KeyEvent)、鼠标事件(MouseEvent)、焦点事件(FocusEvent)。对于比较复杂的功能,先要设计该功能实现的算法和程序流程图,然后再用程序语句去实现。
5、项目测试与扩展
项目程序设计完以后,运行该项目,一一测试所有项目功能,如有不合要求的话,重新修改程序以达到项目要求。如有时间的话,可以在项目要求的基础上扩展创新一些功能,根据其创新情况可以给予适当的加分。
【课程设计要求】
1) 选题要求:
本次课程设计所提供的课程题目,每2-3人一组选择一个题目,不能超过3人,每组成员自由组合。
选题分三种类型:普通题、提高题和挑战题,每种题型的起步分分别为:中、良和优,如在该题型中选题完成良好的可以相应提高分数等级。
2) 界面要求:
尽量使用swing包实现图形界面,要符合日常软件使用规范来设计菜单和界面。
如果无法实现图形界面,则在命令行方式下也需要提供菜单,方便用户操作。
3) 代码要求:
标识符命名遵循java命名规范。
能够考虑各种异常处理,注重提高程序运行效率。
4) 提交内容:
全部源代码。(以班为单位做一张光盘,学习委员完成)
课程设计报告(每组一份)
注:课程设计报告严格按照给的《java课程设计报告书模版》要求撰写,课设报告要求15~20页(包含代码)。
普通题
题目计算器
设计内容设计一个图形界面(GUI)的计算器应用程序,完成简单的算术运算、
设计要求设计的计算器应用程序可以完成家法、减法、乘法、除法和取余运算。且有小数点、正负号、求倒数、退格和清零功能。
学习要点本程序主要练习使用布局管理器设计一个计算器的界面,并练习使用事件监听器处理数据的输入,并完成相关的计算。
设计思路本应用程序继承自框架类(Frame),此程序使用Frame布局管理器BorderLayout,将单行文本框加入到“North”区域,包含各种按钮的面板Panel p加入到”Center”区域。包含各种按钮的面板Panel p 采用4行5列的网格布局,然后将数字按钮和运算符按钮以及控制按钮添加到面板中。同时注册按钮事件监听器。如:
Button b=new Button();
b.addActionListener(事件监听器);
事件监听器中的事件处理方法void actionPerformed(ActionEvent evt)完成主要的按钮事件的处理。事件处理分以下几种情况:数字按钮事件(”0”,”1”,”2”…”8”,”9”)、运算符按钮事件(”+”,”-“,”*”,”/”,”%”)、正负号按钮事件(”+/-“)、小数点按钮事件(”.”)、等号按钮事件(”=”)、求倒按钮事件(”1/x”)、退格按钮事件(”退格”)、清楚按钮事件(“C”)。在事件处理。
触发按钮事件时,要进一步分析,是重新开始计算时触发的按钮事件还是计算中间触发的按钮事件。
计算器完成的是一个数学表达式,如:3+2,所以可以采用一个链表(LinkedList类)来存储数字或字符,如3,+,2分别存储在链表中,最后运算时,可以一一取出来进行运算。
本应用程序中的数字按钮和运算符按钮可以分别定义以下两个类的对象组件
数字按钮NumberButton类如下:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class NumberButton extends Button
{
int number;
public NumberButton(int number)
{
super(""+number);
this.number=number;
setForeground(Color.blue);
}
public int getNumber()
{
return number;
}
}
运算符按钮OperationButton类如下
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class OperationButton extends Button
{
String 运算符号;
public OperationButton(String s)
{
super(s);
运算符号=s;
setForeground(Color.red);
}
public String get运算符号()
{
return 运算符号;
}
}
相关学习资料
LinkedList类:
LinkedList类在Java标准类库的java.util包定义,它提供域数组类似的服务,包括可以插入或删除元素。与数组不同的是,LinkList对象可以根据需要,动态地改变大小。LinkList对象中存储的是对Object类的一系列引用,对任何类型对象的引用都可以被添加倒LinkList 对象中。LinkedList类中有以下方法
public LinkedList() //构造方法
public Object getFirst() //返回链表中的第一个元素