2019-07-23 实验题目

1、学校中有教师和学生两类人,而在职研究生既是教师又是学生。设计学生和教师两个接口。其中,学生接口包括设置和获取学生学费的方法;教师接口包括用于设置和获取教师工资的方法。定义一个研究生类,实现两个接口,它的成员变量有姓名,性别,年龄,每学期学费,月工资。创建一个研究生对象,如果收入减去学费不足2000元,则输出“需要贷款”信息。

interface student{
    void setfee(int f);
    int getfee();
}
interface teacher{
    void setpay(int p);
    int getpay();
}
public class graduate implements student,teacher {
    String name;
    String sex;
    int age;
    int fee;
    int pay;
    graduate(String n,String s,int a){
        this.name=n;
        this.sex=s;
        this.age=a;
    }
    void show() {
        System.out.println("姓名:"+name+",性别:"+sex+",年龄:"+age);
    }
    public void setfee(int f){
        fee=f;
    }
    public int getfee(){
        return fee;
    }
    public void setpay(int p){
        pay=p;
    }
    public int getpay(){
        return pay;
    }
    public static void main(String args[]){
        System.out.println("研究生信息:");
        graduate  g=new graduate("丽丽","女",20);
        g.show();
        g.setfee(7000);
        g.setpay(700);
        if((g.getpay()*12-g.getfee())<=2000){
            System.out.println("需要贷款!");
        }
        else 
            System.out.println("无需贷款!");
    }
}

2、编写一个应用程序,接受用户输入的一行字符串,统计字符个数,然后反序输出。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class zfc2 {
    public static void main(String args[]) {
        InputStreamReader ir;
        BufferedReader in;
        ir=new InputStreamReader(System.in);
        in=new BufferedReader(ir);
        System.out.println("请输入字符串:");
        try {
            String s=in.readLine();
            System.out.println("字符串长度是:"+s.length());
            System.out.println("反序输出为:");
            for(int i=s.length();i>0;i--) {
                System.out.print(s.substring(i-1,i));
            }
        }
        catch(IOException e) {
            e.printStackTrace();
        }
    }

3、编程实现将两个文本文件中的内容合并到另一个文本文件中。

import java.io.*;
public class SequenceInputStreamDemo {
   public static void main(String args[]) throws IOException{
       InputStream s1=new FileInputStream("D:\\a.txt");
       InputStream s2=new FileInputStream("D:\\b.txt");
       SequenceInputStream is=new SequenceInputStream(s1,s2);
       BufferedOutputStream os=new BufferedOutputStream(new FileOutputStream("D:\\c.txt"));
       byte[] bytes=new byte[1024];
       int len=0;
       while((len=is.read(bytes))!=-1) {
           os.write(bytes,0,len);
           os.flush();
       }
       is.close();
       os.close();
   }
}

4、编写一个学校类,其中包含数据成员“录取分数线”和对该变量值进行设置和获取的方法。编写一个学生类,数据成员有考生的姓名、考号、综合成绩,还有获取学生综合成绩的方法。编写一个录取类,它的方法用于判断学生是否符合录取条件,其中录取条件为:综合成绩在录取分数线之上。在该类中建立学生对象,对符合录取条件的学生输出其信息。

class school{
    public static int line=300;
    public void refer(){
        System.out.println("本校录取分数线:"+line);
    }
}
class student{
    public student(String number,String name,int score){
        System.out.println("学号:"+number);
        System.out.println("姓名:"+name);
        System.out.println("综合成绩:"+score);
    }
}
public class admit extends school{
    public admit(int score){
        if(score>300){
            System.out.println("被录取!");
        }
        else{
            System.out.println("未录取!");
        }
    }
    public static void main(String args[]){
        String number[]={"1080601","1080602","1080603","1080604","1080605"};
        String name[]={"丽丽","欢欢","玲玲","乐乐","亮亮"};
        int score[]={510,440,299,260,385};
        school sc=new school();
        sc.refer();
        for(int i=0;i<5;i++){
            new student(number[i],name[i],score[i]);
            new admit(score[i]);
        }
    }
}

5、编写程序实现:接受命令行中给出的一个字符串,先将该串原样输出,然后判断该串的第一个字母是否为大写,若为大写则统计该串中大写字母的个数,并将所有大写字母输出,否则,输出信息串“第一个字母不是大写字母!”。

import java.util.Scanner;
public class zfc1 {
    public static void main(String args[]) {
        System.out.println("请输入一个字符串:");
        Scanner in=new Scanner(System.in);
        String s=in.nextLine();
        System.out.println(s);
        char x=s.charAt(0);
        if(x>=65&&x<=90) {
            int n=0;
            char[]Arr=s.toCharArray();
            for(int i=0;i<=s.length()-1;i++) {
                if(Arr[i]>='A'&&Arr[i]<='Z') {
                    System.out.println("输出大写字母"+Arr[i]);
                    n++;
                }
            }
            System.out.println("大写字母个数:"+n);
        }
        else {
            System.out.println("第一个字母不是大写字母!");
        }
  }
}

6、在屏幕上显示出从键盘输入的姓名,然后将输入的姓名保存到文本文件中,重复进行,直到输入end字符串为止。

import java.io.File;
import java.io.FileWriter;
import java.util.Scanner;
public class txt {
    public static void main(String args[]) {
        Scanner sc=new Scanner(System.in);
        StringBuffer sbf=new StringBuffer();
        while(sc.hasNext()) {
            String in=sc.next();
            if(in.equals("end")) {
                break;
            }
            sbf.append(in);
            try {
                File file=new File("d:\\1.txt");
                FileWriter fw=new FileWriter(file);
                fw.write(sbf.toString());
                fw.close();
            }
            catch(Exception e) {
                e.printStackTrace();
            }
        }
    }
}

7、定义一个交通工具类,其中属性包括:速度、类别、颜色,方法包括设置速度、设置颜色、获取类别、获取颜色。设计一个小车类继承自交通工具类,小车类中增加了属性:座位数,增加了设置和获取座位数的方法,创建小车类对象,为其设置新速度和颜色,并显示其所有属性。

public class vehicle {
    String color;
    int speed;
    String kind;
    vehicle(){
        speed=0;
        color="";
        kind="";
    }
    public void setcolor(String color1) {
        color=color1;
    }
    public void setspeed(int speed1) {
        speed=speed1;
    }
    public void setkind(String kind1) {
        kind=kind1;
    }
    public String getcolor() {
        return color;
    }
    public int getspeed() {
        return speed;
    }
    public String getkind() {
        return kind;
    }
}
class car extends vehicle{
    int seat;
    public car() {
        super();
        seat=0;
    }
    public void setseat(int seat) {
        this.seat=seat;
    }
    public int getseat() {
        return seat;
    }
    public static void main(String args[]) {
        car Car=new car();
        Car.setcolor("white");
        Car.setspeed(100);
        Car.setkind("Maserati");
        Car.setseat(2);
        System.out.println("种类:"+Car.getkind());
        System.out.println("颜色:"+Car.getcolor());
        System.out.print("速度(km/h)"+Car.getspeed());
        System.out.print("座位数:"+Car.getseat()); 
    }
}

8、设计一个学生类,具有属性:姓名、年龄、学位。由学生类派生出本科生类和研究生类,本科生类增加属性:专业,研究生类增加属性:研究方向,每个类都有show()方法,用于输出属性信息。

class student {
    String name;
    int age;
    String degree;
    student(String name,int age,String degree){
        this.name =name;
        this.age =age;
        this.degree =degree;
    }
    void show(){
        System.out.println("姓名:"+name);
        System.out.println("年龄:"+age);
        System.out.println("学位:"+degree);
    }
}

class Undergraduate extends student{
    String major;
    Undergraduate(String name,int age,String degree,String major){
        super(name,age,degree);
        this.major=major;
    }
    public void show() {
        super.show();
        System.out.println("专业:"+major);
    }
}
class Graduate extends student{
    String direction;
    Graduate(String name,int age,String degree,String direction){
        super(name,age,degree);
        this.direction=direction;
    }
    public void show() {
        super.show();
        System.out.println("研究方向:"+direction);
    }
}
public class sstudent{
public static void main(String[] args) {
        Undergraduate undergraduate=new Undergraduate("丽丽",19,"本科","软件工程");
        undergraduate.show();
        Graduate graduate=new Graduate("玲玲",21,"研究生","计算机科学与技术");
        graduate.show();
    }
}

9、读一个文本文件,将文件中所有字符都转变为大写,然后写回到原文件中。

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
public class chartest {
 public static void main(String[] args) {
  String in = "d:\\a.txt";
  String out = "d:\\a.txt";
  String str = "";
  try {
   File infile = new File(in);
   BufferedReader reader = new BufferedReader(new FileReader(infile));
   String i = null;
   while ((i = reader.readLine()) != null) {
    str += i;
   }
   reader.close();
   File outfile = new File(out);
   if (!outfile.exists()) {
    outfile.createNewFile();
   }
   FileWriter fw = new FileWriter(outfile.getAbsoluteFile());
   BufferedWriter bufferWritter = new BufferedWriter(fw);
   bufferWritter.write(str.toUpperCase());
   bufferWritter.close();
  } 
  catch (Exception ex) {
      ex.printStackTrace();
  }
 }
}

10、编写程序,定义一个circle类,其中有求面积的方法,当圆的半径小于0时,抛出一个自定义的异常。

class EX extends Exception{
    double r;
    EX(){
        
    }
    EX(double i){
        r=i;
    }
    public double getr() {
        return r;
    }
    public double Area() {
        return 3.14*r*r;
    }
}
public class circle {
    public static void main(String args[]) {
        EX c=new EX(-5.0);
        try {
            if(c.getr()<0) {
                EX e=new EX();
                throw e;
            }
            System.out.println(c.Area());
        }
        catch(EX e) {
            System.out.println("自定义异常:"+e);
        }
    }
}

11、编写程序,从键盘读入5个字符放入一个字符数组,并在屏幕上显示。在程序中处理数组越界的异常。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class readchar{
    public static void main(String args[]) throws IOException{
        BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
        System.out.println("请输入五个字符:");
        String txt=buf.readLine();
        char c[]=new char[5];
        try {
            for(int i=0;i<txt.length();i++) {
                c[i]=txt.charAt(i);
                System.out.println(c[i]);
            }
        }
        catch(ArrayIndexOutOfBoundsException e) {
            System.out.println();
            System.out.println("输入字符超出要求,只显示前五个字符");
        }
    }
}

12、编写Java Application,要求从命令行以参数形式读入两个数据,计算它们的和,然后将和输出。对自定义异常OnlyOneException与NoOprandException进行编程。如果参数的数目不足,则显示相应提示信息并退出程序的执行。

public class application {
    public static void main(String args[]) throws NoOprandException,OnlyOneException{
        try {
            if(args.length==0) 
                throw new NoOprandException();
            else
                {
                try{
                    if(args.length<2)
                        throw new OnlyOneException();
                    else {
                        int sum;
                        sum=Integer.parseInt(args[0])+Integer.parseInt(args[1]);
                        System.out.println("这个数是:"+sum);
                    }
                }
                catch(OnlyOneException e1) {
                    e1.show1();
                }
            }
        }
        catch(NoOprandException e2) {
            e2.show2();
        }
    }

}

class OnlyOneException extends Exception {
    public void OnlyOneException() {
        
    }
    public void show1() {
        System.out.println("只有一个数,请输入另一个!");
    }
}
class NoOprandException extends Exception{
    public void NoOprandException() {   
    }
    public void show2() {
        System.out.println("请输入两个数据!");
    }
}

13、设计一个活期存折类,其中包括成员变量:姓名、编号、家庭地址、存款额、密码。创建该类的对象,为对象办理一个活期存折。

public class bank {
    String name;
    int id;
    String adress;
    int balance;
    long password;
    bank(String name,int id,String adress, int b,long pw){
        this.name =name;
        this.adress =adress;
        this.id =id;
        this.adress =adress;
        this.balance =b;
        this.password =pw;
    }
    void show() {
        System.out.println("姓名:"+name);
        System.out.println("编号:"+id);
        System.out.println("家庭住址:"+adress);
        System.out.println("存款额:"+balance);
        System.out.println("密码:"+password);
    }
    public static void main(String args[]) {
        bank Bank=new bank("丽丽",113,"陕西省西安市未央区",1000,123456);
        Bank.show();
    }
}

14、模拟银行账户功能,要求属性有:账号、姓名、地址、存款余额;方法有:存款、取款、查询。如存款操作后,显示储户原有余额、今日存款数及最终存款余额;取款时若余额小于取款数,则拒绝取款。

import java.util.Scanner;

class bankaccount{
    long account;
    String name,address;
    double money;
    double inmoney;
    double outmoney;
    bankaccount(long account,String name,String address,double money){
        this.account=account;
        this.name=name;
        this.address=address;
        this.money=money;
    }
    void show() {
        System.out.println("账号:"+account);
        System.out.println("姓名:"+name);
        System.out.println("地址:"+address);
        System.out.println("余额:"+money);
    }
    void getinmoney(){
        Scanner sc1=new Scanner(System.in);
        System.out.println("请输入存款数目:");
        double in=sc1.nextDouble();
        System.out.println("您的存款数目为"+in+"元");
        System.out.println("账户余额:"+(money+in)+"元");
        this.money=money+in;
    }
    void getoutmoney(){
        Scanner sc1=new Scanner(System.in);
        System.out.println("请输入取款数目:");
        double out=sc1.nextDouble();
        if(out>money){
            System.out.println("取款失败,余额不足!");
            System.out.println("账户余额:"+money+"元");
        }
        else{ 
            System.out.println("您的取款数目为"+out+"元");
            System.out.println("账户余额:"+(money-out)+"元");
        }
       this.money=money-out; 
    }
    double getsearch(){
        return money;
    }
}
public class account{
    public static void main(String args[]){
        System.out.println("当前账户信息:");
        bankaccount bank=new bankaccount(1130514,"丽丽","陕西省西安市未央区",1000);
        bank.show();
        int P=0,n,a;
        do {
            System.out.println("请选择服务类型:");
            System.out.println("1.存款");
            System.out.println("2.取款");
            System.out.println("3.查询");
            Scanner sc=new Scanner(System.in);
            n=sc.nextInt();
            if(n==1){
                bank.getinmoney();
            }
            else if(n==2){
                bank.getoutmoney();
            }
            else if(n==3){
                System.out.println("当前余额为:"+bank.getsearch()+"元");
            }
            else {
                System.out.println("请输入‘1’,‘2’或‘3’。");
                continue;
            }
            System.out.println("若要继续,请输入‘1’,否则退出系统");
            a=sc.nextInt();
            if(a!=1) {
                P=1;
            }
        }
        while(P==0);
        System.out.println("谢谢使用!");
    }
}

15、设计实现地址功能类,具有属性:省、市、街道、门牌号、邮编,具有设置和获取属性的方法。

public class address{
    String province;
    String city;
    String street;
    String housenumber;
    public void setprovince(String province1){
        province=province1;
    }
    public void setcity(String city1){
        city=city1;
    }
    public void setstreet(String street1){
        street=street1;
    }
    public void sethousenumber(String housenumber1){
        housenumber=housenumber1;
    }
    public String getprovince() {
        return province;
    }
    public String getcity() {
        return city;
    }
    public String getstreet() {
        return street;
    }
    public String gethousenumber() {
        return housenumber;
    }
    public static void main(String args[]){
        address addr=new address();
        addr.setprovince("陕西省");
        addr.setcity("西安市");
        addr.setstreet("未央湖街道");
        addr.sethousenumber("1113号");
        System.out.println("地址信息:");
        System.out.println("省:"+addr.getprovince());
        System.out.println("市:"+addr.getcity());
        System.out.println("街道:"+addr.getstreet());
        System.out.println("门牌号:"+addr.gethousenumber());

    }
}

16、定义生物、动物、人三个接口,其中生物接口声明了呼吸方法,动物接口声明了性别和吃食的方法,人接口声明了思考和学习的方法。定义类实现上述三个接口,实现声明的方法。

interface biogloy{
    public void breath();
}
interface animal{
    public void eat();
    public void sex();
}
interface person {
    public void thinking();
    public void study();
}

class text implements biogloy,animal,person {
    public void breath() {
        System.out.println("生物会呼吸");
    }
    public void eat() {
        System.out.println("动物会吃食物");
    }
    public void sex() {
        System.out.println("动物分性别");
    }
    public void thinking() {
        System.out.println("人类会思考");
    }
    public void study() {
        System.out.println("人类会学习");
    }

}
public class test{
    public static void main(String main[]) {
        text a=new text();
        a.breath();
        a.eat();
        a.sex();
        a.thinking();
        a.study();
    }
}
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,482评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,377评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,762评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,273评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,289评论 5 373
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,046评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,351评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,988评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,476评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,948评论 2 324
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,064评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,712评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,261评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,264评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,486评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,511评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,802评论 2 345

推荐阅读更多精彩内容