Java课设选题全集_第1页
Java课设选题全集_第2页
Java课设选题全集_第3页
Java课设选题全集_第4页
Java课设选题全集_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Java课程设计选题全集如下为题目: 【课程设计步骤】1、分析项目要求 每个课程设计项目都有其相关的设计要求,其中对项目实现的功能做了详细定义。如果某些知识面掌握的不是很好,可以再返回去重新熟悉与掌握。2、自学新知识每个课程设计项目都涉及一些新的知识面(老师没有在课堂上讲解的内容),在开始设计前,首先要查阅相关资料,学习和掌握项目中涉及的新知识,提高自学能力。3、界面设计本次课程设计都是图形界面程序,所以在实现程序功能前,可以先完成图形界面设计(建议采用swing组件或第三方swt组件)。在部分项目运行效果示例中,抓取了运行结果界面。项目图形界面所涉及了容器、组件、布局知识,在设计图形界面前,

2、可以再回顾下以上知识(建议采用较智能的开发工具如:eclipse、Jbuilder等)。4、项目功能实现每种功能其实就是相应控件的响应事件,所以要根据课程设计要求把各种功能转换成相应组件的响应事件。如动作事件(ActionEvent)、键盘事件(KeyEvent)、鼠标事件(MouseEvent)、焦点事件(FocusEvent)。对于比较复杂的功能,先要设计该功能实现的算法和程序流程图,然后再用程序语句去实现。5、项目测试与扩展项目程序设计完以后,运行该项目,一一测试所有项目功能,如有不合要求的话,重新修改程序以达到项目要求。如有时间的话,可以在项目要求的基础上扩展创新一些功能,根据其创新情

3、况可以给予适当的加分。以下为本次课程设计所提供的课设题目,每人选择一个题目。普通题题目1 计算器设计内容 设计一个图形界面(GUI)的计算器应用程序,完成简单的算术运算、设计要求 设计的计算器应用程序可以完成家法、减法、乘法、除法和取余运算。且有小数点、正负号、求倒数、退格和清零功能。学习要点 本程序主要练习使用布局管理器设计一个计算器的界面,并练习使用事件监听器处理数据的输入,并完成相关的计算。设计思路 本应用程序继承自框架类(Frame),此程序使用Frame布局管理器BorderLayout,将单行文本框加入到“North”区域,包含各种按钮的面板Panel p加入到”Center”区域

4、。 包含各种按钮的面板Panel p 采用4行5列的网格布局,然后将数字按钮和运算符按钮以及控制按钮添加到面板中。同时注册按钮事件监听器。如:Button b=new Button();b.addActionListener(事件监听器);事件监听器中的事件处理方法void actionPerformed(ActionEvent evt)完成主要的按钮事件的处理。事件处理分以下几种情况:数字按钮事件(”0”,”1”,”2”8”,”9”)、运算符按钮事件(”+”,”“,”*”,”/”,”%”)、正负号按钮事件(”+/-“)、小数点按钮事件(”.”)、等号按钮事件(”)、求倒按钮事件(”1/x”)

5、、退格按钮事件(”退格”)、清楚按钮事件(“C”)。在事件处理。触发按钮事件时,要进一步分析,是重新开始计算时触发的按钮事件还是计算中间触发的按钮事件。计算器完成的是一个数学表达式,如:32,所以可以采用一个链表(LinkedList类)来存储数字或字符,如3,2分别存储在链表中,最后运算时,可以一一取出来进行运算。本应用程序中的数字按钮和运算符按钮可以分别定义以下两个类的对象组件数字按钮NumberButton类如下:import java.awt.*;import java.awt.event.*;import javax.swing.*;public class NumberButton

6、 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 运算

7、符号; public OperationButton(String s) super(s); 运算符号=s; setForeground(Color.red); public String get运算符号() return 运算符号; 相关学习资料LinkedList类:LinkedList类在Java标准类库的java.util包定义,它提供域数组类似的服务,包括可以插入或删除元素。与数组不同的是,LinkList对象可以根据需要,动态地改变大小。LinkList对象中存储的是对Object类的一系列引用,对任何类型对象的引用都可以被添加倒LinkList对象中。LinkedList类中有以

8、下方法 public LinkedList() /构造方法 public Object getFirst() /返回链表中的第一个元素 public Object getLast() /返回链表中的最后一个元素 public Object removeFirst() 删除并返回第一个链表元素 public Object removeLast() 删除并返回最后一个链表元素 public void addFirst(Object o) /插入一个元素在为链表的第一个元素 public void addLast(Object o) /插入一个元素为链表的最后一个元素 public boolean

9、contains(Object o) /是否存在该元素 public int size() /返回链表元素个数 public boolean add(Object o) /添加元素o public boolean remove(Object o)/删除元素o public boolean addAll(Collection c) /添加一个对象集 c public void clear() /清除列表中的所有元素 public Object get(int index) /返回指定位置(index)的链表元素 public Object set(int index, Object elemen

10、t)/设定指定位置(index)的链表元素为元素element public void add(int index, Object element) /在链表特定位置(index)上插入链表元素public Object remove(int index)/删除指定位置(index)上的链表元素下面举例应用LinkedList类import java.awt.*;import java.awt.event.*;import java.util.LinkedList;public class UseLinkedList extends Frame Public static void main(

11、String args) String opertation1=“+”,”-“,”*”,”/”,”%”;String ipe0,ope1,ope2,ope3,ope4;Int n;LinkedList list1;For(int I=0;Iopertation.length;I+)list1.add(opertationi);ope0=(String)list1.getFirst();ope1=(String)list1.get(1);ope4=(String)list1.getLast();list1.set(2,”&”);ope2=(String)list1.get(2);list1.re

12、move(“/”);list1.removeLast();n=list1.size();System.out.println(“链表中一共有”n”元素”);System.out.println(“ope0ope4分别为”ope0+ope1+ope2+ope3+ope4);运算结果为:3+ &运行效果示例: 题目2:简单投票管理系统(小应用程序Applet)设计要求设计一个如图1所示的投票管理系统界面,要求输入候选人名单后,点击确认按钮实现使用选择框代表候选人,计选择框的名字就是候选人的名字。点击取消按钮候选人输入框为空,重新输入候选人名单。选中候选人的选择框时,表示给该候选人投一票。点击确定按

13、钮时表示产生一张选票。点击刷新按钮回到程序的初始界面重新设置候选人。根据选择框的状态变化统计出候选人的最后得票数,并可按票选取多少点击排序按钮对候选人进行排序。(其中,最多从候选人中选取3人,如果一张选票选取多于3人,该票就作废票处理。如果一个也没投票,就作弃权处理。程序能显示一共统计了多少选票,并能统计出废票和弃权票的票数。学习要点本程序主要学习窗口的布局以及按钮事件的触发。设计思路定义几个类变量来记录投票相关记录如:Checkbox checkbox /选择框数组,代表候选人TextField personVote /文本条数组,显示每个人的得票情况int count /记录每个人的得票数

14、int totalVote=0, /总票数int peopleNumber=0; /候选人个数int 有效人数=3,废票数=0,弃权票数=0; 在输入候选人名单时是输入一串名字,所以要从这一串名字中单个的提取出来并统计出候选人个数,在完成这项功能时要用到StringTokenizer类。点击确认按钮后,根据候选人个数添加单选按钮,并以候选人名字作为单选按钮的标签名。然后通过确定按钮事件分别给以上定义的各变量赋值。把结果显示出来,同时可以根据peopleNumber的值对各候选人文本框排序,即调整候选人文本框中的内容。 相关学习资料StringTokenizer类有时我们需要分析字符串并将字符串

15、分解成可被独立使用的单词,这些单词叫做语言符号。例如,对于字符串We are Students,如果我们把空格作为该字符串的分隔符,那么该字符串有3个单词(语言符号)。而对于字符串WE,are,Student,如果我们把逗号作为了该字符串的分隔符,那么该字符串有3个单词(语音符号)。 当我们分析一个字符串并将字符串分解成可别独立使用的单词时,可以使用java.util包中的StringTokenizer类,改类有两个常用的构造方法:StringTokenizer(String s)为字符串s构造一个分析器。使用默认的分隔符集合,即空格符(若干个空格被看作一个空格)、换行符、回车符、Tab符、进

16、纸符。StringTokenizer(String sString delim)为字符串s构造一个分析器。参数delim中的字符被作为分隔符。例如:StringTokenlizer fenxi=new StringTokenizer(“We are student”);StringTokenlizer fenxi=new StringTokenizer(“We,are;student”,”,”); 我们把一个StringTokenzier对象作一个字符串分析器。一个分析器可以使用nextToken()方法逐个获取字符串中的语言符号(单词),每当调用nextToken()时,都将在字符串中活得下

17、一个语言符号。通常用while循环来逐个获取语言符号,为了控制循环,我们可以使用StringTokenizer类中的hasMoreTokens()方法,只要字符串中还有语言符号,该方法就返回true,否则返回false。另外我们还可以调用countTokens()方法得到字符串一共有多少个语言符号。运行效果示例图1题目3:华容道一个传统的智利游戏设计要求 编写一个按钮的子类,使用该子类创建的对象代表华容道中的人物。通过焦点事件控制人物颜色,当人物获得焦点时颜色为蓝色,当失去焦点时颜色为灰色。通过键盘事件和鼠标事件来实现曹操、关羽等人物的移动。当人物上发生鼠标事件或键盘事件时,如果鼠标指针的位置

18、是在人物的下方(也就是组件的下半部分)或按下键盘的“键,该人物向下移动。向左、向右和向上的移动原理类似。学习要点 本程序主要练习使用布局管理器设计一个华容道游戏界面,并练习使用事件监听器(鼠标事件、键盘事件和焦点事件)实现按钮的移动。设计思路 首先是界面设计,该界面主要包括十个人物按钮(马、曹操、关羽等)以及旁边的四个边框按钮和重新开始按钮。对于人物按钮,我们可以创建Button按钮的子类,在该类中定义按钮的一些新的属性和焦点事件监听器,如:按钮的标签名、按钮的颜色、按钮的排号(如这里有十个人物按钮,从1排到十,在程序中可以依靠这个属性区分人物按钮)、按钮颜色、按钮获得或失去焦点事件。同时在设

19、计该界面时要考虑到各个按钮的位置、大小等情况。在这给出了各按钮的位置和大小参数:(其中Person为继承Button按钮的人物按钮类)String name=曹操,关羽,张,刘,马,许,兵,兵,兵,兵;for(int i=0;iname.length;i+)personi=new Person(i,namei);personi.addKeyListener(this);personi.addMouseListener(this);/personi.addFocusListener(new Person)add(personi);person0.setBounds(104,54,100,100)

20、;person1.setBounds(104,154,100,50);person2.setBounds(54,154,50,100);person3.setBounds(204,154,50,100);person4.setBounds(54,54,50,100);person5.setBounds(204,54,50,100);person6.setBounds(54,254,50,50);person7.setBounds(204,254,50,50);person8.setBounds(104,204,50,50);person9.setBounds(154,204,50,50);四个

21、边框按钮的位置和大小参数为:left.setBounds(49,49,5,260);right.setBounds(254,49,5,260);above.setBounds(49,49,210,5);below.setBounds(49,304,210,5);其次我们是对界面上的各人物按钮添加相应的相应事件(鼠标事件、键盘事件),通过这两种事件去完成界面上各人物按钮的移动。对重新开始按钮定义动作事件(ActionEvent)完成界面初始化功能(也就是各人物按钮重新归位)。相关学习资料该程序主要涉及到鼠标事件和键盘事件及焦点事件三个方面的新知识。1、 触发焦点事件组件可以触发焦点事件。组件可以

22、使用public void addFocusListener(FocusListener Listener)增加焦点事件监视器如:button1.addFocusListener(事件监听器)当组件具有焦点监视器后,如果组件从无输入焦点变成有输入焦点或从有输入焦点到无输入焦点都会触发FocusEvent事件。创建监视器的类必须要实现FocusListener接口,该接口有两个方法:public void focusGained(FocusEvent e) /获得焦点触发public void focusLost(FocusEvent e) /失去焦点触发当组件从无输入焦点变成有输入焦点并触发F

23、ocusEvent事件时,监视器调用类实现的接口方法focusGained(FocusEvent e);当组件从有输入焦点变成无输入焦点并触发FocusEvent事件时,监视器调用类实现方法focusLost(FocusEvent e)。 方法 public Boolean requestFocusInwindow()方法可以获得输入焦点:如Button1.requestFocusInwindow()2、 鼠标事件组件是可以触发鼠标事件的事件源。如:鼠标指针进入组件,退出、停留组件上方单击鼠标、拖动鼠标、按下、释放、移动。 鼠标事件的类型是MouseEvent,即组件触发鼠标时,MouseEv

24、ent类自动创建一个事件对象。Java分别使用MouseListener接口与MouseMotionListener接口来处理鼠标事件。MouseListener接口可以处理5种鼠标事件:单击、按下、释放、进入和退出。MouseMotionListener接口可以处理2种鼠标事件:拖动、移动。3、 键盘事件当按下、释放或敲击键盘上一个键时就发生了键盘事件,如:当一个组件处于激活状态时(获得焦点),敲击键盘上一个键就导致了这个组件发生了键盘事件。事件源使用addKeyListener方法获得监视器。KeyEvent为键盘事件的类型,KeyListener是事件监视器实现的接口,其中有三种相应事件

25、:按键、释放键、按下和释放的组合事件。Public void KeyPressed(KeyEvent e)Public void KeyTyped(KeyEvent e)Public void KeyReleased(KeyEvent e)用KeyEvent类的public int getKeycode()方法和public char getKeychar()判断哪个键被按下、敲击或释放。如:public void keyPressed(KeyEvent e)Person man=(Person)e.getSource();/返回事件源if(e.getKeyCode()=KeyEvent.VK

26、_DOWN) /判断是否按下了向下箭头goDown(man);if(e.getKeyCode()=KeyEvent.VK_UP) /判断是否按下了向下箭头goUp(man);if(e.getKeyCode()=KeyEvent.VK_LEFT) /判断是否按下了向下箭头goLeft(man);if(e.getKeyCode()=KeyEvent.VK_RIGHT) /判断是否按下了向下箭头goRight(man);运行效果示例题目4. 制作一个图形编辑系统设计要求:1、能用拖橡皮筋的手法绘制各类图形(直线、椭圆、矩形、文字) 2、支持画笔颜色、文字大小设置; 3、能将画面中的所有图形存储到文件

27、中; 4、能从文件读取图形进行增补; 5、采用对话框获取图形文件名。 6、思考如何利用鼠标选取图形,删除。题目5:在Applet画面中实现y=a*x2+b*x+c 函数曲线的绘制;设计要求: 1、通过Applet参数传递a,b,c值; 2、通过Applet参数控制曲线的粗细; 3、曲线的颜色通过颜色对话框选取(通过一个颜色按钮控制)。 4、绘制一个小人沿曲线轨迹运动,到终点由头重新开始。题目6:排序算法执行流程演示设计要求:1、 在Applet画面中演示某排序算法的执行流程,演示支持手动和自动两种方式,手动方式是用鼠标点击显示各步进展; 2、自动靠软件延时控制。延时值通过Applet参数或在界

28、面中通过文本框控件设置。题目7:迷宫路线绘制,从左上角进入设计要求:1、利用数组保存路径信息,通的点用1表示,不通的点用0表示;2、在applet中绘制整个数组,迷宫路径上的元素值为蓝色,其他元素值为黑色。3、在applet中标示出迷宫入口和出口,游戏中经过的路径用一个红色的圆圈标识。4、增强功能:有多个迷宫场景供用户选择,所有的迷宫场景信息保存在文件中,用户选定了迷宫场景后,系统从文件读数据到数组。题目8:实现一个简单的多用户五子棋的游戏程序,包括如下两个界面设计要求:1、五子棋游戏室界面:用户可以选择对弈桌及角色(执黑、执白、观看);2、游戏界面:有开始、退出、悔棋、判断胜负;发言及显示区

29、;用户列表区;棋盘绘制区;3、使用Socket来完成服务端和客户端的通信;4、使用多线程技术支持多用户操作;5、增强功能:支持用户注册、添加和删除好友、战绩显示、发送消息、接受消息、多人聊天等功能;使用数据库保存用户信息。题目9:设计一个万年历系统设计要求:1、编写一个Java Applet程序,实现万年历系统,如下图所示。主界面采用方位布局,北面是一个设置年月的控制面板,中间是日历绘制区;2、单击“月”/“月”按钮,可以显示当前月的上一月/下一月的日历;3、单击“年”/“年”按钮,可以显示上一年/下一年的当前月日历;4、可以在当前月选择一个日期,用蓝色矩形标识;5、单击“今日”按钮,则日历显

30、示今天对应的年月,并将今天的日期用蓝色矩形标识。题目10:文本编辑器设计要求:设计一个类似于Windows OS附件中的写字板:1、求定义组件:工具栏按钮;文本区;菜单;2、要求能关闭窗口;点击菜单、按钮,能在文本区进行文件输入输出、文字编辑。题目11:Applet设计一拼图游戏设计要求:1、将一个大的图像分成9个大小、尺寸相等的小图像,然后在这9个图像中随机选择8个小图像,放在9个小方格中,余留一个空格;2、游戏者要移动这8个小图像,将它们按原来在大图像中的位置排列,则游戏成功;3、键盘和鼠标都能移动小图像,并具有计时和累计小图像移动步数功能。题目12:编写矩阵类设计要求:封装矩阵的运算(加、减、乘、转置、.);1、从一个文件中读取两矩阵数据,矩阵的大小由读入的数据决定;2、每个运算用一个方法实现,分别提供静态方法和实例方法;3、定义异常,如果不能进行正确运算(如两矩阵大小不匹配),抛出异常;4、将原来矩阵的数据和各类计算结果写入到文件中存储。可以自选题,但必须要通过审核。提高题题目1:记忆测试系统设计内容: 记忆测试系统通过回忆法测试记忆,分为初级、中级、高级三个级别,并通过记忆榜存储每个级别的成绩。设计要求:1 单击“记忆测试”菜单可以选择初级/中级/高级,也可以查看初级记忆榜/中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论