热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

大学班级事务管理系统要求本次设计要求利用Java实现CS模式的大学班级内日常事务管理系统(PC版,应用于校内网有线网络访问,暂不开发移


大学班级事务管理系统

要求

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

1、 班级公告通知

2、 文稿匿名传阅投票

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

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

具体要求为:

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

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

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

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

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


实现


一、登录模块



二、班级公告通知


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

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

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

在这里插入图片描述

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

在这里插入图片描述

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


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

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

    <<<<<< 1&#xff09;日记记录——每当管理员发布公告时&#xff0c;记录到日志记录中。
    在这里插入图片描述

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

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



video



  • 3.编辑公告——界面设计

    点击确认按钮将公告内容放进数据库。
    在这里插入图片描述

  • 4.查看公告内容——将数据库内容显示到界面中

    默认情况只查看最新的公告&#xff0c;当点击查看所有公告时将所有的公告显示到屏幕上。
    最新公告&#xff1a;
    在这里插入图片描述

    所有公告&#xff1a;
    在这里插入图片描述


三、匿名传阅投票


  • 1.设计发起投票

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


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

在这里插入图片描述

发起投票&#xff1a;
在这里插入图片描述


  • 2.每个成员投票

    过程&#xff1a;每个同学登录后进行投票&#xff0c;不能重复投票&#xff0c;可以添加自己的意见和看之前投票同学的意见当投票结束后系统会给出提示&#xff0c;同学们将无法进行投票&#xff0c;管理员进行票数统计。
    在这里插入图片描述

    重复投票
    在这里插入图片描述

    投票结束
    在这里插入图片描述

  • 3.数据库设计

    三个表分别是&#xff1a;上边提到的 vote&#xff0c;suggesstion 和 votename

    vote 的表结构&#xff1a;记录票数和投票内容时间发起人

    suggesstion&#xff1a;记录投票人的意见。

    votename&#xff1a;记录已投票的同学姓名&#xff08;对用户不可见&#xff0c;加密&#xff0c;防止追踪&#xff09;

    vote
    在这里插入图片描述

    votename
    在这里插入图片描述

    suggestion
    在这里插入图片描述

    当最后一名同学投完票后&#xff0c;会显示投票结束的提醒。


四、文件共享


  • 1.本地文件上传

在这里插入图片描述

功能选择上传

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

两者通过 Socket 和 DataOutputStream&#xff0c;DataInputStream 交换文件&#xff0c;通过 FileInputStream 和 FileOutputStream 读写文件。

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

在这里插入图片描述

补充功能&#xff1a;显示文件上传了多少的进度条。
将文件的上传和进度条的显示放到一个线程中去。同时将进度条封装到一个类(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 &#61; new JPanel(); // 创建内容面板

contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));// 设置内容面板边框

setContentPane(contentPane);// 应用(使用)内容面板

contentPane.setLayout(new FlowLayout(FlowLayout.CENTER,5,5));// 设置为流式布局

processBar &#61; new JProgressBar();// 创建进度条

processBar.setStringPainted(true);// 设置进度条上的字符串显示&#xff0c;false则不能显示

processBar.setBackground(Color.GREEN);

contentPane.add(processBar);// 向面板添加进度控件
}

在这里插入图片描述


  • 2.文件的下载

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

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

同时需要用到 Java 的复选框控件&#xff1a;

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

在这里插入图片描述

在这里插入图片描述


五、即时通讯

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


  • 1.个人聊天&#xff08;私聊&#xff09;

    需要登录两个人并且同时打开聊天的窗口&#xff1a;

在这里插入图片描述

在这里插入图片描述


  • 2.群聊

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

在这里插入图片描述

在这里插入图片描述


  • 3.附加功能

    手绘图视频我放到 video 中了&#xff1a;
    在这里插入图片描述


六、其余功能


  • 1.日志查看

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

在这里插入图片描述

记录的数据库结构


nameitemtime
管理员姓名事件时间

在这里插入图片描述


  • 2.单人小游戏

在这里插入图片描述


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

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


♻️ 资源

在这里插入图片描述

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







推荐阅读
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文介绍了为什么要使用多进程处理TCP服务端,多进程的好处包括可靠性高和处理大量数据时速度快。然而,多进程不能共享进程空间,因此有一些变量不能共享。文章还提供了使用多进程实现TCP服务端的代码,并对代码进行了详细注释。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • 本文介绍了如何清除Eclipse中SVN用户的设置。首先需要查看使用的SVN接口,然后根据接口类型找到相应的目录并删除相关文件。最后使用SVN更新或提交来应用更改。 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • 集成电路企业在进行跨隔离网数据交换时面临着安全性问题,传统的数据交换方式存在安全性堪忧、效率低下等问题。本文以《Ftrans跨网文件安全交换系统》为例,介绍了如何通过丰富的审批流程来满足企业的合规要求,保障数据交换的安全性。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
author-avatar
书友32976730
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有