目录
7-7 通过键盘输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 (10 分)
7-8 sdust-Java-字符串集合求并集 (10 分)
7-9 sdust-Java-学生成绩读取与排序 (10 分)
7-10 jmu-Java-03面向对象基础-04-形状-继承 (15 分)
7-11 jmu-Java-03面向对象-06-继承覆盖综合练习-Person、Student、Employee、Company (15 分)
7-16 jmu-Java-03面向对象基础-01-构造函数与toString (3 分)
7-19 jmu-Java-06异常-02-使用异常机制处理异常输入 (5 分)
6-1 jmu-Java-06异常-finally (8 分)
6-2 jmu-Java-06异常-多种类型异常的捕获 (3 分)
7-1 各类字符数 (20 分)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String s=sc.nextLine();
char[] ns=s.toCharArray();
int upCount=0;
int lowCount=0;
int count=0;
for(int i=0;i<ns.length;i++){
if(ns[i]>=65&&ns[i]<=90){
upCount++;
}else if(ns[i]>=97&&ns[i]<=127){
lowCount++;
}else{
count++;
}
}
System.out.println(upCount);
System.out.println(lowCount);
System.out.println(count);
sc.close();
}
}
7-2 编程题:判断闰年 (10 分)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int y=sc.nextInt();
if(y%100!=0&&y%4==0||y%400==0){
System.out.println("yes");
}else{
System.out.println("no");
}
sc.close();
}
}
7-3 编程题:统计符合条件元素的个数 (8 分)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int num=sc.nextInt();
int jCount=0;
int oCount=0;
for (int i = 1; i <=num ; i++) {
if(i%3==0){
if(i%2==0){
oCount++;
}else{
jCount++;
}
}
}
System.out.println(jCount+","+oCount);
sc.close();
}
}
7-4 字母图形 (15 分)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int m=sc.nextInt();
char num='A';
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
System.out.print((char)(num+Math.abs(i-j)));
}
System.out.println();
}
}
}
7-5 分解质因数 (20 分)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a=sc.nextInt();
int b=sc.nextInt();
for (int i = a; i <= b; i++) {
if (isPrime(i))continue;
else prime(i);
}
}
public static boolean isPrime(int n) {//此函数用于减少对素数的判断过程,减少程序的运行时间
boolean ret=true;
for (int i = 2; i <= Math.sqrt(n); i++) {
if (n%i==0){
ret=false;
break;
}
}
if (ret) System.out.println(n+"="+n);
return ret;
}
public static void prime(int n){
System.out.print(n+"=");
for (int i = 2; i <= n; i++) {
while (n%i==0&&n!=i){//从2开始除,直到与i相等就退出循环,能被i整除就输出因数i
System.out.print(i+"*");
n/=i;//n的值变为除去后的值
}
if (i==n){//退出时i等于n,输出最后结尾不带*的i
System.out.println(i);
}
}
}
}
7-6 统计最大数出现次数 (20 分)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int max_v=0;
int max_c=0;
int a;
do{
a=sc.nextInt();
if(a>max_v){
max_v=a;
max_c=1;
}
else if(a==max_v)
max_c++;
}while (a!=0);
System.out.println("The largest number is "+max_v);
System.out.println("The occurrence count of the largest number is "+max_c);
}
}
7-7 通过键盘输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 (10 分)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String str=sc.nextLine();
char[] chars=str.toCharArray();
int letter=0,num=0,blank=0,other=0;
for (int i = 0; i < chars.length; i++) {
if(chars[i]>='a'&&chars[i]<='z'||chars[i]>='A'&&chars[i]<='Z'){
letter++;
}else if(chars[i]>=47&&chars[i]<=57){
num++;
}else if(chars[i]==32){
blank++;
}else{
other++;
}
}
System.out.println("字母个数:"+letter);
System.out.println("数字个数:"+num);
System.out.println("空格个数:"+blank);
System.out.println("其他字符个数:"+other);
}
}
7-8 sdust-Java-字符串集合求并集 (10 分)
import java.util.Iterator;
import java.util.Scanner;
import java.util.TreeSet;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String str=sc.nextLine();
String[] s=str.split(" ");
TreeSet<String> s1=new TreeSet<>();
TreeSet<String> s2=new TreeSet<>();
int i=0;
while (s1.size()<5&&i<s.length){
s1.add(s[i++]);
}
while (s2.size()<5&&i<s.length){
s2.add(s[i++]);
}
TreeSet<String>s3=new TreeSet<>();
s3.addAll(s1);
s3.addAll(s2);
Iterator it=s3.iterator();
while (it.hasNext()){
System.out.println(it.next());
}
}
}
7-9 sdust-Java-学生成绩读取与排序 (10 分)
import java.util.*;
class Student implements Comparable<Student>{
private String name,id;
private int subject=1;
private int score;
private double sum=0;
Student(){}
Student(String name,String id,int score){
this.name=name;
this.id=id;
this.score=score;
}
public String getid(){
return this.id;
}
public void subjectadd() {
this.subject++;
}
public void scoreadd(int score){
this.score=this.score+score;
}
public String getname() {
return this.name;
}
public void sum() {
this.sum=this.score/this.subject;
}
public int compareTo(Student o1){
Student one = (Student) o1;
if(this.sum-one.sum!=0)
return (int)(one.sum-this.sum);
else
return this.id.compareTo(one.id);
}
}
public class Main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
List<Student> list =new ArrayList<Student>();
int i,flag=0;
String k;
String[] and =new String[5];
while(sc.hasNext())
{
k=sc.next();
and=k.split(",");
if(k.compareTo("exit")==0)
break;
for(i=0;i<list.size();i++)
{
if(list.get(i).getid().compareTo(and[1])==0)
{
flag=1;
break;
}
}
if(flag==1)
{
list.get(i).subjectadd();
list.get(i).scoreadd(Integer.parseInt(and[3]));
}
else
{
list.add(new Student(and[0],and[1],Integer.parseInt(and[3])));
}
flag=0;
}
for(i=0;i<list.size();i++)
list.get(i).sum();
Collections.sort(list);
for(i=0;i<list.size();i++)
{
System.out.println("No"+(i+1)+":"+list.get(i).getid()+","+list.get(i).getname());
}
}
}
7-10 jmu-Java-03面向对象基础-04-形状-继承 (15 分)
import java.util.Scanner;
abstract class Shape {
double PI = 3.14;
public abstract double getPerimeter();
public abstract double getArea();
}
class Rectangle extends Shape {
int wide, len;
Rectangle(int a, int b) {
wide = a;
len = b;
}
@Override
public double getPerimeter() {
return 2 * (wide + len);
}
@Override
public double getArea() {
return wide * len;
}
public String toString(){
return "[width=" + wide + ", length=" + len + "]";
}
}
class Circle extends Shape {
int radius;
Circle(int _radius) {
radius = _radius;
}
@Override
public double getPerimeter() {
return radius * 2 * PI;
}
@Override
public double getArea() {
return radius * radius * PI;
}
public String toString(){
return "[radius=" + radius + "]";
}
}
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
in.nextLine();
Shape A[] = new Shape[n];
int k = 0, j = 0;
double sumAllArea = 0, sumAllPerimeter = 0;
for (int i = 0; i < n; i++) {
String S = in.next();
if (S.equals("rect")) {
int wide = in.nextInt(), len = in.nextInt();
in.nextLine();
A[i] = new Rectangle(wide, len);
} else if (S.equals("cir")) {
int radius = in.nextInt();
in.nextLine();
A[i] = new Circle(radius);
}
sumAllArea += A[i].getArea();
sumAllPerimeter += A[i].getPerimeter();
}
System.out.println(sumAllPerimeter);
System.out.println(sumAllArea);
System.out.print("[");
for (int i = 0; i < n; i++) {
if(i != 0)
System.out.print(", ");
if (A[i] instanceof Rectangle) {
System.out.print("Rectangle ");
System.out.print(A[i].toString());
}
else {
System.out.print("Circle ");
System.out.print(A[i].toString());
}
}
System.out.println("]");
for(int i = 0;i < n;i++) {
if(A[i] instanceof Rectangle) {
System.out.println("class Rectangle,class Shape");
}else {
System.out.println("class Circle,class Shape");
}
}
in.close();
}
}
7-11 jmu-Java-03面向对象-06-继承覆盖综合练习-Person、Student、Employee、Company (15 分)
import java.text.DecimalFormat;
import java.util.*;
abstract class Person{
private String name, c;
private int age;
private boolean gender;
public String getName() {
return name;
}
public String getC() {
return c;
}
public int getAge() {
return age;
}
public boolean isGender() {
return gender;
}
public Person(String c, String name, int age, boolean gender) {
this.c = c;
this.name = name;
this.age = age;
this.gender = gender;
}
@Override
public String toString() {
return name + "-" + age + "-" + gender;
}
@Override
public boolean equals(Object obj) {
Person per = (Person) obj;
if(per.name == null || this.name == null) {
return false;
}
return (per.name.compareTo(this.name) == 0 && per.age == this.age && per.gender == this.gender );
}
}
class Student extends Person{
private String stuNo;
private String clazz;
public Student(String c, String name, int age, boolean gender, String stuNo, String clazz) {
super(c, name, age, gender);
this.stuNo = stuNo;
this.clazz = clazz;
}
@Override
public String toString(){
return super.toString() + "-" + stuNo + "-" + clazz;
}
@Override
public boolean equals(Object obj) {
Student per = (Student)obj;
if(super.equals(obj)) {
if(per.stuNo == null || per.clazz == null || this.stuNo == null || this.clazz == null) {
return false;
}
return (per.stuNo.compareTo(this.stuNo) == 0 && per.clazz.compareTo(this.clazz) == 0);
}
return false;
}
}
class Company{
private String name;
public Company(String name) {
this.name = name;
}
@Override
public String toString() {
return name;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
{
return true;
}
if (obj == null)
{
return false;
}
if (getClass() != obj.getClass())
{
return false;
}
Company other = (Company) obj;
if (name == null) {
if (other.name != null) {
return false;
}
} else if (!name.equals(other.name)) {
return false;
}
return true;
}
}
class Employee extends Person{
private Company company;
private double salary;
public Employee(String c, String name, int age, boolean gender, double salary, Company company) {
super(c, name, age, gender);
this.salary = salary;
this.company = company;
}
@Override
public String toString() {
return super.toString() + "-" + company.toString() + "-" + salary;
}
@Override
public boolean equals(Object obj) {
if(super.equals(obj)) {
Employee per = (Employee)obj;
if(this.company.toString() == null || per.company.toString() == null) {
return false;
}
String newpersalary = new DecimalFormat("#.#").format(per.salary);
String newthissalary = new DecimalFormat("#.#").format(this.salary);
return (per.company.toString().compareTo(this.company.toString()) == 0 && newpersalary.compareTo(newthissalary) == 0);
}
return false;
}
}
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
String c, name, stuNo, clazz, companyname, str;
int age;
boolean gender;
double salary;
ArrayList<Person> personList = new ArrayList<Person>();
ArrayList<Student> studentList = new ArrayList<Student>();
ArrayList<Employee> employeeList = new ArrayList<Employee>();
while(true) {
c = input.next();
if(c.compareTo("s") == 0) {
name = input.next();
age = input.nextInt();
gender = input.nextBoolean();
stuNo = input.next();
clazz = input.next();
Student student = new Student(c, name, age, gender, stuNo, clazz);
personList.add(student);
}
else if(c.compareTo("e") == 0) {
name = input.next();
age = input.nextInt();
gender = input.nextBoolean();
salary = input.nextDouble();
companyname = input.next();
Company company = new Company(companyname);
Employee employee = new Employee(c, name, age, gender, salary, company);
personList.add(employee);
}
else {
personList.sort(Comparator.comparing(Person::getName).thenComparingInt(Person::getAge));
for(int i = 0; i < personList.size(); ++i) {
if(personList.get(i).getC().compareTo("s") == 0) {
System.out.println("Student:" + personList.get(i).toString());
int flag = 0;
for(int j = 0; j < studentList.size(); ++j) {
if(studentList.get(j).equals(personList.get(i))) {
flag = 1;
break;
}
}
if(flag == 0) {
studentList.add((Student)personList.get(i));
}
}
else if(personList.get(i).getC().compareTo("e") == 0){
System.out.println("Employee:" + personList.get(i).toString());
int flag = 0;
for(int j = 0; j < employeeList.size(); ++j) {
if(employeeList.get(j).equals(personList.get(i))) {
flag = 1;
break;
}
}
if(flag == 0) {
employeeList.add((Employee)personList.get(i));
}
}
}
str = input.next();
if(str.compareTo("exit") == 0 || str.compareTo("return") == 0) {
return;
}
System.out.println("stuList");
for(int i = 0; i < studentList.size(); ++i) {
System.out.println("Student:" + studentList.get(i).toString());
}
System.out.println("empList");
for(int i = 0; i < employeeList.size(); ++i) {
System.out.println("Employee:" + employeeList.get(i).toString());
}
}
}
}
}
7-12 程序改错题2 (5 分)
public class Main {
public static void main(String[] args) {
Animal animal = new Dog();
animal.shout();
((Dog) animal).run();
}
}
class Animal {
void shout() {
System.out.println("animal shout!");
}
}
class Dog extends Animal {
@Override
void shout() {
super.shout();
System.out.println("wangwang……");
}
void run() {
System.out.println("Dog is running");
}
}
7-13 程序填空题3 (5 分)
public class Main {
public static void main(String[] args) {
Son son = new Son();
son.method();
}
}
class Parent {
Parent() {
System.out.println("Parent's Constructor without parameter");
}
Parent(boolean b) {
System.out.println("Parent's Constructor with a boolean parameter");
}
public void method() {
System.out.println("Parent's method()");
}
}
class Son extends Parent {
private static boolean b;
Son()
{
super(b);
System.out.println("Son's Constructor without parameter");
}
public void method() {
System.out.println("Son's method()");
System.out.println("Parent's method()");
}
}
7-14 设计一个Shape及其子类Oval (20 分)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double m = sc.nextDouble();
double n = sc.nextDouble();
Oval oval = new Oval(m, n);
System.out.println("The area of " + oval + " is " + oval.area());
System.out.println("The perimeterof " + oval + " is " + oval.perimeter());
}
}
abstract class Shape {
protected static final double PI = 3.1415926;
abstract double area();
abstract double perimeter();
}
class Oval extends Shape {
private double a;
private double b;
public Oval(double a, double b) {
this.a = a;
this.b = b;
}
public Oval() {
a = 0;
b = 0;
}
@Override
public double area() {
return PI * a * b;
}
@Override
public double perimeter() {
return 2 * PI * Math.sqrt((a * a + b * b) / 2);
}
@Override
public String toString() {
return "Oval(a:" + a + ",b:" + b + ")";
}
}
7-15 USB接口的定义 (10 分)
public class Main {
public static void main(String[] args) {
Mouse usb1=new Mouse();
usb1.work();
usb1.stop();
USB usbs[]=new USB[2];
usbs[0]=new UPan();
usbs[0].work();
usbs[0].stop();
usbs[1]=new Mouse();
usbs[1].work();
usbs[1].stop();
}
}
interface USB{
void work();
void stop();
}
class Mouse implements USB{
public void work(){
System.out.println("我点点点");
}
public void stop(){
System.out.println("我不能点了");
}
}
class UPan implements USB{
public void work(){
System.out.println("我存存存");
}
public void stop(){
System.out.println("我走了");
}
}
7-16 jmu-Java-03面向对象基础-01-构造函数与toString (3 分)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n = sc.nextInt();
Person[] p=new Person[n];
for (int i = 0; i < n; i++) {
String a = sc.next();
int b= sc.nextInt();
boolean c = sc.nextBoolean();
p[i]=new Person(a,b,c);
}
for (int i = n-1; i >=0 ; i--) {
System.out.println(p[i].toString());
}
Person p1=new Person();
System.out.println(p1.toString());
}
}
class Person {
private String name;
private int age;
private boolean gender;
private int id;
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void setGender(boolean gender) {
this.gender = gender;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public boolean isGender() {
return gender;
}
public int getId() {
return id;
}
public Person(){
System.out.println("This is constructor");
System.out.println(name+","+age+","+gender+","+id);
}
public Person(String name, int age, boolean gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
@Override
public String toString(){
return "Person [name="+name+", age="+age+", gender="+gender+", id="+id+"]";
}
}
7-17 定义商品类,封装成员变量,输出对象 (10 分)
import java.util.Scanner;
class stuff{
private String number;
private String name;
private double price;
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
stuff(String number, String name,double price ) {
this.name = name;
this.number = number;
this.price = price;
}
}
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String number = sc.next();
String name = sc.next();
double price = sc.nextDouble();
stuff a = new stuff(number, name, price);
System.out.print(a.getNumber()+","+a.getName()+","+a.getPrice());
}
}
7-18 定义类与创建对象 (10 分)
class Person{
String name;
int age;
Person(String n,int a){
name = n;
age=a;
}
}
public class Main{
public static void main(String args[]){
Person p1 = new Person("lili",19);
Person p2 = new Person("lucy",20);
System.out.println("this person is " +p1.name+ ",her age is " +p1.age);
System.out.println("this person is " +p2.name+ ",her age is " +p2.age);
}
}
7-19 jmu-Java-06异常-02-使用异常机制处理异常输入 (5 分)
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n=scan.nextInt();
int a[]=new int[n];
int count=0;
while(count<n) {
try {
String temp=scan.next();
int i=Integer.parseInt(temp);
a[count++]=i;
}catch(Exception e) {
System.out.println(e);
}
}
System.out.println(Arrays.toString(a));
scan.close();
}
}
7-20 好玩的图形 (20 分)
import java.util.*;
interface Shape {
public float getArea();
public float getPerimeter();
}
class Circle implements Shape {
float radius;
public Circle(float radius) {
this.radius = radius;
}
public float getArea() {
float ans = (float) (Math.PI * radius * radius);
return (float) ans;
}
public float getPerimeter() {
float ans = (float) (2 * Math.PI * radius);
return (float) ans;
}
}
class Rectangle implements Shape {
float length, width;
public Rectangle(float length, float width) {
this.length = length;
this.width = width;
}
public float getArea() {
float ans = length * width;
return (float) ans;
}
public float getPerimeter() {
float ans = 2 * (length + width);
return (float) ans;
}
}
public class Main {
static public void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
for (int i = 0; i < n; i++) {
int flag = input.nextInt();
if (flag == 1) {
float radius = input.nextFloat();
Circle c = new Circle(radius);
String ans1 = String.format("%.2f", c.getArea());
String ans2 = String.format("%.2f", c.getPerimeter());
System.out.println(ans1 + " " + ans2);
}
else {
float length = input.nextFloat();
float width = input.nextFloat();
Rectangle m = new Rectangle(length, width);
String ans1 = String.format("%.2f", m.getArea());
String ans2 = String.format("%.2f", m.getPerimeter());
System.out.println(ans1 + " " + ans2);
}
}
input.close();
}
}
6-1 jmu-Java-06异常-finally (8 分)
System.out.println("resource open success");
}
catch(Exception e)
{
System.out.println(e);
}
try{
resource.close();
System.out.println("resource release success");
}
catch(RuntimeException e)
{
System.out.println(e);
}
6-2 jmu-Java-06异常-多种类型异常的捕获 (3 分)
catch(Exception e){
if (choice.equals("number"))
System.out.println ("number format exception");
if (choice.equals("illegal"))
System.out.println ("illegal argument exception");
if (choice.equals("except"))
System.out.println ("other exception");
System.out.println (e);
}
教师类
import java.util.Scanner;
class Teacher{
int no;
String name;
String seminary;
int age;
public Teacher(){
}
public Teacher(int no, String name,int age, String seminary) {
this.no = no;
this.name = name;
this.seminary = seminary;
this.age = age;
}
public int getNo() {
return no;
}
public void setNo(int no) {
this.no = no;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSeminary() {
return seminary;
}
public void setSeminary(String seminary) {
this.seminary = seminary;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public boolean equals(Object obj){
Teacher t=(Teacher) obj;
if(this.no==t.no)
return true;
return false;
}
public String toString(){
return "no: "+this.no+", name:"+this.name+", age: "+this.age+", seminary: "+seminary;
}
}
public class Main {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
Teacher t=new Teacher(s.nextInt(),s.next(),s.nextInt(),s.next());
Teacher t1=new Teacher(s.nextInt(),s.next(),s.nextInt(),s.next());
System.out.println(t.toString());
System.out.println(t1.toString());
System.out.println(t.equals(t1));
}
}
最难填空题
class Student implements Comparable<Student> {
private int no;
private String name;
public Student(int no, String name) {
this.no = no;
this.name = name;
}
public int getNo() {
return no;
}
public void setNo(int no) {
this.no = no;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String toString() {
return "no=" + no + "&name=" + name;
}
public int compareTo(Student o) {
if(this.name.compareTo(o.name)<0) {
return -1;
}
else if(this.name.compareTo(o.name)>0)return 1;
return 0;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + no;
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Student other = (Student) obj;
if (no != other.no)
return false;
return true;
}
}