编写 “成绩分析” 程序代码,用DOS命令编译、运行

2 篇文章 0 订阅

编写一段程序代码,使得本班同学可以在输入主要科目考试成绩后,获得成绩的分析结果。

下图为思路:

思路

代码如下:


class ResultsSearch
{
	public static void main(String[] args) 
	{
		Scanner in = new Scanner(System.in);
		System.out.println("* * * * * * * * * 成绩分析程序 * * * * * * * * *");	//输出本程序名字,通过命名本程序来介绍本程序功能
		System.out.println("请按所给顺序输入各科成绩,以空格键隔开");	//输出程序要求
		/*各科目的学分与绩点的命名如下
		  科目				  学分	得分	绩点
		高等数学B1				a	aa		aaa
		高级语言程序设计B		b	bb		bbb
		高级语言程序设计B实验	c	cc		ccc
		大学英语1				d	dd		ddd
		形势与政策				e	ee		eee
		中国近现代史纲要		f	ff		fff
		大学体育1				g	gg		ggg 
		*/
		double a=4;	//定义各科目学分
		double b=2;
		double c=2;
		double d=3;
		double e=3;
		double f=3;
		double g=1;
		System.out.println("高等数学B1:");	//输出各科目名称
		System.out.println("高级语言程序设计B:");
		System.out.println("高级语言程序设计B实验:");
		System.out.println("大学英语1:");
		System.out.println("形势与政策:");
		System.out.println("中国近现代史纲要:");
		System.out.println("大学体育1:");
		double aa=in.nextInt();	//定义并输入个科目得分
		double bb=in.nextInt();
		double cc=in.nextInt();
		double dd=in.nextInt();
		double ee=in.nextInt();
		double ff=in.nextInt();
		double gg=in.nextInt();
		double aaa=aa/10-5;	//定义并计算各科目绩点
		double bbb=bb/10-5;
		double ccc=cc/10-5;
		double ddd=dd/10-5;
		double eee=ee/10-5;
		double fff=ff/10-5;
		double ggg=gg/10-5;
		double a_b=(a*aaa+b*bbb+c*ccc+d*ddd+e*eee+f*fff+g*ggg)/(a+b+c+d+e+f+g);	//定义并计算平均绩点
		System.out.println();	//空一行
		System.out.println(String.format("你的平均绩点是:%.1f",a_b));	//输出平均绩点
		System.out.println();	//空一行
		if(a_b>=4) //分析成绩,输出成绩分析结果
			System.out.println("你的本次成绩非常好。路灯经过一夜的努力,才无愧地领受第一缕晨光的抚慰。同学,你是妥妥的学霸!");
		else if(a_b>=3)
			System.out.println("你的本次成绩较好。希望和勤奋作伴,便能如虎添翼。继续加油!你会更出色!");
		else if(a_b>=2.5)
			System.out.println("你的本次成绩不错。目光能看多远,你就能走多远。继续加油,保持清醒与勤奋,你一定会有进步的");
		else if(a_b>=2.0)
			System.out.println("你的本次成绩距离申请学位证的成绩要求只有一点距离了。当你感到迷茫的时候,请你抬头看看天边的阳光。继续加油!保持清醒与勤奋,你一定会有进步的");
		else
			System.out.println("你的本次成绩距离申请学位证的成绩要求有一点距离。一分浮躁,一分遗憾。行动是治愈迷惘和犹豫的良药。加油!端正态度,找对方法,保持清醒与勤奋,你一定会有进步的");
		System.out.println("");	//空一行,另一行输出鼓励学习的话
		System.out.println("学习可以给人以机遇,机遇对于每个人都是平等的。没有准备很难把握机遇。有了准备,随时都有机遇。学习可以使你成为有准备的人,我们得到的许多恩泽都是随心创造的。");
		System.out.println("当有一种真正的精神生活,活泼地也深刻地植根于一个人的生命之中,那么无论周围的生命本身都显现出一种挺拔向上的姿态,这种人生才是真正值得的.");	

	}
}

使用 CMD.EXE 编译、运行此代码,使用 javac 【文件名】命令进行编译,出现了错误:编译结果

错误:编码 GBK 的不可映射字符

这是为什么呢?
查询后得出以下结果:

“但是在用javac -d命令编译上述源代码总会出现
错误:编码 GBK 的不可映射字符 (0x8C)

上网搜了搜网上的解释:
  由于JDK是国际版的,我们在用javac编译时,编译程序首先会获得我们操作系统默认采用的编码格式(GBK),然后JDK就把Java源文件从GBK编码格式转换为Java内部默认的Unicode格式放入内存中,然后javac把转换后的Unicode格式的文件编译成class类文件,此时,class文件是Unicode编码的,它暂存在内存中,紧接着,JDK将此以Unicode格式编码的class文件保存到操作系统中形成我们见到的class文件。当我们不加设置就编译时,相当于使用了参数:javac -encoding GBK Test.java,就会出现不兼容的情况。

解决方法:使用-encoding参数指明编码方式:javac -encoding UTF-8 Test.java,就可以了。

版权声明:本文为CSDN博主「阿腾木」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。“
原文
注:javac【文件名】 命令可以编译成功纯英文代码

使用 javac -encoding UTF-8 【文件名】命令编译,出现了新的问题:使用 **javac -encoding UTF-8** 【文件名】命令编译结果

错误: 找不到符号 Scanner scan=Scanner(System.in);

这是为什么呢?
查询后得出以下结果

查询 "错误: 找不到符号 Scanner scan=Scanner(System.in); " 结果原文

在第一行加入“import java.util.Scanner;”后,代码如下:

import java.util.Scanner;	//获取用户的输入的包

class ResultsSearch
{
	public static void main(String[] args) 
	{
		Scanner in = new Scanner(System.in);
		System.out.println("* * * * * * * * * 成绩分析程序 * * * * * * * * *");	//输出本程序名字,通过命名本程序来介绍本程序功能
		System.out.println("请按所给顺序输入各科成绩,以空格键隔开");	//输出程序要求
		/*各科目的学分与绩点的命名如下
		  科目				  学分	得分	绩点
		高等数学B1				a	aa		aaa
		高级语言程序设计B		b	bb		bbb
		高级语言程序设计B实验	c	cc		ccc
		大学英语1				d	dd		ddd
		形势与政策				e	ee		eee
		中国近现代史纲要		f	ff		fff
		大学体育1				g	gg		ggg 
		*/
		double a=4;	//定义各科目学分
		double b=2;
		double c=2;
		double d=3;
		double e=3;
		double f=3;
		double g=1;
		System.out.println("高等数学B1:");	//输出各科目名称
		System.out.println("高级语言程序设计B:");
		System.out.println("高级语言程序设计B实验:");
		System.out.println("大学英语1:");
		System.out.println("形势与政策:");
		System.out.println("中国近现代史纲要:");
		System.out.println("大学体育1:");
		double aa=in.nextInt();	//定义并输入个科目得分
		double bb=in.nextInt();
		double cc=in.nextInt();
		double dd=in.nextInt();
		double ee=in.nextInt();
		double ff=in.nextInt();
		double gg=in.nextInt();
		double aaa=aa/10-5;	//定义并计算各科目绩点
		double bbb=bb/10-5;
		double ccc=cc/10-5;
		double ddd=dd/10-5;
		double eee=ee/10-5;
		double fff=ff/10-5;
		double ggg=gg/10-5;
		double a_b=(a*aaa+b*bbb+c*ccc+d*ddd+e*eee+f*fff+g*ggg)/(a+b+c+d+e+f+g);	//定义并计算平均绩点
		System.out.println();	//空一行
		System.out.println(String.format("你的平均绩点是:%.1f",a_b));	//输出平均绩点
		System.out.println();	//空一行
		if(a_b>=4) //分析成绩,输出成绩分析结果
			System.out.println("你的本次成绩非常好。路灯经过一夜的努力,才无愧地领受第一缕晨光的抚慰。同学,你是妥妥的学霸!");
		else if(a_b>=3)
			System.out.println("你的本次成绩较好。希望和勤奋作伴,便能如虎添翼。继续加油!你会更出色!");
		else if(a_b>=2.5)
			System.out.println("你的本次成绩不错。目光能看多远,你就能走多远。继续加油,保持清醒与勤奋,你一定会有进步的");
		else if(a_b>=2.0)
			System.out.println("你的本次成绩距离申请学位证的成绩要求只有一点距离了。当你感到迷茫的时候,请你抬头看看天边的阳光。继续加油!保持清醒与勤奋,你一定会有进步的");
		else
			System.out.println("你的本次成绩距离申请学位证的成绩要求有一点距离。一分浮躁,一分遗憾。行动是治愈迷惘和犹豫的良药。加油!端正态度,找对方法,保持清醒与勤奋,你一定会有进步的");
		System.out.println("");	//空一行,另一行输出鼓励学习的话
		System.out.println("学习可以给人以机遇,机遇对于每个人都是平等的。没有准备很难把握机遇。有了准备,随时都有机遇。学习可以使你成为有准备的人,我们得到的许多恩泽都是随心创造的。");
		System.out.println("当有一种真正的精神生活,活泼地也深刻地植根于一个人的生命之中,那么无论周围的生命本身都显现出一种挺拔向上的姿态,这种人生才是真正值得的.");	

	}
}

使用 CMD.EXE 编译、运行此代码:

编译、运行结果
运行成功

完成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值