利用Java实现简单的学员日报管理
最近老师要求我们做一个 日报管理系统,要求如下:
设计一个日报信息管理系统,系统中包含两种用户(学生,老师),其中学生具备注册,登录,日报提交,查看自己提交的日报,修改已提交的日报功能,删除日报等功能;老师具备登录的功能(账号密码固定为softeem/admin123,无需注册),老师登录后可以查看所有学生提交的日报,以及查看当日学生提交的日报等功能,具体功能点:
学生:
- 注册
- 登录
- 提交日报
- 查看所有日报(自己提交的)
- 修改日报(根据日报id修改)
老师:
- 登录
- 查看所有学生日报
- 查询指定学生的日报
- 删除指定学生日报
- 查询当前提交的日报(扩展功能:选做)
- 统计当日提交的日报总数以及未提交数(扩展功能:选做)
我尝试了一下,首先建立两个类:学生类和日报类:
/**学生类*/
public class Student {
private String username;
private String password;
private int id;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getId() {
return id;
}
public void setId(int $id) {
id=$id;
}
public Student() {
super();
}
public Student(String username, String password) {
super();
this.username = username;
this.password = password;
}
@Override
public String toString() {
return "Student [username=" + username + ", password=" + password + ", id=" + id + "]";
}
}
/**日报类*/
import java.util.Date;
public class DailyPaper {
private String character;
private Date date = new Date();
private int id ;
private int day = date.getDate();
public String getCharacter() {
return character;
}
public void setCharacter(String character) {
this.character = character;
}
public void setDay(int $day) {
day = $day;
}
public int getDay() {
return day;
}
public int getId() {
return id;
}
public void setId(int $id) {
id=$id;
}
}
然后建立一个管理类,在里面实现需要的功能:
/**管理类*/
import java.util.ArrayList;
import java.util.Date;
import java.util.Scanner;
public class Manager {
private ArrayList<Student> stu = new ArrayList();
private ArrayList<DailyPaper> dp = new ArrayList();
private Date date = new Date();
private int index=-1;
private boolean passStu = false;
private boolean passTea = false;
private int index2=-1;
/**学生注册*/
private void registerStu() {
index++;
Student stu2 = new Student();
Scanner sc = new Scanner(System.in);
System.out.println("正在进行学生注册");
System.out.println("请输入用户名:");
if(sc.hasNextLine()) {
stu2.setUsername(sc.nextLine());
}
System.out.println("请输入密码:");
if(sc.hasNextLine()) {
stu2.setPassword(sc.nextLine());
}
stu2.setId(index);
index2=index;
stu.add(stu2);
System.out.println("注册成功!");
}
/**学生登录*/
private boolean entryStu() {
Scanner sc = new Scanner(System.in);
String $username="";
String $password="";
System.out.println("正在进行学生登录");
System.out.println("请输入用户名:");
if(sc.hasNextLine()) {
$username = sc.nextLine();
}
System.out.println("请输入密码:");
if(sc.hasNextLine()) {
$password = sc.nextLine();
}
for(int i=0;i<stu.size();i++) {
if(stu.get(i).getUsername().equals($username)&&stu.get(i).getPassword().equals($password)) {
index2=i;
System.out.println("登录成功!");
return true;
}
}
System.out.println("登录失败");
return false;
}
/**学生提交日报*/
public void submitStu() {
Scanner sc = new Scanner(System.in);
DailyPaper dp2 = new DailyPaper();
System.out.println("正在提交日报");
System.out.println("请输入日报内容:(换行请使用\\n)");
if(sc.hasNextLine()) {
dp2.setCharacter(sc.nextLine());
}
dp2.setDay(date.getDate());
dp2.setId(index2);
dp.add(dp2);
System.out.println("提交成功!");
}
/**学生查看日报*/
public void checkStu() {
Scanner sc = new Scanner(System.in);
int temp2=0;
int f=-1;
System.out.println("正在查看日报:");
System.out.println("请输入日期:");
if(sc.hasNextLine()) {
temp2=sc.nextInt();
}
for(DailyPaper temp:dp) {
if(temp.getId()==index2&&temp.getDay()==temp2) {
System.out.println(temp.getCharacter()+"\t"+temp.getDay());
f=1;
}
}
if(f==-1) {
System.out.println("该天没有日报");
}
}
/**学生修改日报*/
public void updateStu() {
Scanner sc = new Scanner(System.in);
int f=-1;
int temp2=0;
System.out.println("正在修改学生日报");
System.out.println("请输入日报的日期:");
if(sc.hasNextLine()) {
temp2=sc.nextInt();
}
for(DailyPaper temp:dp) {
if(temp.getId()==index2&&temp.getDay()==temp2) {
System.out.println("请输入修改的内容:");
if(sc.hasNextLine()) {
temp.setCharacter(sc.nextLine());
System.out.println("修改成功!");
f=1;
}
}
}
if(f==-1) {
System.out.println("该天没有日报");
}
}
/**学生删除日报*/
public void deleteStu() {
Scanner sc = new Scanner(System.in);
int f=-1;
int temp2=0;
System.out.println("正在删除学生日报");
System.out.println("请输入日报的日期:");
if(sc.hasNextLine()) {
temp2=sc.nextInt();
}
for(DailyPaper temp:dp) {
if(temp.getId()==index2&&temp.getDay()==temp2) {
temp=null;
System.out.println("删除成功!");
f=1;
}
}
if(f==-1) {
System.out.println("该天没有日报");
}
}
/**老师登录*/
public boolean entryTea() {
Scanner sc = new Scanner(System.in);
String $username="";
String $password="";
System.out.println("正在进行老师登录");
System.out.println("请输入用户名:");
if(sc.hasNext()) {
$username = sc.nextLine();
}
System.out.println("请输入密码:");
if(sc.hasNext()) {
$password = sc.nextLine();
}
if($username.equals("softeem")&&$password.equals("admin123")) {
System.out.println("登录成功!");
return true;
}
System.out.println("登录失败");
return false;
}
/**老师查看日报*/
public void checkTea() {
Scanner sc = new Scanner(System.in);
int temp2=0;
int $id=-1;
int f=-1;
System.out.println("正在查看日报:");
System.out.println("请输入学生的id");
if(sc.hasNextLine()) {
$id=sc.nextInt();
}
System.out.println("请输入日期:");
if(sc.hasNextLine()) {
temp2=sc.nextInt();
}
for(DailyPaper temp:dp) {
if(temp.getId()==$id&&temp.getDay()==temp2) {
System.out.println(temp.getCharacter()+"\t"+temp.getDay());
f=1;
}
}
if(f==-1) {
System.out.println("该学生该天没有日报");
}
}
/**老师修改日报*/
public void updateTea() {
Scanner sc = new Scanner(System.in);
int f=-1;
int $id=-1;
int temp2=0;
System.out.println("正在修改学生日报");
System.out.println("请输入学生的id");
if(sc.hasNextLine()) {
$id=sc.nextInt();
}
System.out.println("请输入日报的日期:");
if(sc.hasNextLine()) {
temp2=sc.nextInt();
}
for(DailyPaper temp:dp) {
if(temp.getId()==$id&&temp.getDay()==temp2) {
System.out.println("请输入修改的内容:");
if(sc.hasNextLine()) {
temp.setCharacter(sc.nextLine());
System.out.println("修改成功!");
f=1;
}
}
}
if(f==-1) {
System.out.println("该学生该天没有日报");
}
}
/**老师删除日报*/
public void deleteTea() {
Scanner sc = new Scanner(System.in);
int f=-1;
int $id=-1;
int temp2=0;
System.out.println("正在删除学生日报");
System.out.println("请输入学生的id");
if(sc.hasNextLine()) {
$id=sc.nextInt();
}
System.out.println("请输入日报的日期:");
if(sc.hasNextLine()) {
temp2=sc.nextInt();
}
for(DailyPaper temp:dp) {
if(temp.getId()==$id&&temp.getDay()==temp2) {
temp=null;
System.out.println("删除成功!");
f=-1;
}
}
if(f==-1) {
System.out.println("该天没有日报");
}
}
/**老师查询当天提交的日报*/
public void showAll() {
Scanner sc = new Scanner(System.in);
System.out.println("以下是今天提交的所有日报:");
for(DailyPaper item:dp) {
if(item.getDay()==date.getDate()) {
for(Student item2:stu) {
if(item2.getId()==item.getId()) {
System.out.println("id:"+item2.getId()+"\n日报内容:"+item.getCharacter());
}
}
}
}
}
/**老师统计当天日报提交数以及未提交数*/
public void sumDp() {
int sum=0;
for(DailyPaper item:dp) {
if(item.getDay()==date.getDate()) {
sum++;
}
}
System.out.println("今天提交的日报数为:"+sum);
int sum2=0;
sum2=stu.size()-sum;
System.out.println("今天没提交的日报数为:"+sum2);
}
/**界面管理*/
public void server() {
Scanner sc = new Scanner(System.in);
int item = -1;
System.out.println("日报管理系统");
System.out.println("学生注册请输入1");
System.out.println("学生登录请输入2");
System.out.println("老师登录请输入3");
if(sc.hasNext()) {
item=sc.nextInt();
}
switch(item) {
case 1: registerStu();
System.out.println("提交日报请输入1");
System.out.println("修改日报请输入2");
System.out.println("查询日报请输入3");
System.out.println("删除日报请输入4");
if(sc.hasNext()) {
item=sc.nextInt();
}
switch(item) {
case 1:submitStu();break;
case 2:updateStu();break;
case 3:checkStu();break;
case 4:deleteStu();break;
}
break;
case 2: passStu=entryStu();
if(passStu) {
System.out.println("提交日报请输入1");
System.out.println("修改日报请输入2");
System.out.println("查询日报请输入3");
System.out.println("删除日报请输入4");
if(sc.hasNext()) {
item=sc.nextInt();
}
switch(item) {
case 1:submitStu();break;
case 2:updateStu();break;
case 3:checkStu();break;
case 4:deleteStu();break;
}
}
break;
case 3: passTea=entryTea();
if(passTea) {
System.out.println("查询日报请输入1");
System.out.println("修改日报请输入2");
System.out.println("删除日报请输入3");
System.out.println("查询当天日报请输入4");
System.out.println("查询当天日报提交数及未提交数请输入5");
if(sc.hasNext()) {
item=sc.nextInt();
}
switch(item) {
case 1:checkTea();break;
case 2:updateTea();break;
case 3:deleteTea();break;
case 4:showAll();break;
case 5:sumDp();break;
}
}
break;
default:break;
}
passStu=false;
passTea=false;
System.out.println("返回主菜单请输入6");
if(sc.hasNext()) {
item=sc.nextInt();
}
if(item==6) {
server();
}
}
}
最后在主方法里调用管理类:
public class Test {
public static void main(String[] args) {
Manager ma = new Manager();
ma.server();
}
}
控制台演示如下: