Java类集综合练习——信息管理(增、删、改、查)
一、实现功能——模拟学生选课功能
1.选择课程
2.修改所选课程
二、实现功能——模拟学生信息管理功能
1.添加学生信息
2.修改学生信息
二、主要代码(在同一个包里)
1.课程类
public class Course
{
private String id;
private String name;
public Course(){}
public Course(String id,String name)
{
this.name = name;
this.id = id;
}
public String getId()
{
return id;
}
public String getName()
{
return name;
}
}
2.学生类
import java.util.HashSet;
import java.util.Set; public class Student
{
private String name;
private String id;
public Set<Course> courses;//Set类型属性——课程信息
public Student(String name,String id)
{
this.name = name;
this.id = id;
this.courses = new HashSet<Course>();
}
public String getId()
{
return id;
}
public String getName()
{
return name;
}
}
3.增、删、改、查
//添加、查询、删除
import java.util.List;
import java.util.ArrayList;
import java.util.Arrays; public class ListTest
{
public List<Course> coursesToSelect;
public ListTest()
{
this.coursesToSelect = new ArrayList<Course>();//List的重要实现类ArrayList
}
//添加课程方法
public void testAdd()
{
Course c1 = new Course("2","数据结构");
coursesToSelect.add(c1);//加入队列
//System.out.println("课程添加成功!");
Course temp = (Course) coursesToSelect.get(0);//类型强转,取出第1个对象
Course c2 = new Course("1","C语言");//加入队列并指定位置
coursesToSelect.add(0,c2);//加入队列,排在第二位
Course temp2 = (Course) coursesToSelect.get(0);//类型强转,取出第2个对象
//依次添加多门课程,用数组存放
Course[] course = {new Course("3","离散数学"),new Course("4","操作系统"),new Course("5","高等数学"),new Course("6","大学英语")};
coursesToSelect.addAll(Arrays.asList(course));
Course temp3 = (Course) coursesToSelect.get(2);
Course temp4 = (Course) coursesToSelect.get(3);
Course temp5 = (Course) coursesToSelect.get(4);
Course temp6 = (Course) coursesToSelect.get(5);
}
//查询课程
public void testGet()
{
int size = coursesToSelect.size();
System.out.println("请从以下课程中选课:");
for(int i=0;i<size;i++)
{
Course c = (Course) coursesToSelect.get(i);
System.out.println(c.getId() + ":" + c.getName());
}
}
//修改课程
public void testModify()
{
System.out.println("\n修改课程后:");
coursesToSelect.set(3, new Course("4","马克思主义"));
testGet();
}
//删除课程
public void testRemove()
{
System.out.println("\n删除课程后:");
coursesToSelect.remove(5);
testGet();
} public static void main(String[] args)
{
ListTest lt = new ListTest();
lt.testAdd();
lt.testGet();
lt.testModify();
lt.testRemove();
}
}
4.学生选课
import java.util.Scanner; public class SetTest extends ListTest
{
public static void main(String[] args)
{
System.out.println("欢迎进入选课系统!");
SetTest st = new SetTest();
st.testAdd();
st.testGet(); Student s1 = new Student("1","Mary");
Scanner console = new Scanner(System.in);
for(int i=0;i<3;i++)
{
System.out.println("请输出课程ID:");
String courseId = console.next();
for(Course cr:st.coursesToSelect)
{
if(cr.getId().equals(courseId))
{
s1.courses.add(cr);
}
}
}
for(Course cr:s1.courses)
{
System.out.println("选择了课程:"+cr.getId()+":"+cr.getName());
}
} }
运行结果:
欢迎进入选课系统!
请从以下课程中选课:
1:C语言
2:数据结构
3:离散数学
4:操作系统
5:高等数学
6:大学英语
请输出课程ID:
2
请输出课程ID:
3
请输出课程ID:
1
选择了课程:1:C语言
选择了课程:3:离散数学
选择了课程:2:数据结构
5.添加学生
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Set; public class MapTest
{
//用来承装学生类型的对象
public Map<String,Student> students; public MapTest()
{
this.students = new HashMap<String,Student>();
}
public void testPut()
{
Scanner console = new Scanner(System.in);
int i=0;
while(i<3)
{
System.out.println("请输入学生ID:");
String ID = console.next();
Student st = students.get(ID);
if(st==null)
{
System.out.println("请输入学生姓名:");
String name = console.next();
Student newStudent = new Student(ID,name);
students.put(ID,newStudent);
System.out.println("成功添加学生:" + students.get(ID).getName());
i++;
}
else
{
System.out.println("该学生ID已被占用!");
continue;
}
}
}
public void testKeySet()
{
Set<String> keySet = students.keySet();//返回Map中所有键的集合
System.out.println("\n总共有: " + students.size() + "名学生!\n学生信息如下:");
for(String stuId:keySet)
{
Student st = students.get(stuId);
if(st!=null)
{
System.out.println("学号:" + st.getId() + " , 姓名:" + st.getName());
}
}
}
public static void main(String[] args)
{
MapTest mt = new MapTest();
mt.testPut();
mt.testKeySet();
}
}
运行结果:
请输入学生ID:
2015028601
请输入学生姓名:
Tom
成功添加学生:Tom
请输入学生ID:
2015028602
请输入学生姓名:
Mary
成功添加学生:Mary
请输入学生ID:
2015028603
请输入学生姓名:
Jack
成功添加学生:Jack
总共有: 3名学生!
学生信息如下:
学号:2015028602 , 姓名:Mary
学号:2015028603 , 姓名:Jack
学号:2015028601 , 姓名:Tom
6.删除学生
public void testRemove()
{
Scanner console = new Scanner(System.in);
while(true)
{
String ID = console.nextLine();
Student st = students.get(ID);
if(st==null)
{
System.out.println("该ID不存在!");
continue;
}
students.remove(ID);
System.out.println("成功删除学生:"+st.getName());
}
}
以上的所有代码均是一个单独执行的程序,实现单一的功能,并没有整合起来组成一个成套的学生选课(或信息)管理系统,但程序组成的原理大同小异,都是对Java类集中各类方法的调用,作为后期课程设计时的一个参考。
Java类集综合练习——信息管理(增、删、改、查)的更多相关文章
- Django(十)模型:django模型类对数据库的:增/删/改/查、自关联、管理器、元选项(指定表名)
一.插入.更新和删除 调用一个模型类对象的save方法的时候就可以实现对模型类对应数据表的插入和更新. 调用一个模型类对象的delete方法的时候就可以实现对模型类对应数据表数据的删除. 二.自关联 ...
- 好用的SQL TVP~~独家赠送[增-删-改-查]的例子
以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化. 本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...
- iOS FMDB的使用(增,删,改,查,sqlite存取图片)
iOS FMDB的使用(增,删,改,查,sqlite存取图片) 在上一篇博客我对sqlite的基本使用进行了详细介绍... 但是在实际开发中原生使用的频率是很少的... 这篇博客我将会较全面的介绍FM ...
- iOS sqlite3 的基本使用(增 删 改 查)
iOS sqlite3 的基本使用(增 删 改 查) 这篇博客不会讲述太多sql语言,目的重在实现sqlite3的一些基本操作. 例:增 删 改 查 如果想了解更多的sql语言可以利用强大的互联网. ...
- django ajax增 删 改 查
具于django ajax实现增 删 改 查功能 代码示例: 代码: urls.py from django.conf.urls import url from django.contrib impo ...
- ADO.NET 增 删 改 查
ADO.NET:(数据访问技术)就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中 也可以将数据库中的数据提取到内存中供程序调用 ADO.NET所有数据访 ...
- MVC EF 增 删 改 查
using System;using System.Collections.Generic;using System.Linq;using System.Web;//using System.Data ...
- python基础中的四大天王-增-删-改-查
列表-list-[] 输入内存储存容器 发生改变通常直接变化,让我们看看下面列子 增---默认在最后添加 #append()--括号中可以是数字,可以是字符串,可以是元祖,可以是集合,可以是字典 #l ...
- 简单的php数据库操作类代码(增,删,改,查)
这几天准备重新学习,梳理一下知识体系,同时按照功能模块划分做一些东西.所以.mysql的操作成为第一个要点.我写了一个简单的mysql操作类,实现数据的简单的增删改查功能. 数据库操纵基本流程为: 1 ...
随机推荐
- Windows 环境下 Docker 使用及配置
原文引用: https://www.cnblogs.com/moashen/p/8067612.html 我们可以使用以下两种方式在Windows环境下使用docker: 1. 直接安装: Docke ...
- 6月7号shiro
Retains all Cache objects maintained by this cache manager :保留此缓存管理器维护的所有缓存对象 Destroyable可毁灭的 retain ...
- index seek和index scan 提高sql 效率
index seek和index scan 提高sql 效率解释解释index seek和index scan:索引是一颗B树,index seek是查找从B树的根节点开始,一级一级找到目标行.ind ...
- classNum 表示学生的班号,例如“class05”。 有如下List List list = new ArrayList();
package a927; import java.util.ArrayList; import java.util.List; class Student { private String name ...
- Quartz+Topshelf 作业
小记: 引用Quartz.Topshelf.Topshelf.Quartz 使用方法: http://www.cnblogs.com/mushroom/p/4952461.html http://ww ...
- jq 替换DOM layeui 不刷新
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- 使用.Net Core RT 标准动态库
这个文档可以引导你如何通过CoreRT生成一个原生标准的系统动态库让其他编程语言调用. CoreRT 可以构建静态库, 这些库可以在编译时链接或者也可以构建运行时所需的共享库, 创建一个支持CoreR ...
- C#第十二节课
数组 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Th ...
- 重置root管理员密码(RedHat、CentOS、Fedora)
重启Linux系统主机并出现引导画面时,按下键盘上的e键进入内核编辑界面. 在Linux16参数这行后面追加"rd.break"参数,然后按下Ctrl+x组合键来运行修改后的内核程 ...
- [bzoj3291] Alice与能源计划 (二分图最大匹配)
传送门 Description 在梦境中,Alice来到了火星.不知为何,转眼间Alice被任命为火星能源部长,并立刻面临着一个严峻的考验.为 了方便,我们可以将火星抽象成平面,并建立平面直角坐标系. ...