java模拟选课_模拟学生选课系统的练习
学生选课系统是我们很常见的一种web应用程序,大家可以通过web登陆校园网,并且访问后台数据库,修改个人信息等方式进行选课,其实现原理大家可能并不是特别了解,下面这段代码则简单的将这个过程进行了一次演示,这不仅仅是一次简单的对选课系统的演示,也是对面向对象思想的一次实践,在整个过程中,用到了一些容器类,所以这段代码也是对容器类的一次整合应用和加深对List的体会,也同样是对分布式开发的一次尝试
选课系统的设计要求是:学生可以选择多门课程,课程也应该包含多个学生。
选课系统的设计思路是:分别创建学生类Student和课程类Course。学生类中包含课程列表和课程名称等属性;课程类中包含学生列表等属性
具体代码如下:
①:首先是创建Student类
public class Student {
private String name; //姓名
private String course; //课程名称
private List courseList; //课程队列
//实现对属性的封装
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCourse() {
return course;
}
public void setCourse(String course) {
this.course = course;
}
public List getCourseList() {
return courseList;
}
public void setCourseList(List courseList) {
this.courseList = courseList;
}
//重写构造函数
public Student(String name)
{
this.setName(name);
this.setCourseList(new ArrayList());
}
//构造添加方法,对list进行添加行为
public void add(Course c)
{
this.courseList.add(c);
}
}
②:创建课程类:
public class Course {
private String name; //课程名称
private float score; //课程学分
private List studentList; //学生队列
//实现属性的封装
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public float getScore() {
return score;
}
public void setScore(float score) {
this.score = score;
}
public List getStudentList() {
return studentList;
}
public void setStudentList(List studentList) {
this.studentList = studentList;
}
//重写构造函数
public Course(String name , float score)
{
this.setName(name);
this.setScore(score);
this.setStudentList(new ArrayList());
}
//构造田间函数,对list进行添加动作
public void add(Student s)
{
this.studentList.add(s);
}
}
③:创建测试类:
public class TestSelectCourse {
public static void main(String args[])
{
List c = new ArrayList(); //创建课程队列,并通过泛型进行限制
List s = new ArrayList(); //创建学生队列
//实例化出几个学生,模拟数据库中的学生档案
Student s1 = new Student("张三");
Student s2 = new Student("李四");
Student s3 = new Student("王五");
// Student s4 = new Student("赵六");
// Student s5 = new Student("嘎嘎");
//将初始化出的学生加入队列
s.add(s1);
s.add(s2);
s.add(s3);
//初始化几门课程,并添加到课程队列
Course c1 = new Course("课程一",2.0f);
Course c2 = new Course("课程二",2.5f);
Course c3 = new Course("课程三",3.0f);
c.add(c1);
c.add(c2);
c.add(c3);
//设置关系,不但将学生添加到所选课程中的学生队列了,而且还应该将课程也添加进学生的课程队列
s1.add(c1);
s1.add(c2);
c1.add(s1);
c2.add(s1);
s2.add(c3);
s2.add(c1);
c3.add(s2);
c1.add(s2);
s3.add(c2);
c2.add(s3);
//通过双循环进行对数据的遍历并在控制台中输出
Iterator iter = c.iterator();
while(iter.hasNext())
{
Course cc = iter.next();
System.out.println("课程信息:"+cc.getName());
Iterator iters = cc.getStudentList().iterator();
while(iters.hasNext())
{
Student ss = iters.next();
System.out.println("|-"+ss.getName());
}
}
System.out.println("********分**割**线*********");
Iterator iter1 = s.iterator();
while(iter1.hasNext())
{
Student ss1 = iter1.next();
System.out.println("学生信息:"+ss1.getName());
Iterator iterc1 = ss1.getCourseList().iterator();
while(iterc1.hasNext())
{
Course cc1 = iterc1.next();
System.out.println("|-"+cc1.getName());
}
}
}
}
运行结果如下:
课程信息:课程一
|-张三
|-李四
课程信息:课程二
|-张三
|-王五
课程信息:课程三
|-李四
********分**割**线*********
学生信息:张三
|-课程一
|-课程二
学生信息:李四
|-课程三
|-课程一
学生信息:王五
|-课程二
结果分析:
结果正确的完成了学生含有多门课程,课程含有多个学生的业务要求
posted on 2010-10-30 22:59 Soap MacTavish 阅读(366) 评论(0) 编辑 收藏
java模拟选课_模拟学生选课系统的练习相关推荐
- IDEA+Java+Servlet+JSP+Mysql实现学生选课签到系统
一.系统介绍 1.开发环境 开发工具:IDEA2018 JDK版本:jdk1.8 Mysql版本:8.0.13 2.技术选型 Java+Servlet+Boostrap+Jsp+Mysql 3.系统功 ...
- 基于JAVA+Servlet+JSP+MYSQL的学生选课系统
项目功能: <学生选课系统>,本系统有三种角色,分别为管理员.老师.学生.每种角色可以登录系统,操作的功能也不一样.总体功能模块如下: 个人信息管理 学生信息管理 课程排名 学生成绩分析 ...
- Java基础案例3-4:学生投票系统
[案例3-4]学生投票系统 [案例介绍] 某班级投票竞选班干部,班级学生人数为100人,每个学生只能投一票. 本任务要求,编程实现一个投票程序,每个学生只能投一次票,投票成功提示"感谢你的投 ...
- 基于JAVA+SpringMVC+Mybatis+MYSQL的学生选课系统
项目功能: 系统包括学生登录注册,查看个人资料,修改密码,查看排课信息,选课,退选,参加考试,查看我的考试,老师登录注册,查看个人资料,查看我的课程信息,添加课程,后台管理员登录,学生管理,用户管理, ...
- Java项目:JSP在线学生选课管理系统
作者主页:夜未央5788 简介:Java领域优质创作者.Java项目.学习资料.技术互助 文末获取源码 项目介绍 管理员角色包含以下功能: 管理员登录,学生管理,教师管理,班级管理,添加班级,添加教师 ...
- 基于JAVA+Servlet+JSP+MYSQL的学生选课管理系统
项目功能: 系统分为管理员.老师和学生三个角色,管理员登录后可以对用户进行管理(管理员管理.学生管理.教师管理),课程管理(分配课程.修改课程.搜索课程),浏览新闻,退出登录.学生登录后可以进行选课, ...
- 计算器程序java开方运算_模拟计算器java程序
1 /*实现基本数学运算.函数等功能:加.减.乘.除.阶乘.正弦.余弦和指数运算.2 界面将模拟Windows中的计算器程序.*/ 3 import javax.swing.*;4 import ja ...
- java小球反弹_模拟小球运动、撞击、反弹效果
[实例简介] 模拟一个小球在屏幕内运动,当撞击到边缘时会反弹,底部不会反弹,底部有一个长条,左右移动来使小球反弹 [实例截图] [核心代码] b79af779-cdf0-4383-9460-5ab61 ...
- java chunked 解码_模拟http请求 带 chunked解析办法一
今天在干坏事抓取别人页面时候遇到一个问题,平时我们在post数据后,大不了要求提交cookie,但是今天这个测试了N遍不需要coookie都行的,但是抓取到的始终是乱码,怎么解析都不行.于是自己又把c ...
- mos 多路模拟电子开关_模拟多路开关-MOSFET全解.ppt
模拟多路开关-MOSFET全解 1. 漏电流 漏电流:通过断开的模拟开关的电流,用IS表示. 3.3.4 多路开关的电路特性 在n个模拟开关的并联组合中,当一个开关导通时,其它n-1个开关是断开的,未 ...
最新文章
- java domain层_java框架中的controller层、dao层、domain层、service层、view层
- AI语音算法“个性”强 与芯片端“磨合”挑战多
- python自动控制windows、Android的软件用来实现机器人流程自动化--RPA,外挂、自动化测试等方面的解决方案
- Android 硬件 OpenGL ES 模拟设计概述
- 手机屏幕宽高像素计算_2020年的智能手机拍照新设计,就全看下半年了
- 十六进制字符串转整形
- 阿里云 centos 安装图形化界面
- 不用for loop循环一个读取一个文件
- 项目搭建 windows_08. SpringCloud实战项目-配置Git
- WSDL文件生成Java代码
- 华为各系列交换机限速配置
- hugging face transformer文本分类运行
- AR8035芯片手册 解析|CSDN创作打卡
- android 自动发短信的代码,Android点击按钮时自动发送短信
- 网络曝光华为自研操作系统“鸿蒙” (图)
- 计算机作品大赛微课,我校微课作品获2018年中国大学生计算机设计大赛二等奖...
- 金仓数据库 KingbaseGIS 使用手册(9.4. 拓扑结构构造函数、9.5. 拓扑结构编辑函数)
- 学会这10招,让你的服装短视频带货率提升50%
- 初一下册计算机教案,七年级下册信息技术教案
- 如何下载谷歌地球海底高程并生成DWG格式的等深线
热门文章
- Echarts地图实现点击某地区跳转到指定页面
- 中国双酚F树脂市场趋势报告、技术动态创新及市场预测
- 【实践】基于CentOS7部署Ceph集群(版本10.2.2)
- MySQL讲义第 46 讲——select 查询之查询练习(四)
- 选型宝分享数据爆炸时代,如何驾驭海量日志?
- Android 软键盘的那些坑,原理篇来了!
- nu.xom:Serializer
- android 异常 android Removing unused resources requires unused code shrinking to be turned on.
- 武汉市科技企业孵化器认定条件
- 地理学中的经典统计分析方法