好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Java实现简易学籍管理系统

本文实例为大家分享了Java实现简易学籍管理系统的具体代码,供大家参考,具体内容如下

1、我们先来讲讲什么是泛型化编程

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

package 学生管理系统;

 

import java.util.ArrayList;

import java.util.List;

 

/*

  * 进行泛型化编程

  * @autor:pcb

  * */

public class TestGeneric {

     //进行泛型化编程,规定类型。

     public List <CourseClass> courses;

     public TestGeneric() {

         this .courses = new ArrayList<CourseClass>();

     }

     public void testAdd() {

         CourseClass cr1 = new CourseClass( "1" , "大学语文" );

         courses.add(cr1);

         //泛型集合中不能添加规定意外的对象

         //courses.add("能否添加一些奇怪的东西");

         CourseClass cr2 = new CourseClass( "2" , "Java基础" );

         courses.add(cr2);

     }

     public void testForEach() {

         //进行泛型之后,可直接利用它规定的类型及其子类型直接进行访问

         for (CourseClass cr:courses) {

             System.out.println(cr.id+ ":" +cr.name);

         }

     }

     //泛型集合可以添加泛型的子类型的对象实例

     public void testChild() {

         ChildCourse ccr = new ChildCourse();

         ccr.id = "3" ;

         ccr.name = "我是子类的课程实例对象" ;

         courses.add(ccr);

     }

     //泛型必须使用包装类型进行创建,例如:int和integer

     public void testBaic() {

         List<Integer> list = new ArrayList<Integer>();

         list.add( 1 );

         System.out.println( "基本类型必须使用包装类作为泛型!" +list.get( 0 ));

     }

     public static void main(String[] args) {

         TestGeneric tg = new TestGeneric();

         tg.testAdd();

         tg.testForEach();

         tg.testChild();

         tg.testForEach();

         tg.testBaic();

         //tg.testForEach();

     }

}

2、我们开始进行管理系统的创建,创建一个学生类和一个课程类

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

package 学生管理系统;

 

import java.util.HashSet;

import java.util.Set;

public class StudentsClass implements Comparable <StudentsClass> {

     public String id;

     public String name;

    

     public Set<CourseClass> courses;

    

     public StudentsClass(String id,String name){

         this .id=id;

         this .name=name;

         this .courses= new HashSet<CourseClass>();

     }

 

     @Override

     public int hashCode() {

         final int prime = 31 ;

         int result = 1 ;

         result = prime * result + ((name == null ) ? 0 : name.hashCode());

         return result;

     }

 

     @Override

     public boolean equals(Object obj) {

         if ( this == obj)

             return true ;

         if (obj == null )

             return false ;

         if (!(obj instanceof StudentsClass))

             return false ;

         StudentsClass other = (StudentsClass) obj;

         if (name == null ) {

             if (other.name != null )

                 return false ;

         } else if (!name.equals(other.name))

             return false ;

         return true ;

     }

     public int compareTo(StudentsClass o) {

         return this .id测试数据pareTo(o.id);

     }

}

package 学生管理系统;

 

public class CourseClass {

     public String id;

     public String name;

     public CourseClass(String id,String name){

         this .id=id;

         this .name=name;

     }

     public CourseClass() {

        

     }

    

     @Override

     public int hashCode() {

         final int prime = 31 ;

         int result = 1 ;

         result = prime * result + ((name == null ) ? 0 : name.hashCode());

         return result;

     }

     @Override

     public boolean equals(Object obj) {

         if ( this == obj)

             return true ;

         if (obj == null )

             return false ;

         if (!(obj instanceof CourseClass))

             return false ;

         CourseClass other = (CourseClass) obj;

         if (name == null ) {

             if (other.name != null )

                 return false ;

         } else if (!name.equals(other.name))

             return false ;

         return true ;

     }

}

3、利用List进行增加课程,删除课程,修改课程等的操作

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

package 学生管理系统;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.Iterator;

import java.util.List;

 

public class ListTest {

     //创建

public List coursesToSelect;

     //构造器

     public ListTest(){

         this .coursesToSelect = new ArrayList(); 

     }

    

     public void testAdd(){

         //加课

           CourseClass cr1 = new CourseClass( "1" , "数据结构" );

           coursesToSelect.add(cr1); 

           CourseClass temp = (CourseClass)coursesToSelect.get( 0 );

           System.out.println( "添加了课程:" +temp.id+ ":" +temp.name);

           CourseClass cr2 = new CourseClass( "2" , "c语言" );

           coursesToSelect.add( 0 , cr2);

           CourseClass temp2 = (CourseClass)coursesToSelect.get( 0 );

           System.out.println( "添加了课程:" +temp2.id+ ":" +temp2.name);

           CourseClass[] Course={ new CourseClass( "3" , "离散数学" ), new CourseClass( "4" , "汇编语言" )};

           coursesToSelect.addAll(Arrays.asList(Course));

           CourseClass temp3 = (CourseClass)coursesToSelect.get( 2 );

           CourseClass temp4 = (CourseClass)coursesToSelect.get( 3 );

           System.out.println( "添加了两门课程:" +temp3.id+ ":" +temp3.name+ ";" +temp4.id+ ":" +temp4.name);

           CourseClass[] Course1= { new CourseClass( "5" , "高等数学" ), new CourseClass( "6" , "大学英语" )};

           coursesToSelect.addAll( 2 , Arrays.asList(Course1));

           CourseClass temp5 = (CourseClass)coursesToSelect.get( 2 );

           CourseClass temp6 = (CourseClass)coursesToSelect.get( 3 );

           System.out.println( "添加了两门课程:" +temp5.id+ ":" +temp5.name+ ";" +temp6.id+ ":" +temp6.name);

 

     }

         public void test() {

             int size = coursesToSelect.size();

             for ( int i= 0 ;i<size;i++) {

                 //进行强制类型转化

                 CourseClass cr = (CourseClass)coursesToSelect.get(i);

                 System.out.println( "课程" +i+ ":" +cr.id+ ":" +cr.name);

             }

         }

         //迭代器输入方法

         public void testIterator() {

             Iterator it = coursesToSelect.iterator();

             System.out.println( "可选择的课程(通过迭代器访问):" );

             while (it.hasNext()) {

                 CourseClass cr  = (CourseClass) it.next();

                 System.out.println( "课程" + ":" +cr.id+ ":" +cr.name);

             }

                

         }

         //利用foreach语句进行遍历

         public void testForEach() {

             System.out.println( "可选择的课程(通过FOREACH访问):" );

             for (Object obj:coursesToSelect) {

                 CourseClass cr  = (CourseClass) obj;

                 System.out.println( "课程" + ":" +cr.id+ ":" +cr.name);

             }

         }

         //进行修改操作

         public void testModify() {

             coursesToSelect.set( 4 , new CourseClass( "7" , "毛概" ));

         }

         //利用对象进行删除操作

         public void testRmove1() {

             System.out.println( "通过对象进行删除" );

             CourseClass cr = (CourseClass) coursesToSelect.get( 4 );

             System.out.println( "我是课程:" +cr.id+ ":" +cr.name);

             coursesToSelect.remove(cr);

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

             testForEach();

         }

         //利用索引值进行删除操作

         public void testRmove2() {

//            CourseClass cr = (CourseClass) coursesToSelect.get(4);

//            System.out.println("我是课程:"+cr.id+":"+cr.name);

             System.out.println( "通过索引值进行删除" );

             coursesToSelect.remove( 4 );

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

             testForEach();

         }

         //进行删除,删除多位置的方法操作

         public void testRmove3() {

             System.out.println( "删除4位置和5位置的课程" );

             CourseClass [] Course={(CourseClass) coursesToSelect.get( 4 ),(CourseClass) coursesToSelect.get( 5 )};

             //将Course数组转化成一个集合传递进去

             coursesToSelect.removeAll(Arrays.asList(Course));

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

             testForEach();

             }

     public static void main(String[] args) {

         ListTest it = new ListTest();

         it.testAdd();

         it.test();

         //it.testIterator();

         //it.testForEach();

         //it.testModify();

         //it.testForEach();

         //it.testRmove2();

         it.testRmove3();

     }

}

4、利用set集合进行删除,添加,查询操作

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

package 学生管理系统;

 

import java.util.ArrayList;

import java.util.Arrays;

import java.util.List;

import java.util.Scanner;

 

public class SetTest {

     //创建

     public List <CourseClass> coursesToSelect;

     //向屏幕读取

     private Scanner console;

    

     public StudentsClass student;

     //进行构造

     public SetTest() {

         coursesToSelect = new ArrayList<CourseClass>();

         console = new Scanner(System.in);

     }

    

     public void testAdd(){

         //加课

           CourseClass cr1 = new CourseClass( "1" , "数据结构" );

           coursesToSelect.add(cr1); 

           CourseClass temp = (CourseClass)coursesToSelect.get( 0 );

           //System.out.println("添加了课程:"+temp.id+":"+temp.name);

           CourseClass cr2 = new CourseClass( "2" , "c语言" );

           coursesToSelect.add( 0 , cr2);

           CourseClass temp2 = (CourseClass)coursesToSelect.get( 0 );

           //System.out.println("添加了课程:"+temp2.id+":"+temp2.name);

           CourseClass[] Course={ new CourseClass( "3" , "离散数学" ), new CourseClass( "4" , "汇编语言" )};

           coursesToSelect.addAll(Arrays.asList(Course));

           CourseClass temp3 = (CourseClass)coursesToSelect.get( 2 );

           CourseClass temp4 = (CourseClass)coursesToSelect.get( 3 );

           //System.out.println("添加了两门课程:"+temp3.id+":"+temp3.name+";"+temp4.id+":"+temp4.name);

           CourseClass[] Course1= { new CourseClass( "5" , "高等数学" ), new CourseClass( "6" , "大学英语" )};

           coursesToSelect.addAll( 2 , Arrays.asList(Course1));

           CourseClass temp5 = (CourseClass)coursesToSelect.get( 2 );

           CourseClass temp6 = (CourseClass)coursesToSelect.get( 3 );

           //System.out.println("添加了两门课程:"+temp5.id+":"+temp5.name+";"+temp6.id+":"+temp6.name);

 

     }

     public void testForEach() {

         System.out.println( "可选择的课程(通过FOREACH访问):" );

         for (Object obj:coursesToSelect) {

             CourseClass cr  = (CourseClass) obj;

             System.out.println( "课程" + ":" +cr.id+ ":" +cr.name);

         }

     }

     //查询是否包含此课程

     public void testListContains() {

         CourseClass course = coursesToSelect.get( 0 );

         System.out.println( "取得课程:" +course.name);

        

         System.out.println( "备选课程是否包含课程:" +course.name+ ","

                 +coursesToSelect.contains(course));

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

         String name = console.next();

         CourseClass course2 = new CourseClass();

         course2.name = name;

         System.out.println( "新创建课程:" +course2.name);

         System.out.println( "备选课程是否包含课程:" +course2.name+ ","

                 +coursesToSelect.contains(course2));

         //indexof来求出索引

                 if (coursesToSelect.contains(course2)) {

                     System.out.println( "课程:" +course2.name+ "的索引位置为:" +

                 coursesToSelect.indexOf(course2));

                 }

     }

     public void creatStudentAndSelect() {

         //创建一个学生对象

                 student = new StudentsClass( "1" , "小明" );

                 System.out.println( "欢迎学生:" +student.name+ "选课!" );

                 //从键盘输入课程

                 Scanner console = new Scanner(System.in);

                 for ( int i = 0 ;i< 3 ;i++) {

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

                     String courseId = console.next();

                     for (CourseClass cr :coursesToSelect) {

                         if (cr.id.equals(courseId)) {

                             student.courses.add(cr);

                         student.courses.add( null );

                         student.courses.add(cr);

                         }

                     }

                 }

     }

     //测试Set的contains方法

     public void testSetContains() {

         System.out.println( "请输入学生已选的课程名:" );

         String name =  console.next();

         CourseClass course2 = new CourseClass();

         course2.name = name;

         System.out.println( "新创建课程:" +course2.name);

         System.out.println( "备选课程是否包含课程:" +course2.name+ ","

                 +student.courses.contains(course2));        

     }

     public static void main(String[] args) {

         // TODO Auto-generated method stub

         SetTest st = new SetTest();

         st.testAdd();

          st.testForEach();

         st.testListContains();

//        st.creatStudentAndSelect();

//        st.testSetContains();

     }

}

5、利用Map进行增加,删除,查询,修改操作

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

package 学生管理系统;

 

import java.util.HashMap;

import java.util.Map;

import java.util.Map.Entry;

import java.util.Scanner;

import java.util.Set;

 

public class MapTest {

    

public Map<String,StudentsClass>students;

     //利用哈希键值对进行创建

     public MapTest() {

     this .students = new HashMap<String,StudentsClass>();

}

     //进行学生的插入操作

     public void testPut() {

         Scanner console = new Scanner (System.in);

         int i = 0 ;

         while (i< 3 ) {

             System.out.println( "请输入学生ID:" );

             String ID = console.next();

             StudentsClass st = students.get(ID);

             if (st == null ) {

                 System.out.println( "请输入学生姓名:" );

                 String name = console.next();

                 StudentsClass newStudent = new StudentsClass(ID,name);

                 students.put(ID,newStudent);

                 System.out.println( "成功添加学生:" +students.get(ID).name);

                 i++;

             } else {

                 System.out.println( "该学生ID已经被占用!" );

                 continue ;

             }

         }

     }

     //利用keyset方法将key值放在一个集合中,然后利用key值进行遍历

     public void testKeySet() {

         Set<String>keySet = students.keySet();

         //进行遍历

         for (String stuID:keySet) {

             StudentsClass st = students.get(stuID);

             if (st != null ) {

                 System.out.println( "学生:" +st.name);

             }

         }

     }

     //进行删除操作

     public void testRmove() {

         Scanner console = new Scanner(System.in);

         while ( true ) {

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

         String ID = console.next();

         StudentsClass st = students.get(ID);

           if (st == null ) {

               System.out.println( "该ID不存在!" );

               continue ;

           }

           students.remove(ID);

           System.out.println( "成功删除学生:" +st.name);

           break ;

     }

}

     //通过entryset来遍历Map

     public void testEntrySet() {

         Set<Entry<String,StudentsClass>>entrySet = students.entrySet();

         for (Entry<String,StudentsClass> entry:entrySet) {

                 System.out.println( "取得键:" +entry.getKey());

                 System.out.println( "对应的值为:" +entry.getValue().name);

         } 

     }

     //进行修改操作

     public void testModify() {

         System.out.println( "请输入要修改的学生ID:" );

         Scanner console = new Scanner(System.in);

         while ( true ) {

             String stuID = console.next();

             StudentsClass student = students.get(stuID);

             if (student == null ) {

                 System.out.println( "该ID不存在!请重新输入!" );

                 continue ;

             }

             System.out.println( "当前学生ID,所对应的学生为:" +student.name);

             System.out.println( "请输入新的学生姓名:" );

             String name =  console.next();

             StudentsClass newStudent = new StudentsClass(stuID,name);

             students.put(stuID,newStudent);

             System.out.println( "修改成功" );

         }

     }

     //通过键值或值进行查询操作

     public void testContainsKeyOrValue() {

         System.out.println( "请输入要查询的学生ID:" );

         Scanner console = new Scanner(System.in);

         String id = console.next();

         System.out.println( "您输入的学生ID为:" +id+ "在学生映射表中是否存在:" +

         students.containsKey(id)

                 );

         if (students.containsKey(id)) {

             System.out.println( "对应的学生为:" +students.get(id).name);

         }

         System.out.println( "请输入要查询的学生姓名:" );

         String name = console.next();

         if (students.containsValue( new StudentsClass( null ,name)))

             System.out.println( "在学生映射表中确实包含学生:" +name);

         else

             System.out.println( "在学生映射表中不存在该学生" );

     }

     public static void main(String[] args) {

         // TODO Auto-generated method stub

         MapTest mt = new MapTest();

         mt.testPut();

         mt.testKeySet();

//        mt.testRmove();

//        mt.testEntrySet();

//        mt.testModify();

//        mt.testEntrySet();

         mt.testContainsKeyOrValue();

     }

}

6、进行重载比较

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

package 学生管理系统;

 

import java.util.Comparator;

 

public class StudentComparator implements Comparator<StudentsClass> {

 

     @Override

     public int compare(StudentsClass o1, StudentsClass o2) {

         // TODO Auto-generated method stub

        

        

         return o1.name测试数据pareTo(o2.name);

     }

 

}

7、进行排序操作

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

package 学生管理系统;

 

import java.util.ArrayList;

import java.util.Collections;

import java.util.List;

import java.util.Random;

 

public class CollectionTest {

    

     //利用Collection内部方法进行排序操作

     public void testSort1() {

         //进行整形排序

         List<Integer>intergerList = new ArrayList<Integer>();

         Random random = new Random();

         Integer k;

         for ( int i = 0 ;i < 10 ; i++) {

             do {

             k = random.nextInt( 100 );

             } while (intergerList.contains(k));

             intergerList.add(k);

             System.out.println( "成功添加整数:" +k);

             System.out.println( "--------排序前-------" );

             for (Integer integer:intergerList) {

                 System.out.println( "元素:" +integer);

             }

             Collections.sort(intergerList);

             System.out.println( "--------排序后-------" );

             for (Integer integer:intergerList) 

                 System.out.println( "元素:" +integer);

         }

     }

     //进行String排序

     public void testSort2() {

         List<String>stringList = new ArrayList<String>();

         stringList.add( "microsoft" );

         stringList.add( "google" );

         stringList.add( "lenovo" );

         System.out.println( "--------排序前-------" );

         for (String string : stringList) {

             System.out.println( "元素:" +string);

         }

         Collections.sort(stringList);

         System.out.println( "--------排序后-------" );

         for (String string : stringList) {

             System.out.println( "元素:" +string);

         }

     }

     //对StudentsClass类进行排序,这里就需要进行equal和hashcode的重载

     public void testSort3() {

         List<StudentsClass>StudentList = new ArrayList<StudentsClass>();

         Random random = new Random();

         StudentList.add( new StudentsClass(random.nextInt( 1000 )+ "" , "mike" ));

         StudentList.add( new StudentsClass(random.nextInt( 1000 )+ "" , "lucy" ));

         StudentList.add( new StudentsClass(random.nextInt( 1000 )+ "" , "angel" ));

         System.out.println( "--------排序前-------" );

         for (StudentsClass student:StudentList) {

             System.out.println( "学生:" +student.id+student.name);

         }

         Collections.sort(StudentList);

         System.out.println( "--------排序后-------" );

         for (StudentsClass student:StudentList) {

             System.out.println( "学生:" +student.id+student.name);

         }

         Collections.sort(StudentList, new StudentComparator());

         System.out.println( "----------按照姓名排序----------" );

         for (StudentsClass student:StudentList) {

             System.out.println( "学生:" +student.id+student.name);

         }

     }

     public static void main(String[] args) {

         // TODO Auto-generated method stub

         CollectionTest ct = new CollectionTest();

         //ct.testSort1();

         //ct.testSort2();

         ct.testSort3();

     }

 

}

8、辅助类。

?

1

2

3

4

5

package 学生管理系统;

 

public class ChildCourse extends CourseClass {  

    

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

原文链接:https://blog.csdn.net/weixin_43271086/article/details/96907111

查看更多关于Java实现简易学籍管理系统的详细内容...

  阅读:16次