scala学生信息管理系统
时间: 2023-09-20 20:04:28 浏览: 379
Scala 学生信息管理系统可以分为以下模块:
1. 学生信息录入模块:包括学生基本信息的录入,如姓名、性别、年龄、班级等;
2. 学生信息查询模块:可以按照学生的姓名、学号、班级等信息进行查询,同时支持模糊查询;
3. 学生成绩录入模块:包括学生的各项考试成绩的录入,如数学、英语、物理等;
4. 学生成绩查询模块:可以按照学生的姓名、学号、班级、科目等信息进行查询,同时支持成绩范围的筛选;
5. 数据库管理模块:对学生信息和成绩信息进行增、删、改、查等操作,同时支持数据备份和还原;
6. 用户管理模块:对系统用户进行管理,包括添加、删除、修改等操作,同时支持用户权限分级。
以下是一个简单的 Scala 学生信息管理系统实现:
```scala
import scala.io.StdIn
// 定义学生类
case class Student(name: String, id: Int, age: Int, gender: String, grade: String)
// 定义成绩类
case class Score(id: Int, math: Double, english: Double, physics: Double)
object StudentSystem {
// 存储学生信息和成绩信息的两个 Map
var students = Map[Int, Student]()
var scores = Map[Int, Score]()
// 显示菜单
def showMenu(): Unit = {
println("=============================")
println("| 1. 添加学生信息 |")
println("| 2. 添加学生成绩 |")
println("| 3. 查看学生信息 |")
println("| 4. 查看学生成绩 |")
println("| 5. 修改学生信息 |")
println("| 6. 修改学生成绩 |")
println("| 7. 删除学生信息 |")
println("| 8. 删除学生成绩 |")
println("| 9. 数据备份 |")
println("| 10. 数据还原 |")
println("| 11. 退出系统 |")
println("=============================")
}
// 添加学生信息
def addStudent(): Unit = {
print("请输入学生姓名:")
val name = StdIn.readLine()
print("请输入学生学号:")
val id = StdIn.readInt()
print("请输入学生年龄:")
val age = StdIn.readInt()
print("请输入学生性别:")
val gender = StdIn.readLine()
print("请输入学生班级:")
val grade = StdIn.readLine()
val student = Student(name, id, age, gender, grade)
students += (id -> student)
println("学生信息添加成功!")
}
// 添加学生成绩
def addScore(): Unit = {
print("请输入学生学号:")
val id = StdIn.readInt()
print("请输入数学成绩:")
val math = StdIn.readDouble()
print("请输入英语成绩:")
val english = StdIn.readDouble()
print("请输入物理成绩:")
val physics = StdIn.readDouble()
val score = Score(id, math, english, physics)
scores += (id -> score)
println("学生成绩添加成功!")
}
// 查看学生信息
def viewStudent(): Unit = {
print("请输入要查看的学生学号:")
val id = StdIn.readInt()
students.get(id) match {
case Some(student) => println(student)
case None => println("没有找到该学生!")
}
}
// 查看学生成绩
def viewScore(): Unit = {
print("请输入要查看的学生学号:")
val id = StdIn.readInt()
scores.get(id) match {
case Some(score) => println(score)
case None => println("没有找到该学生成绩!")
}
}
// 修改学生信息
def modifyStudent(): Unit = {
print("请输入要修改的学生学号:")
val id = StdIn.readInt()
students.get(id) match {
case Some(student) =>
print("请输入学生姓名:")
val name = StdIn.readLine()
print("请输入学生年龄:")
val age = StdIn.readInt()
print("请输入学生性别:")
val gender = StdIn.readLine()
print("请输入学生班级:")
val grade = StdIn.readLine()
val newStudent = student.copy(name = name, age = age, gender = gender, grade = grade)
students += (id -> newStudent)
println("学生信息修改成功!")
case None => println("没有找到该学生!")
}
}
// 修改学生成绩
def modifyScore(): Unit = {
print("请输入要修改的学生学号:")
val id = StdIn.readInt()
scores.get(id) match {
case Some(score) =>
print("请输入数学成绩:")
val math = StdIn.readDouble()
print("请输入英语成绩:")
val english = StdIn.readDouble()
print("请输入物理成绩:")
val physics = StdIn.readDouble()
val newScore = score.copy(math = math, english = english, physics = physics)
scores += (id -> newScore)
println("学生成绩修改成功!")
case None => println("没有找到该学生成绩!")
}
}
// 删除学生信息
def deleteStudent(): Unit = {
print("请输入要删除的学生学号:")
val id = StdIn.readInt()
students.get(id) match {
case Some(student) =>
students -= id
scores -= id
println("学生信息删除成功!")
case None => println("没有找到该学生!")
}
}
// 删除学生成绩
def deleteScore(): Unit = {
print("请输入要删除的学生学号:")
val id = StdIn.readInt()
scores.get(id) match {
case Some(score) =>
scores -= id
println("学生成绩删除成功!")
case None => println("没有找到该学生成绩!")
}
}
// 数据备份
def backup(): Unit = {
val backupStudents = students
val backupScores = scores
println("数据备份成功!")
}
// 数据还原
def restore(): Unit = {
students = backupStudents
scores = backupScores
println("数据还原成功!")
}
// 主函数
def main(args: Array[String]): Unit = {
var flag = true
while (flag) {
showMenu()
print("请选择操作:")
val choice = StdIn.readInt()
choice match {
case 1 => addStudent()
case 2 => addScore()
case 3 => viewStudent()
case 4 => viewScore()
case 5 => modifyStudent()
case 6 => modifyScore()
case 7 => deleteStudent()
case 8 => deleteScore()
case 9 => backup()
case 10 => restore()
case 11 => flag = false
case _ => println("输入有误,请重新输入!")
}
}
}
}
```
以上代码只是一个简单的实现,可以根据实际需求进行扩展和优化。