一、系统需求
使用仓颉编程语言,实现学生成绩管理系统,要求可以新增学生信息、查看所有学生信息、查看个人学生信息、修改学生信息、删除学生信息、保存学生信息的功能。
二、系统实现
package Study.student import std.env.* import std.collection.* import std.convert.* import std.fs.* // 学生信息文件路径 const STUDNT_INFO_PATH = "./src/student/student_info.txt" // 学生信息集合 var studentList = ArrayList<Student>() class Student { Student(private var _id: String, private var _name: String, private var _cangJie: Float64, private var _math: Float64, private var _english: Float64){} prop id: String { get() { this._id } } mut prop name: String { get() { this._name } set(_name) { this._name = _name } } mut prop cangJie: Float64 { get() { this._cangJie } set(_cangJie) { this._cangJie = _cangJie } } mut prop math: Float64 { get() { this._math } set(_math) { this._math = _math } } mut prop english: Float64 { get() { this._english } set(_english) { this._english = _english } } /* * 新增学生信息 */ func addStudent() { println("\t-----------------------") println("\t 新增学生信息") println("\t-----------------------") print("\t 请输入学号: ") let id = getStdIn().readln().getOrThrow() print("\t 请输入姓名: ") let name = getStdIn().readln().getOrThrow() print("\t 请输入仓颉成绩: ") let cangJie = Float64.parse(getStdIn().readln().getOrThrow()) print("\t 请输入数学成绩: ") let math = Float64.parse(getStdIn().readln().getOrThrow()) print("\t 请输入英语成绩: ") let english = Float64.parse(getStdIn().readln().getOrThrow()) studentList.add(Student(id, name, cangJie, math, english)) println("\t 新增学生信息成功") println("\t-----------------------") } /* * 修改学生信息 */ func editStudent() { println("\t-----------------------") println("\t 修改学生信息") println("\t-----------------------") print("\t 请输入学号: ") let id = getStdIn().readln().getOrThrow() for (student in studentList) { if (id == student.id) { print("\t 是否修改姓名(Y/N): ") var flag = getStdIn().readln().getOrThrow() if (flag == "Y" || flag == "y" ) { print("\t 请输入新的姓名: ") let name = getStdIn().readln().getOrThrow() student.name = name } print("\t 是否修改仓颉成绩(Y/N): ") flag = getStdIn().readln().getOrThrow() if (flag == "Y" || flag == "y" ) { print("\t 请输入新的仓颉成绩: ") let cangJie = Float64.parse(getStdIn().readln().getOrThrow()) student.cangJie = cangJie } print("\t 是否修改数学成绩(Y/N): ") flag = getStdIn().readln().getOrThrow() if (flag == "Y" || flag == "y" ) { print("\t 请输入新的数学成绩: ") let math = Float64.parse(getStdIn().readln().getOrThrow()) student.math = math } print("\t 是否修改英语成绩(Y/N): ") flag = getStdIn().readln().getOrThrow() if (flag == "Y" || flag == "y" ) { print("\t 请输入新的英语成绩: ") let english = Float64.parse(getStdIn().readln().getOrThrow()) student.english = english } } } println("\t 修改学生信息成功") println("\t-----------------------") } /* * 删除学生信息 */ func deleteStudent() { println("\t-----------------------") println("\t 删除学生信息") println("\t-----------------------") print("\t 请输入学号: ") let id = getStdIn().readln().getOrThrow() studentList.removeIf({student => student.id == id}) println("\t 删除学生信息成功") println("\t-----------------------") } /* * 查看所有学生成绩 */ func selectStudents() { println("\t-----------------------") println("\t 查看所有学生信息") println("\t-----------------------") println("学号\t 姓名\t 仓颉\t 数学\t 英语") for (student in studentList) { println("${student.id}\t ${student.name}\t ${student.cangJie.format(".1")}\t ${student.math.format(".1")}\t ${student.english.format(".1")}") } println("\t-----------------------") } /* * 查看个人学生成绩 */ func selectStudent() { println("\t-----------------------") println("\t 查看个人学生信息") println("\t-----------------------") print("\t 请输入学号或姓名: ") let idOrName = getStdIn().readln().getOrThrow() println("学号\t 姓名\t 仓颉\t 数学\t 英语") for (student in studentList) { if (idOrName == student.id || idOrName == student.name) { println("${student.id}\t ${student.name}\t ${student.cangJie.format(".1")}\t ${student.math.format(".1")}\t ${student.english.format(".1")}") } } println("\t-----------------------") } /* * 保存学生成绩 */ func saveStudent() { println("\t-----------------------") println("\t 保存学生信息") println("\t-----------------------") if (!exists(STUDNT_INFO_PATH)) { try ( file = File.create(STUDNT_INFO_PATH) ) { var data = "" data += "学号\t 姓名\t 仓颉\t 数学\t 英语\n" for (student in studentList) { data += "${student.id}\t\t ${student.name}\t ${student.cangJie.format(".1")}\t ${student.math.format(".1")}\t ${student.english.format(".1")}\n" } var byteData = data.toArray() File.writeTo(STUDNT_INFO_PATH, byteData) } } else { var data = "" data += "学号\t 姓名\t 仓颉\t 数学\t 英语\n" for (student in studentList) { data += "${student.id}\t\t ${student.name}\t ${student.cangJie.format(".1")}\t ${student.math.format(".1")}\t ${student.english.format(".1")}\n" } var byteData = data.toArray() File.writeTo(STUDNT_INFO_PATH, byteData) } println("\t 保存学生信息成功") println("\t-----------------------") } } /* * 主菜单 */ func mainMenu() { println("*******************************************") println("***** 欢迎使用钝子生学生成绩管理系统 ******") println("*******************************************") subMenu() } /* * 次要菜单 */ func subMenu() { println("\t-----------------------") println("\t 1. 新增学生信息") println("\t 2. 查看所有学生信息") println("\t 3. 查看个人学生信息") println("\t 4. 修改学生信息") println("\t 5. 删除学生信息") println("\t 6. 保存学生信息") println("\t 7. 退出") println("\t-----------------------") println("*******************************************") print("\t 请选择您的需求: ") } /* * 启动 */ public func start() { mainMenu() while (true) { let student = Student("", "", 0.0, 0.0, 0.0) let input = getStdIn().readln().getOrThrow() if (input == "1") { // 新增学生信息 student.addStudent() subMenu() } else if (input == "2") { // 查看所有学生信息 student.selectStudents() subMenu() } else if (input == "3") { // 查看个人学生信息 student.selectStudent() subMenu() } else if(input == "4") { // 修改学生信息 student.editStudent() subMenu() } else if(input == "5") { // 删除学生信息 student.deleteStudent() subMenu() } else if(input == "6") { // 保存学生信息 student.saveStudent() subMenu() } else if(input == "7") { // 退出 println("***************** 已退出 ******************") println("************** 感谢您的使用 ***************") println("*******************************************") break } else { println("\t 非法输入") subMenu() } } }三、小结
本章为大家详细的介绍了仓颉编程语言中学生成绩管理系统的内容,下一章,为大家带来线程管理的内容。最后,创作不易,如果大家觉得我的文章对学习仓颉服务端开发有帮助的话,就动动小手,点个免费的赞吧!收到的赞越多,我的创作动力也会越大哦,谢谢大家🌹🌹🌹!!!