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 ...
随机推荐
- RubyMine不能调试Rails项目的问题
需要安装debase gem,而且在项目的GemFile中禁用byebug
- Sublime Text 解决中文乱码
sublime text 是一款非常优秀的跨平台文本及源代码编辑器,本人非常喜欢,但是不支持GB2312和GBK编码在某些时候比较麻烦.可以通过向sublime text 中添加编码类型转换包(比如& ...
- 0025 Java学习笔记-面向对象-final修饰符、不可变类
final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...
- IE8 ajax缓存问题
娘希匹,又遇到缓存问题了. 下面的代码,在其他浏览器都是正常的,但是在IE8中出现诡异问题. $.ajax({ url:dataUrl, data:encodeURI(currentjsonform) ...
- 如何穿越到android底层
对于android开发,实际上大部分工作都是在应用层,但为了体现"技术含量",以及"知其所以然",以便在遇到问题是不至于束手无策.因此有必要了解底层的工作机制. ...
- Ubuntu下Apache+SVN+submin实现WEB管理SVN
为什么需要submin管理SVN? 原来在Ubuntu下,都是直接通过命令行创建SVN仓库并分配权限,但是这有一些问题: 每创建一个SVN仓库,都需要修改httpd.conf 每创建一个帐户,都需要手 ...
- js鼠标滚轮事件
不多说,直接上代码. //非ie document.body.onmousewheel = function(event) { event = event || window.event; conso ...
- ubuntu下apache重启报Could not reliably determine the server’s fully......
在Ubuntu上安装Apache,每次重启,都会出现以下错误提示: Could not reliably determine the server’s fully qualified domain n ...
- linux下遇见mysql启动报2002错误解决办法
前言:目前问题解决了,但是仍不知道是什么原因造成的,在出现问题前安装uWSGI后,mysql就出现这个问题的,哪位大侠说说这是怎么回事? 正文:Linux 下 Mysql error 2002 错误解 ...
- 基于Fast Bilateral Filtering 算法的 High-Dynamic Range(HDR) 图像显示技术。
一.引言 本人初次接触HDR方面的知识,有描述不正确的地方烦请见谅. 为方便文章描述,引用部分百度中的文章对HDR图像进行简单的描述. 高动态范围图像(High-Dynamic Range,简称HDR ...