java期末大作业(最简单的系统)

您所在的位置:网站首页 大一java实训报告 java期末大作业(最简单的系统)

java期末大作业(最简单的系统)

2024-03-10 14:29| 来源: 网络整理| 查看: 265

因为西安疫情的原因,我们很多考试都已经取消了,没有办法进行线下的考试,就连java程序设计也成了线上的考试。第一次写博客,就想着和大家一起交流,因为是初学者,很多地方也有做的不好的地方,请大家多多指教。顺便提一句,西安加油。

好了废话不多说,直接给大家贴上代码:

1,学生信息管理系统(这个应该大家写的最多的了,我给大家贴上):

(1),首先就是学生类:

public class Student { private String name; // 姓名 private String sex; // 性别 private String nativePlace; // 籍贯 private String collage; // 学院 private String number; // 学号 public Student(String name, String sex, String nativePlace, String collage, String number) { this.name = name; this.sex = sex; this.nativePlace = nativePlace; this.collage = collage; this.number = number; } public void setName(String name) { this.name = name; } public void setSex(String sex) { this.sex = sex; } public void setNativePlace(String nativePlace) { this.nativePlace = nativePlace; } public void setCollage(String collage) { this.collage = collage; } public void setNumber(String number) { this.number = number; } // 需要统计籍贯为陕西的人数,男生女生人数,每个学院的人数 public String getSex() { return this.sex; } public String getNativePlace() { return this.nativePlace; } public String getCollage() { return this.collage; } // 获取学生的学号 public String getNumber() { return this.number; } public String getName() { return this.name; } }

(2),学生类的测试类(我是基于集合进行存储和操作,如果有更好的方法,欢迎大家一起讨论)

import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class StudentTest { public static void main(String[] args) { List list = new ArrayList(); System.out.println("输入学生人数:"); int num = new Scanner(System.in).nextInt(); mainMenu(list, num); } // 主界面方法 public static void mainMenu(List list, int num) { while (true) { System.out.println("==================="); System.out.println("1,添加学生信息"); System.out.println("2,修改学生信息"); System.out.println("3,删除学生信息"); System.out.println("4,统计各学院以及男女生的人数"); System.out.println("5,根据学号查找学生信息"); System.out.println("6,退出"); System.out.println("===================="); System.out.println("欢迎使用,选择您想进行的操作序号:"); String no = new Scanner(System.in).nextLine(); switch (no) { case "1": insert(list, num); insertStudentMessageToFile(list); break; case "2": upDateStudentMessage(list, num); insertStudentMessageToFile(list); break; case "3": deleteStudentMessage(list, num); insertStudentMessageToFile(list); break; case "4": getStudentNumber(list, num); break; case "5": findStudentMessgae(list,num); break; case "6": System.out.println("谢谢使用,再见"); System.exit(0); default: System.out.println("只能输入1-5的序号,您输入有误"); } } } // 添加学生信息; public static void insert(List list, int num) { for (int i = 0; i < num; i++) { System.out.println("输入第" + (i+1) + "个学生的姓名:"); String name = new Scanner(System.in).nextLine(); System.out.println("输入第" + (i+1) + "个学生的学号:"); String number = new Scanner(System.in).nextLine(); System.out.println("输入第" + (i+1) + "个学生的性别:"); String sex = new Scanner(System.in).nextLine(); System.out.println("输入第" + (i+1) + "个学生的籍贯:"); String nativePlace = new Scanner(System.in).nextLine(); System.out.println("输入第" + (i+1) + "个学生的所在学院:"); String collage = new Scanner(System.in).nextLine(); Student stu = new Student(name, sex, nativePlace, collage, number); list.add(stu); } } // 统计籍贯为陕西的学生人数,以及男女生学生的人数 public static void getStudentNumber(List list, int num) { if (list.size() == 0) { System.out.println("还没有输入学生信息"); // 没有学生信息退出系统 System.exit(0); } int sxCount = 0, manCount = 0, womenCount = 0, computerCollega = 0, jidianCollega = 0; for (int i = 0; i < num; i++) { if (list.get(i).getNativePlace().equals("陕西省") || list.get(i).getNativePlace().equals("陕西")) { sxCount++; } if (list.get(i).getSex().equals("男") || list.get(i).getSex().equals("男生")) { manCount++; } else { womenCount++; } if (list.get(i).getCollage().equals("计算机学院") || list.get(i).getCollage().equals("计算机")) { computerCollega++; } if (list.get(i).getCollage().equals("机电学院") || list.get(i).getCollage().equals("机电")) { jidianCollega++; } } System.out.println("籍贯为陕西的人数为:" + sxCount); System.out.println("男生人数为:" + manCount); System.out.println("女生人数为:" + womenCount); System.out.println("机电学员人数为:" + jidianCollega); System.out.println("计算机学院人数为:" + computerCollega); } // 根据学号查询学生信息 public static void findStudentMessgae(List list, int num) { if (list.size() == 0) { System.out.println("还没有输入学生信息"); // 没有学生信息退出系统 System.exit(0); } System.out.println("输入查询的学生的学号:"); String studentNumber = new Scanner(System.in).nextLine(); for (int i = 0; i < num; i++) { if (list.get(i).getNumber().equals(studentNumber)) { System.out.println("学生的姓名:" + list.get(i).getName() + "\n学号:" + list.get(i).getNumber() + "\n性别:" + list.get(i).getSex() + "\n籍贯:" + list.get(i).getNativePlace() + "\n学院:" + list.get(i).getCollage()); } } } // 修改学生的信息 public static void upDateStudentMessage(List list, int num) { if (list.size() == 0) { System.out.println("还没有输入学生信息"); // 没有学生信息退出系统 System.exit(0); } System.out.println("输入学生的学号:"); String studentNumber = new Scanner(System.in).nextLine(); for (int i = 0; i < num; i++) { if (list.get(i).getNumber().equals(studentNumber)) { Scanner src = new Scanner(System.in); System.out.println("输入你想改的信息标号:"); System.out.println("1,修改姓名信息"); System.out.println("2,修改性别信息"); System.out.println("3,修改学号信息"); System.out.println("4,修改籍贯信息"); System.out.println("5,修改学院信息"); System.out.println("===================="); int no = src.nextInt(); if (no == 1) { // 因为在nextInt()和nextLine()方法里,会出现一个\n,再输入新的名字以后,nextLine():接收到\n String name1 = src.nextLine(); System.out.println("输入新的姓名:"); String name = src.nextLine(); list.get(i).setName(name); } else if (no == 2) { String sex1 = src.nextLine(); System.out.println("输入新的性别:"); String sex = src.nextLine(); list.get(i).setSex(sex); } else if (no == 3) { System.out.println("输入新的学号"); String stuNumber = src.nextLine(); list.get(i).setNumber(stuNumber); } else if (no == 4) { String nativePlace1 = src.nextLine(); System.out.println("输入新的籍贯:"); String nativePlace = src.nextLine(); list.get(i).setNativePlace(nativePlace); } else { String collage1 = src.nextLine(); System.out.println("输入新的学院:"); String collage = src.nextLine(); list.get(i).setCollage(collage); } } } } // 删除学生信息 public static void deleteStudentMessage(List list, int num) { if (list.size() == 0) { System.out.println("还没有输入学生信息"); // 没有学生信息退出系统 System.exit(0); } System.out.println("输入删除学生的学号:"); String deleteStudentNumber = new Scanner(System.in).nextLine(); for (int i = 0; i < num; i++) { if (list.get(i).getNumber().equals(deleteStudentNumber)) { System.out.println("学生的姓名:" + list.get(i).getName() + "\n学号:" + list.get(i).getNumber() + "\n性别:" + list.get(i).getSex() + "\n籍贯:" + list.get(i).getNativePlace() + "\n学院:" + list.get(i).getCollage()); System.out.println("请确认是否为要删除的学生的信息(yes/no):"); String judge = new Scanner(System.in).nextLine(); if (judge.equals("yes") || judge.equals("Yes")) { list.remove(i); System.out.println("删除成功!!"); return; } else { System.out.println("已经取消删除"); return; } } } } // 将学生的信息写入文件中 public static void insertStudentMessageToFile(List list) { File file = new File("StudentMessage.txt"); if (!file.exists()) { try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } System.out.println("创建成功"); } else { System.out.println("已经存在该文件"); } BufferedWriter bfw = null; try { bfw = new BufferedWriter(new FileWriter(file)); String tableType = "姓名\t\t学号\t\t性别\t\t籍贯\t\t所在院系"; bfw.write(tableType); bfw.newLine(); for (int i = 0; i < list.size(); i++) { bfw.write(list.get(i).getName(), 0, list.get(i).getName().length()); bfw.write("\t\t"); bfw.write(list.get(i).getNumber(), 0, list.get(i).getNumber().length()); bfw.write("\t\t"); bfw.write(list.get(i).getSex(), 0, list.get(i).getSex().length()); bfw.write("\t\t"); bfw.write(list.get(i).getNativePlace(), 0, list.get(i).getNativePlace().length()); bfw.write("\t\t"); bfw.write(list.get(i).getCollage(), 0, list.get(i).getCollage().length()); bfw.newLine(); } System.out.println("录取完成"); } catch (IOException e) { e.printStackTrace(); } finally { if (bfw != null) { try { bfw.flush(); bfw.close(); } catch (IOException e) { e.printStackTrace(); } } } } }

注意: 我们在接收一个int型数据以后,再次接收String类型的数据的时候,会将\n传入String的接收语句中,就会直接跳过,我们在中间在用一个接收语句接收‘\n’就好。

例如:

int no = src.nextInt(); if (no == 1) { // 因为在nextInt()和nextLine()方法里,会出现一个\n,再输入新的名字以后,nextLine():接收到\n String name1 = src.nextLine(); System.out.println("输入新的姓名:"); String name = src.nextLine(); list.get(i).setName(name); // 如果没有name1的话会直接跳过语句。

二,第二个给大家分享的是一个运动员信息的管理系统(其实我觉得老师布置的10个任务都是一样的,没有难度~~~~).

(1),运动员类:

public class player{ private String name; private String joinGameNumber; String run; // 4*100成绩 String jump; // 跳高成绩 String jumpWidth; // 跳远成绩 public player(String name, String joinGameNumber, String run, String jump, String jumpWidth) { this.name = name; this.joinGameNumber = joinGameNumber; this.run = run; this.jump = jump; this.jumpWidth = jumpWidth; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getJoinGameNumber() { return joinGameNumber; } public void setJoinGameNumber(String joinGameNumber) { this.joinGameNumber = joinGameNumber; } }

大家请忽略的变量命名,(四级未过的人,~~~~)

(2),测试类:

import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Scanner; public class playTest { public static void main(String[] args) { // 三个运动项目分别为: 4*100;跳远 调高 List list = new ArrayList(); mainMenu(list); } public static void mainMenu(List list) { while (true) { System.out.println("-----------"); System.out.println("1,输入运动员信息"); System.out.println("2,查看各类成绩"); System.out.println("3,降序排列成绩"); System.out.println("4,查看破纪录运动员名单"); System.out.println("5,输入参赛号码查询运动员成绩"); System.out.println("6,退出程序"); System.out.println("----------"); System.out.println("输入你想进行的操作编号:"); int num = new Scanner(System.in).nextInt(); switch (num) { case 1: insertPlayerMessage(list); break; case 2: checkedMessage(list); break; case 3: lowSort(list); break; case 4: checkedPlayerMenu(list); break; case 5: checkedNumberMessage(list); break; case 6: System.out.println("欢迎使用"); System.exit(0); default: System.out.println("您输入的序号错误,重新输入"); mainMenu(list); break; } } } public static void insertPlayerMessage(List list) { // 输入运动员信息 System.out.println("输入运动员人数:"); int n = new Scanner(System.in).nextInt(); for (int i = 0; i < n; i++) { System.out.println("输入第" + (i + 1) + "个运动员的信息"); System.out.println("输入姓名:"); String name = new Scanner(System.in).nextLine(); System.out.println("输入号码:"); String joinPlayerNumber = new Scanner(System.in).nextLine(); System.out.println("输入4*100成绩:"); String fourScore = new Scanner(System.in).nextLine(); System.out.println("输入跳远成绩:"); String jumpWidthScore = new Scanner(System.in).nextLine(); System.out.println("输入跳高成绩:"); String jumpHighScore = new Scanner(System.in).nextLine(); player ply = new player(name, joinPlayerNumber, fourScore, jumpWidthScore, jumpHighScore); list.add(ply); } } public static void checkedMessage(List list) { //查看各类运动的成绩 int runAverage = 0, jumpWidthAverage = 0, jumpAverage = 0; for (int i = 0; i < list.size(); i++) { String run = list.get(i).run; String jumpWidth = list.get(i).jumpWidth; String jump = list.get(i).jump; runAverage += Integer.parseInt(run); jumpAverage += Integer.parseInt(jump); jumpWidthAverage += Integer.parseInt(jumpWidth); } System.out.println("4*100米接力平均成绩:" + runAverage / list.size() + "\n" + "跳高平均成绩:" + jumpAverage / list.size() + "\n" + "跳远平均成绩:" + jumpWidthAverage / list.size()); } public static void lowSort(List list) { // 计算最好和最差成绩,并且把每个项目的成绩按照降序排列 int[] arr1 = new int[list.size()]; int[] arr2 = new int[list.size()]; int[] arr3 = new int[list.size()]; for (int i = 0; i < list.size(); i++) { arr1[i] = Integer.parseInt(list.get(i).run); arr2[i] = Integer.parseInt(list.get(i).jump); arr3[i] = Integer.parseInt(list.get(i).jumpWidth); } Arrays.sort(arr1); System.out.println("4*100的最好成绩为:" + arr1[0] + "\n" + "最坏成绩为:" + arr1[arr1.length - 1]); Arrays.sort(arr2); System.out.println("跳高的最好成绩为:" + arr2[arr2.length - 1] + "\n" + "最坏成绩为:" + arr2[0]); Arrays.sort(arr3); System.out.println("跳远的最好成绩为:" + arr3[arr3.length - 1] + "\n" + "最坏成绩为:" + arr3[0]); System.out.print("4*100的成绩降序排列:"); for (int i = arr1.length - 1; i >= 0; i--) { System.out.print(" " + arr1[i] + ","); } System.out.print("跳高成绩降序排列:"); for (int i = arr2.length - 1; i >= 0; i--) { System.out.print(" " + arr2[i] + ","); } System.out.println("跳远成绩降序排列:"); for (int i = arr3.length - 1; i >= 0; i--) { System.out.print(" " + arr3[i] + ","); } } public static void checkedPlayerMenu(List list) { System.out.println("输入原来的跳远记录:"); String oldRunScore = new Scanner(System.in).nextLine(); System.out.println("输入原来的跳高记录:"); String oldJumpScore = new Scanner(System.in).nextLine(); System.out.println("输入原来的跳远记录:"); String oldJumpWidthScore = new Scanner(System.in).nextLine(); for (int i = 0; i < list.size(); i++) { if (list.get(i).run.compareTo(oldRunScore) < 0) { System.out.println("破4*100记录者为:" + list.get(i).getName()); } else { System.out.println("无破4*100米接力的运动员"); } if (list.get(i).jump.compareTo(oldJumpScore) > 0) { System.out.println("破跳高纪录者为:" + list.get(i).getName()); } if (list.get(i).jumpWidth.compareTo(oldJumpWidthScore) > 0) { System.out.println("破跳远纪录者为:" + list.get(i).getName()); } } } public static void checkedNumberMessage(List list) { System.out.println("输入你想查询的运动员的参赛号码:"); String joinGameNumber = new Scanner(System.in).nextLine(); for (int i = 0; i < list.size(); i++) { if (joinGameNumber.equals(list.get(i).getJoinGameNumber())) { System.out.println("4*100接力成绩:" + list.get(i).run + "\n" + "跳远成绩:" + list.get(i).jumpWidth + "\n" + "跳高成绩:" + list.get(i).jump); } } } }

三,第三个也是一样的,一个科技比赛的题(代码其实都差不多,你们可以参考这些东西,写你们自己的期末大作业)

比赛类:

public class Competition { // 竞赛项目 private String competitionAcm; private String competitionDataFountain; // 大数据 private String competitionCtf; // 网络安全成绩 private String name; private String testNumber; public Competition(String competitionAcm, String competitionDataFountain, String competitionCtf, String name, String testNumber) { this.competitionAcm = competitionAcm; this.competitionDataFountain = competitionDataFountain; this.competitionCtf = competitionCtf; this.name = name; this.testNumber = testNumber; } public String getCompetitionAcm() { return competitionAcm; } public String getCompetitionDataFountain() { return competitionDataFountain; } public String getCompetitionCtf() { return competitionCtf; } public String getName() { return name; } public String getTestNumber() { return testNumber; } }

测试类:

import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Scanner; public class CompetitionTest { public static void main(String[] args) { List list = new ArrayList(); mainMenu(list); } public static void mainMenu(List list) { while (true) { System.out.println("-----------"); System.out.println("1,输入参赛人员信息"); System.out.println("2,统计成绩"); System.out.println("3,降序排列成绩,以及前三名"); System.out.println("4,输入参赛号码查询比赛成绩"); System.out.println("5,退出程序"); System.out.println("----------"); System.out.println("输入你想进行的操作编号:"); int num = new Scanner(System.in).nextInt(); switch (num) { case 1: insertPlayerMessage(list); break; case 2: checkedMessage(list); // 计算每个项目的平均成绩 break; case 3: lowSort(list); break; case 4: checkedNumberMessage(list); break; case 5: System.out.println("感谢使用"); System.exit(0); default: System.out.println("您输入的序号错误,重新输入"); mainMenu(list); break; } } } public static void insertPlayerMessage(List list) { System.out.println("输入参赛人数:"); int n = new Scanner(System.in).nextInt(); for (int i = 0; i < n; i++) { System.out.println("输入第" + (i + 1) + "个参赛人员的信息"); System.out.println("输入姓名:"); String name = new Scanner(System.in).nextLine(); System.out.println("输入号码:"); String joinComNumber = new Scanner(System.in).nextLine(); System.out.println("输入ACM成绩:"); String AcmScore = new Scanner(System.in).nextLine(); System.out.println("输入CTR成绩:"); String CTRScore = new Scanner(System.in).nextLine(); System.out.println("输入DataFountion成绩:"); String DataFountionScore = new Scanner(System.in).nextLine(); Competition com = new Competition(AcmScore, DataFountionScore, CTRScore, name, joinComNumber); list.add(com); } } public static void lowSort(List list) { int[] arr = new int[list.size()]; System.out.println("ACM比赛的人员成绩:"); for (int i = 0; i < list.size(); i++) { arr[i] = Integer.parseInt(list.get(i).getCompetitionAcm()); } Arrays.sort(arr); for (int i = arr.length - 1; i >= 0; i--) { System.out.println(list.get(i).getName() + "\t:\t" + list.get(i).getCompetitionAcm() + "\n"); } System.out.println("ACM比赛的前三名为:" + arr[arr.length - 1] + "," + arr[arr.length - 2] + "," + arr[arr.length - 3]); System.out.println("CTR比赛的人员成绩:"); for (int i = 0; i < list.size(); i++) { arr[i] = Integer.parseInt(list.get(i).getCompetitionCtf()); } Arrays.sort(arr); for (int i = arr.length - 1; i >= 0; i--) { System.out.println(list.get(i).getName() + " : " + list.get(i).getCompetitionCtf() + "\n"); } System.out.println("CRT比赛的前三名为:" + arr[arr.length - 1] + "," + arr[arr.length - 2] + "," + arr[arr.length - 3]); System.out.println("DataFountion比赛的人员成绩:"); for (int i = 0; i < list.size(); i++) { arr[i] = Integer.parseInt(list.get(i).getCompetitionAcm()); } Arrays.sort(arr); for (int i = arr.length - 1; i >= 0; i--) { System.out.println(list.get(i).getName() + " : " + list.get(i).getCompetitionDataFountain() + "\n"); } System.out.println("DataFountion比赛的前三名为:" + arr[arr.length - 1] + "," + arr[arr.length - 2] + "," + arr[arr.length - 3]); } public static void checkedMessage(List list) { int AcmScore = 0, CtrScore = 0, DataFountionScore = 0; for (Competition competition : list) { AcmScore += Integer.parseInt(competition.getCompetitionAcm()); CtrScore += Integer.parseInt(competition.getCompetitionCtf()); DataFountionScore += Integer.parseInt(competition.getCompetitionDataFountain()); } System.out.println("acm总成绩:\t" + AcmScore + " 平均成绩为:\t" + AcmScore / list.size() + "\n" + "CTF总成绩:\t" + CtrScore + "平均成绩为:\t" + CtrScore / list.size() + "\n" + "DataFountion总成绩:\t" + DataFountionScore + "平均成绩为:\t" + DataFountionScore / list.size()); int acmNumber = 0, ctrNumber = 0, dataFountionNumber = 0; for (Competition competition : list) { if (Integer.parseInt(competition.getCompetitionAcm()) >= AcmScore / list.size()) { acmNumber++; } if (Integer.parseInt(competition.getCompetitionCtf()) >= CtrScore / list.size()) { ctrNumber++; } if (Integer.parseInt(competition.getCompetitionDataFountain()) >= DataFountionScore / list.size()) { dataFountionNumber++; } } System.out.println("acm比赛高于平均值的人数为:" + acmNumber + "\n" + "ctr比赛高于平均值的人数为:" + ctrNumber + "\n" + "datafountion比赛高于平均值的人数为:" + dataFountionNumber); } public static void checkedNumberMessage(List list) { System.out.println("输入你想查询的运动员的参赛号码:"); String joinGameNumber = new Scanner(System.in).nextLine(); for (Competition competition : list) { if (joinGameNumber.equals(competition.getTestNumber())) { System.out.println("acm成绩:\t" + "\t" + competition.getCompetitionAcm() + "\n" + "CTF成绩:\t" + "\t" + competition.getCompetitionCtf() + "\n" + "DataFountion成绩:\t" + "\t" + competition.getCompetitionDataFountain()); } } } }

大家拿着就可以用了,祝大家学业有成。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3