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 ...
随机推荐
- TFS 10周年生日快乐 – TFS与布莱恩大叔的故事
今天看了一下Brian Harry大叔的博客,才发现2016年3月17日,是Team Foundation Server的10岁生日. Today marks the 10th anniversary ...
- 报文格式:xml 、定长报文、变长报文
目前接触到的报文格式有三种:xml .定长报文.变长报文 . 此处只做简单介绍,日后应该会深入学习到三者之间如何解析,再继续更新.——2016.9.23 XML XML 被设计用来传输和存储数据. H ...
- iPhone 丢失
http://www.appvv.com/zhuanti/iccid/ 第一步:iPhone丢失后,及时报警,在最短时间内补办SIM卡或把卡停掉. 第二步:输入查询网址:sn.appvv.com 输入 ...
- ORACLE表空间管理维护
1:表空间概念 在ORACLE数据库中,所有数据从逻辑结构上看都是存放在表空间当中,当然表空间下还有段.区.块等逻辑结构.从物理结构上看是放在数据文件中.一个表空间可由多个数据文件组成. 如下图所示, ...
- 使用js 设置组合快捷键
使用js 设置组合快捷键 使用js设置快捷键的本质就是获得你要设置的这个键的keyCode 的值,如果要加ctrl,alt,shift,那么就添加一个ctrlkey,altKey,shiftKey来判 ...
- Redmine 插件安装
将对应的插件都复制进redmine的plugins 安装对应所需要的GEMS bundle install --without development test rmagick 执行插件合并 bund ...
- android 学习中的一些问题记录 主要是概念问题
一些问题记录 应用程序 res 目录常见的目录有哪些,分别放置什么类型的资源? animator/ 和anim/ 放的都是定义动画的XML文件,两个地方的动画类型不同. color/ XML文件:定义 ...
- Mirantis OpenStack 8.0 版本大概性分析
作为 OpenStack 领域标杆性企业之一的 Mirantis 在2016年3月初发布了最新的 MOS 8.0 版本.本文试着基于公开资料进行一些归纳分析. 1. 版本概况 1.1 概况 社区版本: ...
- POJ 2225 / ZOJ 1438 / UVA 1438 Asteroids --三维凸包,求多面体重心
题意: 两个凸多面体,可以任意摆放,最多贴着,问他们重心的最短距离. 解法: 由于给出的是凸多面体,先构出两个三维凸包,再求其重心,求重心仿照求三角形重心的方式,然后再求两个多面体的重心到每个多面体的 ...
- NOIP2010关押罪犯[并查集|二分答案+二分图染色 | 种类并查集]
题目描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用“怨气值”(一个正整数值)来表示 ...