Java 做一个学生管理系统

时间: 2024-05-12 10:08:28 浏览: 16
一个学生管理系统可以分为以下几个模块: 1. 学生信息管理模块:管理学生的基本信息,包括学号、姓名、性别、出生日期、联系方式、家庭住址等等。 2. 成绩管理模块:管理学生的各科成绩,包括语文、数学、英语、物理、化学、生物等等。 3. 课程管理模块:管理学生所选的课程,包括必修课、选修课、公共选修课等等。 4. 教师管理模块:管理教师的基本信息,包括教师编号、姓名、性别、出生日期、联系方式、授课科目等等。 5. 班级管理模块:管理班级的基本信息,包括班级编号、班级名称、班主任、学生人数等等。 6. 用户管理模块:管理系统中的用户,包括管理员、教师、学生等等。 下面是一个简单的学生管理系统的代码示例: ``` import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class StudentManagementSystem { private static List<Student> studentList = new ArrayList<>(); private static List<Teacher> teacherList = new ArrayList<>(); public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (true) { System.out.println("请选择用户类型:"); System.out.println("1. 管理员"); System.out.println("2. 教师"); System.out.println("3. 学生"); System.out.println("4. 退出"); int userType = scanner.nextInt(); switch (userType) { case 1: adminLogin(scanner); break; case 2: teacherLogin(scanner); break; case 3: studentLogin(scanner); break; case 4: System.exit(0); break; default: System.out.println("输入错误,请重新输入!"); break; } } } private static void adminLogin(Scanner scanner) { System.out.println("请输入管理员用户名:"); String adminName = scanner.next(); System.out.println("请输入管理员密码:"); String adminPassword = scanner.next(); if ("admin".equals(adminName) && "admin".equals(adminPassword)) { System.out.println("管理员登录成功!"); adminMenu(scanner); } else { System.out.println("用户名或密码错误!"); } } private static void adminMenu(Scanner scanner) { while (true) { System.out.println("请选择操作:"); System.out.println("1. 添加学生"); System.out.println("2. 删除学生"); System.out.println("3. 修改学生信息"); System.out.println("4. 查询学生信息"); System.out.println("5. 添加教师"); System.out.println("6. 删除教师"); System.out.println("7. 修改教师信息"); System.out.println("8. 查询教师信息"); System.out.println("9. 返回上级菜单"); int choice = scanner.nextInt(); switch (choice) { case 1: addStudent(scanner); break; case 2: deleteStudent(scanner); break; case 3: modifyStudent(scanner); break; case 4: queryStudent(scanner); break; case 5: addTeacher(scanner); break; case 6: deleteTeacher(scanner); break; case 7: modifyTeacher(scanner); break; case 8: queryTeacher(scanner); break; case 9: return; default: System.out.println("输入错误,请重新输入!"); break; } } } private static void addStudent(Scanner scanner) { System.out.println("请输入学生学号:"); String studentId = scanner.next(); System.out.println("请输入学生姓名:"); String studentName = scanner.next(); System.out.println("请输入学生性别:"); String studentGender = scanner.next(); System.out.println("请输入学生出生日期:"); String studentBirth = scanner.next(); System.out.println("请输入学生联系方式:"); String studentPhone = scanner.next(); System.out.println("请输入学生家庭住址:"); String studentAddress = scanner.next(); Student student = new Student(studentId, studentName, studentGender, studentBirth, studentPhone, studentAddress); studentList.add(student); System.out.println("添加学生成功!"); } private static void deleteStudent(Scanner scanner) { System.out.println("请输入要删除的学生学号:"); String studentId = scanner.next(); for (int i = 0; i < studentList.size(); i++) { if (studentList.get(i).getStudentId().equals(studentId)) { studentList.remove(i); System.out.println("删除学生成功!"); return; } } System.out.println("该学号的学生不存在!"); } private static void modifyStudent(Scanner scanner) { System.out.println("请输入要修改的学生学号:"); String studentId = scanner.next(); for (int i = 0; i < studentList.size(); i++) { if (studentList.get(i).getStudentId().equals(studentId)) { System.out.println("请输入学生姓名:"); String studentName = scanner.next(); System.out.println("请输入学生性别:"); String studentGender = scanner.next(); System.out.println("请输入学生出生日期:"); String studentBirth = scanner.next(); System.out.println("请输入学生联系方式:"); String studentPhone = scanner.next(); System.out.println("请输入学生家庭住址:"); String studentAddress = scanner.next(); studentList.get(i).setStudentName(studentName); studentList.get(i).setStudentGender(studentGender); studentList.get(i).setStudentBirth(studentBirth); studentList.get(i).setStudentPhone(studentPhone); studentList.get(i).setStudentAddress(studentAddress); System.out.println("修改学生信息成功!"); return; } } System.out.println("该学号的学生不存在!"); } private static void queryStudent(Scanner scanner) { System.out.println("请输入要查询的学生学号:"); String studentId = scanner.next(); for (int i = 0; i < studentList.size(); i++) { if (studentList.get(i).getStudentId().equals(studentId)) { System.out.println(studentList.get(i)); return; } } System.out.println("该学号的学生不存在!"); } private static void addTeacher(Scanner scanner) { System.out.println("请输入教师编号:"); String teacherId = scanner.next(); System.out.println("请输入教师姓名:"); String teacherName = scanner.next(); System.out.println("请输入教师性别:"); String teacherGender = scanner.next(); System.out.println("请输入教师出生日期:"); String teacherBirth = scanner.next(); System.out.println("请输入教师联系方式:"); String teacherPhone = scanner.next(); System.out.println("请输入授课科目:"); String courseName = scanner.next(); Teacher teacher = new Teacher(teacherId, teacherName, teacherGender, teacherBirth, teacherPhone, courseName); teacherList.add(teacher); System.out.println("添加教师成功!"); } private static void deleteTeacher(Scanner scanner) { System.out.println("请输入要删除的教师编号:"); String teacherId = scanner.next(); for (int i = 0; i < teacherList.size(); i++) { if (teacherList.get(i).getTeacherId().equals(teacherId)) { teacherList.remove(i); System.out.println("删除教师成功!"); return; } } System.out.println("该编号的教师不存在!"); } private static void modifyTeacher(Scanner scanner) { System.out.println("请输入要修改的教师编号:"); String teacherId = scanner.next(); for (int i = 0; i < teacherList.size(); i++) { if (teacherList.get(i).getTeacherId().equals(teacherId)) { System.out.println("请输入教师姓名:"); String teacherName = scanner.next(); System.out.println("请输入教师性别:"); String teacherGender = scanner.next(); System.out.println("请输入教师出生日期:"); String teacherBirth = scanner.next(); System.out.println("请输入教师联系方式:"); String teacherPhone = scanner.next(); System.out.println("请输入授课科目:"); String courseName = scanner.next(); teacherList.get(i).setTeacherName(teacherName); teacherList.get(i).setTeacherGender(teacherGender); teacherList.get(i).setTeacherBirth(teacherBirth); teacherList.get(i).setTeacherPhone(teacherPhone); teacherList.get(i).setCourseName(courseName); System.out.println("修改教师信息成功!"); return; } } System.out.println("该编号的教师不存在!"); } private static void queryTeacher(Scanner scanner) { System.out.println("请输入要查询的教师编号:"); String teacherId = scanner.next(); for (int i = 0; i < teacherList.size(); i++) { if (teacherList.get(i).getTeacherId().equals(teacherId)) { System.out.println(teacherList.get(i)); return; } } System.out.println("该编号的教师不存在!"); } private static void studentLogin(Scanner scanner) { System.out.println("请输入学生学号:"); String studentId = scanner.next(); for (int i = 0; i < studentList.size(); i++) { if (studentList.get(i).getStudentId().equals(studentId)) { System.out.println("学生登录成功!"); studentMenu(scanner, studentList.get(i)); return; } } System.out.println("该学号的学生不存在!"); } private static void studentMenu(Scanner scanner, Student student) { while (true) { System.out.println("请选择操作:"); System.out.println("1. 查询个人信息"); System.out.println("2. 查询成绩"); System.out.println("3. 查询课程"); System.out.println("4. 返回上级菜单"); int choice = scanner.nextInt(); switch (choice) { case 1: System.out.println(student); break; case 2: System.out.println("请输入要查询的科目:"); String courseName = scanner.next(); System.out.println("成绩为:" + student.getScore(courseName)); break; case 3: System.out.println("已选课程为:" + student.getCourseList()); break; case 4: return; default: System.out.println("输入错误,请重新输入!"); break; } } } private static void teacherLogin(Scanner scanner) { System.out.println("请输入教师编号:"); String teacherId = scanner.next(); for (int i = 0; i < teacherList.size(); i++) { if (teacherList.get(i).getTeacherId().equals(teacherId)) { System.out.println("教师登录成功!"); teacherMenu(scanner, teacherList.get(i)); return; } } System.out.println("该编号的教师不存在!"); } private static void teacherMenu(Scanner scanner, Teacher teacher) { while (true) { System.out.println("请选择操作:"); System.out.println("1. 查询个人信息"); System.out.println("2. 查询课程信息"); System.out.println("3. 修改学生成绩"); System.out.println("4. 返回上级菜单"); int choice = scanner.nextInt(); switch (choice) { case 1: System.out.println(teacher); break; case 2: System.out.println("授课科目为:" + teacher.getCourseName()); System.out.println("所授班级为:" + teacher.getClassList()); break; case 3: System.out.println("请输入要修改成绩的学生学号:"); String studentId = scanner.next(); for (Student student : studentList) { if (student.getStudentId().equals(studentId)) { System.out.println("请输入要修改的科目:"); String courseName = scanner.next(); System.out.println("请输入新的成绩:"); int score = scanner.nextInt(); student.setScore(courseName, score); System.out.println("修改成绩成功!"); return; } } System.out.println("该学号的学生不存在!"); break; case 4: return; default: System.out.println("输入错误,请重新输入!"); break; } } } } ``` 该系统包含了管理员、教师和学生三种用户类型,具有添加、删除、修改和查询学生、教师、课程和成绩等功能。在实际应用中,还可以根据需要增加其他功能模块。

相关推荐

最新推荐

recommend-type

JAVA综合课程设计 学生宿舍管理系统

学生宿舍管理系统的开发主要包括前台用户界面的开发和后台数据库的开发,对于后台数据库的建立和维护要求建立起数据一致性和完整性强、数据安全性好的数据库。而对于前端应用程序的开发则要求应用程序能提供强大的...
recommend-type

java(swing)+ mysql实现学生信息管理系统

Java Swing + MySQL 实现学生信息管理系统知识点总结 通过对给定的文件信息,总结出以下 Java Swing + MySQL 实现学生信息管理系统的知识点: 一、Java Swing 组件 * 使用 Java Swing 组件创建图形用户界面(GUI...
recommend-type

java面向对象之学生信息管理系统

本系统是一个典型的Java面向对象之学生信息管理系统,涵盖了面向对象编程、类和对象、接口、ArrayList和泛型、循环和迭代、switch语句、封装和继承、多态、Java基本语法、Java开发工具、控制台输入和输出、异常处理...
recommend-type

【java课设】学生选课系统.pdf

根据课程信息和学生信息完成对课程的选修,需要专门的一个管理类来完成选修工作。 2、功能要求 (1)添加功能:程序能够任意添加课程和学生记录,可提供选择界面供用户选择所要添加的类别,要求编号要唯一,如果添加...
recommend-type

Java 实现简易教务管理系统的代码

在本文中,我们将介绍Java实现简易教务管理系统的代码,该系统旨在提供一个基本的教务管理功能,包括学生、课程、教师等信息的管理。下面是该系统的主要知识点: 1. Java基础知识:本系统使用Java语言开发,因此...
recommend-type

基于嵌入式ARMLinux的播放器的设计与实现 word格式.doc

本文主要探讨了基于嵌入式ARM-Linux的播放器的设计与实现。在当前PC时代,随着嵌入式技术的快速发展,对高效、便携的多媒体设备的需求日益增长。作者首先深入剖析了ARM体系结构,特别是针对ARM9微处理器的特性,探讨了如何构建适用于嵌入式系统的嵌入式Linux操作系统。这个过程包括设置交叉编译环境,优化引导装载程序,成功移植了嵌入式Linux内核,并创建了适合S3C2410开发板的根文件系统。 在考虑到嵌入式系统硬件资源有限的特点,通常的PC机图形用户界面(GUI)无法直接应用。因此,作者选择了轻量级的Minigui作为研究对象,对其实体架构进行了研究,并将其移植到S3C2410开发板上,实现了嵌入式图形用户界面,使得系统具有简洁而易用的操作界面,提升了用户体验。 文章的核心部分是将通用媒体播放器Mplayer移植到S3C2410开发板上。针对嵌入式环境中的音频输出问题,作者针对性地解决了Mplayer播放音频时可能出现的不稳定性,实现了音乐和视频的无缝播放,打造了一个完整的嵌入式多媒体播放解决方案。 论文最后部分对整个项目进行了总结,强调了在嵌入式ARM-Linux平台上设计播放器所取得的成果,同时也指出了一些待改进和完善的方面,如系统性能优化、兼容性提升以及可能的扩展功能等。关键词包括嵌入式ARM-Linux、S3C2410芯片、Mplayer多媒体播放器、图形用户界面(GUI)以及Minigui等,这些都反映出本文研究的重点和领域。 通过这篇论文,读者不仅能了解到嵌入式系统与Linux平台结合的具体实践,还能学到如何在资源受限的环境中设计和优化多媒体播放器,为嵌入式技术在多媒体应用领域的进一步发展提供了有价值的经验和参考。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

Python字符串为空判断的动手实践:通过示例掌握技巧

![Python字符串为空判断的动手实践:通过示例掌握技巧](https://img-blog.csdnimg.cn/72f88d4fc1164d6c8b9c29d8ab5ed75c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASGFyYm9yIExhdQ==,size_20,color_FFFFFF,t_70,g_se,x_16) # 1. Python字符串为空判断的基础理论 字符串为空判断是Python编程中一项基本且重要的任务。它涉及检查字符串是否为空(不包含任何字符),这在
recommend-type

box-sizing: border-box;作用是?

`box-sizing: border-box;` 是 CSS 中的一个样式属性,它改变了元素的盒模型行为。默认情况下,浏览器会计算元素内容区域(content)、内边距(padding)和边框(border)的总尺寸,也就是所谓的"标准盒模型"。而当设置为 `box-sizing: border-box;` 后,元素的总宽度和高度会包括内容、内边距和边框的总空间,这样就使得开发者更容易控制元素的实际布局大小。 具体来说,这意味着: 1. 内容区域的宽度和高度不会因为添加内边距或边框而自动扩展。 2. 边框和内边距会从元素的总尺寸中减去,而不是从内容区域开始计算。
recommend-type

经典:大学答辩通过_基于ARM微处理器的嵌入式指纹识别系统设计.pdf

本文主要探讨的是"经典:大学答辩通过_基于ARM微处理器的嵌入式指纹识别系统设计.pdf",该研究专注于嵌入式指纹识别技术在实际应用中的设计和实现。嵌入式指纹识别系统因其独特的优势——无需外部设备支持,便能独立完成指纹识别任务,正逐渐成为现代安全领域的重要组成部分。 在技术背景部分,文章指出指纹的独特性(图案、断点和交叉点的独一无二性)使其在生物特征认证中具有很高的可靠性。指纹识别技术发展迅速,不仅应用于小型设备如手机或门禁系统,也扩展到大型数据库系统,如连接个人电脑的桌面应用。然而,桌面应用受限于必须连接到计算机的条件,嵌入式系统的出现则提供了更为灵活和便捷的解决方案。 为了实现嵌入式指纹识别,研究者首先构建了一个专门的开发平台。硬件方面,详细讨论了电源电路、复位电路以及JTAG调试接口电路的设计和实现,这些都是确保系统稳定运行的基础。在软件层面,重点研究了如何在ARM芯片上移植嵌入式操作系统uC/OS-II,这是一种实时操作系统,能够有效地处理指纹识别系统的实时任务。此外,还涉及到了嵌入式TCP/IP协议栈的开发,这是实现系统间通信的关键,使得系统能够将采集的指纹数据传输到远程服务器进行比对。 关键词包括:指纹识别、嵌入式系统、实时操作系统uC/OS-II、TCP/IP协议栈。这些关键词表明了论文的核心内容和研究焦点,即围绕着如何在嵌入式环境中高效、准确地实现指纹识别功能,以及与外部网络的无缝连接。 这篇论文不仅深入解析了嵌入式指纹识别系统的硬件架构和软件策略,而且还展示了如何通过结合嵌入式技术和先进操作系统来提升系统的性能和安全性,为未来嵌入式指纹识别技术的实际应用提供了有价值的研究成果。