java集合学生管理系统
//student.java package com.sran.www; import java.util.Arrays;
import java.util.Scanner; public class Student implements Comparable<Student>{
int num;
String name;
int age;
double[]s;
double sum; //存储学生的总分 public Student()
{
s=new double[3];
} public static boolean insert()
{
Scanner sc=new Scanner(System.in);
String str=null;
boolean be=true; do
{
Student stud=new Student();
System.out.println("开始录入学生的相关信息.....");
System.out.print("学号:");
stud.num=sc.nextInt();
System.out.print("姓名:");
stud.name=sc.next();
System.out.print("年龄:");
stud.age=sc.nextInt(); System.out.println("依次输入三门课的成绩:");
System.out.print("语文:");
stud.s[0]=sc.nextDouble();
System.out.print("数学:");
stud.s[1]=sc.nextDouble();
System.out.print("英语:");
stud.s[2]=sc.nextDouble(); stud.sum=stud.calculate_sum(); StudentTest.set.add(stud); System.out.println("如果继续录入,则输入%,否则输入 #");
System.out.print("请输入:");
str=sc.next(); if(!(str.equals("%")||str.equals("#")))
{
be=false;
System.out.println("你输入有误,已强制结束录入操作");
} }while(str.equals("%") && be); return be;
} public static boolean delete()
{
String str=null;
boolean be=true;
System.out.println("开始删除学生的相关信息.....");
do
{
System.out.print("请输入要删除的学生的学号:");
Scanner sc=new Scanner(System.in);
int s=sc.nextInt(); boolean flag=false; //设一标志位 for(Student stud:StudentTest.set)
{
if(s==stud.num)
{
StudentTest.set.remove(stud);
flag=true;
System.out.println("已删除该学生的信息");
break;
} } if(flag==false)
{
System.out.println("你要删除的学生的学号不存在");
} System.out.println("如果继续删除,则输入 %,否则输入#");
System.out.print("请输入:");
str=sc.next(); if(!(str.equals("%")||str.equals("#")))
{
be=false;
System.out.println("你输入有误,已强制结束删除操作");
} }while(str.equals("%") && be); return be;
} public static boolean seek()
{
String str=null;
boolean be=true;
System.out.println("开始查找学生的相关信息.....");
do
{
System.out.print("请输入要查找的学生的学号:");
Scanner sc=new Scanner(System.in);
int s=sc.nextInt(); boolean flag=false; for(Student stud:StudentTest.set)
{
if(s==stud.num)
{
flag=true; //修改标志位
System.out.println("你要查找的学生的信息:"); System.out.println("学号:"+stud.num);
System.out.println("姓名:"+stud.name);
System.out.println("年龄:"+stud.age);
System.out.println("语文成绩:"+stud.s[0]);
System.out.println("数学成绩:"+stud.s[1]);
System.out.println("英语成绩:"+stud.s[2]); break;
}
} if(flag==false)
{
System.out.println("你要查找的学生的学号不存在");
} System.out.println("如果继续查找,则输入 %,否则输入#");
System.out.print("请输入:");
str=sc.next(); if(!(str.equals("%")||str.equals("#")))
{
be=false;
System.out.println("你输入的有误,已强制结束查询操作");
} }while(str.equals("%") && be); return be;
} public double calculate_sum()
{
sum=s[0]+s[1]+s[2];
return sum;
} @Override
public int compareTo(Student stud) {
this.sum=this.calculate_sum();
stud.sum=stud.calculate_sum(); if(this.sum>stud.sum) return -1;
else if(this.sum<stud.sum) return 1;
else
{
if(this.name.compareTo(stud.name)>0) return -1;
else if(this.name.compareTo(stud.name)<0) return 1;
else
return 0;
}
} public String toString()
{
System.out.println("学号"+"\t\t"+"姓名"+"\t\t"+"年龄"+"\t\t"+"语文"+"\t\t"+"数学"+"\t\t"+"英语"+"\t\t"+"总分");
return(num+"\t\t"+name+"\t\t"+age+"\t\t"+s[0]+"\t\t"+s[1]+"\t\t"+s[2]+"\t\t"+sum); } public static boolean update()
{
String str=null;
boolean bot=true; System.out.println("开始更新学生信息.....");
do
{
System.out.print("请输入要更新的学生的学号:");
Scanner sc=new Scanner(System.in);
int s=sc.nextInt();
boolean be=false;
boolean br=false; for(Student stud:StudentTest.set)
{
if(stud.num==s)
{
be=true; //修改标志位
System.out.println("请输入要更新的哪一项: 其中1代表学号,2代表姓名,3代表年龄,4代表语文成绩,5代表数学成绩,6代表英语成绩");
System.out.print("请输入:");
int n=sc.nextInt(); switch(n)
{
case 1:
{
System.out.print("请输入修改后的学号:");
stud.num=sc.nextInt();
System.out.println("修改成功");
break;
}
case 2:
{
System.out.print("请输入修改后的姓名:");
stud.name=sc.next();
System.out.println("修改成功");
break;
}
case 3:
{
System.out.print("请输入修改后的年龄:");
stud.age=sc.nextInt();
System.out.println("修改成功");
break;
}
case 4:
{
System.out.print("请输入修改后的语文成绩:");
stud.s[0]=sc.nextDouble();
System.out.println("修改成功"); stud.sum=stud.calculate_sum(); //重新更新总分
br=true; break;
}
case 5:
{
System.out.print("请输入修改后的数学成绩:");
stud.s[1]=sc.nextDouble();
System.out.println("修改成功"); stud.sum=stud.calculate_sum(); //重新更新总分
br=true; break;
}
case 6:
{
System.out.print("请输入修改后的英语成绩:");
stud.s[2]=sc.nextDouble();
System.out.println("修改成功"); stud.sum=stud.calculate_sum(); //重新更新总分
br=true; break;
} } }
} if(br==true)
{
Object[]obj=StudentTest.set.toArray();
Arrays.sort(obj);
StudentTest.set.clear(); for(int i=0;i<obj.length;i++)
{
Student st=(Student)obj[i];
StudentTest.set.add(st);
}
} if(be==false)
{
System.out.println("你要修改的学生的学号不存在");
} System.out.println("如果继续修改,则输入 %,否则输入#");
System.out.print("请输入:");
str=sc.next(); if(!(str.equals("%")||str.equals("#")))
{
bot=false;
System.out.println("你输入有误,已强制结束更新操作");
} }while(str.equals("%") && bot); return bot;
} }
//StudentTest package com.sran.www; import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet; public class StudentTest {
static Set<Student>set=null; //定义集合,存储学生信息 public void fun()
{
int i;
boolean b,bt;
set=new TreeSet<Student>();
do{
int flag=0;
System.out.println("请输入1,2,3,4,5 1代表录入,2代表删除,3代表查找,4代表显示学生总成绩排名,5代表更新某个学生数据");
System.out.print("请输入:");
Scanner sc=new Scanner(System.in);
int n=sc.nextInt(); switch(n)
{
case 1:
{
b=Student.insert();
if(b==true)
{
System.out.println("正常结束录入操作.....");
}
flag=1;
break;
}
case 2:
{
b=Student.delete();
if(b==true)
{
System.out.println("正常结束删除操作.....");
}
flag=1;
break;
}
case 3:
{
b=Student.seek();
if(b==true)
{
System.out.println("正常结束查询操作.....");
}
flag=1;
break;
}
case 4:
{
System.out.println("开始排名学生信息.....");
System.out.println("学生按总成绩排名:");
for(Student stud:set)
{
System.out.println(stud);
System.out.println();
} System.out.println("正常结束排名操作.....");
flag=1;
break;
} case 5:
{
b=Student.update();
if(b==true)
{
System.out.println("正常结束更新操作.....");
}
flag=1;
break;
} }
if(flag==0)
{
System.out.println("你输入有误,请重新输入");
} System.out.println(); do
{
bt=false;
System.out.println("继续所有学生信息操作,请输入1 退出学生信息系统 ,请输入0");
System.out.print("请输入:");
i=sc.nextInt(); if(i!=1 && i!=0)
{
bt=true;
System.out.println("输入有误,请重新输入");
} }while(bt==true); }while(i==1); System.out.println("你已退出学生信息系统....."); } public static void main(String[] args) {
new StudentTest().fun();
}
}
java集合学生管理系统的更多相关文章
- java构建学生管理系统(一)
用java搭建学生管理系统,重要还是对数据库的操作,诸如增删改查等. 1.基本的功能: 老师完成对学生信息的查看和修改,完成对班级的信息的概览. 学生可以看自己的成绩和对自己信息的修改. 学生和老师有 ...
- Java 简化版学生管理系统(IO版)
Student management system 学生管理系统IO版 详细知识点可参考一下几篇文章 常用API Java 之ArrayList集合及应用 Java 之IO流及应用 Compreh ...
- Java案例——学生管理系统
简单完整的学生管理系统 学生类 public class Student { private String id; private String age; private String name; p ...
- Java+Mysql+学生管理系统
最近正在学java和数据库,想起以前写的学生管理系统,都是从网上下载,敷衍了事.闲来无事,也就自己写了一个,不过功能实现的不是很多. 开发语言:java: 开发环境:Mysql, java: 开发工具 ...
- Java 小型学生管理系统心得
这个学生管理系统相对来说比较简单,主要就是复习下java怎么连接数据库,然后你怎么来实现这个功能,我简单的说下思路吧. 首先你要构思好这个界面,他包括增删查改这些基本功能,然后你去分析这些功能都能怎么 ...
- Java开发学生管理系统
Java 学生管理系统 使用JDBC了链接本地MySQL 数据库,因此在没有建立好数据库的情况下没法成功运行 (数据库部分, Java界面部分, JDBC部分) 资源下载: http://downlo ...
- Java写学生管理系统
package Homework08;/*调试了一上午,收获:学会了昨天的debug的使用吸取教训:Student stus[]=new Student[2]; for (int i=0;i<s ...
- Java基础进阶:学生管理系统数组方式分包源码实现,教师管理系统集合和数组两种方式源码实现,图书馆管理系统源码实现,现附重难点,代码实现源码,课堂笔记,课后扩展及答案
1.案例驱动模式 1.1案例驱动模式概述 (理解) 通过我们已掌握的知识点,先实现一个案例,然后找出这个案例中,存在的一些问题,在通过新知识点解决问题 1.2案例驱动模式的好处 (理解) 解决重复代码 ...
- java基础: ArrayList集合应用, ArrayList增删改查详解,综合java基础实现学生管理系统,
1.ArrayList 集合和数组的区别 : 共同点:都是存储数据的容器 不同点:数组的容量是固定的,集合的容量是可变的 1.1 -ArrayList的构造方法和添加方法 public ArrayLi ...
随机推荐
- 把你的Project发布到GitHub上
在上一篇文章中说明了如何使用远程仓库,接下来,就使用常用远程仓库GitHub来管理你的project. 1)在GitHub上创建仓库 要使用GitHub,肯定要注册GitHub帐户,然后建立一个仓库. ...
- 聊下git merge --squash
你经常会面临着将dev分支或者很多零散的分支merge到一个公共release分支里. 但是有一种情况是需要你处理的,就是在你的dev的分支里有很多commit记录.而这些commit是无需在rele ...
- Hive官方手册翻译(Getting Started)
翻译Hive官方文档系列,文中括号中包含 注: 字样的,为我自行标注的,水平有限,翻译不是完美无缺的.如有疑问,请参照Hive官方文档对照查看. 内容列表 Cloudera制作的Hive介绍视频 ...
- stm32 按键
//°´¼ü³õʼ»¯º¯Êý void KEY_Init(void) //IO³õʼ»¯ { GPIO_InitTypeDef GPIO_InitStructure; //³õʼ»¯KEY0- ...
- 附加数据库后无法创建发布,error 2812 解决
日前,由于业务需要,我要把一个数据库直接迁移到新的实例上 用的方法比较古老,就是直接停旧服务器,将数据文件复制到新服务器上,附加数据库 当然这个附加没有什么可说的了,但是在附加后需要将原来库上的发布重 ...
- o(1)复杂度之双边滤波算法的原理、流程、实现及效果。
一.引言 双边滤波在图像处理领域中有着广泛的应用,比如去噪.去马赛克.光流估计等等,最近,比较流行的Non-Local算法也可以看成是双边滤波的一种扩展.自从Tomasi et al等人提出该 ...
- [No000041]如果你被ruby惯坏了,不如试试python3-在Windows下安装ipython
说明:我比较喜欢绿色软件,因此,下载的是python3为zip包.所以执行命令时请注意当前路径. 先安装pip (请去官网下载get-pip.py 地址: https://pip.pypa.io/en ...
- signalr推送消息
参考:Tutorial: Getting Started with SignalR 2 and MVC 5 环境:vs2013,webapi2,entity framework6.0 实现效果:当用户 ...
- 可能是史上最强大的js图表库——ECharts带你入门
PS:之前的那篇博客Highcharts——让你的网页上图表画的飞起 ,评论中,花儿笑弯了腰 和 StanZhai 两位仁兄让我试试 ECharts ,去主页看到<Why ECharts ?&g ...
- rpc框架之HA/负载均衡构架设计
thrift.avro.grpc之类的rpc框架默认都没有提供负载均衡的实现,生产环境中如果server只有一台,显然不靠谱,于是有了下面的设计,这其实是前一阵跟北京一个朋友在qq群里交流的结果,分享 ...