java对象数组实现学生信息管理系统

时间:2021-10-10 05:22:05

本文实例为大家分享了Java实现学生信息管理系统,供大家参考,具体内容如下

一、功能需求

case 10:添加学生
case 11:查找一个学生
case 12:根据编号更新学生基本信息
case 13:根据编号删除学生
case 14:根据编号录入成绩
case 15:根据某门成绩排序
case 16:根据总成绩排序
case 99:退出系统

二、代码框架

一共有三个文件:

1、Student.java(学生类) //学生的基本信息
2、StudentAdmin.java(学生管理类) //用于对学生数组操作
3、StudentTest.java(主程序)

java对象数组实现学生信息管理系统

三、代码

下面为具体的代码:

1.学生类 Student.java

  1. package com.studentadmin.test;
  2. /**
  3. * 学生类
  4. */
  5. public class Student {
  6. private int number;
  7. private String name;
  8. private int age;
  9. private int python;
  10. private int java;
  11. private int linux;
  12. private int sql;
  13. private int sum;
  14. private int avg;
  15.  
  16. public int getNumber() {
  17. return number;
  18. }
  19.  
  20. public void setNumber(int number) {
  21. this.number = number;
  22. }
  23.  
  24. public String getName() {
  25. return name;
  26. }
  27.  
  28. public void setName(String name) {
  29. this.name = name;
  30. }
  31.  
  32. public int getAge(){
  33. return age;
  34. }
  35.  
  36. public void setAge(int age) {
  37. this.age = age;
  38. }
  39.  
  40. public int getPython() {
  41. return python;
  42. }
  43.  
  44. public void setPython(int python) {
  45. this.python = python;
  46. }
  47.  
  48. public int getJava() {
  49. return java;
  50. }
  51.  
  52. public void setJava(int java) {
  53. this.java = java;
  54. }
  55.  
  56. public int getLinux() {
  57. return linux;
  58. }
  59.  
  60. public void setLinux(int linux) {
  61. this.linux = linux;
  62. }
  63.  
  64. public int getSql() {
  65. return sql;
  66. }
  67.  
  68. public void setSql(int sql) {
  69. this.sql = sql;
  70. }
  71.  
  72. public int getSum() {
  73. return sum;
  74. }
  75.  
  76. public void setSum() {
  77. this.sum = this.python+this.java+this.linux+this.sql;
  78. }
  79.  
  80. public int getAvg() {
  81. return avg;
  82. }
  83.  
  84. public void setAvg() {
  85. this.avg = this.sum/4;
  86. }
  87.  
  88. public String toString(){ //学生信息
  89. String str="\t\t"+this.number+"\t\t"+this.name+"\t\t"+this.age+"\t\t"+this.python+"\t\t"
  90. +this.java+"\t\t"+this.linux+"\t\t"+this.sql+"\t\t"+this.sum+"\t\t"+this.avg;
  91. return str;
  92. }
  93. }

2.学生管理类 StudentAdmin.java

  1. package com.studentadmin.test;
  2. /**
  3. * 管理学生的类
  4. */
  5. public class StudentAdmin {
  6. static String msg="\t\t编号\t\t姓名\t\t年龄\t\tpython\tjava\tlinux\tsql\t\t总分\t\t平均分";
  7. //功能菜单:
  8. public void menu(){
  9. System.out.println("-----请选择你要执行的功能-----");
  10. System.out.println("10:添加一个学生");
  11. System.out.println("11:查找一个学生");
  12. System.out.println("12:根据学生编号更新学生基本信息");
  13. System.out.println("13:根据学生编号删除学生");
  14. System.out.println("14:根据学生编号输入学生各门成绩");
  15. System.out.println("15:根据某门成绩进行排序");
  16. System.out.println("16:根据总分进行排序");
  17. System.out.println("99:退出系统");
  18. System.out.println("----------------------------");
  19. }
  20.  
  21. //返回数组中元素为空的下标
  22. public int index(Student[] arr){
  23. for(int i=0;i<arr.length;i++){
  24. if(arr[i]==null){
  25. return i;//新学生的编号
  26. }
  27. }
  28. return 999; //学生已满员
  29. }
  30.  
  31. //打印所有学生的信息
  32. public void print(Student[] arr){
  33. System.out.println(msg);
  34. for(int i=0;i<arr.length;i++){
  35. if(arr[i]!=null){
  36. System.out.println(arr[i]);
  37. }
  38. }
  39. }
  40.  
  41. //10:添加学生
  42. public void create(String name,int age,Student[] arr){
  43. int index=index(arr); //获取新学生的位置
  44. if(index!=999) { //如果还有空位置,可以添加学生
  45. Student stu = new Student();
  46. stu.setName(name);
  47. stu.setAge(age);
  48. stu.setNumber(index);
  49. arr[index] = stu;
  50. System.out.println("添加学生成功");
  51. this.print(arr);
  52. }else{
  53. System.out.println("班级学生已满,无法再添加学生了");
  54. }
  55. }
  56. //11:查找学生
  57. public void select(int number,Student[] arr){
  58. for(int i=0;i<arr.length;i++){
  59. if(arr[i]!=null){
  60. if(arr[i].getNumber()==number){
  61. System.out.println(msg);
  62. System.out.println(arr[i]);
  63. return;
  64. }
  65. }
  66. }
  67. System.out.println("没有这个编号的学生");
  68. }
  69. //12:根据编号更新学生
  70. public void update(int number,String name,int age,Student[] arr){
  71. for(int i=0;i<arr.length;i++){
  72. if(arr[i]!=null){
  73. if(arr[i].getNumber()==number){
  74. arr[i].setName(name);
  75. arr[i].setAge(age);
  76. System.out.println("更新学生信息成功");
  77. this.print(arr);
  78. return;
  79. }
  80. }
  81. }
  82. System.out.println("没有这个学生");
  83. }
  84.  
  85. //13:根据编号删除学生
  86. public void delete(int number,Student[] arr){
  87. for(int i=0;i<arr.length;i++){
  88. if(arr[i]!=null){
  89. if(arr[i].getNumber()==number){
  90. arr[i]=null;
  91. System.out.println("删除成功");
  92. this.print(arr);
  93. return;
  94. }
  95. }
  96. }
  97. System.out.println("没有这个编号的学生");
  98. }
  99.  
  100. //14:根据编号录入成绩
  101. public void input(int number, int python,int java,int linux,int sql,Student[] arr){
  102. for(int i=0;i<arr.length;i++) {
  103. if (arr[i] != null) {
  104. if (arr[i].getNumber() == number) {
  105. arr[number].setPython(python);
  106. arr[number].setJava(java);
  107. arr[number].setLinux(linux);
  108. arr[number].setSql(sql);
  109. arr[number].setSum();
  110. arr[number].setAvg();
  111. System.out.println("录入成绩成功");
  112. this.print(arr);
  113. return;
  114. }
  115. }
  116. }
  117. System.out.println("不存在这个学生");
  118. }
  119.  
  120. //15:根据某门成绩排序
  121. public void courseSort(int number,Student[] arr){
  122. switch (number) {
  123. case 1:
  124. for (int i = 0; i < arr.length - 1; i++) {
  125. for (int j = i + 1; j < arr.length; j++) {
  126. if (arr[i] != null && arr[j] != null) {
  127. if (arr[i].getPython() < arr[j].getPython()) {
  128. Student temp = arr[i];//比较某门成绩,交换学生
  129. arr[i] = arr[j];
  130. arr[j] = temp;
  131. }
  132. }
  133. }
  134. }
  135. break;
  136. case 2:
  137. for (int i = 0; i < arr.length - 1; i++) {
  138. for (int j = i + 1; j < arr.length; j++) {
  139. if (arr[i] != null && arr[j] != null) {
  140. if (arr[i].getJava() < arr[j].getJava()) {
  141. Student temp = arr[i];
  142. arr[i] = arr[j];
  143. arr[j] = temp;
  144. }
  145. }
  146. }
  147. }
  148. break;
  149. case 3:
  150. for (int i = 0; i < arr.length - 1; i++) {
  151. for (int j = i + 1; j < arr.length; j++) {
  152. if (arr[i] != null && arr[j] != null) {
  153. if (arr[i].getLinux() < arr[j].getLinux()) {
  154. Student temp = arr[i];
  155. arr[i] = arr[j];
  156. arr[j] = temp;
  157. }
  158. }
  159. }
  160. }
  161. break;
  162. case 4:
  163. for (int i = 0; i < arr.length - 1; i++) {
  164. for (int j = i + 1; j < arr.length; j++) {
  165. if (arr[i] != null && arr[j] != null) {
  166. if (arr[i].getSql() < arr[j].getSql()) {
  167. Student temp = arr[i];
  168. arr[i] = arr[j];
  169. arr[j] = temp;
  170. }
  171. }
  172. }
  173. }
  174. break;
  175. }
  176. this.print(arr);
  177. }
  178.  
  179. //16:根据总分排序
  180. public void sumSort(Student[] arr){
  181. for (int i = 0; i < arr.length - 1; i++) {
  182. for (int j = i + 1; j < arr.length; j++) {
  183. if (arr[i] != null && arr[j] != null) {
  184. if (arr[i].getSum() < arr[j].getSum()) {
  185. Student temp = arr[i];
  186. arr[i] = arr[j];
  187. arr[j] = temp;
  188. }
  189. }
  190. }
  191. }
  192. this.print(arr);
  193. }
  194.  
  195. }

3.主程序 StudentTest.java

  1. package com.studentadmin.test;
  2. import java.util.Scanner;
  3. /**
  4. * 主程序
  5. */
  6. public class StudentTest {
  7. public static void main(String[] args) {
  8. Scanner sc=new Scanner(System.in);
  9. System.out.println("请定义学生人数");
  10. int stuNum=sc.nextInt(); //定义学生人数
  11. Student[] stuArr=new Student[stuNum]; //定义一个学生数组
  12. StudentAdmin admin=new StudentAdmin(); //定义一个管理对象,用来调用管理学生的方法
  13. while(true){
  14. admin.menu();//功能菜单
  15. int number=sc.nextInt(); //选择的菜单选项
  16. if(number==10){ //10:添加一个学生
  17. System.out.println("请输入学生姓名");
  18. String name=sc.next();
  19. System.out.println("请输入学生年龄");
  20. int age=sc.nextInt();
  21. admin.create(name,age,stuArr);
  22. }else if(number==11){//11:查找一个学生
  23. System.out.println("请输入你要查找的学生的编号");
  24. int num=sc.nextInt();
  25. admin.select(num,stuArr);
  26. }else if(number==12){//12:根据学生编号更新学生基本信息
  27. System.out.println("请输入你要更新的学生的编号");
  28. int num=sc.nextInt();
  29. System.out.println("请输入学生姓名");
  30. String name=sc.next();
  31. System.out.println("请输入学生年龄");
  32. int age=sc.nextInt();
  33. admin.update(num,name,age,stuArr);
  34. }else if(number==13){//13:根据学生编号删除学生
  35. System.out.println("请输入你要删除的学生编号");
  36. int num=sc.nextInt();
  37. admin.delete(num,stuArr);
  38. }else if(number==14){//14:根据编号输入学生各门成绩
  39. System.out.println("请输入学生编号");
  40. int num=sc.nextInt();
  41. System.out.println("请输入学生python成绩");
  42. int python=sc.nextInt();
  43. System.out.println("请输入学生java成绩");
  44. int java=sc.nextInt();
  45. System.out.println("请输入学生linux成绩");
  46. int linux=sc.nextInt();
  47. System.out.println("请输入学生sql成绩");
  48. int sql=sc.nextInt();
  49. admin.input(num,python,java,linux,sql,stuArr);
  50. }else if (number==15){//15:根据某门成绩进行排序
  51. System.out.println("请选择你要排序的课程(1:python 2:java 3:linux 4:sql)");
  52. int courseNum=sc.nextInt();
  53. admin.courseSort(courseNum,stuArr);
  54. }else if (number==16){//16:根据总分进行排序
  55. admin.sumSort(stuArr);
  56. }else if(number==99){//99:退出系统
  57. System.exit(0);
  58. }else{
  59. System.out.println("请重新输入");
  60. }
  61. }
  62. }
  63.  
  64. }

四、运行结果

1.添加学生功能

java对象数组实现学生信息管理系统

2.查找学生功能

java对象数组实现学生信息管理系统

3.根据编号更新学生基本信息功能

java对象数组实现学生信息管理系统

4.根据学生编号删除学生功能

java对象数组实现学生信息管理系统

5.根据学生编号录入学生各门成绩

java对象数组实现学生信息管理系统

6.根据某门成绩进行排序

java对象数组实现学生信息管理系统

7.根据总分进行排序

java对象数组实现学生信息管理系统

8.退出系统

java对象数组实现学生信息管理系统

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

原文链接:https://blog.csdn.net/hju22/article/details/86175596