数组是最常用的一种数据结构,利用它可以解决很多较复杂的问题。通过一个“学生成绩查询系统”的设计,提高运用数组和编写较大规模代码的综合能力。
“学生成绩查询系统”中保存有学生姓名、课程名称以及学生的课程成绩。查询系统从控制台输入统计命令及参数,实现几种方式的成绩查询,如:

  1. avg:分别统计学生和课程的平均分
  2. get song Java:获取学生song的Java课程的成绩
  3. sort song:列出学生song所有课程成绩排序结果
  4. exit:退出程序
  5. max java:获取Java课程成绩的最高分
  6. max song:获取学生song所有课程成绩的最高分
package example3;
import java.util.Arrays;
import java.util.Scanner;
//学生成绩查询系统
public class example {Scanner scn=new Scanner(System.in);final static int STUDENT_NUM=6;final static int COURSE_NUM=5;static String[] students= {"zhang","wang","li","zhao","liu","song"};static String[] courses= {"C","Java","mySQL","Linux","HTML"};static int[][] score=new int[STUDENT_NUM][COURSE_NUM];public static void main(String[] args) {initScore();show();//显示菜单run(students,courses,score);}//1.初始化方法   public static void initScore() {//用随机数初始化成绩for(int i=0;i<score.length;i++) {for(int j=0;j<score[i].length;j++)score[i][j]=(int)(Math.random()*101);}}//显示成绩方法public static void show() {//显示成绩System.out.print("\t");//留出显示姓名的位置for(int i=0;i<courses.length;i++) {//输出课程名称System.out.print(courses[i]+"\t");}System.out.println();for(int i=0;i<score.length;i++) {//显示学生的姓名System.out.print(students[i]+"\t");//显示该学生成绩for(int j=0;j<score[i].length;j++) {System.out.print(score[i][j]+"\t");}System.out.println();}}public static void run(String[] students,String[] courses,int[][] score) {Scanner scn=new Scanner(System.in);while(true) {System.out.print("请输入命令:");String command=scn.next();if(command.equalsIgnoreCase("avg")) {//"avg"命令不需要输入参数avg(students,courses,score);}if(command.equalsIgnoreCase("get")) {//"get"命令需要两个参数String parameter1=scn.next();String parameter2=scn.next();get(students,courses,score,parameter1,parameter2);}if(command.equalsIgnoreCase("sort")) {//"sort"命令需要一个参数String parameter=scn.next();sortByScore(students,courses,score,parameter);}if(command.equalsIgnoreCase("max")) {//"max"命令需要一个参数String parameter=scn.next();getMax(students,courses,score,parameter);}if(command.equalsIgnoreCase("exit")) {//退出查询系统System.out.println("退出查询系统!byebye!");System.exit(0);}}}private static void getMax(String[] students, String[] courses, int[][] score, String parameter) {// 查询学生最高分int c1=-1,c2=0;for(int i=0;i<score.length;i++) {if(students[i].equalsIgnoreCase(parameter)) {int max=0;c1=1;for(int k=0;k<score.length;k++) {for(int j=0;j<5;j++) {if(max<score[i][j]) {max=score[i][j];//算出最大值}}}System.out.println(max);}}for(int i=0;i<courses.length;i++)//查询课程最高分if(courses[i].equalsIgnoreCase(parameter)) {int max=0;c2=1;for(int k=0;k<score.length;k++) {for(int j=0;j<score[j].length-1;j++) {if(max<score[k][i]) {max=score[k][i];//算出最大值}}}System.out.println(max);}if(c1==-1&c2==0) {System.out.println("你输入的既不是课程名,也不是学生名");}
}private static void sortByScore(String[] students, String[] courses, int[][] score, String parameter) {    //对某位学生成绩进行排序    for(int i=0;i<students.length;i++)if(students[i].equalsIgnoreCase(parameter)){int[] a = score[i];Arrays.sort(a);System.out.println(Arrays.toString(a));}}private static void get(String[] students, String[] courses, int[][] score, String condition1, String condition2) {// 查询某人某门课程成绩int i_index=-1,j_index=-1;//查找是否存在该学生i_indexfor(int i=0;i<score.length;i++) {if(students[i].equalsIgnoreCase(condition1)) {i_index=i;}}if(i_index!=-1) {//有此人,继续查找是否有此课程j_indexfor(int j=0;j<courses.length;j++)if(courses[j].equalsIgnoreCase(condition2)) {j_index=j;}}else {System.out.println("没有"+condition1+"这个人");return;}if(j_index!=-1) {System.out.println(condition1+"的"+condition2+"的成绩是:"+score[i_index][j_index]);}else {System.out.println(condition1+"没有"+condition2+"这门课程");return;}}private static void avg(String[] students, String[] courses, int[][] score) {// 算出所有学生课程成绩平均分int i,k=0;int sum1=0,sum2=0;System.out.print("\t");//表示横向空8个空格for(i=0;i<courses.length;i++) {System.out.print(courses[i]+"\t");}System.out.println();//换行for(i=0;i<students.length;i++) {System.out.print(students[i]+"\t");for(k=0;k<5;k++) {System.out.print(score[i][k]+"\t");sum1=sum1+score[i][k];}double avg1=sum1/5;System.out.println(avg1+"\t");sum1=0;System.out.println();}System.out.println("所有课程平均分:");for(i=0;i<5;i++) {for(int j=0;j<6;j++) {sum2=sum2+score[j][i];}double avg2=sum2/6;System.out.print("\t"+avg2);sum2=0;}System.out.println();}
}

运行结果:

Java综合实践——学生成绩查询系统相关推荐

  1. 学生成绩查询java版_学生成绩查询系统,基于ssm的JAVA系统

    每天记录学习,每天会有好心情.*^_^* 今天记录的项目是学生成绩查询系统,这个项目是这么回事:介绍了在Internet/WWW环境下构建学生成绩查询系统的设计思路与方法 ,阐述了在学生成绩查询系统中 ...

  2. 学生成绩查询系统(Java实现),你第一个Java小项目

    一.学生成绩查询系统(Java实现) 项目要求(我们可以做的更面向对象一点,灵活处理): 具体思路如下: 1.引入程序需要调用的包 2.创建总程序包 "stuScoreInquirySyst ...

  3. Java项目实训——学生成绩查询系统

    avg:分别统计学生或课程 get song Java:输出song的Java成绩 sort C:输出所有学生在C课程下的排名 new:重新输入学生的成绩 首先应定义静态变量: static Stri ...

  4. Java学生成绩查询系统系统

    项目要求: ①学生成绩查询系统中保存学生姓名.课程名称以及学生的课程成绩. ②查询系统从控制台输入统计命令以及参数,实现成绩的查询.主要命令如下: avg Java:统计课程Java的平均分. avg ...

  5. android学生成绩查询代码,android学生成绩查询系统.pdf

    android学生成绩查询系统 嵌入式系统课程设计报告 学生成绩查询系统手机端 I 摘要 在 世纪的今天,互联网已深入世界的各个角落.而WAP技术的发展和无线业务的成 21 熟,为人们获取各种信息提供 ...

  6. eclipse和数据库实现学生成绩查询系统web界面

    学生成绩查询系统(eclipse+SQLserver+tomact) 开发环境 系统实现 总结+参考 开发环境 比较懒. 如果要做这种类似的系统大概都知道这些软件吧.所以这个部分比较粗糙 Java环境 ...

  7. 成绩查询系统c语言,学生成绩查询系统C语言代码(分服务器端和客户端).doc

    学生成绩查询系统C语言代码(分服务器端和客户端) 客户端:#include#include#include #pragma comment(lib , "Wsock32.lib " ...

  8. c语言学生成绩查询系统2018,南昊网上阅卷学生成绩查询系统

    2018南昊网上阅卷学生成绩查询系统开放了,这是面向南昊当地的中小学生们的一款优质的查询学习成绩的平台,只要登录自己的账号就能查询自己的成绩排名情况.对于老师来说这也是一款网上阅卷系统,是一个非常幼稚 ...

  9. 学生成绩查询c#语言,C#学生成绩查询系统.doc

    ????学院 毕 业 论 文(设 计) 论文(设计)题目:学生成绩查询系统 所属系别: 信息工程系 专业班级:06计算机网络技术1班 姓 名: 常 军 玲 学 号: 200608090830129 指 ...

最新文章

  1. 我的世界java材质包转基岩_Minecraft我的世界基岩版材质包导入教程
  2. C++笔记(3)——string.h相关的一些小知识
  3. 6.dubbo常用的xml配置有哪些_【面试篇】必须掌握的Spring 常用注解
  4. 读取properties资源文件中的参数
  5. 用于.NET环境的时间测试
  6. 简述台式计算机组装的基本步骤,《计算机组装与维修》期中考试试卷答案
  7. 安卓系统开发常用的框架
  8. android遥控杆控件,Android自定义滑杆控件SeekBar多功能版本
  9. 前端踩坑(八)前端使用Moment 时间格式化错误
  10. QQ Tim另存为文件时闪退,错误模块ntdll.dll
  11. 2022年下半年软考考科目有这些,快看
  12. 编译原理-词法分析器
  13. Session与Cookie的区别与联系
  14. 嵌入式C语言自我修养:从芯片、编译器到操作系统-习题、笔记
  15. bundle initial exceeded maximum budget. Budget 1.00 MB was not met by 642.91 kB with a total of 1.63
  16. 转:Metalink 账户
  17. 现在还有哪些好的站长论坛?
  18. Simple-BEV: 多传感器BEV感知真正重要的是什么?(斯坦福大学最新)
  19. node.js+uniapp计算机毕业设计安卓劳务派遣APP(程序+APP+LW)
  20. 如何快速的找到动漫,电影资源

热门文章

  1. 有软件测试台式电脑电源供电不足吗,电脑电源供电不足惹起的六种觉见故障
  2. mysql树状结构查询子节点和父节点
  3. python期货程序化交易高手心得_位顶级高手谈期货心得
  4. 【穆勒矩阵求解线双折射和圆双折射】
  5. Ubuntu安装开源终端工具Tabby
  6. linux ip打印机驱动程序,Ubuntu下佳能ip1000打印机驱动的安装
  7. 将文本数据转换成arff文件
  8. 下载 rabbitmq 和 erlang 的 .rpm 文件
  9. Vue:获取当前定位城市名
  10. 北京2008中国代表团名单