第三次实训作业
5.1 “学生”类:
类名:Student
属性:姓名、性别、年龄、学号、5门课程的成绩
方法1:在控制台输出各个属性的值、
方法2:计算平均成绩
方法3:输出各个属性的值和平均成绩
package a;
public class Student {
String name;
String sex;
int age;
int sno;
int score[]=new int[5];
double S=0;
public void myprint(){
System.out.println("姓名:"+name+"\n性别:"+sex+"\n年龄:"+age);
for(int i=0;i<5;i++){
System.out.println("此同学第"+(i+1)+"门课程成绩为:"+score[i]);
}
System.out.println("分数平均值:"+S/5);
}
public double average() {
for(int i=0;i<5;i++){
S=S+score[i];
}
return S/5;
}
}
5.2 测试类
创建2个对象,调用方法,要求:对象各个属性的值,从键盘输入。
编写“借书卡”类及其测试类。
package a;
import java.util.Scanner;
class TextStudent {
static Scanner reader=new Scanner(System.in);
public static void main(String[] args) {
Student s1=new Student();
System.out.println("请输入第一位同学的姓名,性别,年龄:");
s1.name=reader.next();
s1.sex=reader.next();
s1.age=reader.nextInt();
for(int i=0;i<5;i++){
System.out.println("请输入第一位同学的第"+(i+1)+"门课程成绩");
s1.score[i]=reader.nextInt();
}
s1.average();
s1.myprint();
Student s2=new Student();
System.out.println("请输入第二位同学的姓名,性别,年龄:");
s2.name=reader.next();
s2.sex=reader.next();
s2.age=reader.nextInt();
for(int i=0;i<5;i++){
System.out.println("请输入第二位同学的第"+(i+1)+"门课程成绩");
s2.score[i]=reader.nextInt();
}
s2.average();
s2.myprint();
}
}
运行结果
请输入第一位同学的姓名,性别,年龄:
张三 男 18
请输入第一位同学的第1门课程成绩
66
请输入第一位同学的第2门课程成绩
77
请输入第一位同学的第3门课程成绩
88
请输入第一位同学的第4门课程成绩
99
请输入第一位同学的第5门课程成绩
98
姓名:张三
性别:男
年龄:18
此同学第1门课程成绩为:66
此同学第2门课程成绩为:77
此同学第3门课程成绩为:88
此同学第4门课程成绩为:99
此同学第5门课程成绩为:98
分数平均值:85.6
请输入第二位同学的姓名,性别,年龄:
李四 女 19
请输入第二位同学的第1门课程成绩
78
请输入第二位同学的第2门课程成绩
67
请输入第二位同学的第3门课程成绩
98
请输入第二位同学的第4门课程成绩
8
请输入第二位同学的第5门课程成绩
87
姓名:李四
性别:女
年龄:19
此同学第1门课程成绩为:78
此同学第2门课程成绩为:67
此同学第3门课程成绩为:98
此同学第4门课程成绩为:8
此同学第5门课程成绩为:87
分数平均值:67.6
6.1 “借书卡”类
属性:账号、持卡人姓名、身份证号码、地址、已借书数、可借书数、本次借书数、本次还书数
方法一:借书,显示本次借书数和可借书数
方法二:还书,显示本次还书数和可借书数
package a;
public class card {
int num;
String name;
String identity;
String add;
int a,b,c,d;//已借书数a、可借书数b、本次借书数c、本次还书数d
public card(int num,String name,String identity,String add,int a) {
this.num=num;
this.name=name;
this.identity=identity;
this.add=add;
this.a=a;
}
public void myprint1() {
if(c-a>8) {
System.out.println("借书数超过限额!");
}else {
b=8-c+d-a;
System.out.println("本次借书数:"+c+"\n可借书数:"+b);
}
}
public void myprint2() {
if(d>a) {
System.out.println("还书数不正常!");
}else {
b=8-c+d-a;
System.out.println("本次还书数:"+d+"\n可借书数:"+b);
}
}
}
6.2 测试类
本次借书数 和 本次还书数,从键盘输入
package a;
import java.util.Scanner;
public class Textcard {
static Scanner reader=new Scanner(System.in);
public static void main(String[] args) {
card s1=new card(15560,"彭心雨","4303212001.。。。","湖南湘潭",3);
System.out.println("请输入本次借书数 和 本次还书数:");
s1.c=reader.nextInt();
s1.d=reader.nextInt();
s1.myprint1();
s1.myprint2();
}
}
运行结果
请输入本次借书数 和 本次还书数:
5 2
本次借书数:5
可借书数:2
本次还书数:2
可借书数:2
编写“电费管理类”及其测试类。
7.1 “电费管理类”类
属性:上月电表读数、本月电表读数
方法一:显示上月、本月电表读数
方法二:计算本月用电数
方法三:显示本月用电数
方法四:假设每度电的价格为2元,计算并显示本月电费
package a;
public class Management {
int lastmonth;
int thismonth;
int usenum,money;
public void month(){
System.out.println("上月电表读数:"+lastmonth+"\n本月电表读数:"+thismonth);
}
public int Use1() {
usenum=thismonth-lastmonth;
return usenum;
}
public void Use2(){
System.out.println("本月用电数:"+usenum+"\n本月电费:"+money);
}
public int money() {
money=usenum*2;
return money;
}
}
7.2 测试类
上月电表读数、本月电表读数,从键盘输入
package a;
import java.util.Scanner;
public class TextManagement {
static Scanner reader=new Scanner(System.in);
public static void main(String[] args) {
Management m=new Management();
System.out.println("请输入上月电表读数、本月电表读数:");
m.lastmonth=reader.nextInt();
m.thismonth=reader.nextInt();
m.month();
m.Use1();
m.money();
m.Use2();
}
}
编写“四则运算类”及其测试类。
8.1 应用场景
计算器。能实现简单的四则运算,要求:只进行一次运算。
8.1 “四则运算”类
属性:操作数一、操作数二、操作符
方法一:对两个操作数做加运算
方法二:对两个操作数做减运算
方法三:对两个操作数做乘运算
方法四:对两个操作数做除运算
package a;
public class Calculate {
double m1;
double m2;
String f;
double sum;
public void calculate() {
switch(f) {
case "+":sum=m1+m2;
case "-":sum=m1-m2;
case "":sum=m1m2;
case "/":sum=m1/m2;
}
System.out.println("运算结果为:"+m1+f+m2+"="+sum);
}
}
8.2 测试类
从键盘输入两个操作数和一个操作符,计算之后,输出运算结果。
package a;
import java.util.Scanner;
public class TextCalculate {
static Scanner reader=new Scanner(System.in);
public static void main(String[] args) {
Calculate s=new Calculate();
System.out.println("请输入两个操作数:");
s.m1=reader.nextDouble();
s.m2=reader.nextDouble();
System.out.println("请输入操作符:");
s.f=reader.next();
s.calculate();
}
}
编写“用户”类及其测试类。
9.1 应用场景
大多数的软件都需要“用户管理功能”,需要创建“用户类”。此程序实现了简易的“登录”功能,即验证用户名和密码是否正确。
9.2“用户”类:
属性:用户名、密码
方法1:查找用户名是否存在(请将已注册的用户信息保存在数组中),用户存在返回true,不存在返回false
方法2:验证密码是否正确,正确返回true,不正确返回false
package a;
public class User {
String username;
String cipher;
//String name[];
String name[]= {"aaa","bbb","ccc","abc"};
String c="123456"; //定义已注册密码
public boolean user() {
int i;
for(i=0;i<4;i++) {
if(username.equals(name[i])) {
return true;
}
}
return false;
}
public boolean mima() {
if(cipher.equals(c)) {
return true;
}
return false;
}
}
9.3 测试类
从键盘输入用户名和密码
用户名、密码均正确,在控制台输出“登录成功”
用户名不存在,在控制台输出“用户名不存在”
密码不正确,在控制台输出“密码不正确”package a;
import java.util.Scanner;
public class TextUser {
static Scanner reader=new Scanner(System.in);
public static void main(String[] args) {
User user1=new User();
System.out.println("用户名:");
user1.username=reader.next();
System.out.println("密码:");
user1.cipher=reader.next();
user1.user();
user1.mima();
if(user1.user()==true&&user1.mima()==true) {
System.out.println("登录成功!");
}else if(user1.user()==false) {
System.out.println("用户名不存在!");
}else if(user1.mima()==false) {
System.out.println("密码不正确!");
}
}
}
用户名:
aaa
密码:
123456
登录成功!
用户名:
qwe
密码:
ws
用户名不存在!
用户名:
bbb
密码:
111111
密码不正确!