自辽宁石油化工大学软件1031Java实训题目.docx
《自辽宁石油化工大学软件1031Java实训题目.docx》由会员分享,可在线阅读,更多相关《自辽宁石油化工大学软件1031Java实训题目.docx(13页珍藏版)》请在冰豆网上搜索。
自辽宁石油化工大学软件1031Java实训题目
Java课程设计题目
1、编写一个记事本程序ﻫ要求:
用图形用户界面实现。
ﻫ能实现编辑、保存、另存为、查找替换等功能。
ﻫ提示:
使用文件输入输出流。
2、模拟龟兔赛跑ﻫ要求:
ﻫ用图形用户界面实现。
能设置比赛时间,马匹的数量等等。
在任意时间段内马匹的速度是随机的。
ﻫ开始比赛之后以动画显示赛马过程。
提示:
使用多线程
3、学生信息管理系统
要求:
ﻫ使用图形用户界面ﻫ用数据库建立1或2个学生信息表。
(不限使用哪种数据库)ﻫ能连接数据库并实现查询、增、删、改等功能。
4、图书信息管理系统
要求:
ﻫ使用图形用户界面ﻫ用数据库建立1或2个图书信息表。
(不限使用哪种数据库)
能连接数据库并实现查询、增、删、改等功能。
5、聊天小程序
要求:
ﻫ使用图形用户界面。
能实现一个聊天室中多人聊天。
可以两人私聊。
提示:
使用socket通信
6、ATM柜员机模拟程序ﻫ要求:
使用图形用户界面。
当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:
1、查询余额:
初始余额为10000元
2、ATM取款:
每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。
ﻫ3、ATM存款:
不能出现负存款。
4、修改密码:
新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。
7、超市收银系统
要求:
使用图形用户界面。
由收银员输入顾客的会员卡卡号(若有卡)、所购商品的货号等。
从数据库中取出有关价格信息,再把这些信息返回给收银台。
同时把该收银台的销售总量和有关种类商品的剩余量以及该持卡顾客的消费情况交数据库存储以供查询。
另外,对没有卡的消费情况不记录该顾客的消费情况等个人信息。
如果一个未持卡顾客一次购物满200元,可为其发放一张会员卡,以后在该商场购物可向9折优惠。
8、万年历
要求:
ﻫ使用图形用户界面。
实现日期与星期的查询
9、网络监听程序
要求:
使用图形用户界面。
ﻫ有服务器和客户端,服务器监听客户端的登陆。
即:
如果A客户端登陆服务器,则服务器界面上的A字母对应的红灯变成绿色。
ﻫ绿灯表示连接,红灯表示断线。
ﻫ提示:
socket的监听方法
10、全球通计费程序
要求:
ﻫ使用图形用户界面。
ﻫ使用真实的全球通资费标准,模拟统计一个特定号码的一个月的实时话费。
能根据输入实现各种用户的话费的计算并显示月实时帐单。
ﻫ提示:
使用接口和多个子类实现分别表示金卡、银卡等各种套餐的话费计算。
11.日历记事本
要求:
带有日程提醒功能的日历。
1、显示信息:
用户可以向前翻页查询前一个月的日期,也可以向后翻页查询下一个月的日期。
ﻫ2、定时提醒:
用户可以针对某一天来添加,删除和编辑这一天的日程提醒信息,当系统时间和提醒时间相吻合时,给出具有提示信息的对话框。
3、查询信息:
用户可以查询到某个月的所有的提示信息。
12.电子英汉词典
要求:
ﻫ能够编辑词典库中的信息
能够实现英译汉,汉译英。
(要考虑一词多义)
13.加密与解密
要求:
采用图形用户界面ﻫ1、给定任意一个文本文件,进行加密,生成另一个文件。
ﻫ2、对加密后的文件还原。
14.小游戏
要求:
。
ﻫ程序随机产生20—50根火柴,由人与计算机轮流拿,每次拿的数量不超过3根,拿到最后一根为胜。
(使用图形界面)
15.敏感词汇分析ﻫ要求:
ﻫ任意选择一个文本文件,分析该文件,如果存在敏感词汇(这些词汇保存在sentive.txt文件中,每个词占一行),报告每个词出现的次数。
import javax.swing.*;ﻫimportjavax.swing.table.*;ﻫimportjavax.swing.event.*;
importjavax.swing.border.*;ﻫimportjava.awt.*;
importjava.awt.event.*;
importjava.sql.*;
importjava.util.Vector;
publicclass TelephoneNumﻫ{
public staticvoidmain(String[]args)ﻫ {
TelephoneNumFrameframe= new TelephoneNumFrame();//主界面ﻫ frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置用户在此窗体上发起"close" 时默认执行的操作ﻫ }
}
class TelephoneNumFrameextendsJFrame implementsTableModelListener,ActionListenerﻫ{
JMenuBarmenubar;
JMenusetmenu,caozuo;
JMenuItemname,data,addrecord,delrecord,selrecord,updrecord;
ﻫJButtonadd;
JButtonselect;
JLabelnamelabel;
JLabeldanweilabel;
JLabelzhiwulabel;ﻫJLabelphonelabel;
JTextFieldphonename;ﻫJTextFieldphonenum;ﻫJTextFieldphonedanwei;ﻫJTextField phonezhiwu;
JPanel panel;
ﻫJScrollPanephonescrollpane;//滚动条
JTablephonetable; ﻫ DefaultTableModel defaultModel; //表模型
TableColumncolumn;
ﻫ Stringhead[]= {"序号","姓名","号码","单位","职务"};
Object phoneInfo[][]={};ﻫ ﻫTelephoneNumFrame()ﻫ{
setLayout(new BorderLayout());//设置布局
menubar=new JMenuBar();//菜单条
this.setJMenuBar(menubar);ﻫ setmenu = new JMenu("设置");//菜单 ﻫ menubar.add(setmenu);ﻫ caozuo =newJMenu("操作");
menubar.add(caozuo);ﻫ name= newJMenuItem("按姓名排序");//菜单项
setmenu.add(name);ﻫ name.addActionListener(this);
data =newJMenuItem("按序号排序");ﻫ setmenu.add(data);ﻫ data.addActionListener(this);
ﻫ addrecord= newJMenuItem("添加记录");
caozuo.add(addrecord);ﻫ addrecord.addActionListener(this);ﻫ delrecord =new JMenuItem("删除记录");ﻫ caozuo.add(delrecord);
delrecord.addActionListener(this);ﻫ selrecord=newJMenuItem("修改记录");
caozuo.add(selrecord);ﻫ selrecord.addActionListener(this);
updrecord=newJMenuItem("查找记录");
caozuo.add(updrecord);
updrecord.addActionListener(this);
namelabel=new JLabel("姓名");ﻫ phonename=newJTextField(16);
phonelabel =new JLabel("电话号码");ﻫ phonenum =new JTextField(16);
danweilabel= new JLabel("单位");
phonedanwei= newJTextField(16);ﻫ zhiwulabel=newJLabel("职务");ﻫ phonezhiwu=newJTextField(16);
ﻫ add=newJButton("添加记录");ﻫ add.addActionListener(this);
select =newJButton("查找记录");ﻫ select.addActionListener(this);
ﻫ
panel= newJPanel();
panel.setLayout(newGridLayout(1,4)); // 行数2、列数3!
!
!
!
!
!
!
!
!
!
!
ﻫ add(panel,BorderLayout.NORTH);//添加面板
ﻫ panel.add(namelabel);ﻫ panel.add(phonename);ﻫ panel.add(phonelabel);ﻫ panel.add(phonenum);ﻫ panel.add(danweilabel);ﻫ panel.add(phonedanwei);
panel.add(zhiwulabel);ﻫ panel.add(phonezhiwu);
ﻫ panel.add(add);
panel.add(select);
ﻫ defaultModel=newDefaultTableModel(phoneInfo,head);//设置表的模型DefaultTableModel是指默认的表控制模型 它可以来控制 JTBALE//用JTABLE的GETTABLEMODEL来得到一个表控制模型来控制JTBALEﻫ defaultModel.addTableModelListener(this);ﻫ phonetable=newJTable(defaultModel);//以该模型为基础建表ﻫ phonetable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);//将表设置成不自动调整列的宽度;使用滚动条。
ﻫ phonescrollpane =newJScrollPane(phonetable);//加面板上ﻫ add(phonescrollpane,BorderLayout.CENTER);//添加面板
column=phonetable.getColumnModel().getColumn(0);
column.setPreferredWidth(100);ﻫ column=phonetable.getColumnModel().getColumn
(1);ﻫ column.setPreferredWidth(100);
column=phonetable.getColumnModel().getColumn
(2);
column.setPreferredWidth(150);
column=phonetable.getColumnModel().getColumn(3);
column.setPreferredWidth(150);
column=phonetable.getColumnModel().getColumn(4);
column.setPreferredWidth(150);ﻫ
this.pack(); //调整此窗口的大小,以适合其子组件的首选大小和布局
this.setSize(661,461); //设置此frame的状态
this.setVisible(true); //设置此frame显示ﻫ this.setResizable(false); //设置此frame显示ﻫ
getAllRecord();
}
public voidtableChanged(TableModelEvente)//更改表格值事件ﻫ{
phonetable.repaint();ﻫ}
ﻫpublicvoidactionPerformed(ActionEvent ae)
{
if("按姓名排序"== ae.getActionCommand())
{
removeAllRecord();
getAllRecord();ﻫ
intcount =defaultModel.getRowCount();
for(inti=0;i for(intj= i+1;j <count;j++)
{
String min=null;ﻫ Stringmax=null;ﻫ min=String.valueOf(defaultModel.getValueAt(i,1));ﻫ max=String.valueOf(defaultModel.getValueAt(j,1));ﻫ if(mpareTo(max)> 0)ﻫ {ﻫ rowchange(i,j);ﻫ }ﻫ else
{ﻫ ;ﻫ }
}ﻫ }ﻫ elseif("按序号排序"==ae.getActionCommand())ﻫ { ﻫ removeAllRecord();
getAllRecord();ﻫ
int count=defaultModel.getRowCount();
for(int i= 0; i for(intj=i+1; j< count;j++)
{
int min= 0;
intmax= 0;ﻫ min=Integer.valueOf(String.valueOf(defaultModel.getValueAt(i, 0)));
max=Integer.valueOf(String.valueOf(defaultModel.getValueAt(i, 0)));ﻫ if(min>max)ﻫ {ﻫ rowchange(i,j);
}
elseﻫ {ﻫ ;ﻫ }
}
}ﻫ elseif("添加记录"==ae.getActionCommand())ﻫ { ﻫ Stringgetaddname =phonename.getText();
Stringgetaddnum=phonenum.getText();
Stringgetadddanwei=phonedanwei.getText();
Stringgetaddzhiwu=phonezhiwu.getText();
if(getaddname.length()== 0||getaddnum.length() ==0)
JOptionPane.showMessageDialog(this,"请输入姓名和电话号码","Warning", JOptionPane.INFORMATION_MESSAGE);ﻫ else
{
ResultSetrs;
Connectioncon;ﻫ Statementsql;
ﻫ try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e)ﻫ {ﻫ JOptionPane.showMessageDialog(this,"ClassNotFoundException","Warning",JOptionPane.INFORMATION_MESSAGE);
}
try
{
con=DriverManager.getConnection("jdbc:
odbc:
phone", "","");ﻫ sql=con.createStatement();ﻫ
//sql.executeUpdate("INSERTINTO号码记录(姓名, 号码)VALUES('"+getaddname +"','" +getaddnum+"')");
sql.executeUpdate("INSERTINTO号码记录(姓名,号码,单位,职务)VALUES('"+getaddname+"','"+ getaddnum+"','"+ getadddanwei+ "','"+getaddzhiwu+"')");
rs=sql.executeQuery("SELECT *FROM号码记录WHERE姓名='"+getaddname +"'AND号码='"+ getaddnum +"'");
long getaddxuhao=0;ﻫ while(rs.next())
{ﻫ getaddxuhao =rs.getLong("序号");ﻫ }ﻫ defaultModel.addRow(new Vector());//在表格中添加一行并填写值
defaultModel.setValueAt( getaddxuhao,defaultModel.getRowCount() -1,0);ﻫ defaultModel.setValueAt(getaddname, defaultModel.getRowCount() - 1,1);
defaultModel.setValueAt(getaddnum,defaultModel.getRowCount()- 1, 2);ﻫ defaultModel.setValueAt(getadddanwei,defaultModel.getRowCount()- 1,3);
defaultModel.setValueAt(getaddzhiwu,defaultModel.getRowCount() -1,4);
ﻫ con.close();ﻫ }ﻫ catch(SQLException e)ﻫ {
JOptionPane.showMessageDialog(this,"SQLException", "Warning",JOptionPane.INFORMATION_MESSAGE);
}
catch(Exception e)
{
JOptionPane.showMessageDialog(this, "Exception","Warning",JOptionPane.INFORMATION_MESSAGE);
} ﻫ }ﻫ phonename.setText("");
phonenum.setText("");
phonedanwei.setText("");ﻫ phonezhiwu.setText("");
}
elseif("查找记录"==ae.getActionCommand())
{
String getaddname=phonename.getText();ﻫ ﻫ if(getaddname.length()==0)ﻫ JOptionPane.showMessageDialog(this,"请输入姓名","Warning",JOptionPane.INFORMATION_MESSAGE);ﻫ elseﻫ {
ResultSetrs;ﻫ Connection con;ﻫ Statement sql;
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}ﻫ catch(ClassNotFoundException e)
{
JOptionPane.showMessageDialog(this,"ClassNotFoundException", "Warning",JOptionPane.INFORMATION_MESSAGE);
}
removeAllRecord();ﻫ try
{
con=DriverManager.getConnection("jdbc:
odbc:
phone","","");
sql=con.createStatement();
ﻫ rs=sql.executeQuery("SELECT *FROM号码记录");
while (rs.next())ﻫ