26-30题

26.试题编号:J1-26《成绩分析系统》关键算法

(1)任务描述 对学生成绩进行统计和数据分析可以发现学生对知识的掌握情况,以便教师根据分析的 结果调整教学内容和重难点,现在需要完成以下任务来实现成绩分析系统。 任务一:实现成绩等级划分功能关键算法并绘制流程图(30 分) 输入一个百分制的成绩 t,将其转换成对应的等级然后输出,具体转换规则如下:

90~100 为 A

80~89 为 B

70~79 为 C

60~69 为 D

0~59 为 E

要求:如果输入数据不在 0~100 范围内,请输出一行:“Score is error!”。

import java.util.Scanner;


/*
*成绩等级划分
*/
public class Task1 {
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		System.out.print("输入一个百分制的成绩t:");
		double t = s.nextDouble();
		int d = (int) (t/10);
		switch (d) {
		case 10:
		case 9:
			System.out.print("A");
			break;
		case 8:
			System.out.print("B");
			break;	
		case 7:
			System.out.print("C");
			break;
		case 6:
			System.out.print("D");
			break;
		case 5:
		case 4:
		case 3:
		case 2:
		case 1:
		case 0:
			System.out.print("E");
			break;		
		default:
			System.out.print("Score is error!");
			break;
		}
	}
}

任务二:实现数列求和功能关键算法并绘制流程图(30 分) 数列的定义如下: 数列的第一项为 n,以后各项为前一项的平方根,输出数列的前 m 项的和。 要求:数列的各项均为正数。

import java.util.Scanner;

/*
数列的第一项为 n,以后各项为前一项的平方根,输出数列的前 m 项的和.
*/
public class Task2 {
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		System.out.print("数列第一项n:");
		double n = s.nextDouble();
		System.out.print("共有m项:");
		int m = s.nextInt();
		double sum = 0;
		for (int i = 0; i < m; i++) {
			sum += n;
			n = Math.sqrt(n);
		}
		System.out.printf("%.2f",sum);
	}
}

任务三:求前 n 项之和功能关键算法并绘制流程图(30 分) 多项式的描述如下:1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + ...,现在要求出该多项式 的前 n 项的和。 要求:结果保留两位小数。 (2)作品提交要求见本模块附录 1 (3)实施条件要求见本模块附录 2 (4)评价标准见本模块附录 3

import java.util.Scanner;

/*
 *
*/

public class Task3 {
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		System.out.print("输入多少项n:");
		int i = 1;//分子
		int n = s.nextInt();
		double a = 0;//前m项奇数项的和
		double b = 0;//前m项偶数项的和
		double sum = 0;
		int a1 = 1;
		for (int j = 1; j <= n; j++) {
			if (j%2!=0) {//奇数
				a = a + (a1 - i/j+1);
				a1 = 0;
			}
			if (j%2==0) {
				b = b + i/j+1;
			}
			sum = sum + a+b;
		}
		System.out.format("%.2f",sum).println();
	}
}

 

27.试题编号:J1-27《酒水销售系统》关键算法

(1)任务描述 互联网的发展极大地促进了全球经济贸易的发展,同时也正在改变人们的消费方式。某 酒厂打算开发一个酒水销售系统,以便在网上进行产品销售、利润统计及经营分析。为实现 该系统,请完成以下任务。

任务一:实现酒水销售 1 关键算法并绘制流程图(30 分) 啤酒每罐 2.3 元,饮料每罐 1.9 元。小明买了若干啤酒和饮料,一共花了 82.3 元。我 们还知道他买的啤酒比饮料的数量少,请你编程计算他买了几罐啤酒。 注意:使用循环实现。

/*
啤酒每罐 2.3 元,饮料每罐 1.9 元。小明买了若干啤酒和饮料,一共花了 82.3 元。我
们还知道他买的啤酒比饮料的数量少,请你编程计算他买了几罐啤酒。
*/
public class Task1 {
	public static void main(String[] args) {
		System.out.println(fun());
	}
	
	public static int fun() {
		int i,j,x,y,tmp;
		for (i = 0; i < 100; i ++) {
			for (j = 0;j<i;j++) {
				tmp = 19*i+23*j;
				if (tmp == 823) 
					return j;
			}
		}
		return 0;
	}
}

任务二:实现酒水销售 2 关键算法并绘制流程图(30 分) 本月酒水的销售为 2!+4!+5!的值。n!表示 n 的阶乘,例如 3!=3×2×1=6,5!=5×4×3 ×2×1=120。求这个值。 注意:分别利用递归和非递归方法实现求 n!。

/*
本月酒水的销售为 2!+4!+5!的值。n!表示 n 的阶乘,例如 3!=3×2×1=6,5!=5×4×3
×2×1=120。求这个值。
注意:分别利用递归和非递归方法实现求 n!。
*/
public class Task2 {
	public static void main(String[] args) {
		System.out.println(fun(2)+fun(4)+fun(5));
	}
	
	public static int fun(int n) {
		int path = 1;
		if (n<0) {
			return -1;
		}
		while (n>0) {
			path = path * n;
			n--;
		}
		return path;
	}
}

任务三:实现酒水销售 3 关键算法并绘制流程图(30 分) 酒水产商临时打算,为系统增加新功能,根据特定算法生产特定的字符 logo。 把 abcd...s 共 19 个字母组成的序列重复拼接 106 次,得到长度为 2014 的串。 接下来删除第 1 个字母(即开头的字母 a),以及第 3 个,第 5 个等所有奇数位置的字 母。得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请编程 求解该字母。 注意:使用循环或者递归实现,只需打印最后剩下的那个字母。 (2)作品提交要求见本模块附录 1 (3)实施条件要求见本模块附录 2 (4)评价标准见本模块附录 3

/*猜字母
 把abcd...s共19个字母组成的序列重复拼接106次,得到长度为2014的串。
 接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母。
 得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请写出该字母。
 */

public class Task3 {
	public static void main(String[] args) {
		String str = "";
		for (int i = 1; i <= 19; i++) 
			str +=  (char) (96+i);//打印19个字母
		
		
		//重复拼接106次
		StringBuilder sb = new StringBuilder();
		for (int i = 0; i < 106; i++) 
			sb.append(str);
		
		
		//删除奇数位
		while (sb.length()>1) {
			for (int i = 0; i < sb.length(); i++)
				sb.delete(i, i+1);//每循环一次长度就减一并删除了奇数位
		}
		
		System.out.print(sb);
	}
}

  

 

28.试题编号:J1-28《中学生数学辅助学习系统》关键算法

(1)任务描述 由于中学数学是培养数学思维的基础阶段,为了让学生打造一个坚实的数学基础,A 学 校决定开发一个中学生数学辅助学习系统,通过完成趣味试题,采用游戏通关的方式,帮助 中学生初步掌握二元一次方程解简单应用题的方法和步骤,并会列出二元一次方程解简单的 应用题。

任务一:实现汽车与摩托问题的关键算法并绘制流程图(30 分)
在一个停车场内,汽车、摩托车共停了 48 辆,其中每辆汽车有 4 个轮子,每辆摩托车 有 3 个轮子,这些车共有 172 个轮子,编程输出停车场内有汽车和摩托车的数量。 注意:用循环语句实现。

/*
在一个停车场内,汽车、摩托车共停了 48 辆,其中每辆汽车有 4 个轮子,每辆摩托车
有 3 个轮子,这些车共有 172 个轮子,编程输出停车场内有汽车和摩托车的数量。
*/
public class Task1 {
	public static void main(String[] args) {
		System.out.println("汽车:"+fun());
		System.out.println("摩托车:"+(48-fun()));
	}
	
	public static int fun() {
		int i,j,tmp;
		for (i = 0; i < 48 ; i++) {
			for(j = 0; j < i;j++){
				tmp = 4*i+3*j;
				if (tmp==172)
					return i;
			}
		}
		return 0;
	}
}

任务二:实现运送暖瓶问题的关键算法并绘制流程图(30 分) 某运输队为超市运送暖瓶 500 箱,每箱装有 6 个暖瓶。已知每 10 个暖瓶的运费为 5 元, 损坏一个不但不给运费还要赔 10 元,运后结算时,运输队 共得 1332 元的运费。编程输出 损坏暖瓶的个数。 注意:用循环语句实现。

/*
某运输队为超市运送暖瓶 500 箱,每箱装有 6 个暖瓶。已知每 10 个暖瓶的运费为 5 元,
损坏一个不但不给运费还要赔 10 元,运后结算时,运输队 共得 1332 元的运费。编程输出
损坏暖瓶的个数。
*/
public class Task2 {
	public static void main(String[] args) {
		System.out.print(fun());
	}
	
	public static int fun() {
		int ydyf = 1500;//应得运费
		int sjyf = 1332;//实际运费
		int ssyf ;
		int i;
		for (i = 1; i < 3000; i++) {
			ssyf = (int) (i*(0.5+10));
			if (ssyf == 168 ) 
				return i;
		}
		return 0;
	}
}

任务三:实现合格电视机问题的关键算法并绘制流程图(30 分) 某电视机厂每天生产电视 500 台,在质量评比中,每生产一台合格电视机记 5 分,每生 产一台不合格电视机扣 18 分。如果四天得了 9931 分,编程计算这四天生产的合格电视机的 台数,并输出。 注意:用循环语句实现。 (2)作品提交要求见本模块附录 1 (3)实施条件要求见本模块附录 2 (4)评价标准见本模块附录 3

/*
 *某电视机厂每天生产电视 500 台,在质量评比中,每生产一台合格电视机记 5 分,每生
产一台不合格电视机扣 18 分。如果四天得了 9931 分,编程计算这四天生产的合格电视机的
台数,并输出。

*/

public class Task3 {
	public static void main(String[] args) {
		System.out.println(fun());
	}
	
	public static int fun() {
		int ts = 2000;//4天2000
		int hgdf = 10000;//应得10000分
		int sjdf = 9931;//实际得分
		for (int i = 1; i <= 2000; i++) {
			int tmp = (18+5)*i;//一台不合格5分不加还有反扣18分
			if(tmp==69) return i;
		}
		return 0;
	}
}

  

29.试题编号:J1-29《歌手大赛系统》关键算法

(1)任务描述 A 学校即将举行“校园歌手大赛”,为了快速准确的分析选手的得分情况。A 学校决定 开发一个歌手大赛系统。为了实现该系统的功能,请完成以下三个任务。

任务一:实现计算平均分功能关键算法并绘制流程图(30 分) 小明今天参加了“校园歌手大赛”,评委的打分规则是去掉一个最低分和一个最高分后 算出剩下分数的平均分,你能帮助小明快速的算出平均分吗? (评委数量必须大于 2) 输入说明:首先输入一个整数 n,代表评委人数,然后输入 n 个数。请按照题目的计算 规则计算出平均分然后输出。 例如输入:

6

100 90 90 80 85 95

按照题目注意计算平均分并输出:

90.0

注意:使用循环和数组实现。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
/*

*/
public class Task1 {
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		int n = s.nextInt();//评委个数
		double[] arry = new double[n];
		for (int i = 0; i < n; i++) 
			arry[i] = s.nextDouble();//分数
		
		//排序
		double temp = 0;
		for (int i = 0; i < arry.length; i++) {
			for (int j = 0; j < arry.length-i-1; j++) {
				if (arry[j]<arry[j+1]) {
					temp = arry[j];
					arry[j] = arry[j+1];
					arry [j+1] = temp;
				}
			}
		}
		
		System.out.println(Arrays.toString(arry));
		
		//去掉第一个和最后一个
		ArrayList<Double> aList = new ArrayList<>();
		for (int i = 1; i < arry.length-1; i++) {
			aList.add(arry[i]);
		}
		System.out.print(aList.toString()+"\r");
		
		//遍历数组
		double sum = 0;//和
		int size = aList.size();//分数个数
		double avg;
		for (Double double1 : aList) 
			sum += double1;
		avg = sum/size;
		System.out.print(avg);
	}
}

任务二:实现查数功能关键算法并绘制流程图(30 分) 求 n(2<=n<=10)个整数中倒数第二小的数。每一个整数都独立看成一个数,比如,有 三个数分别是 1,1,3,那么,第二小的数就是 1。(每个数 均小于 100) 说明:首先输入一个整数 n,然后输入 n 个数。请输出第 2 小的数。 例如输入: 5 -5 -10 10 50 80 程序输出第 2 小的数:-5 注意:使用循环实现。

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

/*
首先输入一个整数 n,然后输入 n 个数。请输出第 2 小的数。
例如输入:
5
-5 -10 10 50 80
程序输出第 2 小的数:-5
*/
public class Task2 {
	public static void main(String[] args) {
		System.out.print("输入一个整数n:");
		Scanner s = new Scanner(System.in);
		int n = s.nextInt();
		int[] as = new int[n];
		for (int i = 0; i < as.length; i++) 
			as[i] = s.nextInt();
		
		//排序
		for (int i = 0; i < as.length; i++) {
			for (int j = 0; j < as.length-i-1; j++) {
				if (as[j]>as[j+1]) {
					int temp = as[j];
					as[j] = as[j+1];
					as[j+1] = temp;
				}
			}
		}
		System.out.println(Arrays.toString(as));
		System.out.print("第二小的数:"+as[1]);
	}
}

任务三:实现分数排序功能关键算法并绘制流程图(30 分)
小明的老师今天教了冒泡排序,但是小明在网上找到一种更加方便的排序,但是小明不 会使用,你能帮帮他吗?定义一个 n 输入 n(0<n<1000)然后输入 n 正整数,输出从小到大 输入结果 注意:按照题目描述完成程序,使用 sort 方法实现。 (2)作品提交要求见本模块附录 1 (3)实施条件要求见本模块附录 2 (4)评价标准见本模块附录 3

import java.util.Arrays;
import java.util.Scanner;
/*
使用 sort 方法实现
*/

public class Task3 {
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		System.out.print("输入n:");
		int n = s.nextInt();
		int[] arry = new int[n];
		for (int i = 0; i < arry.length; i++) 
			arry[i] = s.nextInt();
		System.out.println(Arrays.toString(arry));
		Arrays.sort(arry);
		for (int i = 0; i < arry.length; i++) 
			System.out.print(arry[i]);
	}
}

  

30.试题编号:J1-30《英语辅导系统》关键算法

(1)任务描述 随着国际化的到来英语在我们生活中就凸显得比较重要了,特别是学习编程语言的我们, 所以 B 公司决定开发一套英语辅助学习系统,通过完成趣味试题,采用游戏通关的方式,帮 助有需要的人更好的学习英语。

任务一:实现趣味英语试题 1 关键算法并绘制流程图(30 分) 已知字符串数组 A,包含初始数据:a1,a2,a3,a4,a5;字符串数组 B,包含初始数据: b1,b2,b3,b4,b5。编写程序将数组 A、B 的每一对应数据项相连接,然后存入字符串数组 C, 并输出数组 C。输出结果为:a1b1,a2b2,a3b3,a4b4,a5b5。 例如:数组 A 的值为{“Hello ” , “Hello ” , “Hello ” , “Hello ” , “Hello ” }, 数组 B 的值为{“Jack” , “Tom” , “Lee” , “John” , “Alisa” },则输出结果 为{“Hello Jack” , “Hello Tom” , “Hello Lee” , “Hello John” , “Hello Alisa” }。
注意:定义 2 个字符串数组 A、B,用于存储读取数据。定义数组 C,用于输出结果。 ①使用循环将数组 A、B 的对应项相连接,结果存入数组 C。 ②使用循环将数组 C 中的值输出。

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


/*

*/
public class Task1 {
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		
		System.out.print("输入数组A:");
		String[] A = new String[5];
		for (int i = 0; i < A.length; i++) 
			A[i] = s.next();
		
		System.out.print("输入数组B:");
		String[] B = new String[5];
		for (int i = 0; i < B.length; i++) 
			B[i] = s.next();
		
		System.out.print(Arrays.toString(A)+"\r");
		System.out.print(Arrays.toString(B)+"\r");
	
		String[] C = new String[5];
		for (int i = 0; i < C.length; i++) {
			C[i] = A[i]+B[i];
		}
		
		for (int i = 0; i < C.length; i++) 
			System.out.print(C[i]);
	}
}

任务二:实现趣味英语试题 2 关键算法并绘制流程图(30 分) 判断一个字符串是否是对称字符串,例如:“abc”不是对称字符串,“aba”、“ abba”、 “aaa”、“mnanm”是对称字符串。是的话输出“Yes”,否则输出“No”。 注意:使用循环和判断语句实现。

import java.util.Scanner;

/*
判断一个字符串是否是对称字符串,例如:“abc”不是对称字符串,“aba”、“abba”、
“aaa”、“mnanm”是对称字符串。是的话输出“Yes”,否则输出“No”。
*/
public class Task2 {
	public static void main(String[] args) {
		if (fun()) {
			System.out.print("Yes");
		}
		else 
			System.out.print("No");
	}
	
	public static boolean fun() {
		System.out.print("输入一个字符串:");
		Scanner s = new Scanner(System.in);
		String str = s.nextLine();
		if (str.charAt(0)==str.charAt(str.length()-1)) {
			return true;
		}
		return false;
		
	}
} 

任务三:实现趣味英语试题 3 关键算法并绘制流程图(30 分) 编写一个程序实现统计一串字符串中的英文小写字母个数! 例如:输入“axZvnNgOuyi”,得到的值应该是 8; 注意:使用分支语句实现,且有输入输出,直接输出不计分 (2)作品提交要求见本模块附录 1 (3)实施条件要求见本模块附录 2 (4)评价标准见本模块附录 3

import java.util.Scanner;
/*
使用 sort 方法实现
*/

public class Task3 {
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		System.out.print("输入n:");
		String n = s.nextLine();
		int count = 0;
		for (int i = 0; i < n.length(); i++){ 
			char sig = n.charAt(i);
			if (Character.isLowerCase(sig)) //判读小写
				count++;
		}
		System.out.print(count);
	}
}

  

 注:题目答案来源于网络,仅够参考学习

posted @ 2018-09-19 12:30  等待の喵  阅读(6952)  评论(0编辑  收藏  举报