基于Java实现(PC)大学班级事务管理系统【100010059】

news2024/11/24 19:13:57

大学班级事务管理系统

要求

本次设计要求利用 Java 实现 C/S 模式的大学班级内日常事务管理系统(PC 版,应用于校内网有线网络访问,暂不开发移动端),不得依赖现有的建模框架,使用 swings 技术完成如下基本功能需求:

1、 班级公告通知

2、 文稿匿名传阅投票

3、 文件共享(上传、下载)

4、 即时通信(一对一,多对多)

具体要求为:

窗口化大屏幕界面,有菜单等工具。其中:

设管理员与用户两种使用权限,管理员操作过程有日志记录(管理员也是本班同学,应不止一个)。班级公告通知由管理员(比如班长或班委成员)发布,公示于屏幕中央面板位置,可带有滚动或翻页功能(自选)

文稿匿名传阅投票,用于形成班级的某项共识性意见、敏感性评测、评奖投票等事务。例如:班委起草某项建议初稿,列出同意与不同意选项、或者被投票者名单,或可加建议栏用于补充意见等等。该稿按照一种随机模式(为避免传递路径的可追踪性)在同学中一传一流转,每个收到的同学能够看到稿子的当前状态(票数,已有的补充建议等,避免重复性提议),给出自己的选择与建议之后提交,继续传阅直到全部轮完回到零点,完成意见收集过程。

文件共享:在服务器端设置共享空间,允许班级成员上传下载。

即时通信:独立弹出小窗,基本功能:一对一对话(私聊),发言至班级(群聊),可发图片,即时手绘图。其它功能大家可自由发挥。

实现

一、登录模块

  • 班级数据库设计

    班级数据库的设计:以安全为主,所以事先由 super 管理员录入班级所有同学的信息。

    在这里插入图片描述

    NamenumberuserspasswordAdministrator
    同学姓名学号昵称密码管理员权限(0 是普通用户 1 是管理员
    同学第一次登录需要通过姓名和学号申请昵称和密码。
  • 登录界面

    通过昵称和密码登录系统:
    在这里插入图片描述

  • 注册界面

    通过学号和名字进行注册:
    在这里插入图片描述

  • 数据库设计

    由于是班级系统所以将所有用户的姓名学号以及管理权限提前录入到数据库中,确保安全性。一开始用户的昵称和密码都会是空,注册后录入信息。

    注册前

    在这里插入图片描述

    注册后

    在这里插入图片描述

二、班级公告通知

  • 1.权限限制——主界面设计

    由于存在两个群体管理员和普通用户,他们的权限不同,给予管理员编辑公告和查看公告的权限,只赋予普通用户查看公告的权限。

    所以管理员的主界面有编辑公告的菜单栏:

在这里插入图片描述

而普通用户没有编辑公告的菜单栏:

在这里插入图片描述

这要确保了对管理员操作的记录和防止同学任意发布公告。

  • 2.日记记录和公告内容储存——数据库设计

    数据库分为两部分日记记录和对公告内容的记录。

    <<<<<<< HEAD
    1)日记记录——每当管理员发布公告时,记录到日志记录中。
    在这里插入图片描述

    2)内容储存——将公告的内容放进数据库
    在这里插入图片描述

1)日记记录——每当管理员发布公告时,记录到日志记录中。
在这里插入图片描述
2)内容储存——将公告的内容放进数据库
在这里插入图片描述

video

三、匿名传阅投票

  • 1.设计发起投票

    流程:管理员发起投票,写入数据库中,并且记录每个选项的票数。同时将该过程记录到班级日志中。

    nameitemoption1option2option3option4number1number2number3number4time
    发起投票人投票内容选项一选项二选项三选项四选项一的票数选项二的票数选项三的票数选项四的票数发起投票的时间

在这里插入图片描述

发起投票:
在这里插入图片描述

四、文件共享

  • 1.本地文件上传

在这里插入图片描述

功能选择上传

服务端设置新建一个专门用于文件上传的服务器:FileServer 一个用于文件上传的客户端 FileClient

两者通过 Socket 和 DataOutputStream,DataInputStream 交换文件,通过 FileInputStream 和 FileOutputStream 读写文件。

服务器会将文件传到服务器端的桌面——共享文件的空间(第一次上传如果没有该文件夹会创建。)

在这里插入图片描述

补充功能:显示文件上传了多少的进度条。
将文件的上传和进度条的显示放到一个线程中去。同时将进度条封装到一个类(JProcessBarDemo)中。

public JProcessBarDemo(){
  	try {
  		UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");
  		// 改变风格
  	} catch (ClassNotFoundException e) {
  		// TODO Auto-generated catch block
  		e.printStackTrace();
  	} catch (InstantiationException e) {
  		// TODO Auto-generated catch block
  		e.printStackTrace();
  	} catch (IllegalAccessException e) {
  		// TODO Auto-generated catch block
  		e.printStackTrace();
  	} catch (UnsupportedLookAndFeelException e) {
  		// TODO Auto-generated catch block
  		e.printStackTrace();
  	}
  	setTitle("文件传输进度");		//设置窗体标题
  	
  	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置窗体退出的操作
  	
  	setBounds(600, 600, 350, 100);// 设置窗体的位置和大小
  	
  	setResizable(false);
  	
  	JPanel contentPane = new JPanel();   // 创建内容面板
  	
  	contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));// 设置内容面板边框
  	
  	setContentPane(contentPane);// 应用(使用)内容面板
  	
  	contentPane.setLayout(new FlowLayout(FlowLayout.CENTER,5,5));// 设置为流式布局
  	
  	processBar = new JProgressBar();// 创建进度条
  	
  	processBar.setStringPainted(true);// 设置进度条上的字符串显示,false则不能显示
  	
  	processBar.setBackground(Color.GREEN);
  	
  	contentPane.add(processBar);// 向面板添加进度控件
  }

在这里插入图片描述

  • 2.文件的下载

文件的下载和文件上传的答题思路相同,不过这次是将服务端的文件下载到本地。

具体过程
先从服务端传过来一个共享区内的 String 类型的文件列表,显示在图像化界面上供用户选择,将用户选择的文件以列表的方式发送给服务端,服务端发送 File 类型的文件列表给用户供用户下载。

同时需要用到 Java 的复选框控件:

JCheckBox(String text) 创建一个最初未选择的复选框与文本。

在这里插入图片描述

在这里插入图片描述

五、即时通讯

主要逻辑和代码请自行观看,主要是要搞懂网络通信的部分。

  • 1.个人聊天(私聊)

    需要登录两个人并且同时打开聊天的窗口:

在这里插入图片描述

在这里插入图片描述

  • 2.群聊

    需要参与的人全部进入聊天室然后发送的消息所有人都可以看到:

在这里插入图片描述

在这里插入图片描述

  • 3.附加功能

    手绘图视频我放到 video 中了:
    在这里插入图片描述

六、其余功能

  • 1.日志查看

记录管理员对班级日志的修改和添加(公告和投票)
很好实现就是在管理员每发起一次投票或者发布一次公告都将其记录到数据库中,查看时只需将数据库的内容放到前端展示即可。

在这里插入图片描述

记录的数据库结构

nameitemtime
管理员姓名事件时间

在这里插入图片描述

  • 2.单人小游戏

在这里插入图片描述

  • 贪吃蛇
    操作视频在 video 中
    在这里插入图片描述

  • 五子棋
    操作视频在 video 中
    在这里插入图片描述

♻️ 资源

在这里插入图片描述

大小: 22.4MB
➡️ 资源下载:https://download.csdn.net/download/s1t16/87249006

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/115418.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IP地址分类及范围详解

IP地址分为公网IP地址&#xff08;合法IP地址&#xff09;和私有IP地址 公网IP地址主要应用于Internet上的主机访问&#xff0c;而私有IP地址应用于局域网中计算机的相互通信。 IP地址的表示形式&#xff1a;分为二进制表示和点分十进制表示。现在使用的IP地址长度均为32位/4个…

阿里云oss访问图片出现跨域问题

需要服务器端支持&#xff0c;开一下cdn Access-Control-Allow-Origin字段是服务端添加了才有的&#xff0c;前端加了crossOrigin"anonymous"是想跨域获取这张图片&#xff0c;好用在canvas.toDataURL()上&#xff0c;但是服务端不一定同意&#xff0c;服务端添加了…

开始摸索学习go,具体内容和过程就慢慢补充吧。

计划学习路线 文章目录计划学习路线书籍开源项目资料网站课程书籍 《go语言核心编程》 -腾讯作者 《go语言编程之旅》 -5个项目 --对go语言能做的内容做了整体介绍吧&#xff0c;对细节还不够细化&#xff0c;对独立编写代码帮助有限 第二章 swaage 有版本冲突&#xff0c;等…

37.卷积神经网络(LeNet)的代码实现(在colab上)

ps&#xff1a;在教材上直接打开colab&#xff0c;运行原来的代码!pip install githttps://github.com/d2l-ai/d2l-zhrelease # installing d2l是会报错的&#xff0c;改成这句代码&#xff0c;可以正确运行&#xff1a;!pip install d2l0.14.&#xff0c;直接制定了d2l的版本 …

利用Bat打开exe程序并传入值

目录 一、分清楚exe接收值的方式 1、打开exe时提示输入1、2、3... 2、知道exe形参&#xff08;程序主函数中定义的argv[]&#xff09; 二、call和start的区别 一、分清楚exe接收值的方式 1、打开exe时提示输入1、2、3... 如图&#xff1a; 这种是程序运行时接收用户输入…

SuperMap GIS 三维硬件设置优化

目录一、简介二、查看硬件显卡三、显卡设置1、NVIDA显卡设置2、AMD显卡设置一、简介 我们都知道为了体验更好的大型3D游戏&#xff0c;那么好的显卡是必不可少的。但是有了好的显卡当配置不对时&#xff0c;此时体验感也会大打折扣。同样的道理&#xff0c;在SuperMap中也需要…

Redis原理篇—通信协议

Redis原理篇—通信协议 笔记整理自 b站_黑马程序员Redis入门到实战教程 RESP协议 Redis 是一个 CS 架构的软件&#xff0c;通信一般分两步&#xff08;不包括 pipeline 和 PubSub&#xff09;&#xff1a; 客户端&#xff08;client&#xff09;向服务端&#xff08;server&a…

VMC证书是什么?获取认证标志证书步骤是怎样的?

VMC证书是什么&#xff1f; VMC证书(全称&#xff1a;Verified Mark Certificate)&#xff0c;也称认证标志证书&#xff0c;是由权威CA机构颁发&#xff0c;用于验证商标所有权的数字证书。 VMC 通过提供验证机制与 BIMI 协同工作&#xff0c;BIMI标准可以在电子邮件中的“发…

OSCS开源安全周报第23期:Foxit PDF Reader/Editor 任意代码执行漏洞

本周安全态势综述 OSCS 社区共收录安全漏洞10个&#xff0c;其中公开漏洞值得关注的是 Apache Airflow Hive Provider <5.0.0 存在操作系统命令注入漏洞&#xff08;CVE-2022-46421&#xff09;vm2 < 3.9.10 存在任意代码执行漏洞&#xff08;CVE-2022-25893&#xff0…

湖南软件工程自考本科总结

本人情况 在湖南长沙考试&#xff0c;从2021年初开始备考&#xff0c;社会考生&#xff0c;自己复习&#xff0c;从2021-4月到2022-10月&#xff0c;理论每次都考了4门课程&#xff0c;前3次每次挂了1门课程&#xff0c;刚刚好在4次考试完成了所有的理论考试。 经验分享 复习重…

2022 re:Invent 凌云驭势 重塑未来

2022年11月29日&#xff0c;一年一度的亚马逊 re:Invent全球大会在拉斯维加斯再度上演&#xff0c;这是亚马逊云科技第11年举办re:Invent&#xff0c;来自全球的5万多客户和合作伙伴参加了此次线下盛会&#xff0c;还有超过30万人线上参会。在此次大会上&#xff0c;亚马逊云科…

喜报 | 云畅科技再次入榜湖南省互联网企业50强

12月21日&#xff0c;湖南省互联网协会在国家网络安全产业园区&#xff08;长沙&#xff09;发布了2022年湖南省互联网企业综合实力30强榜单、互联网成长型企业10强榜单、互联网创新型企业10强榜单和《2022年湖南省互联网企业50强发展报告》。 湖南云畅网络科技有限公司&#x…

burpsuite靶场——CSRF

文章目录什么是CSRF&#xff1f;CSRF 攻击的影响是什么&#xff1f;CSRF 是如何工作的&#xff1f;没有防御的 CSRF 漏洞常见的 CSRF 漏洞Token验证取决于请求方法Token的验证取决于Token是否存在CSRF Token未绑定到用户会话Token未与会话 cookie绑定什么是CSRF&#xff1f; 跨…

【HTML】动画合集--跟着pink老师学习

1.奔跑小熊 奔跑小熊<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice…

【免杀前置课——shellcode】二十、初识shellcode——配合栈溢出漏洞利用shellcode在代码中返回MessageBox函数

初识shellcode栈溢出漏洞反弹shellcodeshellcode取出shellcode栈溢出漏洞反弹shellcode shellcode shellcode&#xff1a; shellcode是一段用于利用软件漏洞而执行的代码&#xff0c;shellcode为16进制的机器码&#xff0c;因为经常让攻击者获得shell而得名。.shellcode常常使…

自动控制原理笔记-线性系统的稳定性分析

目录 稳定的概念及定义&#xff1a; 系统稳定的充要条件——闭环极点全部落在虚轴左边&#xff1a; 系统的稳定性判据&#xff1a; 劳斯判据(充要性)判据&#xff1a; 劳斯表特殊情况例(出现计算过程分母为0)&#xff1a; 劳斯表特殊情况例(出现全0行)&#xff1a; 稳定的…

【Java】花费数十小时,带你体验Java文档搜索引擎的实现过程

Java文档搜索引擎项目运行效果一、简述搜索引擎概念二、搜索引擎实现思路2.1倒排索引介绍2.2项目目标2.3获取java文档2.4模块划分2.5创建项目2.6认识分词2.7分词的原理2.8使用第三方分词库三、实现索引模块-parser类3.1 实现索引模块-递归枚举文件3.2 排除非HTML文件3.3 实现索…

旁瓣消隐技术在雷达中应用

电子对抗在现代战争中的作用日趋重要&#xff0c;没有雷达抗干扰技术的雷达完全失去其发现测定敌人目标的功能。从降低天线旁瓣干扰方面考虑&#xff0c;雷达抗干扰技术主要包括旁瓣对消技术和旁瓣消隐技术&#xff0c;旁瓣对消器在有一个辅助天线的情况下抑制一个干扰源的效果…

正式入职开发工程师工作近半年有感

一、前言 博主是毕业于集美大学的一枚软件工程本科生&#xff0c;不知不觉已经毕业近半年了&#xff0c;由于工作繁忙 个人的懒惰&#xff0c;对CSDN的博客记录频率已经大不如之前。说起这里也是惭愧&#xff0c;之后博主会尽量抽出时间&#xff0c;继续保持各种学习&#xf…

代码随想录算法训练营第43天 | 1049. 最后一块石头的重量 II 494. 目标和 474.一和零

一、Leetcode 1049. 最后一块石头的重量 II 这几个题都很不好给转成01问题。本题一开始我以为怎么撞都行&#xff0c;其实不是&#xff0c;相当于给每项前面加1&#xff0c; 就是说有时候不能浪费小石头&#xff0c;得跟大石头碰。 那么问题就很明显了&#xff0c;类似于分割…