资源下载地址:https://download.youkuaiyun.com/download/qq_40707685/10784731
资源图片:
3.编写程序。输入两个正整数 m 和 n,求其最大公约数和最小公倍数
private static void MAXANMIN() {
System.out.println("请输入第一个整数:");
Scanner scanner = new Scanner(System.in);
int m = scanner.nextInt();
System.out.println("请输入第二个整数:");
Scanner scanner2 = new Scanner(System.in);
int n = scanner2.nextInt();
int r = 0, max, min, pub = 0;
max = (n > m) ? n : m;
min = (n < m) ? n : m;
boolean jutice = true;
/*
* for(;(r=max%min)==0;) { max=min; min=r; }
*/
if (max % min == 0) {
pub = min;
} else { // 辗转相除法
while (jutice) {
r = max % min;
pub = r;
max = min;
min = r;
if ((max % min) == 0) {
jutice = false;
}
}
}
System.out.println("最大公约数为:" + pub);
System.out.println("最小公倍数为:" + m * n / pub);
}
5.编写程序。打印杨辉三角形(要求打印出 10 行)
private static void YangHui() {
int[][] list = new int[10][10];
int i = 0;
int j = 0;
list[0][0] = 1;
list[1][0] = 1;
list[1][1] = 1;
for (i = 1; i < 10; i++) {
for (j = 1; j < i + 1; j++) {
list[i][0] = 1;
list[i][i] = 1;
list[i][j] = list[i - 1][j - 1] + list[i - 1][j];
}
}
for (i = 0; i < 10; i++) {
System.out.println("\n");
for (j = 0; j < i + 1; j++)
System.out.print(list[i][j] + "\t");
}
}
6.编写程序。输入一行字符,分别统计出其英文字母、空格、数字和其它字符的个数
private static void spiltString() {
System.out.println("plese input String:");
Scanner sc = new Scanner(System.in);
String st = sc.nextLine();
int englishNumber = 0;
int spaceNumber = 0;
int number = 0;
int otherNumber = 0;
for (int i = 0; i < st.length(); i++) {
if ("0".hashCode() <= st.charAt(i) && st.charAt(i) <= "9".hashCode()) {
number++;
} else if (st.charAt(i) == " ".hashCode()) {
spaceNumber++;
} else if ("A".hashCode() <= st.charAt(i) && st.charAt(i) <= "z".hashCode()) {
englishNumber++;
} else {
otherNumber++;
}
}
System.out.println("英文字符个数为" + englishNumber + "\t" + "空格字符个数为" + spaceNumber + "\t" + "数字个数为" + number + "\t"
+ "其他为" + otherNumber);
}
}
1.创建一个桌子(Table)类,该类中有桌子名称、重量、桌面宽度、长度和桌子高度属性,以
及以下几个方法:
(1) 构造方法:初始化所有成员变量。
(2) area( ):计算桌面的面积。
(3) display( ):在屏幕上输出所有成员变量的值。
(4) changeWeight(int w):改变桌子重量。
在测试类的 main()方法中实现创建一个桌子对象,计算桌面的面积,改变桌子重量;
并在屏幕上输出所有桌子属性的值。
Table 类
package 课程作业2;
/*
@author 最爱不过土豆泥
@date 2018.11.12 17.11
*/
/*
* 1.创建一个桌子(Table)类,该类中有桌子名称、重量、桌面宽度、长度和桌子高度属性,以
及以下几个方法:
(1) 构造方法:初始化所有成员变量。
(2) area( ):计算桌面的面积。
(3) display( ):在屏幕上输出所有成员变量的值。
(4) changeWeight(int w):改变桌子重量。
在测试类的 main()方法中实现创建一个桌子对象,计算桌面的面积,改变桌子重量;
并在屏幕上输出所有桌子属性的值。
*/
public class Table {
String name;//名字
int weight;//重量
float width;//宽度
float length;//长度
float altitude;//高度
public Table(String name, int weight, float width, float length, float altitude) {
super();
this.name = name;
this.weight = weight;
this.width = width;
this.length = length;
this.altitude = altitude;
}
public float area() {
return width*length;
}
public void display() {
System.out.println("名字"+"\t"+name);
System.out.println("重量"+"\t"+weight);
System.out.println("宽度"+"\t"+width);
System.out.println("长度"+"\t"+length);
System.out.println("高度"+"\t"+altitude);
}
public void changWeight(int w) {
weight=w;
}
}
测试table类
package 课程作业2;
/*
@author 最爱不过土豆泥
@date 2018.11.12 17.26
在测试类的 main()方法中实现创建一个桌子对象,计算桌面的面积,改变桌子重量;
并在屏幕上输出所有桌子属性的值。
*/
public class TestTable {
public static void main(String[] args) {
Table table=new Table("小可爱",25, 2.3f, 2.3f, 1.8f);
System.out.println("面积"+"\t"+table.area());
table.changWeight(23);
table.display();
}
}
4.创建银行账户类 SavingAccount,用静态变量存储年利率,用私有实例变量存储存款额。提
供计算年利息方法(即余额乘以年利率)和计算月利息方法(即年利息/12)。
编写一个测试程序测试该类,建立 SavingAccount 的对象 saver,存款额是 3000,设置年利
率是 3%,计算并显示 saver 的存款额、年利息和月利息。
要求:
(1)SavingAccount 类要有构造方法,用于对存款额赋初值。
(2)SavingAccount 类要有显示存款额的方法。
SavingAccount类
package 课程作业2;
/*
@author 最爱不过土豆泥
@date 2018年11月13日上午9:08:29
@TODO创建银行账户类 SavingAccount,用静态变量存储年利率,用私有实例变量存储存款额。提
供计算年利息方法(即余额乘以年利率)和计算月利息方法(即年利息/12)。
编写一个测试程序测试该类,建立 SavingAccount 的对象 saver,存款额是 3000,设置年利
率是 3%,计算并显示 saver 的存款额、年利息和月利息。
要求:
(1)SavingAccount 类要有构造方法,用于对存款额赋初值。
(2)SavingAccount 类要有显示存款额的方法
@blog
*/
public class SavingAccount {
final float annualRatte=0.03f;
private float balance;
public float getBalance() {
return balance;
}
public void setBalance(float balance) {
this.balance = balance;
}
public SavingAccount(float balance) {
super();
this.balance = balance;
}
public float annualInterest() {
return balance*annualRatte;
}
public float monthlyInterest() {//月利息
return balance*annualRatte/12;
}
}
测试类
package 课程作业2;
/*
@author 最爱不过土豆泥
@date 2018年11月13日上午9:17:18
@TODO编写一个测试程序测试该类,建立 SavingAccount 的对象 saver,存款额是 3000,设置年利
率是 3%,计算并显示 saver 的存款额、年利息和月利息。
@blog
*/
public class TeatSavingAccount {
public static void main(String[] args) {
SavingAccount saver=new SavingAccount(3000);
System.out.println("存款额为"+saver.getBalance());
System.out.println("年利息为"+saver.annualInterest());
System.out.println("月利息为"+saver.monthlyInterest());
}
}
4.定义一个接口 Calculate,接口中有 3 个抽象方法如下:
(1)“long fact(int m)”方法的功能是求参数的阶乘
(2)“long intPower(int m,int n)”方法的功能为求参数 m 的 n 次方
(3) “boolean findFactor(int m,int n)”方法的功能为判参数 m 加上参数 n 的和是否大于 100
定义类 CalImp 实现该接口,编写应用程序,调用接口中的 3 个方法,并将调用方法所得的
结果输出。
接口类
package pcck5;
/*
@author 最爱不过土豆泥
@date 2018年11月14日上午10:19:11
@TODO定义一个接口 Calculate,接口中有 3 个抽象方法如下:
(1)“long fact(int m)”方法的功能是求参数的阶乘
(2)“long intPower(int m,int n)”方法的功能为求参数 m 的 n 次方
(3) “boolean findFactor(int m,int n)”方法的功能为判参数 m 加上参数 n 的和是否大于 100
定义类 CalImp 实现该接口,编写应用程序,调用接口中的 3 个方法,并将调用方法所得的
结果输出。
@blog
*/
public interface Calculate {
abstract long fact(int m);
abstract long intPower(int m,int n);
abstract boolean findFactor(int m,int n);
}
子类
package pcck5;
/*
@author 最爱不过土豆泥
@date 2018年11月14日上午10:19:44
@TODO1)“long fact(int m)”方法的功能是求参数的阶乘
(2)“long intPower(int m,int n)”方法的功能为求参数 m 的 n 次方
(3) “boolean findFactor(int m,int n)”方法的功能为判参数 m 加上参数 n 的和是否大于 100
定义类 CalImp 实现该接口,编写应用程序,调用接口中的 3 个方法,并将调用方法所得的
结果输出。
@blog
*/
public class CalImp implements Calculate{
@Override
public long fact(int m) {
// TODO Auto-generated method stub
int sum=1;
for(int i=1;i<=m;i++) {
sum=i*sum;
}
return sum;
}
@Override
public long intPower(int m, int n) {
// TODO Auto-generated method stub
int sum=1;
for(int i=1;i<=n;i++) {
sum=m*sum;
}
return sum;
}
@Override
public boolean findFactor(int m, int n) {
// TODO Auto-generated method stub
if((m+n)>100) {
return true;
}else {
return false;
}
}
}
实现类
package pcck5;
import java.util.Scanner;
/*
@author 最爱不过土豆泥
@date 2018年11月14日上午10:29:44
@TODO测试类
@blog
*/
public class Test {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
while(true) {
System.out.println("please input m");
int m=scanner.nextInt();
System.out.println("please input n");
int n=scanner.nextInt();
CalImp calImp=new CalImp();
System.out.println("阶乘为"+"\t"+calImp.fact(m));
System.out.println("m的n次方为"+"\t"+calImp.intPower(m, n));
System.out.println("m+n是否打于100"+"\t"+calImp.findFactor(m, n)+"\n");
}
}
}
1.使用正则表达式判断字符串 text 是否为合法的手机号
常用的正则表达式参见这里https://blog.youkuaiyun.com/qq_40707685/article/details/84068481
package 课程作业4;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/*
@author 最爱不过土豆泥
@date 2018年11月14日上午11:10:07
@TODO1.使用正则表达式判断字符串 text 是否为合法的手机号
@blog
*/
public class Regex {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
while(true) {
System.out.println("请输入手机号:");
String text=scanner.nextLine();
System.out.println("是否为手机号?"+regexText(text));
}
}
private static boolean regexText(String text) {
Pattern pattern=Pattern.compile("^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\\d{8}$");
Matcher matcher=pattern.matcher(text);
// boolean b =matcher.matches(pattern);
return matcher.matches();
}
}
2.编写程序,给出一个不多于 5 位的随机正整数,计算:
(1)它是几位数;
(2)逆序打印出各位数字。
提示:可使用 Math 类的静态方法 random(),该方法返回一个[0,1)之间的小数;
提示:可使用 Random 类的 nextInt 方法,产生指定区间的随机数。
package 课程作业4;
import java.util.Random;
/*
@author 最爱不过土豆泥
@date 2018年11月14日下午2:21:00
@TODO2.编写程序,给出一个不多于 5 位的随机正整数,计算:
(1)它是几位数;
(2)逆序打印出各位数字。
提示:可使用 Math 类的静态方法 random(),该方法返回一个[0,1)之间的小数;
提示:可使用 Random 类的 nextInt 方法,产生指定区间的随机数。
@blog
*/
public class RandomNumber {
public static void main(String[] args) {
Random random=new Random();
int number=random.nextInt(10000);
System.out.println("生成的随机数"+number);
print(number);
}
public static void print(int number) {
int a=number;
int weisu=1;
while(number>10) {
number=number/10;
weisu++;
}
System.out.println("该数字是"+weisu+"位数");
String st=String.valueOf(a);
for(int i=st.length()-1;i>=0;i--) {
System.out.print(st.charAt(i));
}
}
}
4.编写程序,实现当用户输入学号和姓名时,将每一个学号和姓名加在文件中,如果用户输
入 done,就结束程序。
package 课程作业4;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Scanner;
/*
@author 最爱不过土豆泥
@date 2018年11月14日下午3:14:41
@TODO.编写程序,实现当用户输入学号和姓名时,将每一个学号和姓名加在文件中,如果用户输
入 done,就结束程序。
@blog
*/
public class Addname {
public static void main(String[] args) {
while (true) {
System.out.println("请输入姓名");
Scanner scanner = new Scanner(System.in);
String userName = scanner.nextLine();
if (userName.equals("done")) {
System.out.println("录入结束");
System.exit(0);
}
System.out.println("请输入学号");
String useId = scanner.nextLine();
if (useId.equals("done")) {
System.out.println("录入结束");
System.exit(0);
}
String name = "example" + ".txt";// 拼接文件名
InputStream in = null;
try {
in = new FileInputStream(name);// 判断本地是否存在文件
if (in != null) {
in.close();// 关闭输入流
createFile(name, true, userName, useId);// 存在文件则采用修改文件
}
} catch (FileNotFoundException e) {
// TODO: handle exception
createFile(name, false, userName, useId);// 不存在则新建
} catch (IOException e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
private static void createFile(String name, boolean label, String userName, String useId) {
// TODO Auto-generated method stub
BufferedOutputStream out = null;
StringBuffer sbf = new StringBuffer();// 拼接内容
try {
if (label) {// 当已存在文件,则在文件后追加
// 创建输出流,用于追加文件
out = new BufferedOutputStream(new FileOutputStream(name, true));
} else {// 不存在当天文件则新建文件
// 创建输出流,用于保存文件
out = new BufferedOutputStream(new FileOutputStream(name));
}
sbf.append("姓名:" + userName + "\t");
sbf.append("学号:" + useId + "\t");
String str = sbf.toString();
byte[] b = str.getBytes();
for (int i = 0; i < b.length; i++) {
out.write(b[i]);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
// TODO: handle finally clause
try {
if (out != null)
out.close();
} catch (Exception e2) {
// TODO: handle exception
e2.printStackTrace();
}
}
}
}
以下是全部的题目:部分题目因为我创建的类有点多就没贴出来,所有源代码已经打包上传:
下载地址:https://download.youkuaiyun.com/download/qq_40707685/10784731
说明:课程作业3没有单独打包。pack1和2是第一题的,pack3是第二题的,以此类推。有错误希望大家指出来。
资源图:
课程作业 1 :
1.编写程序,获得汉字’物’、’联’、’网’在 unicode 码中对应的十进制编码。
2.编写程序,输入某一个成绩(满分,100 分)计算其相应等级信息。
等级信息如下:
A+:97 B+:87 C+:77 D+:67 F:60 分以下 缓考:-1
A:93 B:83 C:73 D:63
A-:90 B-:80 C-:70 D-:60
3.编写程序。输入两个正整数 m 和 n,求其最大公约数和最小公倍数。
4.编写程序。输入某年某月某日,判断这一天是这一年的第几天?
5.编写程序。打印杨辉三角形(要求打印出 10 行)。具体如下图:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
6.编写程序。输入一行字符,分别统计出其英文字母、空格、数字和其它字符的个数。
1.创建一个桌子(Table)类,该类中有桌子名称、重量、桌面宽度、长度和桌子高度属性,以
及以下几个方法:
(1) 构造方法:初始化所有成员变量。
(2) area( ):计算桌面的面积。
(3) display( ):在屏幕上输出所有成员变量的值。
(4) changeWeight(int w):改变桌子重量。
在测试类的 main()方法中实现创建一个桌子对象,计算桌面的面积,改变桌子重量;
并在屏幕上输出所有桌子属性的值。
2.定义复数的类 Complex 并测试其功能:
(1)复数由实部、虚部两个部分组成,在类定义中应包含保存这两部分信息的内容。
(2)在类中定义构造函数,使用户能够在构造对象的同时为对象赋初值。
(3)在类中定义复数的加法、减法、乘法三个二元操作符来完成复数间的加、减、乘的功
能。
(4)通过重载 tosthing,使得 Complex 类的对象能够显示其自身信息。
(5)通过显示定义一个成员函数完成对象的赋值操作,使用户能够对 Complex 类的对象进
行赋值。
(6)编写一段主程序(main 函数),使用户能够通过这段主程序输入复数并进行复数的计
算。
3.编写程序,模拟银行账户功能。编写银行类 Account,该类具备以下属性和方法:
属性:账号、储户姓名、存款余额、最小余额。
方法:存款、取款、查询。
根据用户操作显示储户相关信息。如:存款操作后,显示储户原有余额、今日存款数额及最
终存款余额;取款时,若最后余额小于最小余额,拒绝取款,并显示“至少保留余额:XXX
元”
提示:(1)可把最小余额定义成静态变量。
(2)要有 Account 类的构造方法。
4.创建银行账户类 SavingAccount,用静态变量存储年利率,用私有实例变量存储存款额。提
供计算年利息方法(即余额乘以年利率)和计算月利息方法(即年利息/12)。
编写一个测试程序测试该类,建立 SavingAccount 的对象 saver,存款额是 3000,设置年利
率是 3%,计算并显示 saver 的存款额、年利息和月利息。
要求:
(1)SavingAccount 类要有构造方法,用于对存款额赋初值。
(2)SavingAccount 类要有显示存款额的方法。
课程习题
3
课程作业 3 :
1.包名为”pack1”的包里有一个类 Message,用来表示人们的通信信息,它拥有的字段
为:name(String 类型),sex(char 类型),age(int 类型),address(String 类型),这些字段的访
问控制权限都是 private.为每一个字段定义读取和更新该字段信息的方法,并定义一个
toString()方法,以生成格式化的输出个信息字段的结果。
还要为 Message 类定义 2 个构造方法,一个构造方法是无参的,另外一个构造方法是对成
员变量初始化。
在另外一个包”pack2”里定义一个测试类 Test,里面包含 main 方法,实例化一个 Message
类,测试 Message 类里的相关方法(如 toString(),getName()等等)。
2.建立一个抽象类 Shape 类,有 Circle(圆形)和 Rect(矩形)子类。Shape 类有 zhouchang()
和 area()两种抽象方法。Rect 有 cha()用于比较长宽的差,若长大于宽输出“长比宽大”,否则
输出“宽比长大”。
(正方形)Squ 为 Rect 子类,在 Squ 类中,重写 cha()方法,并输出“长等于宽”
要求:
(1)要提供 Circle 和 Rect 类要重写父类 Shape 的 zhouchang()和 area()方法
(2)Circle 类要有静态常量 PI
(3)为 Circle 类,Rect 类,Squ 类提供构造方法,为属性赋初值
(4)编写测试类,测试上述程序
3.设计一个接口 Transport,声明三个接口常量,表示运输工具,声明一个计算费用的方法,
参数是重量和里程。
(1)一个运输公司从网上得到订单,订单上标有货物重量和运输里程,该公司可以使用三种
运输工具:卡车,火车,飞机。
(2)卡车,火车,飞机分别实现作业 1 的运输接口,计算运费的方法如下:
a)卡车:运费=重量*距离*120。当距离大于 1000(km)或重量大于 60(t)的时候拒载,返
回-1
b)火车:当距离在 900(km)内(包含)时,运费=重量*距离*250,大于 900(km)运费=
重量*距离*300
c)飞机:当距离大于 500(km)时,运费=重量*距离*750,否则拒载,返回-1
提示:在接口中定义三个常量;分别定义三种不同实现类来实现计算运输费用的方法。
4.定义一个接口 Calculate,接口中有 3 个抽象方法如下:
(1)“long fact(int m)”方法的功能是求参数的阶乘
(2)“long intPower(int m,int n)”方法的功能为求参数 m 的 n 次方
(3) “boolean findFactor(int m,int n)”方法的功能为判参数 m 加上参数 n 的和是否大于 100
定义类 CalImp 实现该接口,编写应用程序,调用接口中的 3 个方法,并将调用方法所得的
结果输出。
课程习题
4
课程作业 4 :
1.使用正则表达式判断字符串 text 是否为合法的手机号。
2.编写程序,给出一个不多于 5 位的随机正整数,计算:
(1)它是几位数;
(2)逆序打印出各位数字。
提示:可使用 Math 类的静态方法 random(),该方法返回一个[0,1)之间的小数;
提示:可使用 Random 类的 nextInt 方法,产生指定区间的随机数。
3.分别向 Set 集合及 List 集合中添加“A”、“a”、“c”、“C”、“a”5 个元素,观察重复值“a”
能否重复地在 List 集合及 Set 集合中添加。
4.编写程序,实现当用户输入学号和姓名时,将每一个学号和姓名加在文件中,如果用户输
入 done,就结束程序。