java学生成绩管理系统
(一)前言
由于这个工程是在刚刚学习完java后就匆忙写了一个,虽然之前在c语言也写过管理系统,但是因为当时的评分标准更多地使用了指针,链表等数据结构。而且是面向过程进行编程,没有面向对象。
这次主要是想写一个面向对象的java学生管理系统,本意是想做成html网页版,后端连数据库,结果时间太紧了,就做了在eclipse下实现的工程,不是很完善,以后有时间再改。AF和RI也是后面软件构造课才学的,也没写。
给有精力的同学一个思路:我们可以设置学生端和教师端两个客户端,分别设置账户密码,存到sql中,然后当登入的时候,我们可以判断ta是一个teacher还是一个student,对于teacher来说,我们可以查看成绩,可以对成绩增删改查,对于student,我们只能查看自己的成绩。如果有需要,在teacher上面再加一个权限更高的master,可以查看日志,知道哪些数据是谁改动过的。
(二)类设计
(1)Student类
面向对象的编程思想,编写Student类,每一个student有一些自己的属性,比如姓名,学号,联系电话,所以在Student类中,这些属性应该是private的,并且包括一系列set和get方法,例如setName,getName,setId,getId等方法。还设置了两个对学生list的操作,add和list,即添加学生和列出学生列表的所有信息。
package student;
import java.util.ArrayList;
import java.util.Scanner;
public class Student
{
private String name;
private String id;
static ArrayList<Student> studentList=new ArrayList();
public static Scanner in = new Scanner(System.in);
public Student(String name,String id)//学生信息:姓名,学号,性别
{
this.name=name;
this.id=id;
}
public void setName(String name)
{
this.name=name;
}
public String getName()
{
return name;
}
public void setId(String id)
{
this.id=id;
}
public String getId()
{
return id;
}
public static void add()//输入学生信息
{
System.out.print("请输入学生姓名:");
String name = in.next();
System.out.print("请输入学生学号:");
String id = in.next();
Student student=new Student(name,id);
studentList.add(student);
}
public static void list(ArrayList<Student> studentList)//输出所有学生的信息
{
System.out.println("学号\t姓名");
for (Student student:studentList)
{
String name=student.getName();
String id =student.getId();
System.out.println(name+"\t"+id);
}
}
}
(2)Course类
本来想像C语言实现的那样,设定数语外理化生等六门科目,但实际上大学的科目并不是这些,那么我们就需要将这个需求交给用户自己去完成。
我们的courselist最开始是空的,也就是没有任何课程,我们需要用户自己添加课程,包括自己的课程名称,课程学分等相应信息。以保证我们的程序具有良好的可扩展性和可复用性。
package student;
import java.util.ArrayList;
import java.util.List;
import java.util.