最近新学了java,用一个小项目来练练手。
编写一个模拟录入学生成绩的程序,该程序包括一个用来记录课程信息的类(Course)
记录学生信息的类(Student)
用来记录学生选课信息的类(SelectCourse)
以及一个用来完成录入过程的类(Test)。
下附上代码
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Student[] students = new Student[3];
students[0] = new Student("Ailce");
students[0].setSid();
students[1] = new Student("Bob");
students[1].setSid();
students[2] = new Student("Lucy");
students[2].setSid();
Course[] courses = new Course[2];
courses[0] = new Course(1, "java", 3);
courses[1] = new Course(2, "C++", 2);
SelectCourse[] selectCourses = new SelectCourse[6];
int[] credits = new int[6]; // 记录总学分
Scanner input = new Scanner(System.in);
for (int i = 0; i < selectCourses.length; i++) {
System.out.println("请输入学生学号:(1/2/3)");
int sid = input.nextInt() - 1;
System.out.println("请输入学生课程号:(0/1)");
int cid = input.nextInt();
System.out.println("请输入学生该科成绩:(0-100)");
double score = input.nextDouble();
selectCourses[i] = new SelectCourse(sid, cid, score);
if (selectCourses[i].getCid() == 1) {
courses[0].addStudent(selectCourses[i].getScore());
} else {
courses[1].addStudent(selectCourses[i].getScore());
}
if (selectCourses[i].getSid() == 0) {
students[0].addCourse(selectCourses[i].getScore());
if (selectCourses[i].getScore() >= 60) {
students[0].Total(selectCourses[i].getCid());
} else {
continue;
}
} else if (selectCourses[i].getSid() == 1) {
students[1].addCourse(selectCourses[i].getScore());
if (selectCourses[i].getScore() >= 60) {
students[1].Total(selectCourses[i].getCid());
} else {
continue;
}
} else {
students[2].addCourse(selectCourses[i].getScore());
if (selectCourses[i].getScore() >= 60) {
students[2].Total(selectCourses[i].getCid());
} else {
continue;
}
}
}
for (int i = 0; i < selectCourses.length; i++) {
if (selectCourses[i].getScore() >= 60) {
if (i % 2 != 0) {
credits[i] += 2;
} else {
credits[i] += 3;
}
}
}
for (int i = 0; i < 3; i++) {
if (students[i].getAvgScore() >= 60) {
System.out.println("学号:" + students[i].getSid());
System.out.println("姓名:" + students[i].getSname());
System.out.println("选课数:" + students[i].getNum());
System.out.println("平均分:" + students[i].getAvgScore());
System.out.println("总学分:" + (credits[2 * i + 1] + credits[2 * i]));
System.out.println("java课成绩:" + selectCourses[2 * i].getScore() + " 本门课学分:" + courses[0].getCredits());
System.out.println(
"C++课成绩:" + selectCourses[2 * i + 1].getScore() + " 本门课学分:" + courses[1].getCredits());
}
}
System.out.println("你想查谁呢?输学号吧(1/2/3)");
int sid = input.nextInt()-1;
System.out.println("学号:" + students[sid].getSid());
System.out.println("姓名:" + students[sid].getSname());
System.out.println("选课数:" + students[sid].getNum());
System.out.println("平均分:" + students[sid].getAvgScore());
System.out.println("总学分:" + (credits[2 * sid + 1] + credits[2 * sid]));
System.out.println("java课成绩:" + selectCourses[2 * sid].getScore() + "获得学分:" + courses[0].getCredits());
System.out.println("C++课成绩:" + selectCourses[2 * sid + 1].getScore() + "获得学分:" + courses[1].getCredits());
}
}
class Course {
private int cid; // 课程号
private String cname; // 课程名
private double credits; // 学分
private int num; // 选课人数
private double avgScore; // 平均分(本门课)
public Course(int cid, String cname, double credits) {
this.cid = cid;
this.cname = cname;
this.credits = credits;
this.num = 0;
this.avgScore = 0;
}
public int getCid() {
return cid;
}
public String getCname() {
return cname;
}
public double getCredits() {
return credits;
}
public int getNum() {
return num;
}
public double getAvgScore() {
return avgScore;
}
public void setNum(Student student) {
this.num = num;
}
public void setAvgScore(Student student) {
this.avgScore = avgScore;
}
public void addStudent(double score) {
this.num++;
this.avgScore = ((num - 1) * avgScore + score) / num;
}
}
class Student {
private static int NextId = 1;
private int sid; // 学号
private String sname; // 姓名
private int num; // 选课数
private double avgScore; // 平均分
private double totalCredits; // 总学分
public static int getNextId() {
return NextId;
}
public Student(String sname) {
this.sid = NextId;
this.sname = sname;
this.num = 0;
this.avgScore = 0;
this.totalCredits = 0;
}
public int getSid() {
return sid;
}
public void setSid() {
sid = NextId++;
}
public String getSname() {
return sname;
}
public int getNum() {
return num;
}
public double getAvgScore() {
return avgScore;
}
public double getTotalCredits() {
return totalCredits;
}
public void setNum() {
this.num = num;
}
public void setAvgScore() {
this.avgScore = avgScore;
}
public void Total(int cid) {
this.totalCredits = totalCredits + cid;
}
public void addCourse(double score) {
this.num++;
this.avgScore = ((num - 1) * avgScore + score) / num;
}
}
class SelectCourse {
private int sid;
private int cid;
private double score;
public SelectCourse(int sid, int cid, double score) {
this.sid = sid;
this.cid = cid;
this.score = score;
}
public int getSid() {
return sid;
}
public int getCid() {
return cid;
}
public double getScore() {
return score;
}
}
我们就大功告成啦!