学生成绩档案系统——————代码实现

题目:学生成绩档案管理系统

代码的实现

学生类

package pojo;
public class Student {
/** * 学生类
/
private String studentName;
private int studentNumber;
private String major;
private double classGoal1;
private double classGoal2;
private double classGoal3;
private double classGoal4;
private int mingci;
public int getMingci() {
return mingci;
}
public void setMingci(int mingci) {
this.mingci = mingci;
}
public double getGoal() {
Goal=classGoal1+classGoal2+classGoal3+classGoal4;
return Goal;
}
public void setGoal(double goal) {
Goal = goal;
}
private double Goal;
/
*
* 构造函数
* @param studentName
* @param major
* @param studentNumber
* @param classGoal1
* @param classGoal2
* @param classGoal3
* @param classGoal4
*/
public Student(String studentName,String major, int studentNumber, double classGoal1, double classGoal2, double classGoal3, double classGoal4) {
this.studentName = studentName;
this.studentNumber = studentNumber;
this.classGoal1 = classGoal1;
this.classGoal2 = classGoal2;
this.classGoal3 = classGoal3;
this.classGoal4 = classGoal4;
this.major=major;
}
public String getStudentName() {
return studentName;
}
public void setStudentName(String studentName) {
this.studentName = studentName;
}
public int getStudentNumber() {
return studentNumber;
}
public void setStudentNumber(int studentNumber) {
this.studentNumber = studentNumber;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
public double getClassGoal1() {
return classGoal1;
}
public void setClassGoal1(double classGoal1) {
this.classGoal1 = classGoal1;
}
public double getClassGoal2() {
return classGoal2;
}
public void setClassGoal2(double classGoal2) {
this.classGoal2 = classGoal2;
}
public double getClassGoal3() {
return classGoal3;
}
public void setClassGoal3(double classGoal3) {
this.classGoal3 = classGoal3;
}
public double getClassGoal4() {
return classGoal4;
}
public void setClassGoal4(double classGoal4) {
this.classGoal4 = classGoal4;
}
}

数据类

package data;
import pojo.Student;
import java.util.ArrayList;
import java.util.List;
public class dataBase {
//存储所有学生信息
private List studentList=new ArrayList<>();
public List getStudentList() {
return studentList;
}
public void setStudentList(List studentList) {
this.studentList = studentList;
}
public dataBase() {
Student student1=new Student(“张三”,“软工”,1,44,55,77,69);
Student student2=new Student(“李四”,“软工”,2,49,58,67,68);
Student student3=new Student(“小五”,“软工”,3,62,57,92,47);
Student student4=new Student(“小六”,“软工”,4,33,79,77,55);
studentList.add(student1);
studentList.add(student2);
studentList.add(student3);
studentList.add(student4);
}
}

方法类

package dao;
import pojo.Student;
import data.dataBase;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
public class studentDao {
private dataBase database;
public studentDao(dataBase database) {
this.database = database;
}
public ListfindAll(){
List studentList=new ArrayList<>();
for(Student student:database.getStudentList()){
if(student.getStudentNumber()!=null)
studentList.add(student);
}
return studentList;
}
/**
* 按姓名学号查找
* @param Name
* @return
/
public List findName(String Name,int i) {
List studentList = new ArrayList<>();
if (i == 1) {
for (Student student : database.getStudentList()) {
if (student.getStudentName().equals(Name)) {
studentList.add(student);
}
}
}else{
for(Student student:database.getStudentList()){
if(student.getStudentNumber().equals(Name)) {
studentList.add(student);
}}
}
return studentList;
}
/
*
* 新增
* @param user
/
public void insert(Student user){
database.getStudentList().add(user);
}
/
*
* 双向冒泡排序
/
public List doubleBubbleSort(List studentList){
List list=studentList;
Student student=null;
int left=0,right=studentList.size()-1;
while(left<right)
{
for(int i=left+1;i<=right;i++){
if(list.get(left).getGoal()<list.get(i).getGoal()){
student=list.get(i);
list.set(i,list.get(left));
list.set(left,student);
}
}
left++;
for(int i=right-1;i>=left;i–){
if(list.get(right).getGoal()>list.get(i).getGoal()){
student=list.get(i);
list.set(i,list.get(right));
list.set(right,student);
}
}
right–;
}
return list;
}/
*
希尔排序
/
public List shellSort(List studentList){
List list=studentList;
Student student=null;
int j;
for (int gap = list.size() / 2; gap > 0; gap /= 2) {
for (int i = gap; i < list.size(); i++) {
student=list.get(i);
double tmp=student.getGoal();
for (j = i; j >= gap && tmp>list.get(j-gap).getGoal(); j -= gap) {
list.set(j,list.get(j-gap));
}
list.set(j,student);
}
}
return list;
}
/
*
快速排序
/
public List quickSort(List studentList){
List list=studentList;
quickSort1(list,0,list.size()-1);
return list;
}
public void quickSort1(List studentList,int left,int right){
if(left<right){
int i=left,j=right;
Student student=studentList.get(left);
double x=student.getGoal();
while(i<j){
while((i<j)&&(studentList.get(j).getGoal()<x)){
j–;
}
if(i<j){
studentList.set(i,studentList.get(j));
i++;
}
while((i<j)&&(studentList.get(i).getGoal()>x)){
i++;
}
if(i<j){
studentList.set(j,studentList.get(i));
j–;
}
}
studentList.set(i,student);
quickSort1(studentList,left,i-1);
quickSort1(studentList,i+1,right);
}
}
/
*
堆排序
/
public List heapSort(List studentList){
List list=studentList;
int len = list.size();
buildMaxHeap(list, len);
for (int i = len - 1; i > 0; i–) {
swap(list, 0, i);
len–;
heapify(list, 0, len);
}
return list;
}
private void buildMaxHeap(List studentList, int len) {
for (int i = (int) Math.floor(len / 2); i >= 0; i–) {
heapify(studentList, i, len);
}
}
private void heapify(List studentList, int i, int len) {
int left = 2 * i + 1;
int right = 2 * i + 2;
int largest = i;
if (left < len && studentList.get(left).getGoal() < studentList.get(largest).getGoal()) {
largest = left;
}
if (right < len && studentList.get(right).getGoal() < studentList.get(largest).getGoal()) {
largest = right;
}
if (largest != i) {
swap(studentList, i, largest);
heapify(studentList, largest, len);
}
}
private void swap(List studentList, int i, int j) {
Student student=studentList.get(i);
studentList.set(i,studentList.get(j));
studentList.set(j,student);
}
/

* 排名
/
public void showMingci(List studentList) {
int j = 1;
for (int i = 0; i < studentList.size(); i++) {
if(i>0) {
if (studentList.get(i).getGoal() == studentList.get(i - 1).getGoal()) {
System.out.println(j + “.” + " 姓名 " + studentList.get(i).getStudentName() + " 专业 " + studentList.get(i).getMajor() + " 总分 " + studentList.get(i).getGoal() + " 名次 " + (j - 1));
j++;
continue;
}
}
System.out.println(j + “.” + " 姓名 " + studentList.get(i).getStudentName() + " 专业 " + studentList.get(i).getMajor() + " 总分 " + studentList.get(i).getGoal() + " 名次 " + j);
j++;
}
}
/
*
* 删除学生信息
* @param number
*/
public void delete(String number){
int parseInt=Integer.parseInt(number);
database.getStudentList().remove(parseInt-1);
}
}

主程序

package service;
import pojo.Student;
import dao.studentDao;
import data.dataBase;
import java.util.List;
import java.util.Scanner;
public class Zhu {
private Scanner scanner=new Scanner(System.in);
private studentDao studentDao;
private int choose;
/**
* 构造方法
/
public Zhu(dataBase database){
studentDao=new studentDao(database);
}
/
*
* 起始菜单
*/
public void start(){
System.out.println(“1,所有学生信息”);
System.out.println(“2,查询学生信息”);
System.out.println(“3,修改学生信息”);
System.out.println(“4,退出”);
System.out.println(“请选择”);
choose=scanner.nextInt();
switch (choose){
case 1:check();break;
case 2:goal();break;
case 3:Add();break;
case 4:
System.out.println(“感谢使用,再见!”);break;
default:
System.out.println(“无效选项,请重新输入”);
start();
}
}
public void check(){
Listlist=null;
list=studentDao.findAll();
for(Student student:list)
System.out.println(“姓名:”+student.getStudentName()+“学号”+student.getStudentNumber()+“专业”+student.getMajor()+" 科一"+student.getClassGoal1()+“科二”+student.getClassGoal2()+“科三”+student.getClassGoal3()+“科四”+student.getClassGoal4()+“总分:”+student.getGoal());
System.out.println(“输入1返回上一层”);
System.out.println(“输入2退出”);
System.out.println(“请选择:”);
int x=scanner.nextInt();
switch (x){
case 1:start();break;
case 2:break;
default:
System.out.println(“非法参数,重选”);
check();
}
}
public void goal(){
System.out.println(“请选择要查询的信息:”);
System.out.println(“1,成绩”);
System.out.println(“2,姓名”);
System.out.println(“3,学号”);
System.out.println(“4,返回上一层”);
Listlist=null;
choose=scanner.nextInt();
switch (choose){
case 1:
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,退出”);
int x=scanner.nextInt();
switch (x){
case 1:
list=studentDao.shellSort(studentDao.findAll());
studentDao.showMingci(list);goal();break;
case 2:
list=studentDao.doubleBubbleSort(studentDao.findAll());
studentDao.showMingci(list);goal();break;
case 3:
list=studentDao.quickSort(studentDao.findAll());
studentDao.showMingci(list);goal();break;
case 4:
list=studentDao.heapSort(studentDao.findAll());
studentDao.showMingci(list);goal();break;
case 5:goal();break;
case 6:break;
}break;
case 2:
System.out.println(“请输入要查询的名字”);
String cha=scanner.next();
list=studentDao.findName(cha,1);
for (Student student : list)
System.out.println(“姓名:” + student.getStudentName() + “学号” + student.getStudentNumber() + “科一” + student.getClassGoal1() + “科二” + student.getClassGoal1() + “科三” + student.getClassGoal1() + “科四” + student.getClassGoal1() + “总分:” + student.getGoal());
System.out.println(“1,返回上一层”);
System.out.println(“2,退出”);
int m=scanner.nextInt();
switch (m){
case 1:goal();break;
case 2:break;
}
case 3:
System.out.println(“请输入要查询的学号”);
String hao=scanner.next();
list=studentDao.findName(hao,2);
for (Student student : list)
System.out.println(“姓名:” + student.getStudentName() + “学号” + student.getStudentNumber() + “科一” + student.getClassGoal1() + “科二” + student.getClassGoal1() + “科三” + student.getClassGoal1() + “科四” + student.getClassGoal1() + “总分:” + student.getGoal());
System.out.println(“1,返回上一层”);
System.out.println(“2,退出”);
int n=scanner.nextInt();
switch (n){
case 1:goal();break;
case 2:break;
}
case 4:start();break;
default:
System.out.println(“非法参数,重选”);
goal();break;
}
}
public void Add(){
System.out.println(“1.新增学生”);
System.out.println(“2.修改成绩”);
System.out.println(“3.删除学生”);
System.out.println(“输入4返回主菜单”);
System.out.println(“输入0退出”);
choose=scanner.nextInt();
switch (choose){
case 1:
Student student1;
System.out.println(“请输入学生姓名”);
String name=scanner.next();
System.out.println(“请输入学生学号”);
String number=scanner.next();
if(studentDao.findName(number,2)!=null&&studentDao.findName(number,2).size()>0){
System.out.println(“学号重复,输入1返回上一层:”);
int n=scanner.nextInt();
if(n==1){
Add();
}else
break;
}
System.out.println(“请输入学生专业”);
String major=scanner.next();
System.out.println(“请输入学生科一”);
int goal1=scanner.nextInt();
System.out.println(“请输入学生科二”);
int goal2=scanner.nextInt();
System.out.println(“请输入学生科三”);
int goal3=scanner.nextInt();
System.out.println(“请输入学生科四”);
int goal4=scanner.nextInt();
student1=new Student(name,major,number,goal1,goal2,goal3,goal4);
studentDao.insert(student1);
System.out.println(“添加成功”);
System.out.println(“1,返回上一层”);
System.out.println(“2,退出”);
int m=scanner.nextInt();
switch (m){
case 1:Add();break;
case 2:break;
}break;
case 2:
Listlist=null;
list=studentDao.findAll();
for(Student student:list)
System.out.println(“姓名:”+student.getStudentName()+“学号”+student.getStudentNumber()+“科一”+student.getClassGoal1()+“科二”+student.getClassGoal2()+“科三”+student.getClassGoal3()+“科四”+student.getClassGoal4()+“总分:”+student.getGoal());
System.out.println(“输入需要修改学生的学号”);
String n=scanner.next();
list=studentDao.findName(n,1);
for (Student student : list)
System.out.println(“姓名:” + student.getStudentName() + “学号” + student.getStudentNumber() + “科一” + student.getClassGoal1() + “科二” + student.getClassGoal1() + “科三” + student.getClassGoal1() + “科四” + student.getClassGoal1() + “总分:” + student.getGoal());
System.out.println(“输入需要修改学生的科目成绩”);
int goals=scanner.nextInt();
switch (goals){
case 1:
System.out.println(“请输入修改后的分数”);
int goals1=scanner.nextInt();
list.get(0).setClassGoal1(goals1);
System.out.println(“修改成功”);
System.out.println(“1,返回上一层”);
System.out.println(“2,退出”);
choose=scanner.nextInt();
switch (choose){
case 1:Add();break;
case 2:break;
}break;
case 2:
System.out.println(“请输入修改后的分数”);
int goals2=scanner.nextInt();
list.get(0).setClassGoal2(goals2);
System.out.println(“修改成功”);
System.out.println(“1,返回上一层”);
System.out.println(“2,退出”);
choose=scanner.nextInt();
switch (choose){
case 1:Add();break;
case 2:break;
}break;
case 3:
System.out.println(“请输入修改后的分数”);
int goals3=scanner.nextInt();
list.get(0).setClassGoal3(goals3);
System.out.println(“修改成功”);
System.out.println(“1,返回上一层”);
System.out.println(“2,退出”);
choose=scanner.nextInt();
switch (choose){
case 1:Add();break;
case 2:break;
}break;
case 4:
System.out.println(“请输入修改后的分数”);
int goals4=scanner.nextInt();
list.get(0).setClassGoal4(goals4);
System.out.println(“修改成功”);
System.out.println(“1,返回上一层”);
System.out.println(“2,退出”);
choose=scanner.nextInt();
switch (choose){
case 1:Add();break;
case 2:break;
}break;
}
case 3:
System.out.println(“请输入要删除学生的学号”);
String num=scanner.next();
studentDao.delete(num);
System.out.println(“删除成功”);
System.out.println(“1,返回上一层”);
System.out.println(“2,退出”);
choose=scanner.nextInt();
switch (choose){
case 1:Add();break;
case 2:break;
}break;
case 4:
start();break;
case 0:break;
}
}
}

Main方法

package test;
import dao.studentDao;
import data.dataBase;
import service.Zhu;
public class Test {
public static void main(String[] args) {
dataBase database=new dataBase();
Zhu system=new Zhu(database);
system.start();
}
}

代码运行

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值