一个关于自己的类及学生台控制系统

一个关于自己的一个类

public class MyselfObject {
     String name;
     int age;
     private  double height;
     private double myMoney;//声明各属性
     private double weight;
     private  String [][] timeTable  ;
     MyselfObject(String name,int age,double myMoney,double height,double weight,String [][] timeTable){
         this.name = name;
         this.age = age;
         this.myMoney = myMoney;//用构造方法为各属性赋值
         this.height = height;
         this.weight = weight;
         this.timeTable = timeTable;
     }
    void goShopping(double cost){
         this.myMoney-=cost;
        System.out.println("你还剩"+this.myMoney);
    }
    void growth(int year){
         this.height+=(year-this.age)*0.001;
         this.weight+=2*year;//一年体重增加2斤
        System.out.println("你如今的体重为"+this.weight);
        System.out.println("你如今的身高为"+this.height);
    }
    void havingDinner(double mealKg){
         this.weight +=0.001*mealKg;
          System.out.println("你一周后的体重为:"+this.weight);
    }
    void attend_class(String day,int classTime){
         int day_ = Integer.parseInt(day.substring(day.length()-1));
         for(int i=1;i<=5;i++)
             if(day_==i)
             {System.out.println("你将要在"+day+"第"+day_+"大节"+"上"+this.timeTable[day_-1][classTime]);break;}

    }
     }
import java.util.*;//导入包
public class Run_main {
    static String name;
    static int age;//声明各属性
    static double myMoney;
    static double height,weight;
    static String [][] timeTable = new String[5][5];
    public static void input(){
        Scanner in = new Scanner(System.in);
        name = in.next();
        age = in.nextInt();
        myMoney = in.nextDouble();//输入各属性的值
        height = in.nextDouble();
        weight = in.nextDouble();
        for(int i=0;i<5;i++)
            for(int j=0;j<5;j++)
                timeTable[i][j] = in.next();
    }
    public static void main(String [] args){
        Scanner in = new Scanner(System.in);
        String str;
        do{
        System.out.println("请你输入你的姓名,年龄,存额,身高,体重,课表");
        Run_main.input();
        MyselfObject yang = new MyselfObject(name,age,myMoney,height,weight,timeTable);
        System.out.println("请输入你此次购物的所花费的钱:");
        double cost = in.nextDouble();
        yang.goShopping(cost);//调用MyselfObject中的goShopping()方法
        System.out.println("请输入你如今的年龄");
        int year = in.nextInt();
        yang.growth(year);//调用MyselfObject中的growth()方法
        System.out.println("请输入你一周吃的食物的斤数:");
        double mealkg = in.nextDouble();
        yang.havingDinner(mealkg);//调用MyselfObject中的havingDinner()方法
        String mark;
        do {
            System.out.println("请你输入你想要查询星期几第几大节的课");
            String day = in.next();
            int classTime = in.nextInt();
            yang.attend_class(day, classTime);
            System.out.println("是否继续查询课表 Yes or No");
            mark = in.next();
        }while(mark.equals("Yes")||mark.equals("yes"));
        System.out.println("是否继续使用此系统 Yes or No");
         str = in.next();
      }while(str.equals("Yes")||str.equals("yes"));
        System.out.println("谢谢使用此系统,欢迎下次使用");
   }
}

在这里插入图片描述

基于控制台的学生成绩统计系统

import java.util.Arrays;
import java.util.Scanner;
public class ScoreSum{
    static String []students = new String[6]; 
    static String []courses={"C","Java","mySQL","Linux","HTML"};
    static int [][] score = new int[6][5];
    public static void input(){
       Scanner input = new Scanner(System.in);
        for(int i=0;i<6;i++)                                              
        {
            int jj=0;
            String str; 
             str = input.next();//输入数据
           ScoreSum.students[i] = str.substring(0,str.indexOf("C"));//截取名字
           ScoreSum.score[i][jj++] = Integer.parseInt(str.substring(str.indexOf("C")+1, str.indexOf("Java")));//截取分数;
           ScoreSum.score[i][jj++] = Integer.parseInt(str.substring(str.indexOf("Java")+4, str.indexOf("mySQL")));
           ScoreSum.score[i][jj++] = Integer.parseInt(str.substring(str.indexOf("mySQL")+5, str.indexOf("Linux")));
           ScoreSum.score[i][jj++] = Integer.parseInt(str.substring(str.indexOf("Linux")+5, str.indexOf("HTML")));
           ScoreSum.score[i][jj++] = Integer.parseInt(str.substring(str.indexOf("HTML")+4));      
                
         }
            
            
        }
    
    public static void main(String args []){
        Scanner in = new Scanner(System.in);
        String [] yang = new String[3];
        System.out.println("请输入学生姓名及成绩:");
        ScoreSum.input();
        do{
        System.out.print("请输入命令:");
         String str = in.nextLine();//用一个字符串存输入数据
         if(str.equals("exit"))//如果是exit直接跳出循环
         break;
         yang[0] = str.substring(0, str.indexOf(" "));//用substring()方法截取此字符串的第一个字节段
         if(yang[0].equals("get"))//如果第一个字节段为get直接截取后面两个字节段
        {
         yang[1] = str.substring(str.indexOf(" ")+1, str.lastIndexOf(" "));
         yang[2] = str.substring(str.lastIndexOf(" ")+1,str.length());
        }
        else
        yang[1] = str.substring(str.indexOf(" ")+1, str.length());//如果不是get,只需要截取后面一个字节段
        if(yang[0].equals("avg")){
            Avg avg = new Avg();//如果第一个字节段是avg直接使用Avg类的average()方法
            avg.average(yang[1]);

        }
        else if(yang[0].equals("get"))
        {
           Get get = new Get();//如果第一个字节段是get直接使用Get类的getScore()方法
           get.getScore(yang[1],yang[2]);
        }
        else if(yang[0].equals("sort")){
           Sort sort = new Sort();//如果第一个字节段是sort直接使用Sort类的sortCourses()方法
           sort.sortCourses(yang[1]);
        }
        else{
          ;
        }
    }while(true);
    System.out.println("请退出查询系统! byebye!");

    }
}
class Avg{
   void average(String str){
    double averageScore = 0;
    int mark=-1,mark1=-1;//用mark,mark1做标记
    for(int i=0;i<5;i++){
        if(str.equals(ScoreSum.courses[i]))
        mark=i;//如果第二个字节段是一个课程名,用mark做标记
       }
    for(int j=0;j<6;j++)
    if(str.equals(ScoreSum.students[j]))
    mark1=j;//如果第二个字节段是一个学生名,用mark1做标记
    if(mark==-1&mark1==-1)
    System.out.println("你输入的既不是课程名,也不是学生名");//后面使用if-else语句判断第二个字节段是课程名还是学生名
    else if(mark1==-1&mark!=-1)
   {
         for(int i=0;i<6;i++){
        averageScore+=ScoreSum.score[i][mark];//mark不是-1说明是课程名,直接求和该门课个学生的成绩的平均分
        }
        System.out.printf("%s的平均分是:%.2f\n",str,averageScore/6);
   }
   else
    {
        for(int i=0;i<5;i++)
        averageScore+=ScoreSum.score[mark1][i];//mark1不是-1说明是学生名,直接求和该学生每门课的成绩的平均分
        System.out.printf("%s的平均分是:%.2f\n",str,averageScore/5);
    }
   }

}
class Get{
    void getScore(String str1,String str2){
         int mark=-1,mark1=-1;//用mark,mark1为后面两个字节段str1,str2做标记
         for(int i=0;i<6;i++){
            if(str1.equals(ScoreSum.students[i]))
            mark=i;
        }
        for(int j=0;j<5;j++)
        if(str2.equals(ScoreSum.courses[j]))
            mark1=j;
        if(mark==-1&mark1==-1){//都为-1说明没有str1这个人和str2这门课
            System.out.println("没有"+str1+"这个人和"+str2+"这门课");
        }
        else if(mark==-1&mark1!=-1)//mark=-1说明没有str1这个人
        System.out.println("没有"+str1+"这个人");
        else if(mark!=-1&mark1==-1)//mark1--1说明没有str2这门课
        System.out.println(str1+"没有"+str2+"这门课");
        else//其它情况,说明存在str1这个人和str2这门课
        System.out.println(str1+"的"+str2+"的成绩是:"+ScoreSum.score[mark][mark1]);
    }

}
class Sort{
    void sortCourses(String str){
      int mark=-1;//用mark为str第二个字节段做标记
      for(int i=0;i<5;i++)
       if(str.equals(ScoreSum.courses[i]))
         mark=i;//用for循环标记mark
      if(mark==-1)
      System.out.println("没有这门课");
      else//如果有这门课
       {   String studentsname [] = new String [6];//用两个数组分别存这门课成绩和学生名
           int copyscore [] =new int  [6];
           for(int i=0;i<6;i++)
           {studentsname[i] = ScoreSum.students[i];
            copyscore[i] = ScoreSum.score[i][mark];
           }
           String strt;
           for(int i=0,t;i<5;i++)//为每个学生的该课成绩排序
           for(int j=i+1;j<6;j++)//对应的学生名也要排序
             if(copyscore[i]>copyscore[j])
             {t=copyscore[i];copyscore[i]=copyscore[j];copyscore[j]=t;
              strt=studentsname[i];studentsname[i]=studentsname[j];studentsname[j]=strt;
            }
         System.out.println("名次         "+"姓名         "+str);//最后输出排序结果
         for(int i=0;i<6;i++)
         System.out.printf("%d%15s%12d\n",i+1,studentsname[i],copyscore[i]);
         
       }

    }
}

在这里插入图片描述

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值