栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

一、学生成绩查询系统(Java实现)

项目要求(我们可以做的更面向对象一点,灵活处理):

具体思路如下: 1、引入程序需要调用的包 2、创建总程序包 "stuScoreInquirySystem" 3、在main类以及其他方法类外面定义好学生名字及课程名称并存入,给予静态赋值 4、分类创建方法   1、main()方法、   2、初始化方法  initScore()   3、输入成绩方法   scanfScore()   4、显示成绩方法   show()   5、运行程序方法(实现功能)run()

    1、平均分方法  arg()

    2、查询学生单科成绩方法 get()

    3、单科成绩排名方法   subjectRank()

import java.lang.ArrayIndexOutOfBoundsException;
import java.util.Scanner; //引入Scanner包

public class stuScoreInquirySystem {    //程序包名“学生成绩查询系统”
    Scanner src=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];      //学生成绩存在二维数组中

    //main()入口
    public static void main(String[] args){
        initScore();
        scanfScore(score);
        show();
        run(students,courses,score);
    }
    
    //初始化“学生成绩二维数组”  随机数
    public static void initScore(){
        for(int i=0;i< score.length;i++){
            for(int j=0;jscore[j+1][j_index]){
                    sum=score[j][j_index];
                    sumStu=students[j];
                    score[j][j_index]=score[j+1][j_index];
                    students[j]=students[j+1];
                    score[j+1][j_index]=sum;
                    students[j+1]=sumStu;
                }
            }
        System.out.println("名次"+"t"+"姓名"+"t"+courses[j_index]+"t"); //输出排名情况
        int i=0;
        for(int minCi=1;minCi<= students.length&i 
二、代码运行验证: 

三、技巧及知识总结: 1、equalsIgnoreCase()与equals()方法不同的是,前者不区分大小写,因而使得用户输入命令的时候不用考虑大小写的情况 2、random()方法

Java中存在着两种Random函数,他们所在jdk包如下:

  1、java.lang.Math.Random;(我用的是这一种,它可以随机给对象返回大于等于0.0小于1.0的double初始值,来初始化对象属性)

  2、java.util.Random(我还不是很熟,大家可以复制百度一下,或者自己查一下API)

3、ArryIndexOfBoundsException:数组越界

合理:[0,arr.length-1]

越界:arr[-1],arr[arr.length]

在写这行代码的时候笔者也是初学者,报了好几个错误,这个最常见,大家一定要熟悉

4、next()和nextLine()的使用

  1、next()它遇到空格或者enter键就停止读取,nextLine()遇到enter键才结束读取

  2、next()从第一个非空字符开始读取,nextLine()不管字符空或非空,都读取(我举个例子你就明白了,我测试了)

//我输入一下命令(带有空格)
     hello ni hao ya  //hello前我输入了几个空格(注)
//若next()读取,会打印"hello",没有一点空格,而且不会打印“ni”、"hao"等等,因为遇到空格就停止了
//若nextLine[]读取,会打印"     hello ni hao ya",你输入的那一行有啥它就打印出啥,包括空格,直到按下enter键后,按enter键之前的都会打印出来
........................................................
//输入一行字符,以空格分开,怎么样分别存入它的值
//例如:输入“wo shi chao ji wu di da shuai ge” 我是超级无敌大帅哥9段字符,我可以用9个next()读取
//但是实际操作中不想写这么多行next()重复代码,我们可以用递归的思想,慢慢琢磨哈
//所以我这次想表达的是,next()方法可以一段一段读取字符串
...........................................................
5、编写代码是,要时刻考虑是否要立一个flag,如j_index、i_index就是我立的一个flag 6、"t"的使用:为了实现让程序输出时如同表格一样整齐有序,我们可以巧妙学会使用"t",它会自动识别字符长度,为字符分配空间。

  "t"是补全当前字符串长度到8的整数倍,补多少要看你t前字符串长度,比如当前字符串长度10,那么t后长度是16,也就是补6个空格,如果当前字符串长度13,此时t后长度是16,补3个空格

7、有时候我们无法判断数组长度为多少时,可以使用"数组名.length"来解决,调用数组时我们通常用它的数组名,其实也就是它的首地址。

  在这里要注意的是:一维、二维和多维;拿最常见的二维数组来举例:arr[不知道] [也不知道],arr.length表示一维行的长度,arr[0].length表示二维列的长度。都是首地址的形式,想一想哈哈。

8、数组的复制和赋值

  array2 = array1; //赋值,相当于给它一个快捷方式,不开辟这么多空间 ,你就想想电脑桌面的快捷方式就可以了,他们两都指向堆中同一个地址,电脑桌面的快捷方式是指向硬盘中的一个储存地址

  int [] arr1 = new int[arr.length];//要复制数组,就要new一个数组,给它开辟一个空间,这个是实实在在分配了与原数组一样的存储空间的

9、for(A;B;C)这个循环我最近也去大胆的乱测了一下,我尝试在A区多谢几条代码,用逗号分开,好像不行,我之后再去多多试一下,可能我说的是错哈B、C区我同样也试了一下,最终结果有待论证,我知道后会更新博客 10、这个成绩管理demo的”学生名字“放在了列,“课程名称”放在了行,它们虽然是以为数组,但是它们的角标可以注入我们的score[] []二维里,这个笔者刚开始想了好久都没想到,后面阴差阳错看了段源码恍然大悟 11、A&&B 与 A&B 的区别(在之后的博客里我会细讲),这次简单点提:前者若A区false,B区就不执行了,后者若A区false,B区仍然执行。 12、注重代码的可读性,如驼峰命名法等 结束语:

不瞒你说,这是笔者学习java写的第一个像样的demo,最终就打算把它以一篇博客的形式呈现给大家,我会不断学习,创造更优质的内容,谢谢大家!

若有不足之处,请多指正!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/782585.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号