当前位置:文档之家› java学生管理系统源代码

java学生管理系统源代码

java学生管理系统源代码
java学生管理系统源代码

import java.io.Serializable;

public class Course implements Serializable{

private String courseName;

private int courseGrade;

Course(){

courseName=null;

courseGrade=0;

}

public void setCourseNameValue(String ss){

this.courseName=ss;

}

public void setCourseGradeValue(int dd){

this.courseGrade=dd;

}

public String getCourseNameValue(){

return this.courseName;

}

public int getCourseGradeValue(){

return this.courseGrade;

}

public boolean equals(Object o) {

if (o == null){ return false;}

else {

if (o instanceof Course) {

Course rec = (Course) o;

if (this.courseName.equals(rec.getCourseNameValue())) {

return true;

}

}

return false;

}

}

}

---------------------------------------------------------------------------------------------------------------

import java.io.Serializable;

import java.util.Arrays;

import java.util.LinkedList;

import java.util.List;

public class Student implements Serializable, Comparable{

private String studentName;

private int studentId;

//private int studentCourseAmount=4;

private LinkedList courseList;

Student(){

studentName=null;

studentId=0;

courseList=new LinkedList();

}

public void setStudentNameValue(String name){//确定学生名称

this.studentName=name;

}

public void setStudentIdValue(int id){//确定学生学号

this.studentId=id;

}

public void setStudentCourseList(LinkedList list){//传入课程链list

this.courseList=list;

// System.out.println("例:0916 张磊语文98 数学67");

}

public void setCourseGrade(Object o){//将与学科o同名的学科的成绩改为o的成绩for(int i=0;i

Course obj=new Course();

obj=(Course) this.courseList.get(i);

if(obj.equals(o)){

Course res=(Course) o;

obj.setCourseGradeValue(res.getCourseGradeValue());

}

}

}

public String getStudentNameValue(){//取得学生姓名

return this.studentName;

}

public int getStudentId(){//取得学生学号

return this.studentId;

}

public LinkedList getstudentCourseList(){//得到成绩链的首地址

return this.courseList;

}

public long getStudentCourseGrade(Course o){//取得与o同名的成绩值,尚有错误long temp = 0;

List courTemp=this.getstudentCourseList();

Course obj;

//System.out.println(courTemp.indexOf(o));

int i=courTemp.indexOf(o);

obj=(Course) courTemp.get(i);

temp=obj.getCourseGradeValue();

return temp;

}

public boolean equals(Object o) {//判定两个对象是否相同,姓名或学号相同if (o == null) return false;

else {

if (o instanceof Student) {

Student rec = (Student) o;

System.out.println(rec.getStudentNameValue());

if (this.studentName.equals(rec.getStudentNameValue()) || this.studentId==rec.getStudentId()) {

return true;

}

}

return false;

}

}

public int compareTo(Object O){

Student obj=(Student) O;

int thisSum=0;

for(int i=0;i

Course cour=(Course) this.courseList.get(i);

thisSum += cour.getCourseGradeValue();

}

int OSum=0;

for(int i=0;i

Course cour=(Course) obj.getstudentCourseList().get(i);

OSum += cour.getCourseGradeValue();

}

if(thisSum

{

return -1;

}

if(thisSum>OSum)

{

return 1;

}

return 0;

}

}

import java.awt.Color;

import java.awt.Font;

import java.io.BufferedReader;

//import java.util.*;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.FileWriter;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.io.Serializable;

import java.sql.Date;

import java.text.DecimalFormat;

import java.text.NumberFormat;

import java.util.Arrays;

import java.util.LinkedList;

import java.util.List;

import java.util.Scanner;

import java.util.*;

import org.jfree.chart.ChartFactory;

import org.jfree.chart.ChartFrame;

import org.jfree.chart.ChartUtilities;

import org.jfree.chart.JFreeChart;

import org.jfree.chart.axis.CategoryAxis;

import org.jfree.chart.axis.NumberAxis;

import https://www.doczj.com/doc/a44559130.html,bels.StandardPieSectionLabelGenerator; import org.jfree.chart.plot.CategoryPlot;

import org.jfree.chart.plot.PiePlot;

import org.jfree.chart.plot.PlotOrientation;

import org.jfree.chart.title.TextTitle;

import org.jfree.data.category.DefaultCategoryDataset;

import org.jfree.data.general.DefaultPieDataset;

public class Teacher {

private String teacherName;

private List studentList;

Teacher(){

teacherName=null;

studentList=new LinkedList();

}

public void setTeacherName(String name){

this.teacherName=name;

}

public void setStudentList(LinkedList list){

this.studentList=list;

}

public String getTeacherName(){

return this.teacherName;

}

public List getStudentList(){

return this.studentList;

}

public void addStudent(Object o){//添加学生o

//Date date=new Date(0);

if(o!=null && (o instanceof Student)){

studentList.add(o);

}

/* String s = null;

try {

FileWriter fw = new FileWriter("manager.log", true);

PrintWriter log = new PrintWriter(fw);

log.println("-------------------------------");

// log.println(this.getTeacherName());

Student stu=(Student) o;

log.println("添加学生");

log.println("学号:"+stu.getStudentId()+" "+"姓名: "+stu.getStudentNameValue());

log.println("====="+new Date( 0)+"=====");

log.flush();

log.close();

} catch (IOException e) {

e.printStackTrace();

}*/

}

public void toAddStudent(Scanner tempCourse){

System.out.println("输入要添加学生的学号,姓名,各科名称及成绩以空格分开");

System.out.println("例:09001 朱良语文23 数学45 英语78");

InputStreamReader isr = new InputStreamReader(System.in);

BufferedReader br = new BufferedReader(isr);

String s = null;

try {

s = br.readLine();

tempCourse=new Scanner(s);

Student stu = new Student();

if(tempCourse.hasNextInt()){

int stuId = tempCourse.nextInt();

if(tempCourse.hasNext()){

String stuName = tempCourse.next();

stu.setStudentNameValue(stuName);

stu.setStudentIdValue(stuId);

LinkedList objList=new LinkedList();

String courseName=null;

int courseGrade=0;

Course objCourse;

while(tempCourse.hasNext() || tempCourse.hasNextInt()){

courseName=tempCourse.next();

courseGrade=tempCourse.nextInt();

objCourse=new Course();

objCourse.setCourseNameV alue(courseName);

objCourse.setCourseGradeV alue(courseGrade);

objList.add(objCourse);

}

stu.setStudentCourseList(objList);

int k=0;

for(int j=0;j

Student cc=(Student) this.studentList.get(j);

if(cc.getStudentId()==stu.getStudentId()){

k++;

}

}

if(k==0){

this.addStudent(stu);

System.out.println("添加成功");

}

else

{

System.out.println("已存在该学号");

this.toAddStudent(tempCourse);

}

}

else{

System.out.println("错误输入");

this.toAddStudent(tempCourse);

}

}

else {

System.out.println("错误输入");

this.toAddStudent(tempCourse);

}

} catch (IOException e) {

e.printStackTrace();

} finally{

try {

br.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

public void removeStudent(int id){//删除学号与id相同的对象

int index=-1;

for(int i=0;i

Student temp=(Student) this.studentList.get(i);

if(temp.getStudentId() == id){

index=i;

}

}

if(index != -1){

Student stu=(Student) this.studentList.get(index);

this.studentList.remove(index);

System.out.println("删除成功");

/*String s = null;

try {

FileWriter fw = new FileWriter("manager.log", true);

PrintWriter log = new PrintWriter(fw);

log.println("-------------------------------");

//log.println(this.getTeacherName());

// Student stu=(Student) o;

log.println("删除学生");

log.println("学号:"+stu.getStudentId()+" "+"姓名: "+stu.getStudentNameValue());

log.println("====="+new Date(0)+"=====");

log.flush();

log.close();

} catch (IOException e) {

e.printStackTrace();

} */

}

else

{

System.out.println("不存在该学生");

this.toRemoveStudent();

}

}

public void toRemoveStudent(){

System.out.println("输入要删除学生的学号");

InputStreamReader isr = new InputStreamReader(System.in);

BufferedReader br = new BufferedReader(isr);

String s = null;

try {

s = br.readLine();

Scanner tempCourse=new Scanner(s);

if(tempCourse.hasNextInt()){

int stuId = tempCourse.nextInt();

this.removeStudent(stuId);

}

else{ System.out.println("错误输入");

this.toRemoveStudent();

}

// int stuId = tempCourse.nextInt();

// this.removeStudent(stuId);

} catch (IOException e) {

e.printStackTrace();

} finally{

try {

br.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

public void changeStudent(Student o){//与o学号或姓名一样的学生对象用o替代

int index=0;

for(int i=0;i

Student temp=(Student) this.studentList.get(i);

if(temp.getStudentId() == o.getStudentId() || temp.getStudentNameValue().equals(o.getStudentNameV alue())){

index=i;

break;

}

}

Student stu=(Student) this.studentList.get(index);

this.studentList.set(index,o);

/* String s = null;

try {

FileWriter fw = new FileWriter("manager.log", true);

PrintWriter log = new PrintWriter(fw);

log.println("-------------------------------");

//log.println(this.getTeacherName());

//Student stu=(Student) o;

log.println("修改学生信息");

log.println("学号:"+stu.getStudentId()+" "+"姓名: "+stu.getStudentNameValue());

log.println("====="+new Date(0)+"=====");

log.flush();

log.close();

} catch (IOException e) {

e.printStackTrace();

}*/

}

public void toChangeStudent(){

System.out.println("输入要修改的学生的学号,姓名,各科名称及成绩以空格分开");

System.out.println("例:09001 朱良语文23 数学45 英语78");

InputStreamReader isr = new InputStreamReader(System.in);

BufferedReader br = new BufferedReader(isr);

String s = null;

try {

s = br.readLine();

Scanner tempCourse=new Scanner(s);

Student stu = new Student();

int stuId = tempCourse.nextInt();

String stuName = tempCourse.next();

stu.setStudentNameValue(stuName);

stu.setStudentIdValue(stuId);

LinkedList objList=new LinkedList();

String courseName=null;

int courseGrade=0;

Course objCourse;

while(tempCourse.hasNext() || tempCourse.hasNextInt()){

courseName=tempCourse.next();

courseGrade=tempCourse.nextInt();

objCourse=new Course();

objCourse.setCourseNameV alue(courseName);

objCourse.setCourseGradeV alue(courseGrade);

objList.add(objCourse);

}

stu.setStudentCourseList(objList);

this.changeStudent(stu);

} catch (IOException e) {

e.printStackTrace();

} finally{

try {

br.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

public void searchStudentById(){//查找学号为id的学生的信息(学号,姓名,各科成绩)

System.out.println("输入学号:");

Scanner sc = new Scanner(System.in);

int id = sc.nextInt();

int index=0;

for(int i=0;i

Student temp=(Student) this.studentList.get(i);

if(temp.getStudentId() == id){

index=i;

}

}

Student sss=(Student) this.studentList.get(index);

System.out.println("姓名:"+sss.getStudentNameValue()+" ");

System.out.println("学号:"+sss.getStudentId()+" ");

LinkedList cour=new LinkedList();

cour=sss.getstudentCourseList();

for(int i=0;i

Course tempCourse=new Course();

tempCourse=(Course) cour.get(i);

System.out.println(tempCourse.getCourseNameValue()+":

"+tempCourse.getCourseGradeValue()+" ");

}

}

public void courseAverage(){//计算单科平均分

System.out.println("输入课程名");

Course o = new Course();

Scanner sc = new Scanner(System.in);

String ss=sc.next();

o.setCourseNameValue(ss);

long sum=0;

for(int i=0;i

Student tempStu=(Student) this.studentList.get(i);

sum=sum+tempStu.getStudentCourseGrade(o);

}

double aver = (double) sum/this.studentList.size();

System.out.println(aver);

}

public void makeOrderByGrades(){//将学生信息按总成绩从小到大打印到控制台上Object[] stuArray=this.studentList.toArray();

Arrays.sort(stuArray);

for(int i=0;i

Student tempStu=(Student) stuArray[i];

System.out.print(tempStu.getStudentId()+" ");

System.out.print(tempStu.getStudentNameValue()+" ");

LinkedList cour=new LinkedList();

cour=tempStu.getstudentCourseList();

for(int j=0;j

Course tempCourse=new Course();

tempCourse=(Course) cour.get(j);

System.out.print(tempCourse.getCourseNameValue()+"

"+tempCourse.getCourseGradeValue()+" ");

}

System.out.println();

}

}

public void toClear(){

this.studentList.clear();

String s = null;

try {

FileWriter fw = new FileWriter("manager.log", true);

PrintWriter log = new PrintWriter(fw);

log.println("-------------------------------");

log.println(this.getTeacherName());

//Student stu=(Student) o;

log.println("删除全部学生信息");

log.println("====="+new Date(0)+"=====");

log.flush();

log.close();

} catch (IOException e) {

e.printStackTrace();

}

}

public void PieChart(){//饼形图

// int count[][]=scoreAna();

DefaultPieDataset pieDataset = new DefaultPieDataset();

int[] count = {0,0,0,0,0};

// for()

System.out.println("输入课程名");

Course o = new Course();

Scanner sc = new Scanner(System.in);

String ss=sc.next();

o.setCourseNameValue(ss);

// long sum=0;

for(int i=0;i

Student tempStu=(Student) this.studentList.get(i);

int temp=(int) tempStu.getStudentCourseGrade(o);

if(0<=temp&& temp<60){

count[0]++;//不及格人数

}

if(60<=temp&& temp<70){

count[1]++;//及格人数

}

if(70<=temp&& temp<80){

count[2]++;//中等人数

}

if(80<=temp&& temp<=100){

count[3]++;//良好人数

}

if(90<=tempStu.getStudentCourseGrade(o)&&

tempStu.getStudentCourseGrade(o)<=100){

count[4]++;//优秀人数

}

}

// for(int j=0;j

// System.out.println(count[j]);

// }

pieDataset.setValue("优秀",count[0]);

pieDataset.setValue("良好",count[1]);

pieDataset.setValue("中等",count[2]);

pieDataset.setValue("及格",count[3]);

pieDataset.setValue("不及格",count[4]);

JFreeChart chart = ChartFactory.createPieChart3D("饼形图",pieDataset, true, false, false);

/***************A start*********/

//设置标题字体样式

chart.getTitle().setFont(new Font("黑体",Font.BOLD,20));

//设置饼状图里描述字体样式

PiePlot piePlot= (PiePlot) chart.getPlot();

piePlot.setLabelFont(new Font("黑体",Font.BOLD,10));

//设置显示百分比样式

piePlot.setLabelGenerator(new StandardPieSectionLabelGenerator(

("{0}({2})"), NumberFormat.getNumberInstance(),

new DecimalFormat("0.00%")));

//设置统计图背景

piePlot.setBackgroundPaint(Color.white);

//设置图片最底部字体样式

chart.getLegend().setItemFont(new Font("黑体",Font.BOLD,10));

/***************A end*********/

try {

ChartUtilities.writeChartAsPNG(new FileOutputStream("pieChart.jpg"), chart, 400, 300);

}catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

final ChartFrame preview = new ChartFrame("学生成绩情况",chart);

preview.pack();

preview.setVisible(true);

// LabelFramePieChart app = new LabelFramePieChart();

// app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

// app.setSize( 450,350 );

//app.setVisible( true );

}

}

----------------------------------------------------------------------------------------------------------------------import java.io.*;

import java.util.Arrays;

import java.util.LinkedList;

import java.util.List;

import java.util.Scanner;

import javax.swing.text.html.HTMLDocument.Iterator;

public class Running {

public void start() throws IOException{

Teacher objTeacher=new Teacher();

Running run=new Running();

try {

ObjectInputStream is = new ObjectInputStream(new FileInputStream("TestObjectIO.txt"));

LinkedList tempList = (LinkedList) is.readObject();// 从流中读取List的数据

objTeacher.setStudentList((LinkedList) tempList);

Object[] stuArray=tempList.toArray();

is.close();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

String s = null;

System.out.println("****************学生成绩管理系统*********************");

System.out.println("Please make choose by choose these letters");

System.out.println("A : A is to add a Student into studentlist"); System.out.println("D : D is to delete a student from studentlist"); System.out.println("M : M is to modify student's information");

System.out.println("E : E is to count one course's average"); System.out.println("S : S is to search one student by his(her) id"); System.out.println("O : O is to make student order by points total"); System.out.println("C : C is to clear all students in the list"); System.out.println("P : P is to paint a pieDataset for one course");

Scanner sc=new Scanner(System.in);

String c=sc.nextLine();

//sc.close();

char[] cArray=c.toCharArray();

switch(cArray[0] ){

case 'A':

objTeacher.toAddStudent(sc);

break;

case 'D':

objTeacher.toRemoveStudent();

break;

case 'M':

objTeacher.toChangeStudent();

break;

case 'E':

objTeacher.courseAverage();

break;

case 'S':

objTeacher.searchStudentById();

break;

case 'O':

objTeacher.makeOrderByGrades();

break;

case 'C':

objTeacher.toClear();

break;

case 'P':

objTeacher.PieChart();

break;

default:

System.out.println("没有选择操作");

break;

}

ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("TestObjectIO.txt"));

oos.writeObject(objTeacher.getStudentList());

oos.flush();

oos.close();

//sc.close();

//sc=null;

//this.start(sc);

}

public static void main(String[] args) throws IOException {

Running run=new Running();

run.start();

}

}

相关主题
文本预览
相关文档 最新文档