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 ...
随机推荐
- BZOJ 2431 逆序对数列 DP
2431: [HAOI2009]逆序对数列 Time Limit: 5 Sec Memory Limit: 128 MB Description 对于一个数列{ai},如果有i< j且ai> ...
- jquery.validate验证text,checkbox,radio,selected
index.cshtml <form id="formLogin" method="post"> <div> <label for ...
- UML基本关系
UML-Unified Model Language 统一建模语言,又称标准建模语言.是用来对软件密集系统进行可视化建模的一种语言.UML的定义包括UML语义和UML表示法两个元素. UML是在开发阶 ...
- jboss-as-7.1.1.Final配置Jndi数据源(以mysql为例)
1.获取mysql驱动,可以从mysql官方网站下载: http://dev.mysql.com/downloads/connector/j/ 2.进入jboss-as-7安装目录下的modules目 ...
- 用VS Code Debug Python
- FormCollection获取请求数据
public ActionResult Add(FormCollection fm) //通过FormCollection 对象获取表单数据 { string message = "&quo ...
- windows 下安装mysql 成功版
mysql 下载地址 http://dev.mysql.com/downloads/ zip版下载 解压到本地 假设文件保存在C:\mysql-5.7.17-winx64 1.以管理员身份运行cmd. ...
- js判断数组中是否包含某个值
/** * 判断数组中是否包含某个值 * @param arr 数组 * @param str 值 * @returns {boolean} */ function contains(arr, str ...
- js俄罗斯方块
<html> <style>.c {margin :1px;width:19px;height:19px;background:red;position:absolute;} ...
- Java 各级注解及@Autowired注入为null解决办法
1.@controller 控制器 用于标注控制层,相当于struts中的action层. 2.@service 服务层 用于标注服务层,主要用来进行业务的逻辑处理. 3.@repository DA ...