java网络监听课程设计_JAVA课程设计

一、团队介绍

团队成员

任务分配

团队成员课程设计博客链接

组长

二、项目git地址

三、项目git提交记录截图

张弛:

43b120501f70a7a432a8e62a2ef23133.png

吴越:

daa3a84ce5aacd0add34268071800232.png

四、项目功能架构图与主要功能流程图

e84f5ace0be1a1a5a0382b79c577ab81.png

五、项目运行截图或屏幕录制

1.登陆系统

5b908fc5ee522a0add99e733bf152c1a.png

80cf9ffdaf20a6615f3f409d1bae5abb.png

2.增加学生信息

08564152c93aac610513007cb1aaf33e.png

88d975d657843a83b4035aa36f88b189.png

删除之后

7825516a98b00eab59d0a9fc484867a3.png

bd4f9387dce78b60e61feb2046ce8ae4.png

3.查看学生信息

输入学号

d60d1be31eaded218c06fb5d9916c89f.png

点击查看,显示该学生信息

cb3a872fe7422f464d77844891e850dc.png

换一个未添加学号,显示学号不存在

aa5f7ba4382448e08ddfbeddbfdc0819.png

4.修改学生信息

将宿舍号从503改为502

8350adab2e6e3b69741ea1df1c4042c9.png

修改完后

60a41345dc6233041b9bfc77cad83897.png

5.清空功能

要重新输入信息时,要一行行删除 太过麻烦。因此我们重新设计了一个“清空”按钮。以此来实现一键清空的功能

清空前

eb071b8b7a638ab5c78085b0c5e41157.png

清空后

e7d71c1cfa0ffd40e6b6dcc3dbb53ac0.png

6.显示所有学生信息

点击显示按钮,则会显示所有学生的信息。以“结束”作为标识符结束

385807731d8d9289ca9037b9a389704c.png

六、项目关键代码

1.增加学生信息部分代码

//

button1.addActionListener(new ActionListener() { // 监听增加, 使用内部类

public void actionPerformed(ActionEvent e) {

if (e.getSource() == button1) { //点击增加数据按钮

button3.setEnabled(false); //使button3这个按钮变灰不可点击了

String number1 = number.getText(); //从文本框获取用户键盘输入的字符串

if (number1.length() == 12) { //学号要是12位的字符

try {

ObjectInputStream input = new ObjectInputStream(new FileInputStream(file)); //读回对象

hash = (Hashtable) input.readObject(); //放到hash中去

input.close();

} catch (Exception e1) {

}

}

else {

JOptionPane.showMessageDialog(null, "请输入学生的学号"); //输入为空,就会提示此信息

}

if (number1.length() == 12) {

if (hash.containsKey(number1)) {

JOptionPane.showMessageDialog(null, "该生信息已存在,请到修改页面修改!");//该学生已经存在,提示此信息

} else {

String name1 = name.getText();

String dor1 = dor.getText();

String address1 = address.getText();

String sex1 = sex.getText();

String date1 = date.getText();

String pol1 = pol.getText();

String phone1 = phonenum.getText();

Student per = null;

per = new Student(number1, name1, dor1, address1, sex1, date1, pol1, phone1);

hash.put(number1, per); // 使用学号和学生来键值相对,添加

try {

ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream(file));//写出对象到对应文件中

output.writeObject(hash);

output.close();

JOptionPane.showMessageDialog(null, "添加成功!");

} catch (Exception e1) {}

}

}

}

}

});

2.删除学生信息

button2.addActionListener(new ActionListener() { // 监听删除按钮

public void actionPerformed(ActionEvent e) {

if (e.getSource() == button2) {

button3.setEnabled(false);

String number1 = number.getText();

if (number1.length() == 12) {

try {

ObjectInputStream input = new ObjectInputStream(new FileInputStream(file)); //每次都要读回对象

hash = (Hashtable) input.readObject();

input.close();

} catch (Exception e1) {

}

}

else {

JOptionPane.showMessageDialog(null, "请输入学生的学号");//提示信息

}

if (hash.containsKey(number1)) {

hash.remove(number1); //删除操作

ObjectOutputStream output = null; //初始输出置空

JOptionPane.showMessageDialog(null, "删除成功");

try {

output = new ObjectOutputStream(new FileOutputStream(file)); //写出对象到对应文件中

output.writeObject(hash); //将hash中的数据写出

output.close();

} catch (IOException ex) {

Logger.getLogger(Menu.class.getName()).log(Level.SEVERE, null, ex);

}

}

else {

JOptionPane.showMessageDialog(null, "学号不存在");

}

}

}

});

3.修改学生信息

button3.addActionListener(new ActionListener() { // 监听修改按钮

public void actionPerformed(ActionEvent e) {

if (e.getSource() == button3) {

button3.setEnabled(false);

String number1 = number.getText();

String name1 = name.getText();

String dor1 = dor.getText();

String address1 = address.getText();

String sex1 = sex.getText();

String date1 = date.getText();

String pol1 = pol.getText();

String phone1 = phonenum.getText();

Student per = new Student(number1, name1, dor1, address1, sex1, date1, pol1, phone1);

hash.put(number1, per);

JOptionPane.showMessageDialog(null, "修改成功");

try {

ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream(file));//写出对象到对应文件中

output.writeObject(hash);

output.close();

} catch (Exception e1) {

}

}

}

});

七、项目代码扫描结果及改正

八、尚待改进

1.登陆界面在输完密码之后无法直接用回车进入系统,上网查资料无果,只能单击“登录”按钮才能进入系统。

2.图形界面的背景图部分,想要给其加自定义背景图片,但是由于时间比较赶(有去尝试过),也未能完成改进。

3.想通过其他信息部分进行索引,查到该学生的具体资料,但由于时间不够,就只做了以学号为索引的方式

4.学号的排序方式有问题,因为使用的哈希表,所以无法进行排序

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第1章 记忆测试软件1.1. 设计内容1.2. 设计要求1.3. 总体设计1.4. 具体设计1.4.1. 运行效果与程序发布1.4.2. 主类Memory1.4.3. 方块 Block1.4.4. 记忆测试板MemoryTestPane1.4.5. 显示成绩 ShowRecord1.4.6. 记录成绩 Record1.4.7. 随机排列图标 RandomSetIcon1.4.8. 测试者 People1.5. 课程设计作业第2章 计算器2.1. 设计内容2.2. 设计要求2.3. 总体设计2.4. 具体设计2.4.1. 运行效果与程序发布2.4.2. 主类 ComputerPad2.4.3. 数值按钮NumberButton2.4.4. 运算符号按钮OperationButton2.5. 课程设计作业第3章 HANNOI-塔3.1. 设计内容3.2. 设计要求3.3. 总体设计3.4. 具体设计3.4.1. 运行效果与程序发布3.4.2. 主类 Tower3.4.3. Hannoi-塔 HannoiTower3.4.4. 塔点 TowerPoint3.4.5. 盘子 Disk3.5. 课程设计作业第4章 JPEG图象生成器4.1. 设计内容4.2. 设计要求4.3. 总体设计4.4. 具体设计4.4.1. 运行效果与程序发布4.4.2. 主类 MakeJPEG.java4.5. 课程设计作业第5章 标准化考试系统 (单机版)5.1. 设计内容5.2. 设计要求5.3. 总体设计5.4. 具体设计5.4.1. 运行效果与程序发布5.4.2. 主类EnglishTest5.4.3. 考试区域TestArea5.4.4. 读取试题 ReadTestquestion5.5. 课程设计作业第6章 标准化考试系统 (C/S网络版)6.1. 设计内容6.2. 设计要求6.3. 总体设计6.4. 具体设计6.4.1. 运行效果与程序发布6.4.2. 客户端主类Client6.4.3. 客户端选择试题界面ChoiceFile6.4.4. 客户端考试界面ClientTestArea6.4.5. 服务器端主类Server6.4.6. 服务器端读取试题 ReadTestquestion6.5. 课程设计作业第7章 标准化考试系统 (B/S网络版)7.1. 设计内容7.2. 设计要求7.3. 总体设计7.4. 具体设计7.4.1. 运行效果与程序发布7.4.2. 客户端主类ClientBS7.4.3. 客户端选择试题界面ChoiceFile7.4.4. 客户端考试界面ClientTestArea7.4.5. 服务器端主类Server7.4.6. 服务器端读取试题 ReadTestquestion7.5. 课程设计作业第8章 日历记事本8.1. 设计内容8.2. 设计要求8.3. 总体设计8.4. 具体设计8.4.1. 运行效果与程序发布8.4.2. 主类CalendarPad8.4.3. 记事本NotePad8.4.4. 年Year8.4.5. 月Month8.5. 课程设计作业18.6. 课程设计作业2第9章 学籍管理系统9.1. 设计内容9.2. 设计要求9.3. 总体设计9.4. 具体设计9.4.1. 运行效果与程序发布9.4.2. 主类StudentManager9.4.3. 录入界面StudentSituation9.4.4. 查询界面Inquest9.4.5. 修改界面ModifySituation9.4.6. 删除界面Delete9.4.7. 学生对象Student9.5. 课程设计作业第10章 图书查询系统 (B/S网络版)10.1. 设计内容10.2. 设计要求10.3. 总体设计10.4. 具体设计10.4.1. 运行效果与程序发布10.4.2. 客户端主类DatabaseClient10.4.3. 服务器端主类DatabaseServer10.5. 课程设计作业第11章 中国象棋打谱软件11.1. 设计内容11.2. 设计要求11.3. 总体设计11.4. 具体设计11.4.1. 运行效果与程序发布11.4.2. 主类 Chess11.4.3. 对弈棋盘ChessBoard11.4.4. 棋子ChessPiece11.4.5. 棋点 ChessPoint11.4.6. 走棋法则Rule11.4.7. 步骤MoveStep11.4.8. 记录棋谱MakeChessManual11.4.9. 棋谱演示Demon11.5. 课程设计作业111.6. 课程设计作业2第12章 魔板游戏12.1. 设计内容12.2. 设计要求12.3. 总体设计12.4. 具体设计12.4.1. 运行效果与程序发布12.4.2. 主类PuzzleFrame12.4.3. 魔板PuzzlePad12.4.4. 魔板中的点SquarePoint12.5. 课程设计作业第13章 挖雷游戏13.1. 设计内容13.2. 设计要求13.3. 总体设计13.4. 具体设计13.4.1. 运行效果与程序发布13.4.2. 主类Game13.4.3. 方块 Block13.4.4. 雷区 MineSquare13.4.5. 雷标数目 FindAroundMineMarkNumber13.4.6. 雷标判断 DetermineMineMarkIsRightOrWrong13.4.7. 成片挖开区域 DetermineDigArea13.4.8. 无雷连通区 FindSafeArea13.4.9. 随机布雷 RandomSetMine13.4.10. 周围地雷个数FindAroundMineNumber13.4.11. 显示剩余雷数CountMine13.4.12. 计时器TimeCount13.4.13. 英雄榜录入对话框Record13.4.14. 显示英雄榜对话框ShowRecord13.4.15. 挖雷成功DecideWinner13.5. 课程设计作业第14章 网络聊天室 (B/S模式)14.1. 设计内容14.2. 设计要求14.3. 总体设计14.4. 具体设计14.4.1. 运行效果与程序发布14.4.2. 客户端主类ClientChat14.4.3. 客户端输入妮称界面InputNameTextField14.4.4. 客户端聊天界面ChatArea14.4.5. 服务器端主类ChatServer14.5. 课程设计作业第15章 局域网络广播系统15.1. 设计内容15.2. 设计要求15.3. 总体设计15.4. 具体设计15.4.1. 运行效果与程序发布15.4.2. 客户端主类Receive15.4.3. 服务器端主类BroadCastWord15.5. 课程设计作业
1. 输出50—100间的所有素数,其中判断一个数是否为素数用函数完成。 2. 设计一个学生成绩管理系统,能输入学生的学号、姓名和成绩等数据,能按成绩从高到低进行排序,并能将排序的结果输出。 提示: 设计一个学生类student,包含三个私有数据成员,即学号sno、姓名sname和成员score; 在学生类student中再设计三个方法 setdata、display和getscore,分别用于完成输入学生信息、输出学生信息、返回某个学生成绩的功能; 定义一个manage类,它有一个student类型的私有数据成员s[num],其中num表示学生人数; 在manage类中分别定义三个方法input、output、sort,分别用于完成输入、输出和排序功能。 3.一个电子产品商店里卖各种电子产品,以下是几种产品类信息。 产品Product 的属性信息包括: 产品号(number) 种类(category) 名称(name) 价格(price ) 计算机Computer除具有产品基本信息外,还可能具有下面的属性: 内存(memory) 处理器(processorName)   笔记本电脑Laptop 除具有产品基本信息外,还可能具有下面的属性: 厚度(thickness) 重量(weight) 根据以上信息,首先抽象出类Product,它派生出子类Computer,Computer又派生出它的子类Laptop,实现以上三个类的定义,定义相应的构造方法,声明一个测试类,生成类对象,并把打印结果显示在屏幕上。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值