小练习---班级学生管理系统

要求:

  实现以下功能:

    ①添加一个班级;

    ②往班级中添加学生;

    ③查询班级,学生;    

    ④删除班级,学生;

分析:

  对象:

    ①班级:班级编号,班级名称,学生数组;

    ②学生:学号,姓名,性别,年龄;

在Myeclipse中完成:新建4个类

  ①Student  

package StudentManagement;

public class Student {
		private String sno;
		private String sname;
		private String ssex;
		private int sage;
		public Student() {
			super();
		}
		public Student(String sno, String sname, String ssex, int sage) {
			super();
			this.sno = sno;
			this.sname = sname;
			this.ssex = ssex;
			this.sage = sage;
		}
		public String getSno() {
			return sno;
		}
		public void setSno(String sno) {
			this.sno = sno;
		}
		public String getSname() {
			return sname;
		}
		public void setSname(String sname) {
			this.sname = sname;
		}
		public String getSsex() {
			return ssex;
		}
		public void setSsex(String ssex) {
			this.ssex = ssex;
		}
		public int getSage() {
			return sage;
		}
		public void setSage(int sage) {
			this.sage = sage;
		}

}

  ②Class

package StudentManagement;

public class Class {
		private String cno;
		private String cname;
		private Student[] stus;
		private int size;
		private int count=0;
		public Class() {
			this.size=10;
			stus=new Student[this.size];
		}
		public Class(String cno, String cname,  int size) {
			super();
			this.cno = cno;
			this.cname = cname;
			this.size = size;
			stus=new Student[this.size];
		}
		public String getCno() {
			return cno;
		}
		public void setCno(String cno) {
			this.cno = cno;
		}
		public String getCname() {
			return cname;
		}
		public void setCname(String cname) {
			this.cname = cname;
		}
		public Student[] getStus() {
			return stus;
		}
		public void setStus(Student[] stus) {
			this.stus = stus;
		}
		public int getSize() {
			return size;
		}
		public void setSize(int size) {
			this.size = size;
		}
		public int getCount() {
			return count;
		}
		public void setCount(int count) {
			this.count = count;
		}

		public void addStudent(Student stu){
			if(count<stus.length){
				stus[count]=stu;
				count++;
				System.out.println("添加学生成功!");
			}else{
				System.out.println("班级人数已满!");
			}
		}

}

  ③ManageService

package StudentManagement;

import java.util.Scanner;

public class ManageService {
	private Class[] classes;

	private int size;
	private int count = 0;
	public ManageService() {
		this.size = 10;
		classes = new Class[this.size];
	}
	public ManageService(int size) {
		this.size = size;
		classes = new Class[this.size];
	}

	public void addClazz(Class c){
		if(count<classes.length){
			classes[count] = c;
			count++;
			System.out.println("班级添加成功!");
		}else{
			System.out.println("班级数量达到上限,不能添加班级!");
		}
	}

	public void printAllClass(){
		System.out.println("班级编号\t班级名称");
		for(int i=0;i<classes.length;i++){
			Class c = classes[i];
			if(c!=null){
				System.out.println(c.getCno()+"\t"+c.getCname());
			}
		}
	}

	public Class getClassByNo(String cno){
		Class clazz = null;
		for(int i=0;i<classes.length;i++){
			Class c = classes[i];
			if(c!=null){
				if(c.getCno().equals(cno)){
					clazz = c;
				}
			}else{
				break;
			}

		}
		return clazz;
	}

	public Student[] getStusByClass(String cno){
		Student[] stus = null;
		for(int i=0;i<classes.length;i++){
			Class c = classes[i];
			if(c!=null){
				if(c.getCno().equals(cno)){
					stus = c.getStus();
				}
			}else{
				break;
			}
		}
		return stus;
	}

	public Student getStuByNo(String sno){
		Student stu = null;
		for(int i=0;i<classes.length;i++){
			Class c = classes[i];
			if(c!=null){
				Student[] stus = c.getStus();
				for(int j=0;j<stus.length;j++){
					Student s = stus[j];
					if(s!=null){
						if(s.getSno().equals(sno)){
							stu = s;
						}
					}else{
						break;
					}
				}
			}else{
				break;
			}
		}
		return stu;
	}

	public void deleteStuByNo(String sno){
		for(int i=0;i<classes.length;i++){
			Class c = classes[i];
			if(c!=null){
				Student[] stus = c.getStus();
				for(int j=0;j<stus.length;j++){
					Student s = stus[j];
					if(s!=null){
						if(s.getSno().equals(sno)){
							stus[j] = null;
						}
					}else{
						break;
					}
				}
			}else{
				break;
			}
		}
	}

	public void deleteClassByNo(String cno){
		for(int i=0;i<classes.length;i++){
			Class c = classes[i];
			if(c!=null){
				if(c.getCno().equals(cno)){
					classes[i]=null;
				}
		}else{
			break;
		}
	}
}

	public void run(){
		System.out.println("欢迎来到苏大学生管理系统!");
		Scanner sc = new Scanner(System.in);
		while(true){
			System.out.println("1.添加班级,2.添加学生,3.查看班级,4.查看学生,5.删除学生,6.删除班级,7.退出");
			String comd = sc.next();
			if(comd.equals("1")){
				System.out.println("请输入班级编号:");
				String cno = sc.next();
				Class c = getClassByNo(cno);
				if(c==null){
					System.out.println("请依次输入班级名称,人数:");
					String cname = sc.next();
					int size = sc.nextInt();
					c = new Class(cno, cname, size);
					addClazz(c);
				}else{
					System.out.println("班级已经存在!");
				}
			}else if(comd.equals("2")){
				System.out.println("请输入班级编号:");
				String cno = sc.next();
				Class c = getClassByNo(cno);
				if(c!=null){
					System.out.println("请依次输入学号,姓名,性别,年龄:");
					String sno = sc.next();
					String sname = sc.next();
					String ssex = sc.next();
					int sage=sc.nextInt();
					Student stu = new Student(sno, sname, ssex, sage);
					c.addStudent(stu);
				}else{
					System.out.println("班级不存在!");
				}

			}else if(comd.equals("3")){
				printAllClass();
			}else if(comd.equals("4")){
				System.out.println("1.根据班级查看,2.查看学生个人详情");
				String type = sc.next();
				if(type.equals("1")){
					System.out.println("请输入班级编号:");
					String cno = sc.next();
					Student[] stus = getStusByClass(cno);
					if(stus!=null){
						System.out.println("学号\t姓名\t性别\t年龄");
						for(int j=0;j<stus.length;j++){
							Student s = stus[j];
							if(s!=null){
								System.out.println(s.getSno()+"\t"+s.getSname()+"\t"+s.getSsex()+"\t"+s.getSage());
							}else{
								break;
							}

						}
					}else{
						System.out.println("班级不存在,或该班级暂无学生!");
					}

				}else if(type.equals("2")){
					System.out.println("请输学号:");
					String sno = sc.next();
					Student stu = getStuByNo(sno);
					if(stu!=null){
						System.out.println("学号\t姓名\t性别\t年龄");
						System.out.println(stu.getSno()+"\t"+stu.getSname()+"\t"+stu.getSno()+"\t"+stu.getSage());
					}else{
						System.out.println("学生"+sno+"不存在!");
					}
				}

			}else if(comd.equals("5")){
				System.out.println("请输学号:");
				String sno = sc.next();
				Student stu = getStuByNo(sno);
				if(stu!=null){
					deleteStuByNo(sno);
					System.out.println("删除成功!");
				}else{
					System.out.println("学生"+sno+"不存在!");
				}

			}else if(comd.equals("6")){
				System.out.println("请输班级编号:");
				String cno = sc.next();
				Class c = getClassByNo(cno);
				if(c!=null){
					deleteClassByNo(cno);
					System.out.println("删除成功!");
				}else{
					System.out.println("班级"+cno+"不存在!");
					}
				}else if(comd.equals("7")){
				System.out.println("系统退出!");
				System.exit(0);
			}else{
				System.out.println("命令不合法!");
			}
		}
	}
}

  ④App

package StudentManagement;

public class App {

	public static void main(String[] args) {
		ManageService ss=new ManageService(5);
		ss.run();
	}

}

  

时间: 2024-10-09 23:10:54

小练习---班级学生管理系统的相关文章

Golang项目之函数版学生管理系统

前言 学习第3天,基于函数的方式编写小项目:学生管理系统 代码 package main import ( "fmt" "os" ) /* 函数版学生管理系统 写一个系统能够查看所有的学生/新增学生/删除学生 */ var ( allStudent map[int64]*student // 变量声明 ) type student struct{ id int64 name string } // newStudent是一个student类型的构造函数 func n

Golang项目之结构体版学生管理系统

前言 学习第4天,基于结构体的方式对函数版本重构编写小项目:学生管理系统 代码 package main import ( "fmt" "os" ) // 菜单系统(将菜单系统封装到函数中) func showMenu(){ fmt.Println("欢迎光临学生管理系统") fmt.Println(` 1.查看所有学生 2.新增学生 3.删除学生 4.退出 `) } // 造一个存储学生数据的类型 type student struct{ id

学生管理系统遇到的小问题。

学生管理系统: all_info = {'UZI':{'name':'UZI','age':'18','tel':'9199999199'}, 'xiye':{'name':'xiye','age':'20','tel':'37402384702'}} new_infor = {'name':'UZI','age':'18','tel':'9199999199', 'name':'xiye','age':'20','tel':'37402384702'} def zj_fun (): new_n

学生管理系统c++

#include<iostream> #include<fstream> #include<string> using namespace std; const int nubofCourse = 10;//学生最多可以选修的课程 typedef struct StudentMessage *sMessage;//学生结点指针类型 typedef struct Courses *sCourse;//课程结点指针类型 fstream foutint;//文件导入导出 /*

【IOS开发笔记02】学生管理系统

端到端的机会 虽然现在身处大公司,但是因为是内部创业团队,产品.native.前端.服务器端全部坐在一起开发,大家很容易做零距离交流,也因为最近内部有一个前端要转岗过来,于是手里的前端任务好像可以抛一大坨出去了,这个时候立刻想到了切入IOS开发!!! 事实上,前端开发做到一定时间,要进步很难了,最近几个月扑到业务上便感觉突破不了目前的瓶颈,自身的前端瓶颈主要在两方面:技术深度.技术广度 其实不论深度或者广度来说都不是简单前端能说清楚的事情,不能说了解了angularJS.react等框架技术深度

学生管理系统(list)

学生管理系统:学习了一点文件指针的操作和链表操作,以前总想搞下子,刚好碰到同学要做这个,自己瞎搞了一通. 实现功能:数据添加,查找,删除,插入,修改只是在查找加几句就没写. #include <cstdio> #include <iostream> #include <cstdlib> #include <algorithm> #include <ctime> #include <cmath> #include <string&

Android For JNI(四)——C的数组,指针长度,堆内存和栈内存,malloc,学生管理系统

Android For JNI(四)--C的数组,指针长度,堆内存和栈内存,malloc,学生管理系统 好几天每写JNI了,现在任务也越来越重了,工作的强度有点高,还有好几个系列的博客要等着更新,几本书还嗷嗷待哺的等着我去看,github上的两个散漫的开源,基础入门的视频也在录制,还要学习新的知识, 都是一种挑战,不知道为何,最近懒散了,看来还得再加把劲,今天我们继续延伸一下C的一些小知识 一.数组 C的数组和JAVA也是类似的,我们写一段小程序 #include <stdio.h> #inc

Mysql学生管理系统:表的建立,外键一对多,多对多关系,中间关联表的建立

学生管理系统 管理员注册/登录/注销 注册班级(班级详细信息) 注册学生信息 查看班级信息/查看老师资料 教师注册/注销  查看教师资料  查看学生资料  根据名称/班级/ 查看学生详细信息--支持模糊 注册科目 管理员(admini) ad_id(管理员id)     ad_number(管理员账号) ad_pass(管理员密码)    ad_yn(管理员是否禁用) create table admini( ad_id int PRIMARY KEY AUTO_INCREMENT,-- 主键自

微信南通大学教务学生管理系统_用户体验

刚开始我还没关注南通大学教务学生管理系统的时候都是经常用电脑登陆然后上去查课表或者成绩什么的,但是用电脑也挺不方便的,因为每次都输用户名和密码,挺烦的.后来关注微信之后觉得还挺方便的,(图片是盗用同学的,因为我的手机屏幕没那么大,不能一下子把整张图一次性截下),但是我想说的他的缺点也就是它的一张图片实在太长了,让人看的眼花,一下子不能马上找到自己想查的是什么,而且我们要查的内容都是通过输入字母和数字组成的,如果一下子记不住字母和数字,还要往上翻页去看一眼什么字母或者数字,才能继续输入.(我不知道