听说大神都是会写博客,写技术文档分享的,我一直都没有写博客的习惯,难怪我还不是大神,作为在IT圈子浪迹多年的我,今天我也开始博客生涯,把自己的一些技术和心得分享出去,也希望通过这样的方式可以结交更多的朋友,一起交流,一起玩耍!
第一篇博客,我想还是来点简单的吧,就像盖房子一样,一步步来很重要。
那今天主要是想分享一个用Java实现的学生成绩录入系统,功能比较简单,适合新手来练习Java,熟悉Java基本语法和用法
编程语言:Java
编译环境:windows 10;IntelliJ idea
适合人群:Java零基础/初级人群
功能描述:
/*
* 需求:
* 键盘录入学生成绩,根据成绩判断学生属于哪个级别
* 成绩可以重复输入,直到输入 -1 结束成绩输入
* 程序结束后算出录入有效成绩的人数,平均分,及格人数,及格率,优秀人数,优秀率
* 级别如下:
* 90-100 优秀
* 80-90 好
* 70-80 良
* 60-70 及格
* 60以下 不及格
*/
功能分析:
- 根据需求首先我们知道,我们是得通过键盘录入成绩,所以需要用到java.util.Scanner 包中的 Scanner类,初始化操作 Scanner sc=new Scanner(System.in);
- 需要成绩可以重复录入,而不是只是录入一遍程序就结束,那么首先想到的应该是这个录入动作是可以循环进行,那么我们想到的是使用Java中的循环结构,包括for循环,while循环,do...while循环,这里小编使用的是while循环,其他循环也可以实现,可以自行去尝试。
- 成绩分为好几个等级,不同的分数,等级也不一样以及输入-1的时候结束成绩,那么这里是需要使用判断语句来判断录入的成绩是在哪个范围
经过分析下来,思路就很清晰了,我们就可以直接撸代码了
public static void main(String[] args) {
int score;// 录入的成绩
int sum = 0;//有效成绩的总分
int num = 0;// 录入有效成绩的次数
int good = 0;// 优秀人数
int fail = 0;//不及格人数
Scanner scanner = null;
// while循环控制可以输入多次 当 score == -1;循环结束
while (true) {
System.out.print("请输入学生的成绩[0~100];输入-1结束 ");
scanner = new Scanner(System.in);
score = scanner.nextInt();
sum += score;
// 如果输入的成绩 score == -1 时执行
if (score == -1) {
System.out.println("\n**************************");
System.out.println("*成绩录入结束!感谢您的使用!*");
System.out.println("**************************\n");
System.out.println("--------------------------");
System.out.println("总共输入" + num + "个学生的成绩\n" + "不及格的人数为" + fail +
"\n不及格率为:" + fail * 100 / (float) num + "%" +
"\n优秀率为:" + good * 100 / (float) num + "%" +
"\n学生的平均成绩为:" + ++sum / (float) num);
System.out.println("--------------------------");
break; //结束循环 也可以使用 return;关键字
}
// 判断输入的成绩是否有效以及所在的等级
if (score > 100 || score < 0) {
System.out.println("您输入的成绩有误,请重新输入!");
sum -= score;
continue;
} else if (score > 90 && score <= 100) {
System.out.println("学生成绩为【优秀】");
num++;
good++;
continue;
} else if (score > 80 && score <= 90) {
System.out.println("学生成绩为【好】");
num++;
continue;
} else if (score > 70 && score <= 80) {
System.out.println("学生成绩为【良】");
num++;
continue;
} else if (score >= 60 && score <= 70) {
System.out.println("学生成绩为【及格】");
num++;
continue;
} else {
System.out.println("学生成绩为【不及格】");
num++;
fail++;
continue;
}
}
}
运行截图
学生成绩录入运行截图
结语
整体来说,这个功能还是比较简单,主要是要判断出每次输入的成绩是否有效以及判断成绩所对应的等级,对于刚学习Java人来说,很多人只是会做到输入一次程序就结束了,或者没有想到如何去计算输入的人数和优秀率、及格率等数据,你不妨参考一下,扩展一下,提升自己