您的当前位置:首页正文

学生课程管理系统 java

2021-01-27 来源:步旅网
Scms说明文档

将所有学生的课程成绩保留在一个二维数组中,每一行代表一个学生的成绩,每一列代表一门课程的成绩;将每门课程的名称保留在一个一维数组中(课程的下标序号与二维数组的列号匹配);将每个学生的姓名保留在一个一维数组中(学生的下标序号与二维数组的行号匹配);要求编写程序实现成绩的查询,要求程序运行时从命令行输入统计命令及参数,程序则输出结果,例如: AVG corejava:统计课程corejava的平均分。 AVG张三:统计学生张三的平均分。 SORT sum:列出总分的排序。

SORT corejava:列出corejava课程的成绩的排序。 SUM 张三:统计学生张三的总分。

GET 张三 corejava:统计张三的corejava课程的成绩。

代码如下:

import java.util.Scanner; import java.util.Arrays;

public class Scms { static String[] students = { \"McGRADY\

static String[] courses = { \"corejava\static double stu_cou[][] = {

{ 82, 83, 87, 90 }, { 77, 87, 84, 86 }, { 88, 82, 80, 80 }, { 83, 80, 81, 88 } };

public static void main(String[] args) { System.out

.println(\"============================================================\");

System.err.println(\"\\欢迎使用学生成绩管理系统\"); System.out.println(\"本系统提供如下功能:\");

System.out.println(\"AVG corejava:统计课程corejava的平均分.\"); System.out.println(\"AVG 张三:统计学生张三的平均分\");

System.out.println(\"SORT sum:列出总分的排序.\");

System.out.println(\"SORT corejava:列出corejava课程的成绩的排序.\"); System.out.println(\"SUM 张三:统计学生张三的总分.\");

System.out.println(\"GET 张三 corejava:统计张三的corejava课程的成绩.\"); System.out

System.out.println(\" * 本系统中有以下同学:\" + Arrays.toString(students) + \" *\"); System.out

.println(\"============================================================\");

.println(\"============================================================\"); System.out.println(\" * 本系统中有以下课程:\" + Arrays.toString(courses) + \" *\"); System.out

.println(\"============================================================\");

while (true) { System.out.println(\"请输入您要查询的命令:\"); String key1 = null; String key2 = null;

String key3 = null;

Scanner scan = new Scanner(System.in); key1 = scan.next();

if (\"avg\".equalsIgnoreCase(key1)) { key2 = scan.next();

if (isExistStu(key2)) { System.out.println(key2 + \"同学的平均分是:\" + avg(key2)); } else if (isExistCou(key2)) { System.out.println(key2 + \"课程的平均分是:\" + avg(key2));

} else { System.out.println(\"不存在\" + key2 + \"同学或着课程,请您重新输

入...\");

}

} else if (\"sum\".equalsIgnoreCase(key1)) {

key2 = scan.next(); if (isExistStu(key2)) {

System.out.println(key2 + \"同学的总分是:\" + sum(key2)); } else if (isExistCou(key2)) { System.out.println(key2 + \"课程的总分是:\" + sum(key2));

}

} else {

System.out.println(\"不存在\" + key2 + \"同学或着课程,请您重新输

入...\");

}

} else if (\"sort\".equalsIgnoreCase(key1)) {

key2 = scan.next();

System.out.println(key2 + \"课的成绩降序排列为:\");

sort(key2);

} else if (\"get\".equalsIgnoreCase(key1)) {

key2 = scan.next(); key3 = scan.next(); if (isExistStu(key2)) {

if (isExistCou(key3)) { System.out.println(key2 + \"同学的\" + key3 + \"成绩是:\" }

+ get(key2, key3));

入!\");

}

} else { System.out.println(\"输入的\" + key2 + \"和\" + key3 + \"有误,请重新输

}

} else if (\"exit\".equalsIgnoreCase(key1)) {

System.out.println(\"欢迎使用学生成绩管理系统,谢谢!\"); break; } else { System.out.println(\"本系统不支持 \" + key1 + \" 这种操作\"); }

/**

* 查看学生数组里面是否存在指定学员 *

* @param stu

* 指定学员

* @return 若果存在返回true,否则返回false */

public static boolean isExistStu(String stu) { if (stu.length() == 0 || stu == null) {

}

return false;

for (int i = 0; i < students.length; i++) { if (stu.equals(students[i])) { return true;

}

}

}

return false;

/**

* 查看学生数组里面是否存在指定学员 *

* @param cou

* 指定课程

* @return 若果存在返回true,否则返回false */

public static boolean isExistCou(String cou) { if (cou.length() == 0 || cou == null) { } /**

* 求出指定学生或者课程的平均分 *

* @param source

* 指定的学生或者课程 * @return 平均分

*/

public static double avg(String source) { } /**

double avg = 0.0f; if (isExistStu(source)) {

avg = sum(source) / courses.length; return avg;

avg = sum(source) / students.length; return avg; }

return false;

for (int j = 0; j < courses.length; j++) { if (cou.equals(courses[j])) { return true; }

}

return false;

} else if (isExistCou(source)) {

}

return 0.0f;

* 求出指定学生或者课程的总分 *

* @param source

* 指定的学生或者课程 * @return 总分

*/

public static double sum(String source) { }

double total = 0;

if (isExistStu(source)) {

for (int i = 0; i < students.length; i++) {

if (source.equals(students[i])) { }

for (int j = 0; j < courses.length; j++) { }

total += stu_cou[i][j];

return total;

}

} else if (isExistCou(source)) { for (int j = 0; j < courses.length; j++) { }

}

if (source.equals(courses[j])) { for (int i = 0; i < students.length; i++) { }

total += stu_cou[i][j]; }

return total;

return 0.0f;

/**

* 对于指定内容进行降序排序 *

* @param source

* 指定的内容(sum,课程名称) * */

public static void sort(String source) {

if(isExistCou(source)) {

for(int i=0;i{

for(int j=0;j{ }

double temp=stu_cou[j][i]; stu_cou[j][i]=stu_cou[largeIndex][i]; stu_cou[largeIndex][i]=temp; String temp1=students[j];

students[j]=students[largeIndex];

if(stu_cou[j][i]largeIndex=k;

students[largeIndex]=temp1; }

for(int j=0;jSystem.out.println(source+\"课程的第\"+(j+1)+\"名是\"+students[j]+\"

分数是:\"+stu_cou[j][i]); } } }

}else {

double total[]=new double[students.length]; for(int i=0;ifor(int j=0;jtotal[i]=total[i]+stu_cou[i][j]; }

}

for(int i=0;ifor(int k=i;kint largeIndex=i; if(total[i]largeIndex=k;

} {

}

double temp=total[i]; total[i]=total[largeIndex]; total[largeIndex]=temp;

String temp1=students[i]; students[i]=students[largeIndex]; students[largeIndex]=temp1;

for(int i=0;iSystem.out.println(\"总分第\"+(i+1)+\"名的是:\"+students[i]+\"分数是:\"+total[i]);

} }

} /**

* 获取指定学生指定课程成绩 *

* @param stu

* 指定学员 * @param cour

* 指定课程

* @return 返回该学生该课程的成绩 */

public static double get(String stu, String cou) { } /**

*

* 对给定数组进行排序 * * * * */

for (int i = 0; i < students.length; i++) { if (stu.equals(students[i])) {

}

for (int j = 0; j < courses.length; j++) { if (cou.equals(courses[j])) return stu_cou[i][j]; }

}

return 0.0f;

}

因篇幅问题不能全部显示,请点此查看更多更全内容