Java课程实验报告实验一——基本程序设计、选择、循环

一、实验目的
学习Java基本程序编写的方法,熟悉选择、循环等控制结构。

二、实验内容
1.
编写程序,读取一个在0和1000之间的整数,并将该整数的各位数字相加。例如:整数932,各位数字之和为14。如果输入的整数不在0-1000范围内,告知用户输入有误。
提示:利用%和/分解数字。
2.
编写程序,提示用户输入三角形的三个点(x1, y1),(x2, y2), (x3, y3),然后显示它的面积。计算三角形面积的公式是:
s=(s1+s2+s3)/2;
面积 =
其中s1,s2, s3分别为三角形三边的长度。
输入示例:
Enter three points for a triangle: 1.5 -3.4 4.6 5 9.5 -3.4
The area of the triangle is 33.6
提示:使用Math类中的方法进行相关运算,见102页4.2.2节。
3.
编写程序,模拟从一副52张的牌中选择一张牌。程序应显示牌的大小(Ace、2、3、4、5、6、7、8、9、10、Jack、Queen、King)以及牌的花色(Clubs、Diamond、Heart、Spades)。
提示: 设1-13为黑桃Ace至King,14-26为红桃Ace至King,27-39为梅花Ace至King,40-52为方片Ace至King。随机生成1-52内的一个随机整数,根据以上规则判断并提示牌的花色和数字。
4.
编写程序,显示从100到200之间所有能被5或6整除,但不能被两者同时整除的数,每行显示10个数。(提示:建议使用模块化代码的方式)

三、实验结果与分析
1. 计算各位数字和
(1)实验结果显示

输入一个0-1000的整数
5                                
你的输入结果为5
输入一个0-1000的整数
4658
你的输入有误
输入一个0-1000的整数
-5
你的输入有误
输入一个0-1000的整数
468
你的输入结果为18
输入一个0-1000的整数
22
你的输入结果为4
输入一个0-1000的整数
0
程序结束

(2)结果分析
如果输入为小于0或大于1000的数字(如实验情况中-5,4658):输出实验结果有误,继续进行程序;
如果输入为0:程序结束;
如果输入为0-1000的数,实验范围正确,输出结果;
如:
输入 468 ,结果应为4 + 6 + 8 = 18
输入 22 ,结果应为2 + 2 = 4

2. 计算三角形面积
(1)实验结果显示

按顺序输入三个点的坐标
1.5 -3.4 4.6 5 9.5 -3.4
这三个点形成的三角形的面积为:  33.60
按顺序输入三个点的坐标
0 0 1 0 0 1
这三个点形成的三角形的面积为:  0.50

(2)结果分析
在输入六个浮点数(如果输入的是整数,根据隐式转换原则转换成浮点数进行处理;
如对于第一组数据中的5,转换成5.0后根据面积公式来处理
根据第二组,我们可以轻易地计算出真正的面积值和计算机给出的结果一致,程序算法正确;

3. 随机抽牌
(1)实验结果显示

The card you picked is 8 of Diamonds
	The card you picked is 7 of Clubs
	The card you picked is King of Spades
	The card you picked is 6 of Clubs
	The card you picked is 8 of Diamonds
	The card you picked is 6 of Clubs
……

(2)结果分析
根据程序算法,生成1-52的随机整数并分别对应一张牌,所以每
次f11之后会随机生成一张牌的名字,且在上一次进行后未设置查重,所以下一次出现的牌也可能和上次相同(如第四句和第六句);

4. 按规则显示数字
(1)实验结果显示

100 102 105 108 110 114 115 125 126 130 
132 135 138 140 144 145 155 156 160 162 
165 168 170 174 175 185 186 190 192 195 
	198 200 

(2)结果分析
根据题目要求,找出100-200中可以被5或6整除但不能被同时整
除(即不能被30整除)的数字,每行10个数字,共有32个数字出现;
再通过计算验证,程序算法正确;

四、心得体会
本次实验的题目就我自身而言是不难的,每道题的算法也比较清晰,需要的是基础过关、良好的代码风格和细致的累码,但是确实我在程序写完进行debug时仍然发现自己在java的格式上有所欠缺,例如main语句String[]后面的空格这样的格式错误还是有发生,基础仍然需要加强,还有在第四题count计数上有失误,细致度上也有待提高。
本次实验中我也了解了许多Math模块中的许多计算性的函数,也了解了printf的格式化输出部分,学到了东西。
实验过程中同学们通力协作的感觉很不错,希望能在接下来的实验中继续自己的累积和练习,争取将java基础夯实。

【附源程序】

**第一题:计算各位数字和**
import java.util.Scanner; 
public class experimentone{
	private static Scanner input;

	public static void main(String[] args){
		//循环,直到输入的是事先规定的程序结束的标志
		while(true){
		input = new Scanner(System.in);
		//提示
		System.out.println("输入一个0-1000的整数");
		int num = input.nextInt();
		//判断是否不是所需范围并提示
		if(num < 0 || num >= 1000){
			System.out.println("你的输入有误");
			continue;
		}
		//如果输入0,程序结束
		else if(num == 0){
			System.out.println("程序结束");
			break;
		}
		int sum = 0;
		//先对10取余,保存后取结果,这样就可以将所有位的位数取出,直到除尽为0
		while(num!=0){
			sum += num % 10;
			num /= 10;
		}
		//输出
		System.out.println("你的输入结果为"+sum);
	}
	}
}
**第二题:计算三角形面积**
import java.util.Scanner;

public class experimenttwo {
	private static Scanner input;

	public static void main(String[] args){
		input = new Scanner(System.in);
		//输入三个点的坐标,double类型
		System.out.println("按顺序输入三个点的坐标");
		double x1 = input.nextDouble();
		double y1 = input.nextDouble();
		double x2 = input.nextDouble();
		double y2 = input.nextDouble();
		double x3 = input.nextDouble();
		double y3 = input.nextDouble();
		//计算三边长度
		double s1 = Math.sqrt(Math.pow((x2 - x1), 2) + Math.pow((y2 - y1), 2));
		double s2 = Math.sqrt(Math.pow((x3 - x2), 2) + Math.pow((y3 - y2), 2));
		double s3 = Math.sqrt(Math.pow((x1 - x3), 2) + Math.pow((y1 - y3), 2));
		//根据海伦公式计算面积
		double s = (s1 + s2 + s3) / 2;
		double area = Math.sqrt(s * (s - s1) * (s - s2) * (s - s3));
		//按两位小数输出结果
		System.out.printf("这三个点形成的三角形的面积为:  %.2f",area);
	}
}
**第三题:随机抽牌**
public class experimentthree {
	public static void main(String[] args){

		//随机取1-52的数:先random*52得到0-52的浮点数,再取底得到0-51的随机整数,再加1得到1-52的随机整数
		int temp = (int)Math.floor(Math.random() * 52) + 1;
		System.out.print("The card you picked is ");
		//如果除13余0,证明可被13整除,对应king
		if(temp % 13 == 0)System.out.print("King");
		//如果除13余1,对应ace
		else if(temp % 13 == 1)System.out.print("Ace");
		//如果除13余11,对应jack
		else if(temp % 13 == 11)System.out.print("Jack");
		//如果除13余12,对应queen
		else if(temp % 13 == 12)System.out.print("Queen");
		//如果不符合上述条件,为一般情况,直接输出
		else System.out.print(temp % 13);
		System.out.print(" of ");
		//1-13对应Spades
		if(temp >= 1 && temp <= 13)System.out.print("Spades");
		//14-26对应Hearts
		else if(temp >= 14 && temp <= 26)System.out.print("Hearts");
		//27-39对应Clubs
		else if(temp >= 27 && temp <= 39)System.out.print("Clubs");
		//40-52对应Diamonds
		else System.out.print("Diamonds");
	}
}
**第四题:按规则显示数字**
public class experimentfour {
	public static void main(String[] args){
		int count = 1;
		//规定起点值
		final int start = 100;
		int temp = start;
		//对每一个数进行条件判断
		while(temp <= 200){
			if((temp % 5 == 0 || temp % 6 == 0) && temp % 30 != 0){
				//如果输出了十个,就println换行
				if(count == 10){
					System.out.println(temp + " ");
					//将count初始化
					count = 1;
				}
				//如果没有,一般输出
				else{
					System.out.print(temp + " ");
					//将count加1
					count++;
				}
			}
			//推到下一个数
			temp++;
		}
	}
}
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java程序设计实验报告 实验实验题目:从键盘上读入10个字符串存入数组a中,然后输出这10个字符串中最大字符串 和最小字符串。 实验代码: public class StrPro { public static void main(String[] args) { String str[] = new String[5]; System.out.println("Please input 10 strings:"); int i; String max,min; for(i=0;i<5;i++){ System.out.print("Please input the "+(i+1)+" string:"); Scanner sc = new Scanner(System.in); str[i] = sc.nextLine(); } max = str[0]; min = str[0]; for(i=0;i<str.length;i++){ if(max.compareTo(str[i])<0){ max = str[i]; } if(min.compareTo(str[i])>0){ min = str[i]; } } System.out.println("最大的字符串为:"+max); System.out.println("最小的字符串为:"+min); } } 实验结果: 实验心得体会: 掌握了java基本语法,数组的定义与使用,做这个实验要了解字符串数组的定义 及字符串数组的输入方法,还有比较字符串数组的大小的调用方法等。 实验实验题目: 自定义一个矩形类(Rectangle),包含的属性有:长(length),宽(width), 包含的方法有:关于属性的setter和getter方法,即setLength,getLength,setWidth ,getWidth,计算矩形面积的方法(getArea)。 定义矩形类的子类正方形类(Square),包含的属性和方法自行确定,要求完成的 功能是,能计算正方形的面积。 定义一个测试类(Test),测试矩形类和正方形类能否正确的计算面积。 以上类中属性和方法的访问权限自行确定,方法和构造方法若有参数,也自行确定 。 实验代码: public class Rectangle { int Length; int Width; public int getLength() { return Length; } public void setLength(int length) { Length = length; } public int getWidth() { return Width; } public void setWidth(int width) { Width = width; } int getArea(){ return Length * Width; } } public class Square extends Rectangle{ Square(int border) { super.setLength(border); super.setWidth(border); } } public class Test { public void test(){ System.out.println("请选择计算的形状的序号:1.矩形 2.正方形"); Scanner sc = new Scanner(System.in); int i = sc.nextInt(); int len,wid; if(i==1){ System.out.print("请输入矩形的长:"); Scanner s = new Scanner(System.in); len = s.nextInt(); System.out.print("请输入矩形的宽:"); wid = s.nextInt(); Rectangle re = new Rectangle(); re.setLength(len); re.setWidth(wid); System.out.println("矩形面积为:"+re.getArea()); } else if(i==2){ System.out.print("请输入正方形的边长:"); Scanner s = new Scanner(System.in); len = s.nextInt(); Square sq = new Square(len); System.out.println("正方形面积为:"+sq.getArea()); } else{ System.out.println("输入错误!"); } } public static v
好的,以下是一份关于Java数据库程序设计实验实验名称:Java数据库程序设计 实验目的:通过Java程序设计,实现对数据库的增删改查操作,掌握Java数据库编程的基本方法。 实验环境:Java开发工具(Eclipse或者IntelliJ IDEA)、MySQL数据库、MySQL驱动程序。 实验步骤: 1.创建数据库和表格 首先,需要在MySQL中创建一个新的数据库和一个表格,用于存储学生的信息。在MySQL中执行以下SQL语句: CREATE DATABASE student_db; USE student_db; CREATE TABLE student ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20) NOT NULL, age INT NOT NULL, gender VARCHAR(10) NOT NULL, address VARCHAR(100) NOT NULL ); 2.编写Java程序 接下来,需要编写Java程序,实现对数据库的增删改查操作。具体的程序代码如下: import java.sql.*; public class Main { static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost/student_db"; static final String USER = "root"; static final String PASS = "password"; public static void main(String[] args) { Connection conn = null; Statement stmt = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection(DB_URL, USER, PASS); stmt = conn.createStatement(); // 插入数据 String sql = "INSERT INTO student (name, age, gender, address) VALUES ('Tom', 18, 'Male', 'Beijing')"; stmt.executeUpdate(sql); // 查询数据 sql = "SELECT id, name, age, gender, address FROM student"; ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); int age = rs.getInt("age"); String gender = rs.getString("gender"); String address = rs.getString("address"); System.out.print("ID: " + id); System.out.print(", Name: " + name); System.out.print(", Age: " + age); System.out.print(", Gender: " + gender); System.out.println(", Address: " + address); } // 更新数据 sql = "UPDATE student SET address = 'Shanghai' WHERE name = 'Tom'"; stmt.executeUpdate(sql); // 删除数据 sql = "DELETE FROM student WHERE name = 'Tom'"; stmt.executeUpdate(sql); rs.close(); stmt.close(); conn.close(); } catch (SQLException se) { se.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } finally { try { if (stmt != null) stmt.close(); } catch (SQLException se2) { } try { if (conn != null) conn.close(); } catch (SQLException se) { se.printStackTrace(); } } } } 3.运行程序 最后,将Java程序运行起来,查看程序的输出结果,检查程序是否实现了对数据库的增删改查操作。 实验总结:通过本次实验,我们学习了Java程序设计中与数据库相关的基本知识,掌握了Java中对MySQL数据库进行增删改查操作的方法。在实际应用开发中,数据库的操作是必不可少的,因此本次实验对我们今后的实际开发有很大的帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值