实践项目三: 校园兼职平台(合作重构版)

news/2025/2/12 1:12:50/

项目说明

1
据了解,目前在校大学生80%以上有做兼职的需求,兼职打工已经不仅仅是经济困难的学生赚取生活费用的途径。调查显示,全球经济危机对就业产生冲击,用人单位对人员的社会实践能力要求提高,大学期间必要的社会实践既可以提高能力,又为适应社会,减轻家庭经济负担起到了积极的作用;社会中虚假兼职机构、欺骗性中介机构充斥,真伪难辨,学生受骗事件频发,极大的损害了学生的经济利益,甚至对学生的人生安全造成威胁。从校园踏入社会,兼职只是一段小小的插曲,通过兼职丰富阅历、增长社会经验固然是好事,可是毫无戒备的步入社会,不仅会事与愿违,还可能造成不必要的损所以。所以,我们需求设计一个校园兼职平台来方便在校学生找兼职。

2
本平台根据角色定位不同有不同的模块,首先系统有一个登录注册模块,属于兼职人员的模块有个人信息管理和兼职申请;属于管理员的模块有基本信息维护、兼职信息投放和系统管理。

3
平台登录注册:用户可以通过账号密码登录平台,如果用户是第一次使用该平台,则可以通过注册方式完成信息录入。平台根据用户输入的账号密码,判断该用户的角色是兼职人员还是管理员,展示不同的操作界面。如果用户忘记密码,可以通过自己的账号和注册时录入的真实姓名找回密码。

4
个人信息管理:能够对用户的基本信息进行管理,包括个人信息的修改,如学生转到别的专业,此时要修改学生的基本信息;修改密码,为了账户的安全性,可以修改用户的密码。查询信用等级,比如有一个用户一开始可以完成兼职等级最高的工作,但是在这次工作中,未能按时完成工作,于是管理员降低了该用户的信用等级,该用户就不能接高级的兼职工作了。查询余额,用户每次按时完成兼职能得到一笔费用,有逾期会扣除一部分佣金,最后得到总的余额。

5
兼职申请模块:用户能够查询所有的职位信息,因为信用等级的限制,用户也可以只查询自己能够申请的职位信息。查询到合适的职位用户可以直接申请,申请后到达工作截至时间前完成工作可以提前结束工作得到佣金,如果逾期后完成,管理员会调整用户的信用等级。用户可以查询自己已经完成过的兼职信息和自己正在完成的兼职信息。

6
基本信息维护模块:管理员能够根据用户完成兼职的情况动态的调整用户的兼职等级状态。管理员可以调整兼职的等级,供用户选择。管理员能够根据兼职的等级不同设置逾期费用扣除比例,比如最高级的兼职逾期一天扣10元,扣除兼职费用后继续扣除用户余额,直到用户余额为0,自动结束工作,结算费用。

7
兼职信息投放:管理员可以把所有公司的兼职招聘信息发布到网上,根据公司的需求设置岗位所需人员,工资以及兼职的时间段,比如发传单,这份兼职需要周一到周五的上午9点至11点工作,那么在这个时间段已经有了其他工作的用户就不能申请该工作。

8
系统管理模块:管理员能够删除管理员账户,也能删除平台用户以及一些完成过的兼职信息。管理员能够添加平台用户信息到系统,本平台是针对学生的软件,所以能够注册的只能是学生,所以平台需要提前将学生信息录入系统,用户才能注册账号,如果未能及时录入信息照成无法注册,那么就需要联系管理员进行信息录入。管理员可以添加其他的管理员账户,为了安全起见,管理员和普通用户一样能够修改密码。管理员还能够查询所有的用户信息、管理员账户信息、已经投放的职位信息、已经完成的兼职信息和已经逾期的兼职信息。

项目功能流程结构图

在这里插入图片描述
1.基本功能不变,增删改查,相应的加上一些逻辑处理的过程,就比如用户
(1)登录注册功能:用户通过注册进入平台,注册信息包括用户编号(用户编号决定角色类型,学号注册为兼职人员,教师编号注册为管理员),注册后到登录界面输入账号和密码登录平台,注册信息包括:用户编号(学号/教师编号)、密码、姓名、出生日期、性别、电话、所在院系、注册日期等。后期如果忘记了密码,用户通过自己的账号和注册时的姓名找回密码。注意,为了安全起见,只有已经录入系统的用户可以注册账户,本平台提前录入了部分管理员和学生的信息到系统中供大家注册。(相关存储数据可通过数据库存储)
(2)个人信息管理:包括个人信息修改、密码修改、查询信用等级和查询余额功能。普通用户登录成功之后,可以修改个人注册时录入的信息,学号和注册时间不可更改,密码单独修改;也可以查询个人的信用等级,若信用等级不是最高,则查询个人信用等级时附加显示“按时完成X次后信用等级恢复至X级”(默认未逾期完成兼职工作3次恢复1级信用等级,等级梯度为1-5级,5级最高)。(相关存储数据可通过数据库存储)
(3)兼职申请功能:包括兼职信息查询、申请工作和结束工作。用户登录成功之后,可以查询所有的兼职信息,包括自己能申请的职位和不能申请的职位,也可以只查看自己能申请的职位(是否可申请与信用等级、岗位所需人员、兼职时间相关)。用户还可查看自己已完成的兼职信息和自己正在完成的兼职信息。满足条件的兼职,用户可以申请,开始工作时间为系统当前时间,相对的该兼职岗位对应的所需人员需要减少;完成工作后(逾期完成信用自动降低1级,0级为最低,0级后不可再申请兼职工作),需要计算所得薪酬(所得薪酬和是否逾期、逾期天数相关),若未逾期且信用等级未满,则需要计算恢复信用等级所需的次数,完成时间手动输入,不可小于兼职开始时间。(相关存储数据可通过数据库存储)
(4)基本信息维护功能:包括兼职等级设置、用户信用调整和逾期费用扣除比例调整。管理员端登录成功之后,可以调整兼职的等级(兼职等级梯度为一-五级,五级最高,一级最低),普通用户的信用等级>=兼职等级可申请职位,还可以增删兼职的类型,比如开发外包/销售/设计师等。管理员可以根据用户的表现动态地调整用户的信用等级,可越级增减,0级信用的普通用户管理员不可调整其信用等级。管理员还可以调整兼职的逾期费用,每天逾期扣除的费用相同,比如:原定一份兼职总薪资1000元,工作要求10天完成,逾期1天扣除100元,调整后一天扣除200元(扣除兼职费用为0后继续扣除用户余额,直到用户余额为<=0,自动结束工作,结算费用)。(相关存储数据可通过数据库存储)
(5)兼职信息投放:包括兼职人员设置、兼职的金额设置、兼职的时间录入以及兼职的其他信息录入。系统管理员登录成功之后可以把所有公司发布的兼职信息录入到平台,录入信息包括:营业执照编号、公司名字、岗位名称、兼职类型、兼职等级、工作内容、需求人数、工作时间等。系统管理员可以根据市场和公司要求,动态调整这些兼职工作的部分内容,比如需求人数、薪水等,工作时间不允许更改。(相关存储数据可通过数据库存储)
(6)系统管理功能:包括对普通用户、管理员和兼职信息的增删查改等。系统提前录入了一些管理员或者学生的信息在系统中,但是未全部录入,所以后续需要注册的用户需要已经录入的管理员登录平台进行信息录入,系统录入仅需要学号/教师编号和姓名即可,此信息供用户注册使用。管理员可以删除普通用户和别的管理员,以及没有用的兼职信息。(相关存储数据可通过数据库存储)
2.(补充功能来自于上面功能图中红色部分,具体细节如下:)
提供了又一个新的角色,发布兼职人员。他的角色就相当于公司的招聘人员,可以根据公司需求,去这个平台上发布自己公司对应需要的兼职信息。
发布兼职人员基本功能:
可以对兼职信息进行发布
可以对自己发布的兼职信息进行查看(状态:未通过,已通过,未审批),还可以查看审核过关的信息是否有兼职人员已经接取。
可以对自己发布的兼职信息进行撤销
为了保证兼职人员的安全性,所有发布兼职人员发布的信息都需要管理员审批通过后才能展示给兼职人员,如果信息虚假可由管理员直接拒绝。

管理员添加的功能:
可以对兼职信息进行审批
可以有审批通过的信息才能展示给兼职人员查看
可以发布兼职人员进行增,删,改,查

大概流程
1.先由管理人员添加发布兼职人员的信息
2.再由发布兼职人员登录后去平台发布兼职信息
3.接着等管理人员审批同意兼职信息后,信息方能在兼职人员界面看到相关信息
4.最后兼职人员登录平台可以去选择自己想要兼职的信息,进行兼职

登录注册:

//首界面
package com.view;import java.util.Scanner;public class Index {public static void main(String[] args) {Enroll enroll = new Enroll();Scanner sc = new Scanner(System.in);Login login = new Login();ForgotPasswordView forgot = new ForgotPasswordView();boolean flag = true;while (flag) {System.out.println("==========校园兼职平台==========");System.out.println("1-注册     2-登录     3-忘记密码     4-退出");int options = sc.nextInt();switch (options) {//注册case 1:enroll.register();break;//登录case 2:login.IndexLogin();break;//找回密码case 3:forgot.forgot();break;case 4:System.out.println("确定退出吗?(N/Y)");String choice = sc.next();if (choice.equals("Y")) {flag = false;}break;default:System.out.println("输入有误!请重新输入!");break;}}}
}//注册界面
package com.view;import com.service.AdminService;
import com.service.ReleasePartTimeService;
import com.service.UserService;
import com.service.serviceimpl.AdminServicelmpl;
import com.service.serviceimpl.ReleasePartTimeServicelmpl;
import com.service.serviceimpl.UserServiceImpl;import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Scanner;/*** @author BaBa* @Version 1/0*/
public class Enroll {private Scanner sc = new Scanner(System.in);private ReleasePartTimeService RP = new ReleasePartTimeServicelmpl();private UserService userService = new UserServiceImpl();private AdminService adminService = new AdminServicelmpl();//注册public void register() {boolean flag = true;while (flag) {System.out.println("==========");System.out.println("1.注册为用户");System.out.println("2.注册为管理员");System.out.println("3.注册为发布人员");System.out.println("4.退出");int options = sc.nextInt();switch (options) {//注册为用户case 1:registerUser();break;//注册为管理员case 2:while (true) {System.out.println("请输入管理员账号(3xxx):");int AminNumber = sc.nextInt();if (Integer.toString(AminNumber).startsWith("3")) {System.out.println("请输入密码:");String AminPassword = sc.next();adminService.addAdmin(AminNumber,AminPassword);break;} else {System.out.println("输入不合法(3xxx),请重新输入!");}}break;case 3:while (true) {System.out.println("请输入发布人员账号(2xxx):");int number  = sc.nextInt();if (Integer.toString(number).startsWith("2")) {System.out.println("请输入密码:");String password = sc.next();RP.register(number, password);break;} else {System.out.println("输入不合法(2xxx),请重新输入!");}}break;case 4:System.out.println("退出中!");flag = false;break;default:System.out.println("您输入的有误,请重新输入!!!");}}}public void registerUser() {List list = new ArrayList();while (true) {System.out.println("请输入用户账号(1xxx):");int UserNumber = sc.nextInt();if (Integer.toString(UserNumber).startsWith("1")) {list.add(UserNumber);break;} else {System.out.println("输入不合法(2xxx),请重新输入!");}}System.out.println("请输入密码:");String UserPassword = sc.next();list.add(UserPassword);System.out.println("请输入名字:");String UserName = sc.next();list.add(UserName);System.out.println("请输入年龄:");int age= sc.nextInt();list.add(age);System.out.println("请输入性别:");String sex= sc.next();list.add(sex);System.out.println("请输入电话号码(11位):");String phone = sc.next();list.add(phone);System.out.println("请输入所在院校:");String department = sc.next();list.add(department);Date date = new Date();list.add(new Date(date.getTime()));userService.add(list);}
}//登录界面
package com.view;import com.service.AdminService;
import com.service.ReleasePartTimeService;
import com.service.UserService;
import com.service.serviceimpl.AdminServicelmpl;
import com.service.serviceimpl.ReleasePartTimeServicelmpl;
import com.service.serviceimpl.UserServiceImpl;
import java.util.Scanner;//登录界面
public class Login{private Scanner sc = new Scanner(System.in);private UserService userService = new UserServiceImpl();private ReleasePartTimeService rpts = new ReleasePartTimeServicelmpl();private AdminService adminService = new AdminServicelmpl();private UserView userView = new UserView();private ReleasePartTimeView releasePartTimeView = new ReleasePartTimeView();private AdminView  adminView = new AdminView();public void IndexLogin(){boolean flag= true;while (flag) {System.out.println("====登录界面====");System.out.println("1.用户");System.out.println("2.发布人员");System.out.println("3.管理员");System.out.println("4.退出");int options = sc.nextInt();switch (options){//用户case 1:System.out.println("请输入您的编号:");int usernumber = sc.nextInt();if (Integer.toString(usernumber).startsWith("1")){System.out.println("请输入您的密码:");String password = sc.next();boolean b = userService.loginUser(usernumber, password);if (b){System.out.println("登录成功!");userView.UserView(usernumber);}else {System.out.println("您输入的账号或密码错误,请检查后登录!!!");}}else {System.out.println("您的输入有误,请重新输入!!");}break;//发布人员case 2:System.out.println("请输入您的编号:");int releasenumber= sc.nextInt();if (Integer.toString(releasenumber).startsWith("2")){System.out.println("请输入您的密码:");String releaseps = sc.next();boolean boo = rpts.ReleasePartTimelogin(releasenumber, releaseps);if (boo){System.out.println("登录成功!");releasePartTimeView.ReleasePartTimeView(releasenumber);}else {System.out.println("您输入的账号或密码错误,请检查后登录!!!");}}else {System.out.println("您的输入有误,请重新输入!!");}break;//管理员case 3:System.out.println("请输入您的编号:");int adminnumber = sc.nextInt();if (Integer.toString(adminnumber).startsWith("3")){System.out.println("请输入您的密码:");String adminps = sc.next();boolean bool = adminService.loginAdmin(adminnumber,adminps);if (bool){System.out.println("登录成功!");adminView.adminView(adminnumber);}else {System.out.println("您输入的账号或密码错误,请检查后登录!!!");}}else {System.out.println("您的输入有误,请重新输入!!");}break;//退出case 4:flag=false;break;default:System.out.println("您输入的有误,请重新输入!!!");break;}}}
}

其他的已近没有什么写的必要,学好数据库,这个项目就没什么了!!!


http://www.ppmy.cn/news/305142.html

相关文章

Java Web实现用户登录功能

文章目录 一、纯JSP方式实现用户登录功能&#xff08;一&#xff09;实现思路1、创建Web项目2、创建登录页面3、创建登录处理页面4、创建登录成功页面5、创建登录失败页面6、编辑项目首页 &#xff08;三&#xff09;测试结果 二、JSPServlet方式实现用户登录功能&#xff08;一…

SpringBoot整合MongDB

文章目录 1. MongoDB概述2. MongoDB安装3. MongoDB快速入门3.1 数据库以及表的操作3.2 新增数据3.3 更新数据3.4 删除数据3.5 查询数据3.6 索引3.7 执行计划 4、SpringBoot整合MongoDB4.1 环境搭建4.2 新增文档4.3 查询文档4.4 更新文档4.5 删除文档 人生哪能多如意&#xff0c…

谈谈键盘A键不定期失灵问题

先说结论&#xff0c;这种情况可能是QQ的某个Bug导致的。 我曾使用过好几台电脑&#xff0c;每台电脑的A键都不约而同地失灵过&#xff0c;包括两台台式机和一台笔记本。 在网上查阅资料&#xff0c;有人说这是QQ截屏热键冲突导致。回想起来&#xff0c;最近这个问题确实是手…

用C语言实现飞机大战小游戏

我的个人博客&#xff1a;谋仁Blog 该项目已上传至GitHub&#xff1a;点击跳转 文章目录 摘要运行环境整体功能思维导图效果预览 具体功能的实现图形界面&#xff1a;EasyXEasyX图形库简介EasyX图形库的一些基本功能&#xff08;该项目用到的&#xff09; 菜单界面玩法介绍界面…

计算机关机键 自动重启,电脑按了关机键后电脑又自动重启了,怎么处理 啊

一般关机重启有两种&#xff0c;一个是关机前的操作卡了引起的&#xff0c;另一个是每回关机都是重启&#xff0c;下面分别说一下。 1)关机前电脑卡引起的&#xff1a; 玩游戏、看视频、或操作大程序、或电脑用的时间长了&#xff0c;这时是很卡的&#xff0c;您要有一些耐心等…

计算机睡眠状态游戏会掉线吗,电脑休眠后,qq自动下线.怎么弄?

2006-02-28 电脑待机和休眠是一回事吗&#xff1f;如果不是一回事那怎么休眠啊&#xff1f;待机和休眠哪个耗电大&#xff1f;我是菜鸟请高手详细指教谢谢&#xff01; 待机、休眠是怎样工作的    1。为什么需要待机、休眠  尽管电脑硬件运行速度越来越快&#xff0c;但操…

2011腾讯QQ通用BUG和变态小秘密!

1。号码被盗后&#xff0c;如何恢复以前的好友名单&#xff1a; 以前的号码假设为AA&#xff0c;申请一个新的QQ号码&#xff0c;假设BB号。打开QQ目录&#xff0c;在以AA号码命名的文件夹中找到user.db文件,然后覆盖粘贴至BB号码所在的文件夹中(复制前先备份此文件);使用BB号…

脑机接口技术介绍、应用与挑战

目录 脑机接口简介脑机接口技术1.P300脑机接口2.SSVEP脑机接口3.运动想象脑机接口 脑机接口应用脑机接口挑战 本分享为脑机学习者Rose整理发表于公众号&#xff1a;脑机接口社区 .QQ交流群&#xff1a;941473018 脑机接口简介 脑机接口的概念最先于1973年提出&#xff0…