【任务一】:编写程序完成矩阵的乘法运算。
要求:程序运行后要求用户分别输入两个矩阵的行数和列数,然后判断两个矩阵是否可以相乘,如果可以相乘,则
计算矩阵相乘后的结果,并按矩阵的格式输出;若不能相乘,则提示用户矩阵不相容,并退出程序。
提示:
- 一个 2 行 3 列的矩阵可以用一个二维数组表示:int matrixA[2][3]。此外,必须要知道什么是矩阵相乘。矩阵相乘
的概念如下图所示:
- 请检查用户输入的正确性,在用户输入错误的时候请提供重新输入的机会,不允许中途结束程序。
/*
* @Author:苘山楂树
* @Description:【任务一】:编写程序完成矩阵的乘法运算。
要求:程序运行后要求用户分别输入两个矩阵的行数和列数,然后判断两个矩阵是否可以相乘,如果可以相乘,则
计算矩阵相乘后的结果,并按矩阵的格式输出;若不能相乘,则提示用户矩阵不相容,并退出程序。
* @Date: 2019/09/18
* @Modified By:苘山楂树
*/
import java.util.Scanner;
public class Matrix {
public static void main(String[] args) {
int[][] matrixA = new int[100][100];
int[][] matrixB = new int[100][100];
int[][] matrixC = new int[100][100];
Scanner input = new Scanner(System.in);
System.out.println("Input the line number of MatrixA:");
int m = input.nextInt();
System.out.println("Input the row number of MatrixA:");
int n = input.nextInt();
System.out.println("Input the line number of MatrixB:");
int k = input.nextInt();
System.out.println("Input the row number of MatrixB:");
int r = input.nextInt();
if (m == r) {
System.out.println("Input A's numbers:");
for (int i = 1; i <= m; i++) {
for (int j = 1; j <= n; j++) {
matrixA[i][j] = input.nextInt();
}
}
System.out.println("Input B's numbers:");
for (int i = 1; i <= k; i++) {
for (int j = 1; j <= r; j++) {
matrixB[i][j] = input.nextInt();
}
}
for (int i = 1; i <= m; i++) {
for (int j = 1; j <= r; j++) {
matrixC[i][j] += matrixA[i][j] * matrixB[j][i];
System.out.print(matrixC[i][j] + " ");
}
System.out.println();
}
}
else{
System.out.println("This is illegal!");
}
}
}
【任务二】:实现菜单功能。
要求:
- 当程序开始运行时,显示一个功能菜单给用户选择,例如:
- 登录系统;
- 系统设置;
- 写日记;
- 查找日记;
- 退出系统;
请选择: 2. 当用户选择功能 4 时,需要显示第二个菜单,内容如下: - 按标题查找;
- 按内容查找;
- 按日期查找;
- 按心情查找;
- 按天气查找;
- 返回上一层菜单;
请选择: - 当用户选择其他某一个菜单项时,打印“正在执行某功能”,不需要实现该功能。执行完成之后,再次显示其他
一级菜单供用户选择。 - 当用户选择二级菜单的第 6 项时,返回上一级菜单。
- 当用户选择一次菜单项 5 时,显示“谢谢使用,再见!”,并退出程序。
提示:请判断用户输入的合法性,如果用户输入错误,请提示用户重新输入,不能中途退出系统。
/*
* @Author:苘山楂树
* @Description:【任务二】:实现菜单功能。
* @Date: 2019/09/18
* @Modified By:苘山楂树
*/
import java.util.Scanner;
public class Menue {
public static void main(String[] args) {
mainMenue();
}
public static void mainMenue () {
Scanner input = new Scanner(System.in);
System.out.println("1.系统登陆");
System.out.println("2.系统设置");
System.out.println("3.写日记");
System.out.println("4.查找日记");
System.out.println("5.退出系统");
System.out.println("请选择:");
int option = input.nextInt();
while (!(option >= 1 && option <= 5)) {
System.out.println("Input Error,input again");
option = input.nextInt();
}
switch (option) {
case 1:
System.out.println("正在执行系统登录功能");
break;
case 2:
System.out.println("正在执行系统设置功能");
break;
case 3:
System.out.println("正在执行写日记功能");
break;
case 4:
secondMenue();
break;
case 5:
System.out.println("谢谢使用,再见!");
System.exit(0);
break;
}
}
public static void secondMenue () {
System.out.println("1.按标题查找");
System.out.println("2.按内容查找");
System.out.println("3.按日期查找");
System.out.println("4.按心情查找");
System.out.println("5.按天气查找");
System.out.println("6.返回上一层菜单");
System.out.println("请选择:");
Scanner input = new Scanner(System.in);
int option = input.nextInt();
while (!(option >= 1 && option <= 6)) {
System.out.println("Input Error,input again");
option = input.nextInt();
}
switch (option) {
case 1:
System.out.println("正在执行按标题查找功能");
break;
case 2:
System.out.println("正在执行按内容查找功能");
break;
case 3:
System.out.println("正在执行按日期查找功能");
break;
case 4:
System.out.println("正在执行按心情查找功能");
break;
case 5:
System.out.println("正在执行按天气查找功能");
break;
case 6:
mainMenue();
break;
}
}
}