1. //student.java
  2.  
  3. package com.sran.www;
  4.  
  5. import java.util.Arrays;
  6. import java.util.Scanner;
  7.  
  8. public class Student implements Comparable<Student>{
  9. int num;
  10. String name;
  11. int age;
  12. double[]s;
  13. double sum; //存储学生的总分
  14.  
  15. public Student()
  16. {
  17. s=new double[3];
  18. }
  19.  
  20. public static boolean insert()
  21. {
  22. Scanner sc=new Scanner(System.in);
  23. String str=null;
  24. boolean be=true;
  25.  
  26. do
  27. {
  28. Student stud=new Student();
  29. System.out.println("开始录入学生的相关信息.....");
  30. System.out.print("学号:");
  31. stud.num=sc.nextInt();
  32. System.out.print("姓名:");
  33. stud.name=sc.next();
  34. System.out.print("年龄:");
  35. stud.age=sc.nextInt();
  36.  
  37. System.out.println("依次输入三门课的成绩:");
  38. System.out.print("语文:");
  39. stud.s[0]=sc.nextDouble();
  40. System.out.print("数学:");
  41. stud.s[1]=sc.nextDouble();
  42. System.out.print("英语:");
  43. stud.s[2]=sc.nextDouble();
  44.  
  45. stud.sum=stud.calculate_sum();
  46.  
  47. StudentTest.set.add(stud);
  48.  
  49. System.out.println("如果继续录入,则输入%,否则输入 #");
  50. System.out.print("请输入:");
  51. str=sc.next();
  52.  
  53. if(!(str.equals("%")||str.equals("#")))
  54. {
  55. be=false;
  56. System.out.println("你输入有误,已强制结束录入操作");
  57. }
  58.  
  59. }while(str.equals("%") && be);
  60.  
  61. return be;
  62. }
  63.  
  64. public static boolean delete()
  65. {
  66. String str=null;
  67. boolean be=true;
  68. System.out.println("开始删除学生的相关信息.....");
  69. do
  70. {
  71. System.out.print("请输入要删除的学生的学号:");
  72. Scanner sc=new Scanner(System.in);
  73. int s=sc.nextInt();
  74.  
  75. boolean flag=false; //设一标志位
  76.  
  77. for(Student stud:StudentTest.set)
  78. {
  79. if(s==stud.num)
  80. {
  81. StudentTest.set.remove(stud);
  82. flag=true;
  83. System.out.println("已删除该学生的信息");
  84. break;
  85. }
  86.  
  87. }
  88.  
  89. if(flag==false)
  90. {
  91. System.out.println("你要删除的学生的学号不存在");
  92. }
  93.  
  94. System.out.println("如果继续删除,则输入 %,否则输入#");
  95. System.out.print("请输入:");
  96. str=sc.next();
  97.  
  98. if(!(str.equals("%")||str.equals("#")))
  99. {
  100. be=false;
  101. System.out.println("你输入有误,已强制结束删除操作");
  102. }
  103.  
  104. }while(str.equals("%") && be);
  105.  
  106. return be;
  107. }
  108.  
  109. public static boolean seek()
  110. {
  111. String str=null;
  112. boolean be=true;
  113. System.out.println("开始查找学生的相关信息.....");
  114. do
  115. {
  116. System.out.print("请输入要查找的学生的学号:");
  117. Scanner sc=new Scanner(System.in);
  118. int s=sc.nextInt();
  119.  
  120. boolean flag=false;
  121.  
  122. for(Student stud:StudentTest.set)
  123. {
  124. if(s==stud.num)
  125. {
  126. flag=true; //修改标志位
  127. System.out.println("你要查找的学生的信息:");
  128.  
  129. System.out.println("学号:"+stud.num);
  130. System.out.println("姓名:"+stud.name);
  131. System.out.println("年龄:"+stud.age);
  132. System.out.println("语文成绩:"+stud.s[0]);
  133. System.out.println("数学成绩:"+stud.s[1]);
  134. System.out.println("英语成绩:"+stud.s[2]);
  135.  
  136. break;
  137. }
  138. }
  139.  
  140. if(flag==false)
  141. {
  142. System.out.println("你要查找的学生的学号不存在");
  143. }
  144.  
  145. System.out.println("如果继续查找,则输入 %,否则输入#");
  146. System.out.print("请输入:");
  147. str=sc.next();
  148.  
  149. if(!(str.equals("%")||str.equals("#")))
  150. {
  151. be=false;
  152. System.out.println("你输入的有误,已强制结束查询操作");
  153. }
  154.  
  155. }while(str.equals("%") && be);
  156.  
  157. return be;
  158. }
  159.  
  160. public double calculate_sum()
  161. {
  162. sum=s[0]+s[1]+s[2];
  163. return sum;
  164. }
  165.  
  166. @Override
  167. public int compareTo(Student stud) {
  168. this.sum=this.calculate_sum();
  169. stud.sum=stud.calculate_sum();
  170.  
  171. if(this.sum>stud.sum) return -1;
  172. else if(this.sum<stud.sum) return 1;
  173. else
  174. {
  175. if(this.name.compareTo(stud.name)>0) return -1;
  176. else if(this.name.compareTo(stud.name)<0) return 1;
  177. else
  178. return 0;
  179. }
  180. }
  181.  
  182. public String toString()
  183. {
  184. System.out.println("学号"+"\t\t"+"姓名"+"\t\t"+"年龄"+"\t\t"+"语文"+"\t\t"+"数学"+"\t\t"+"英语"+"\t\t"+"总分");
  185. return(num+"\t\t"+name+"\t\t"+age+"\t\t"+s[0]+"\t\t"+s[1]+"\t\t"+s[2]+"\t\t"+sum);
  186.  
  187. }
  188.  
  189. public static boolean update()
  190. {
  191. String str=null;
  192. boolean bot=true;
  193.  
  194. System.out.println("开始更新学生信息.....");
  195. do
  196. {
  197. System.out.print("请输入要更新的学生的学号:");
  198. Scanner sc=new Scanner(System.in);
  199. int s=sc.nextInt();
  200. boolean be=false;
  201. boolean br=false;
  202.  
  203. for(Student stud:StudentTest.set)
  204. {
  205. if(stud.num==s)
  206. {
  207. be=true; //修改标志位
  208. System.out.println("请输入要更新的哪一项: 其中1代表学号,2代表姓名,3代表年龄,4代表语文成绩,5代表数学成绩,6代表英语成绩");
  209. System.out.print("请输入:");
  210. int n=sc.nextInt();
  211.  
  212. switch(n)
  213. {
  214. case 1:
  215. {
  216. System.out.print("请输入修改后的学号:");
  217. stud.num=sc.nextInt();
  218. System.out.println("修改成功");
  219. break;
  220. }
  221. case 2:
  222. {
  223. System.out.print("请输入修改后的姓名:");
  224. stud.name=sc.next();
  225. System.out.println("修改成功");
  226. break;
  227. }
  228. case 3:
  229. {
  230. System.out.print("请输入修改后的年龄:");
  231. stud.age=sc.nextInt();
  232. System.out.println("修改成功");
  233. break;
  234. }
  235. case 4:
  236. {
  237. System.out.print("请输入修改后的语文成绩:");
  238. stud.s[0]=sc.nextDouble();
  239. System.out.println("修改成功");
  240.  
  241. stud.sum=stud.calculate_sum(); //重新更新总分
  242. br=true;
  243.  
  244. break;
  245. }
  246. case 5:
  247. {
  248. System.out.print("请输入修改后的数学成绩:");
  249. stud.s[1]=sc.nextDouble();
  250. System.out.println("修改成功");
  251.  
  252. stud.sum=stud.calculate_sum(); //重新更新总分
  253. br=true;
  254.  
  255. break;
  256. }
  257. case 6:
  258. {
  259. System.out.print("请输入修改后的英语成绩:");
  260. stud.s[2]=sc.nextDouble();
  261. System.out.println("修改成功");
  262.  
  263. stud.sum=stud.calculate_sum(); //重新更新总分
  264. br=true;
  265.  
  266. break;
  267. }
  268.  
  269. }
  270.  
  271. }
  272. }
  273.  
  274. if(br==true)
  275. {
  276. Object[]obj=StudentTest.set.toArray();
  277. Arrays.sort(obj);
  278. StudentTest.set.clear();
  279.  
  280. for(int i=0;i<obj.length;i++)
  281. {
  282. Student st=(Student)obj[i];
  283. StudentTest.set.add(st);
  284. }
  285. }
  286.  
  287. if(be==false)
  288. {
  289. System.out.println("你要修改的学生的学号不存在");
  290. }
  291.  
  292. System.out.println("如果继续修改,则输入 %,否则输入#");
  293. System.out.print("请输入:");
  294. str=sc.next();
  295.  
  296. if(!(str.equals("%")||str.equals("#")))
  297. {
  298. bot=false;
  299. System.out.println("你输入有误,已强制结束更新操作");
  300. }
  301.  
  302. }while(str.equals("%") && bot);
  303.  
  304. return bot;
  305. }
  306.  
  307. }
  1. //StudentTest
  2.  
  3. package com.sran.www;
  4.  
  5. import java.util.Scanner;
  6. import java.util.Set;
  7. import java.util.TreeSet;
  8.  
  9. public class StudentTest {
  10. static Set<Student>set=null; //定义集合,存储学生信息
  11.  
  12. public void fun()
  13. {
  14. int i;
  15. boolean b,bt;
  16. set=new TreeSet<Student>();
  17. do{
  18. int flag=0;
  19. System.out.println("请输入1,2,3,4,5 1代表录入,2代表删除,3代表查找,4代表显示学生总成绩排名,5代表更新某个学生数据");
  20. System.out.print("请输入:");
  21. Scanner sc=new Scanner(System.in);
  22. int n=sc.nextInt();
  23.  
  24. switch(n)
  25. {
  26. case 1:
  27. {
  28. b=Student.insert();
  29. if(b==true)
  30. {
  31. System.out.println("正常结束录入操作.....");
  32. }
  33. flag=1;
  34. break;
  35. }
  36. case 2:
  37. {
  38. b=Student.delete();
  39. if(b==true)
  40. {
  41. System.out.println("正常结束删除操作.....");
  42. }
  43. flag=1;
  44. break;
  45. }
  46. case 3:
  47. {
  48. b=Student.seek();
  49. if(b==true)
  50. {
  51. System.out.println("正常结束查询操作.....");
  52. }
  53. flag=1;
  54. break;
  55. }
  56. case 4:
  57. {
  58. System.out.println("开始排名学生信息.....");
  59. System.out.println("学生按总成绩排名:");
  60. for(Student stud:set)
  61. {
  62. System.out.println(stud);
  63. System.out.println();
  64. }
  65.  
  66. System.out.println("正常结束排名操作.....");
  67. flag=1;
  68. break;
  69. }
  70.  
  71. case 5:
  72. {
  73. b=Student.update();
  74. if(b==true)
  75. {
  76. System.out.println("正常结束更新操作.....");
  77. }
  78. flag=1;
  79. break;
  80. }
  81.  
  82. }
  83. if(flag==0)
  84. {
  85. System.out.println("你输入有误,请重新输入");
  86. }
  87.  
  88. System.out.println();
  89.  
  90. do
  91. {
  92. bt=false;
  93. System.out.println("继续所有学生信息操作,请输入1 退出学生信息系统 ,请输入0");
  94. System.out.print("请输入:");
  95. i=sc.nextInt();
  96.  
  97. if(i!=1 && i!=0)
  98. {
  99. bt=true;
  100. System.out.println("输入有误,请重新输入");
  101. }
  102.  
  103. }while(bt==true);
  104.  
  105. }while(i==1);
  106.  
  107. System.out.println("你已退出学生信息系统.....");
  108.  
  109. }
  110.  
  111. public static void main(String[] args) {
  112. new StudentTest().fun();
  113. }
  114. }

java集合学生管理系统的更多相关文章

  1. java构建学生管理系统(一)

    用java搭建学生管理系统,重要还是对数据库的操作,诸如增删改查等. 1.基本的功能: 老师完成对学生信息的查看和修改,完成对班级的信息的概览. 学生可以看自己的成绩和对自己信息的修改. 学生和老师有 ...

  2. Java 简化版学生管理系统(IO版)

    Student management system   学生管理系统IO版 详细知识点可参考一下几篇文章 常用API Java 之ArrayList集合及应用 Java 之IO流及应用 Compreh ...

  3. Java案例——学生管理系统

    简单完整的学生管理系统 学生类 public class Student { private String id; private String age; private String name; p ...

  4. Java+Mysql+学生管理系统

    最近正在学java和数据库,想起以前写的学生管理系统,都是从网上下载,敷衍了事.闲来无事,也就自己写了一个,不过功能实现的不是很多. 开发语言:java: 开发环境:Mysql, java: 开发工具 ...

  5. Java 小型学生管理系统心得

    这个学生管理系统相对来说比较简单,主要就是复习下java怎么连接数据库,然后你怎么来实现这个功能,我简单的说下思路吧. 首先你要构思好这个界面,他包括增删查改这些基本功能,然后你去分析这些功能都能怎么 ...

  6. Java开发学生管理系统

    Java 学生管理系统 使用JDBC了链接本地MySQL 数据库,因此在没有建立好数据库的情况下没法成功运行 (数据库部分, Java界面部分, JDBC部分) 资源下载: http://downlo ...

  7. Java写学生管理系统

    package Homework08;/*调试了一上午,收获:学会了昨天的debug的使用吸取教训:Student stus[]=new Student[2]; for (int i=0;i<s ...

  8. Java基础进阶:学生管理系统数组方式分包源码实现,教师管理系统集合和数组两种方式源码实现,图书馆管理系统源码实现,现附重难点,代码实现源码,课堂笔记,课后扩展及答案

    1.案例驱动模式 1.1案例驱动模式概述 (理解) 通过我们已掌握的知识点,先实现一个案例,然后找出这个案例中,存在的一些问题,在通过新知识点解决问题 1.2案例驱动模式的好处 (理解) 解决重复代码 ...

  9. java基础: ArrayList集合应用, ArrayList增删改查详解,综合java基础实现学生管理系统,

    1.ArrayList 集合和数组的区别 : 共同点:都是存储数据的容器 不同点:数组的容量是固定的,集合的容量是可变的 1.1 -ArrayList的构造方法和添加方法 public ArrayLi ...

随机推荐

  1. RubyMine不能调试Rails项目的问题

    需要安装debase gem,而且在项目的GemFile中禁用byebug

  2. Sublime Text 解决中文乱码

    sublime text 是一款非常优秀的跨平台文本及源代码编辑器,本人非常喜欢,但是不支持GB2312和GBK编码在某些时候比较麻烦.可以通过向sublime text 中添加编码类型转换包(比如& ...

  3. 0025 Java学习笔记-面向对象-final修饰符、不可变类

    final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...

  4. IE8 ajax缓存问题

    娘希匹,又遇到缓存问题了. 下面的代码,在其他浏览器都是正常的,但是在IE8中出现诡异问题. $.ajax({ url:dataUrl, data:encodeURI(currentjsonform) ...

  5. 如何穿越到android底层

    对于android开发,实际上大部分工作都是在应用层,但为了体现"技术含量",以及"知其所以然",以便在遇到问题是不至于束手无策.因此有必要了解底层的工作机制. ...

  6. Ubuntu下Apache+SVN+submin实现WEB管理SVN

    为什么需要submin管理SVN? 原来在Ubuntu下,都是直接通过命令行创建SVN仓库并分配权限,但是这有一些问题: 每创建一个SVN仓库,都需要修改httpd.conf 每创建一个帐户,都需要手 ...

  7. js鼠标滚轮事件

    不多说,直接上代码. //非ie document.body.onmousewheel = function(event) { event = event || window.event; conso ...

  8. ubuntu下apache重启报Could not reliably determine the server’s fully......

    在Ubuntu上安装Apache,每次重启,都会出现以下错误提示: Could not reliably determine the server’s fully qualified domain n ...

  9. linux下遇见mysql启动报2002错误解决办法

    前言:目前问题解决了,但是仍不知道是什么原因造成的,在出现问题前安装uWSGI后,mysql就出现这个问题的,哪位大侠说说这是怎么回事? 正文:Linux 下 Mysql error 2002 错误解 ...

  10. 基于Fast Bilateral Filtering 算法的 High-Dynamic Range(HDR) 图像显示技术。

    一.引言 本人初次接触HDR方面的知识,有描述不正确的地方烦请见谅. 为方便文章描述,引用部分百度中的文章对HDR图像进行简单的描述. 高动态范围图像(High-Dynamic Range,简称HDR ...