实验一 基本程序设计

更新时间:2023-12-09 21:23:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验一 基本程序设计

1、实验目的

巩固以下几个概念:

使用Scanner类从控制台获取输入。

使用if语句,使用if 、else if、else语句。

使用while语句,使用do-while语句,使用for语句编写循环。

2、实验要求

(1)编写一个程序,读入一笔费用与酬金率,计算酬金和总钱数。例如,如果用户输入10作为费用,15%作为酬金率,计算结果显示酬金为¥1.5,总费用为¥11.5。下面是一个运行示例:

Enter the subtotal(费用) and a gratuity rate(酬金率): 15.69 15 The gratuity(酬金) is 2.35 and total(总费用) is 18.04 关键代码:

java.util.Scanner input = new java.util.Scanner(System.in); input.nextDouble();

变量名: subtotal(费用);

rate(酬金率); gratuity(酬金); total(总费用);

(2) (求ASCII码对应的字符)编写程序接受一个ASCII码(从0到128的整数),然后显示它所代表的字符。例如用户输入的是97,程序显示的是俄字符a。下面是一个运行示例:

Enter an ASCII code:69

The character for ASCII code 69 is E 关键代码:(char)code; 变量名:code

(3) (计算一个三角形周长)编写程序,读取三角形的三条边,如果输入值合法就计算这个三角形的周长;否则,显示这些输入值不合法。如果任意两条边的和大于第三边,那么输入值都是合法的。 变量名:edge1,edge2,edge3;

(4) (解一元二次方程)求一元二次方程ax2 + bx + c = 0的两个根,b就有*b-4ac称作一元二次方程的判别式。如果它是正值,那么一元二次方程俄就有两个正根。如果它为0,方程就只有一个根。如果它是负值,方程无实根。编写程序,提示用户输入a、b和c的值,并且显示基于判别式的结果。如果判别式为正,显示两个根,如果判别式为0,显示一个根,如果判别式为负,显示方程无实根。

提示:使用Math(x,0.5)计算x的平方根。 运行示例:Enter a,b,c: 1.0 3 1

The root are -0.381966 and -2.61803

Enter a,b,c: 1 2.0 1

The root is -1

Enter a,b,c: 1 2 3

The equation has no real roots 变量名:double a,b,c;

double discriminant = b*b – 4*a*c(判别式) double r1,r2;

(5)(统计正数和负数的个数,然后计算这些数的平均值)编写程序,读入未指定个数的整数,判断读入的正数有多少个,读入的负数有多少个,然后计算这些输入值的总和及其平均值(不对0计数)。当输入为0时,表示程序结束。将平均值以浮点数显示。下面是一个运行示例:

Enter an int value, the program exits if the input is 0: 1 2 -1 3 0

The number of positives is 3 The number of negatives is 1 The total is 5

The average is 1.25

参看课本程序清单4-4,用到的变量名: int countPositive(统计正数个数)、 countNegative(统计负数个数)、 count(统计输入数值个数)、total (总和)、num(输入数);

3、 程序模板 4、 实验指导

? 标识符是由字母、数字、下划线和美元符号构成的字符序列。 ? 标识符不能是保留字。

? 标识符必须以字母或下划线开头,不能以数字开头。

? 使用选择语句可以对有可选择路径的情况进行程序设计。选择语句有以下几

种类型:if语句、if?else语句、嵌套if语句、switch语句和条件表达式。 ? While 循环和for循环都称为前测循环,do-while循环称为后测循环。 5、实验报告

1、实验完成后,检查是否达到试验目的。 2、编写实验报告(打印或手写均可),在下一次上实验课时提交。 3、评出成绩,按五级(A,B,C,D、E)评分。

试验二 方法

一、试验目的

巩固以下几个概念:定义方法;

会调用带返回值和不带返回值的方法; 掌握方法的按值传参;

会开发模块化的、易读、易调试和易维护的可重用代码;

使用方法重载,理解歧义重载。 二、试验要求

(1)一个五角数被定义为n(3n-1)/2,其中n=1,2,?。所以,开始的几个数字就是1,5,12,22?,编写下面的方法返回一个五角数:

public static int getPentagonaNumber(int n)

编写一个测试程序显示前100个五角数,每行显示10个。 提示:通过for循环语句打印前100个五角数。

(2)编写一个方法,计算一个整数各位数字之和:

public static int sumDigits(long n)

例如:sumDigits(234)返回9(2 + 3 + 4)。

提示:使用求余运算符%提取数字,用/去掉提取出来的数字。例如:使用234 (=4)提取4。然后使用234/10(=23)从234中去掉4。使用一个循环来反复提取和去掉每位数字,直到所有的位数都提取完为止。

编写程序提示用户输入一个整数,然后显示这个整数所有数字的和。 Remainder(余数)

(3) (回文整数)编写下面两个方法:

// Return the reversal of an integer, i.e.reverse(456) returns 654

public static int reverse(int number)

reverse关键代码:

// number 是输入值,取余得到个位数;result存储返回的倒置

int remainder = number % 10;

result = result * 10 + remainder;

number = number / 10;//去掉个位数,得到十位数 //Return true if number is palindrome

public static boolean ispalindrome(int number)

使用reverse方法实现ispalindrome。如果一个数字的反向倒置数和它的顺向数一样,这个数就称作回文数。编写一个测试程序,提示用户输入一个整数值,然后报告这个整数是否是回文数。

(4)创建一个名为MyTriangle的类,它包含如下两个方法: /** Return true if the sum of any two sides is * greater than the third side.*/

public static boolean isValid(double side1,double side2,double side3)

/** Returns the area of the triangle. */

public static double area(double side1,double side2,double side3)

编写一个测试程序,读入三角形三边的值,若输入有效,则计算面积;否则显示输入无效。

提示:计算三角形面积公式:

s = (side1 + side2 + side3) / 2;//周长的一半

三角形面积公式:Math.sqrt(s * (s - side1) * (s - side2) * (s - side3)) 三、试验模版 四、试验指导

? 方法头指定方法的修饰符、返回值类型、方法名和参数。

? 方法可以返回一个值。返回值类型是方法要返回的值的数据类型。如果方法

不返回值,则返回值类型就是关键字void。 ? 参数列表是指方法中参数的类型、次序、数量。

? 方法名和参数列表一起构成方法签名。参数是可选的,即一个方法可以不包

含参数。

? Return语句也可以用在void方法中,用来终止方法并返回到方法的调用者。 在方法中用于偶尔改变正常流程控制是很有用的。

? 传递给方法的实际参数和方法签名的形式参数具有相同的数目、类型和顺

序。

? 当程序调用一个方法时,程序控制就转移到被调用的方法。当执行到该方法

的return语句或到达方法结束的右括号时,被调用的方法将程序控制还给调用者。

? 方法可以重载,两个方法可以拥有相同的方法名,只要它们的参数列表不同

即可。

五、试验报告

1、实验完成后,检查是否达到试验目的。 2、编写实验报告(手写),在下一次上实验课时提交。 3、评出成绩,按五级(A,B,C,D、E)评分

试验三 数组

一、试验目的 巩固以下几个概念:

声明一维数组引用变量、创建数组; 初始化数组中的值;

使用下标变量访问数组元素;

编写程序实现常用的一维数组操作;

声明二维数组引用变量、创建数组以及使用行下标和列下标访问二维数组中的数组元素;

编写程序实现常用的二维数组操作; 给方法传递二维数组。

二、试验要求

(1)编写程序,读取10个整数,然后按照和读入顺序相反的顺序将它们显示出来。

提示:int[] num = new int[10]。

(2)(指定等级)编写一个程序,读入学生成绩,获取最高分best,然后根据下面的规则赋等级值:

如果分数 >= best – 10,等级为A 如果分数 >= best – 20,等级为B 如果分数 >= best – 30,等级为C 如果分数 >= best – 40,等级为D 其他情况下,等级为F 程序提示用户输入学生总数,然后提示用户输入所有的分数,最后显示等级得出结论。下面是一个运行示例:

Enter the number of students: 4 Enter 4 scores: 40 55 70 58

Student 0 score is 40 and grade is C Student 1 score is 40 and grade is B Student 2 score is 40 and grade is A Student 3 score is 40 and grade is B

提示: int[] scores = new int[numberOfStudents]; // Array scores int best = 0; // The best score char grade; // The grade (3) (计算数字的出现次数)编写程序,读取在1到100之间的整数,然后计算每个数出现的次数。假定输入是以0结束的。下面就是这个程序的运行示例: Enter the integers between 1 and 100: 2 5 6 5 4 3 23 43 2 0 2 occurs 2 times 3 occurs 1 time 4 occurs 1 time 5 occurs 2 times 6 occurs 1 time 23 occurs 1 time 43 occurs 1 time

提示:如果一个数出现次数大于一次,输出时使用复数“times”。 (counts[i] == 1) ? \

(4)编写一个方法,使用下面的方法头求出一个整数数组中的最小元素: public static double min(double[] array)

编写测试程序,提示用户输入10个数字,调用这个方法,返回最小元素值。

(5)编写一个方法,求整数矩阵中所有整数的和,使用下面的方法头: Public static double sumMatrix(int[][] m) 编写一个测试程序,读取一个4 X 4的矩阵,然后显示所有元素的和。下面是一个运行示例:

Enter a 4-by-4 matrix row by row: 1 2 3 4 5 6 7 8 9 10 11 12

本文来源:https://www.bwwdw.com/article/0pc5.html

Top