java 使用 集合 制作学生管理系统
以上是文件组织结构
下面是个.java的具体代码:
package com.collection.students.pojo; public class Student {
private String sno;
private String gender;
private String name;
private String clas; public Student() { }
public Student(String sno, String name, String gender, String clas) {
super();
this.sno = sno;
this.gender = gender;
this.name = name;
this.clas = clas;
} public String getSno() {
return sno;
}
public void setSno(String sno) {
this.sno = sno;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getClas() {
return clas;
}
public void setClas(String clas) {
this.clas = clas;
}
@Override
public String toString() {
return sno + "\t" + name + "\t" + gender
+ "\t" + clas;
} }
package com.collection.students.data; import java.util.HashSet; import com.collection.students.pojo.Student; public class StuDatas {
private HashSet<Student> set; public StuDatas() {
this.set = new HashSet<Student>();
} public HashSet<Student> getSet() {
return set;
} public void setSet(HashSet<Student> set) {
this.set = set;
} }
package com.collection.students.service; import java.util.Iterator; import com.collection.students.data.StuDatas;
import com.collection.students.pojo.Student; public class StuSer { private Student tempStu;
private StuDatas datas;
private Iterator<Student> iterator;
private boolean judge; public StuSer() {
this.datas = new StuDatas();
judge = false;
tempStu = null;
} public void addStu(Student student) {
iterator = datas.getSet().iterator();
System.out.println("添加前学生人数:"+datas.getSet().size());
datas.getSet().add(student);
System.out.println("添加成功");
System.out.println("添加后学生人数:"+datas.getSet().size());
System.out.println(iterator.hasNext());
} public void delStu(Student student) {
iterator = datas.getSet().iterator();
datas.getSet().remove(student);
System.out.println("删除成功");
} public void editStu(Student student) {
iterator = datas.getSet().iterator();
while (iterator.hasNext()) {
tempStu = iterator.next();
if (tempStu.getSno().equals(student.getSno())) {
tempStu.setGender(student.getGender());
tempStu.setClas(student.getClas());
tempStu.setName(student.getName());
judge = true;
break;
}
}
if (judge) {
System.out.println("修改成功");
judge = false;// 恢复原值
} else {
System.out.println("修改失败,未找到这样学号的学生");
}
} public Student searchStuBySno(String str) {
iterator = datas.getSet().iterator();
while (iterator.hasNext()) {
tempStu = iterator.next();
if (tempStu.getSno().equals(str)) {
System.out.println("查到该学号的同学");
System.out.println("该学生的信息如下:");
showStu(tempStu);
judge = true;
break;
}
}
if (judge) {
judge = false;// 恢复原值
return tempStu;
} else {
System.out.println("未找到这样学号的学生");
return null;
}
} public Student searchStuByName(String str) {
iterator = datas.getSet().iterator();
while (iterator.hasNext()) {
tempStu = iterator.next();
if (isNameAlike(tempStu.getName(), str)) {
showStu(tempStu);
judge = true;
break;
}
}
if (judge) {
judge = false;// 恢复原值
return tempStu;
} else {
System.out.println("未找到姓名与输入文字相似的学生");
return null;
}
} public void showStu(Student student) {
System.out.println(student.toString());
} public void showAllStu() {
iterator = datas.getSet().iterator();
if (!iterator.hasNext()) {
System.out.println("暂无学生,你可以选择添加学生");
return;
}
System.out.println("所有学生的信息如下:");
while (iterator.hasNext()) {
tempStu = iterator.next();
showStu(tempStu);
}
} public Student creatStu(String string) {
String[] tempString = string.split(",");
return tempStu = new Student(tempString[0], tempString[1],
tempString[2], tempString[3]);
} // 按学号判断是否已经存在该学生
public boolean isStuPresent(Student student) {
iterator = datas.getSet().iterator();
while (iterator.hasNext()) {
if (iterator.next().equals(student)) {
return true;
}
}
return false;
}
public boolean isNameAlike(String s1, String s2) {
for (int i = 0; i < s1.length(); i++) {
for (int j = 0; j < s2.length(); j++) {
if (s1.substring(i, i + 1).equals(s2.subSequence(j, j + 1))) {
return true;
}
}
}
return false;
}
}
package com.collection.students.view; import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner; import com.collection.students.data.StuDatas;
import com.collection.students.pojo.Student;
import com.collection.students.service.StuSer; public class StuMain {
public static void main(String[] args) {
StuSer stuSer = new StuSer();
Scanner scanner = new Scanner(System.in);
String choice;
String input;
Student student = null; while (true) { printMenu();
choice = scanner.nextLine(); if ("1".equals(choice)) {
System.out.println("请输入学生的姓名,性别,班级(逗号隔开)");
String temp = "," + scanner.nextLine();
input = generateSno() + temp;
if ((student = stuSer.creatStu(input)) != null) {
while (stuSer.isStuPresent(student)) {
//如果学号存在则重新产生学号
input = generateSno() + temp;
student = stuSer.creatStu(input);
}
stuSer.addStu(student);
System.out.println("该生的学号为:" + student.getSno());
} else {
System.out.println("输入的信息不合法");
}
}
if ("2".equals(choice)) {
System.out.println("请输入学生的学号");
input = scanner.nextLine();
student = stuSer.searchStuBySno(input);
if (student==null) {
System.out.println("删除失败");
}else{
stuSer.delStu(student);
}
}
if ("3".equals(choice)) {
stuSer.showAllStu();
}
if ("4".equals(choice)) {
System.out.println("输入要修改的学生的学号及新的学生姓名,性别,班级(逗号隔开)");
input = scanner.nextLine();
student = stuSer.creatStu(input);
if (student != null) {
stuSer.editStu(student);
}else {
System.out.println("输入不合法");
}
}
if ("5".equals(choice)) {
System.out.println("请输入姓名");
input = scanner.nextLine();
stuSer.searchStuByName(input);
}
if ("6".equals(choice)) {
System.out.println("已退出系统");
System.exit(0);
}
}
} public static void printMenu() {
System.out
.println("请选择操作序号:\n1.添加学生\n2.删除学生\n3.显示所有学生\n4.更改学生信息\n5.姓名模糊查找\n6.退出\n"); } public static String generateSno() {
Date date = new Date();
String str;
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd"); String ran = "" + (int) (Math.random() * 10000);
StringBuffer sbf = new StringBuffer("");
for (int i = 0; i < 4 - ran.length(); i++) {
sbf.append('0');
}
str = dateFormat.format(date);
return str = str + sbf.toString() + ran;
}
}
执行结果:
请选择操作序号:
1.添加学生
2.删除学生
3.显示所有学生
4.更改学生信息
5.姓名模糊查找
6.退出
3
暂无学生,你可以选择添加学生
请选择操作序号:
1.添加学生
2.删除学生
3.显示所有学生
4.更改学生信息
5.姓名模糊查找
6.退出
1
请输入学生的姓名,性别,班级(逗号隔开)
sdfa,sdfa,asdf
添加前学生人数:0
添加成功
添加后学生人数:1
false
该生的学号为:201507319147
请选择操作序号:
1.添加学生
2.删除学生
3.显示所有学生
4.更改学生信息
5.姓名模糊查找
6.退出
3
所有学生的信息如下:
201507319147 sdfa sdfa asdf
请选择操作序号:
1.添加学生
2.删除学生
3.显示所有学生
4.更改学生信息
5.姓名模糊查找
6.退出
1
请输入学生的姓名,性别,班级(逗号隔开)
sdfa,dfa,dadf
添加前学生人数:1
添加成功
添加后学生人数:2
true
该生的学号为:201507315547
请选择操作序号:
1.添加学生
2.删除学生
3.显示所有学生
4.更改学生信息
5.姓名模糊查找
6.退出
3
所有学生的信息如下:
201507315547 sdfa dfa dadf
201507319147 sdfa sdfa asdf
请选择操作序号:
1.添加学生
2.删除学生
3.显示所有学生
4.更改学生信息
5.姓名模糊查找
6.退出
1
请输入学生的姓名,性别,班级(逗号隔开)
kfjdisf,sdf,as
添加前学生人数:2
添加成功
添加后学生人数:3
true
该生的学号为:201507311253
请选择操作序号:
1.添加学生
2.删除学生
3.显示所有学生
4.更改学生信息
5.姓名模糊查找
6.退出
3
所有学生的信息如下:
201507311253 kfjdisf sdf as
201507315547 sdfa dfa dadf
201507319147 sdfa sdfa asdf
请选择操作序号:
1.添加学生
2.删除学生
3.显示所有学生
4.更改学生信息
5.姓名模糊查找
6.退出
4
输入要修改的学生的学号及新的学生姓名,性别,班级(逗号隔开)
201507315547,sfs,男,iii
修改成功
请选择操作序号:
1.添加学生
2.删除学生
3.显示所有学生
4.更改学生信息
5.姓名模糊查找
6.退出
3
所有学生的信息如下:
201507311253 kfjdisf sdf as
201507315547 sfs 男 iii
201507319147 sdfa sdfa asdf
请选择操作序号:
1.添加学生
2.删除学生
3.显示所有学生
4.更改学生信息
5.姓名模糊查找
6.退出
2
请输入学生的学号
201507315547
查到该学号的同学
该学生的信息如下:
201507315547 sfs 男 iii
删除成功
请选择操作序号:
1.添加学生
2.删除学生
3.显示所有学生
4.更改学生信息
5.姓名模糊查找
6.退出
3
所有学生的信息如下:
201507311253 kfjdisf sdf as
201507319147 sdfa sdfa asdf
请选择操作序号:
1.添加学生
2.删除学生
3.显示所有学生
4.更改学生信息
5.姓名模糊查找
6.退出
6
已退出系统
java 使用 集合 制作学生管理系统的更多相关文章
- Java自学笔记之学生管理系统
实现:学生管理系统,实现学生信息的添加.修改.查询和删除功能 涉及:集合的基础知识(集合遍历,值得获取与替换,set/get方法) 代码如下: Student文件 1 package Demo_120 ...
- Java写一个简单学生管理系统
其实作为一名Java的程序猿,无论你是初学也好,大神也罢,学生管理系统一直都是一个非常好的例子,初学者主要是用数组.List等等来写出一个简易的学生管理系统,二.牛逼一点的大神则用数据库+swing来 ...
- 基于Java SE集合的图书管理系统
图书管理系统一.需求说明1.功能:登录,注册,忘记密码,管理员管理,图书管理.2.管理员管理:管理员的增删改查.3.图书管理:图书的增删改查.4.管理员属性包括:id,姓名,性别,年龄,家庭住址,手机 ...
- 基于Java SE集合的充值管理系统
1.功能分析 ①管理员管理 注册.登录.退出 ②注册一卡通:记录相应信息. ③充值管理:对一卡通账户进行充值,查询,修改. 2.技术要求 ①Java 基础知识 + 集合类(模拟数据库). ②数据用对象 ...
- Java 简化版学生管理系统(IO版)
Student management system 学生管理系统IO版 详细知识点可参考一下几篇文章 常用API Java 之ArrayList集合及应用 Java 之IO流及应用 Compreh ...
- Java基础进阶:学生管理系统数组方式分包源码实现,教师管理系统集合和数组两种方式源码实现,图书馆管理系统源码实现,现附重难点,代码实现源码,课堂笔记,课后扩展及答案
1.案例驱动模式 1.1案例驱动模式概述 (理解) 通过我们已掌握的知识点,先实现一个案例,然后找出这个案例中,存在的一些问题,在通过新知识点解决问题 1.2案例驱动模式的好处 (理解) 解决重复代码 ...
- java基础: ArrayList集合应用, ArrayList增删改查详解,综合java基础实现学生管理系统,
1.ArrayList 集合和数组的区别 : 共同点:都是存储数据的容器 不同点:数组的容量是固定的,集合的容量是可变的 1.1 -ArrayList的构造方法和添加方法 public ArrayLi ...
- java集合学生管理系统
//student.java package com.sran.www; import java.util.Arrays; import java.util.Scanner; public class ...
- 第83节:Java中的学生管理系统分页功能
第83节:Java中的学生管理系统分页功能 分页功能一般可以做成两种,一种是物理分页,另一种是逻辑分页.这两种功能是有各自的特点的,物理分页是查询的时候,对数据库进行访问,只是查一页数据就进行返回,其 ...
随机推荐
- bzoj 3438: 小M的作物
Description 背景 小M还是个特么喜欢玩MC的孩纸... 描述 小M在MC里开辟了两块巨大的耕地A和B(你可以认为容量是无穷),现在,小P有n中作物的种子,每种作物的种子有1个(就是可以种一 ...
- 【完整靠谱版】结合公司项目,仔细总结自己使用百度编辑器实现FTP上传的完整过程
说在前面 工作中会遇到很多需要使用富文本编辑器的地方,比如我现在发布这篇文章离不开这个神器,而且现在网上编辑器太多了.记得之前,由于工作需要自己封装过一个编辑器的公共插件,是用ckeditor改版的, ...
- Secure Digital
https://en.wikipedia.org/wiki/Secure_Digital#Technical_details Secure Digital (SD) is a non-volatile ...
- Spring mvc example
Spring mvc example 1.下载spring源包 spring地址:http://www.springsource.org/download 我下的是spring-framework-3 ...
- iOS索引列开发详解
做苹果开发的朋友在地区列表可能会遇到在页面的右侧有一列类似与导航的索引列,这次有机会遇到了,细细研究了一下,原来没有想象中的困难,只需要简单的几步就能做出自己的索引列.本来想和搜索条在一块讲解,后来考 ...
- GridView实现方块布局
效果如下: 先创建一个BaseViewHolder package com.example.griddemo; import android.util.SparseArray; import andr ...
- 浅析“依赖注入(DI)/控制反转(IOC)”的实现思路
开始学习Spring的时候,对依赖注入(DI)——也叫控制反转(IOC)—— 的理解不是很深刻.随着学习的深入,也逐渐有了自己的认识,在此记录,也希望能帮助其他入门同学更深入地理解Spring.本文不 ...
- 6.Linux的文件权限与目录配置
Linux文件属性:(- rwx r-x r-- 1 root root 2800 feb 1 11:55 test.txt 顺序按着空格排序,除了时间) 第一组字符代表这个文件是目录.文件或链接文件 ...
- iOS开发中的权限
权限分类 联网权限 相册权限 相机.麦克风权限 定位权限 推送权限 通讯录权限 日历.备忘录权限 联网权限 引入头文件 @import CoreTelephony; 应用启动后,检测应用中是否有联网权 ...
- php类和对象
<?php 1. 类的简单格式: [修饰符] class 类名{ [成员属性] //成员属性,也叫成员变量 [成员方法] //成员方法:也叫成员函数 } 类的完整格式: [修饰符] class ...