java 设计作业——学生类的基本练习

设计要求:

建立一个学生类,有姓名、学号、3门课成绩、总分等信息,能输入输出学生数据,并能对总分进行排序,打印名次。


思路:老师给的思路全部都封装在了一个类中,我写的则分成了两个类,可能一些方法没有写成函数封装,但是觉得习惯而已,有些一句话的程序没必要也放到函数里。


吐槽:上一次做的在电脑里存着忘记带了,今天上机又重新敲了一遍,真是浪费时间,最讨厌重复了,但是有没有办法。写完冒泡排序,感觉自己的水平在火星了,,醉了,java太水了。


mycode:

import java.io.*;
import java.util.*;
import java.math.*;class student
{String name,id;double js,cs,ds,sum;int rank;student(String ii,String nn,double jj,double cc,double dd){name=nn;id=ii;js=jj;cs=cc;ds=dd;sum=js+cs+ds;}student (){this("","",0,0,0);}public void sort(int n,student v[]){student t;for(int i=1;i<=n;i++){for(int j=i+1;j<=n;j++)if(v[i].sum<v[j].sum){t=v[i];v[i]=v[j];v[j]=t;}}int len=1;v[1].rank=1;for (int i=2;i<=n;i++){if (v[i].sum!=v[i-1].sum)  len++;v[i].rank=len;	}}void pt(){System.out.println("学生姓名: "+name);System.out.println("学生学号: "+id);System.out.println("学生排名: "+rank);System.out.println("学生总分: "+sum);}
}public class studenttable
{public static void main(String args[]){Scanner cin=new Scanner(System.in);System.out.println("请输入要输入的人数:");int n=cin.nextInt();student v[]=new student[n+1];student q=new student();for (int i=1;i<=n;i++){System.out.println("请依次输入学号,姓名,三科成绩:");String ii=cin.next();String nn=cin.next();double jj=cin.nextDouble();double cc=cin.nextDouble();double dd=cin.nextDouble();v[i]=new student(ii,nn,jj,cc,dd);}q.sort(n,v);for (int i=1;i<=n;i++){v[i].pt();System.out.println("");}}
}/*
4
001 a 80 80 75
002 b 90 90 70
003 c 90 83 92
004 d 85 70 80
*/


myteacher  code:

 class Student 
{private String no,name ;private double java,math,eng,total;protected int order; public Student()  {   }                   public Student(String s1, String s2,double j,double m,double e)      {no= s1;	name  = s2;java=j;math=m;eng=e;total=java+math+eng;}
public double getTotal()
{       return total;      }public void print(int n,Student stu[]){System.out.println("名次\t学号\t姓名\t数学\tJAVA\t英语\t总分");for(int i=0;i<n;i++)System.out.println(stu[i].order+"\t"+stu[i].no+"\t"+stu[i].name+"\t"+stu[i].java+"\t"+stu[i].math+"\t"+stu[i].eng+"\t"+stu[i].total+"\t");}public void sort(int n,Student stu[]){  Student t;for(int i=0;i<n;i++){for(int j=i+1;j<n;j++)if(stu[i].getTotal()<stu[j].getTotal()){t=stu[i];stu[i]=stu[j];stu[j]=t;    }} }
public void setOrder(int n,Student stu[]){  stu[0].order=1;for(int i=1;i<n;i++){       if(stu[i].getTotal()<stu[i-1].getTotal())stu[i].order=stu[i-1].order+1;else if (stu[i].getTotal()==stu[i-1].getTotal())stu[i].order=stu[i-1].order;}}public static void main(String args[]) 
{Student s[]=new Student[10];Student q=new Student();int n=3;s[0]=new Student("001","a",80,80,75);s[1]=new Student("002","b",90,90,70);s[2]=new Student("003","c",90,83,92);q.sort(3,s);q.setOrder(3,s);q.print(3,s);System.out.println();}}



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/381888.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux下使用c++操作mysql

关于mysql的基础知识可以参考 mysql基础 首先&#xff0c;需要确保已安装mysql-server&#xff0c;mysql-client&#xff0c;mysql-devel。 一、常用类型介绍 1. MYSQL 用于定义一个mysql对象&#xff0c;便于后续操作确定要操作的数据库是哪一个。 MYSQL mysql; //mysql标…

初来乍到!各位博客朋友多多支持!

本人真名&#xff1a;陈伟峰baiguli的中文是&#xff1a;白骨礼&#xff0c;意思是做人坦白、真诚、有决心、有毅力、以礼待人。自从有了互联网&#xff0c;个人名称就换来换去&#xff0c;曾经用过&#xff1a;闪电行动、闪电&#xff0c;但QQ号始终没变&#xff1a;23771505。…

java数字转换成字符串

各种数字类型转换成字符串型&#xff1a; String s String.valueOf( value); // 其中 value 为任意一种数字类型。 字符串型转换成各种数字类型&#xff1a; String s "169"; byte b Byte.parseByte( s ); short t Short.parseShort( s ); int i Integer.parseI…

天空的颜色和大气散射

天空的颜色采用"A Practical Analytic Model for Daylight"建造的模型计算。地形颜色的大气散射采用"Rendering Outdoor Lght Scattering in real Time"介绍的方法计算。A Practical Analytic Model for Daylight中的模型通过太阳的方位&#xff0c;Zenith…

hexo本地博客的转移

1. 复制配置文件 将原来的配置文件进行备份&#xff0c;只需要将文件夹 source、themes和配置文件_config.yml备份即可。 2. 安装Node.js sudo apt-get install nodejs sudo apt-get install npm 3. 安装hexo sudo npm install -g hexo 4. 新建文件夹&#xff0c;cd进入 …

K8S 外部访问配置、 Ingress、NodePort

将K8S部署应用提供给外部访问一般有三种方式&#xff1a; NodePort 暴露端口到节点&#xff0c;提供了集群外部访问的入口LoadBalancer 需要负载均衡器&#xff08;通常都需要云服务商提供&#xff0c;裸机可以安装 METALLB 测试&#xff09;Ingress 统一管理 svc的外部访问&am…

java 设计作业——简单计算器

设计要求&#xff1a; 设计一个计算器&#xff0c;用GUI画出来一个图形界面&#xff0c;有两个输入框&#xff0c;一个输出框&#xff0c;有4个加减乘除按钮&#xff0c;实现简单的加减乘除功能。 code&#xff1a; import java.awt.*; import java.awt.event.*; import java.…

有感于最近一个朋友买股票大亏

投资首先是要看退出机制通畅不通畅、其次才是看收益高不高转载于:https://www.cnblogs.com/darzui/archive/2005/12/30/308300.html

ubuntu18重装笔记

再次重装了系统&#xff0c;为方便以后再次重装&#xff0c;&#xff0c;&#xff0c;因此将主要步骤记录下来。 1. 更新源 sudo gedit /etc/apt/sources.list # 阿里源deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb http://mirro…

uva 437——The Tower of Babylon

题意&#xff1a;给定n个长方体&#xff0c;然后堆积最高的塔&#xff0c;要求上面的面积小于下面的面积。 思路&#xff1a;Dp&#xff0c;先把长方体的所有放的情况都构造出来放到数组里&#xff0c;对于当前节点&#xff0c;如果能够在前面找到面积比当前小&#xff0c;高度…

ASP.NET Web 服务、企业服务和 .NET Remoting 的性能

http://www.uml.org.cn/net/200601102.htm转载于:https://www.cnblogs.com/dynasty/archive/2006/01/11/315508.html

线程池的分析与实现

在需要频繁开线程时&#xff0c;创建和销毁线程会话费大量时间&#xff0c;为了提高效率&#xff0c;我们可以在任务开始前&#xff0c;先创建一定数量的线程。这样在接收到任务时&#xff0c;就可以直接使用线程池中处于wait状态的线程&#xff0c;在任务结束后线程回到wait状…

uva 1347——Tour

题意&#xff1a;给定n个点的坐标&#xff0c;设计一条路线&#xff0c;从左边的点出发&#xff0c;走到最右边的点然后返回&#xff0c;每个点除了起点和终点最多只能经历一次&#xff0c;求其中的最短路径。 思路&#xff1a;dp&#xff0c;可以考虑成2个人从起点出发&#x…

基于epoll+threadpool的webServer分析与实现

该webServer使用epollthreadpool实现&#xff0c;支持GET、POST方法&#xff0c;并添加CGI进行数据计算并返回网页信息&#xff0c;可以解析返回html、picture、mp3、js、css等文件&#xff0c;可以实现稳定的运行。 使用c编写。 源码请看我的Github。 流程简述 启动服务器&…

Flex2.0实现文件上传功能(服务器为ASP.NET)

简介&#xff1a;新的Flex2.0类库里提供了文件类&#xff0c;方便了上传/下载文件。下面的程序demo演示了Flex2.0生成flash来访问本地文件&#xff0c;在flash里上传用户选择的文件到服务器&#xff0c;flash客户端可以处理文件上传进度等多个事件&#xff0c;服务器端是C#写的…

UVA 116——Unidirectional TSP

题意&#xff1a;给定一个n*m的矩阵&#xff0c;从第一列任意位置向右&#xff0c;右下&#xff0c;右上走一格&#xff0c;可以循环&#xff0c;要求经过的数字的和最小。 思路&#xff1a;记忆化搜索。每次有三个状态&#xff0c;从这三个状态中选择出最优的一个&#xff0c;…

【高性能定时器】 时间轮

时间轮 简述 顾名思义&#xff0c;时间轮就像一个轮子&#xff0c;在转动的时候外界会指向轮子不同的区域&#xff0c;该区域就可以被使用。因此只要将不同时间的定时器按照一定的方法散列到时间轮的不同槽&#xff08;即时间轮划分的区域&#xff09;之中&#xff0c;就可以实…

知识管理的三种策略

知识管理的三种策略 面向流程的知识管理战略&#xff0d;实施篇&#xff08;上&#xff09;(AMT研究院 周瑛 编译) 转载于:https://www.cnblogs.com/yangfada/archive/2006/01/24/322381.html

java 考试复习整理——JAVA类和类成员的修饰符

今天整理了一下以前学的JAVA的类和类成员的修饰符&#xff0c;考试的时候可能会考到。一&#xff1a;访问修饰符&#xff1a;1.省略访问修饰符&#xff1a;具有默认的访问特性&#xff0c;即具有包访问特性&#xff0c;只能被同一个包中的类使用。2.public访问修饰符&#xff1…

【安利】程序猿作图神器 - Graphviz

还在为在linux下画二叉树等图苦恼吗&#xff0c;现在就安利一波linux程序猿的作图神器——Graphviz。&#xff08;本来在写其他东西&#xff0c;刚好要绘图&#xff0c;强行插入一篇blog&#xff09; Graphviz (Graph Visualization Software) 是一个由AT&T实验室启动的开源…