1、java语言学生信息管理系统 学生信息管理系统开发与设计java课程设计报告目录一、概要设计3二、程序整体设计说明.3三、程序部分源代码及注释.4四、测试结果.14五、设计心得15六、致 谢15七、参考文献15 一、概要设计 由于学生信息的冗长与繁琐,所以它的管理问题带来的麻烦和不方便也随之而来,所以开发一个合适学校的、便于管理学生信息的管理系统是十分必要的。 学生信息管理系统是对学生的基本信息进行管理,主要包括显示、查询、添加和删除学生的基本信息,方便管理人员对学生基本信息进行查询,排序等操作,从而实现学生信息管理的自动化与计算机化。本课题将实现一个简化的学生信息管理系统。二、程序的整体设计
2、(1)学生基本信息的录入和保存:在链表中的适当位置插入一个学生信息节点,一次添加一条学生信息(添加内容包含学号、姓名、年龄),如果添加的学号已经在文件中存在,则不能添加到文件中去,应显示错误提示语;如果添加成功,则显示成功提示语。添加操作完毕后,应该询问用户是否继续执行此操作。如果用户不继续,则退回到程序初始界面。(2)显示学生信息:此功能是显示一个学生信息节点中的信息,并在屏幕上显示出来。(3)按学号查找学生信息:按学号查询学生信息,要求显示 文件 中 与 用户输入的学号 相匹配的学生信息,要求显示学号、姓名、年龄等字段,如果文件中没有学生信息,则显示提示语。查询操作完毕后,应该询问用户是否
3、继续执行此操作。如果用户不继续,则退回到程序初始界面。(4)按姓名查找学生信息:按姓名查询学生信息,要求显示 文件 中 与 用户输入的学号 相匹配的学生信息,要求显示学号、姓名、年龄等字段,如果文件中没有学生信息,则显示提示语。查询操作完毕后,应该询问用户是否继续执行此操作。如果用户不继续,则退回到程序初始界面。(5)添加学生信息添加学生信息中的某一项信息,一次更新一条学生信息(更新内容包含学号、姓名、年龄等字段值),如果更新的学号在文件中不存在,则不能更新,应该显示错误提示语;如果更新成功,则显示成功提示语。更新操作完毕后,应该询问用户是否继续执行此操作。如果用户不继续,则退回到程序初始界面
4、。(6)删除学生信息: 进入该项功能界面后,删除学生信息,一次删除一条学生信息。 (7)退出系统,结束任务。三、程序部分源代码及注释 import java.io.IOException;import java.util.ArrayList;import java.util.Collections;import java.util.List;import java.util.Scanner;public class StudentManageSystem / StudentManager中提供的操作菜单 public static void showMenus() String format
5、= %sn; System.out.println(-功能菜单-); System.out.printf(format, 0. 退出管理); System.out.printf(format, 1. 显示学生); System.out.printf(format, 2. 查询学生); System.out.printf(format, 3. 添加学生); System.out.printf(format, 4. 删除学生); System.out.printf(format, 5. 功能菜单); System.out.println(-结束-); System.out.println(); /
6、 管理学生 public void manageStudents() throws IOException Scanner scanner = new Scanner(System.in); StudentDao sd = new StudentDao(); StudentService ss = new StudentService(sd, scanner); showMenus(); int op = -1; while (op != 0) System.in.skip(System.in.available(); System.out.print(输入菜单编号: ); op = scan
7、ner.nextInt(); scanner.nextLine(); / 吃掉输入菜单编号后无效的回车字符 try switch (op) case 0: break; case 1: ss.showStudents(); break; case 2: ss.findStudent(); break; case 3: ss.addStudent(); break; case 4: ss.removeStudent(); break; case 5: showMenus(); break; default: System.out.println(没有提供此项操作n); catch (Except
8、ion e) System.out.println(t + e.getMessage() + n); public static void main(String args) throws IOException StudentManageSystem sm = new StudentManageSystem(); sm.manageStudents(); class StudentService private StudentDao studentDao; private Scanner scanner; public StudentService(StudentDao studentDao
9、, Scanner scanner) this.studentDao = studentDao; this.scanner = scanner; / 添加学生 public void addStudent() System.out.print(输入学生资料进行添加: ); / name|age String info = scanner.nextLine(); Student s = Student.buildStudent(info); if (studentDao.findStudent(s.getName() != null) throw new RuntimeException(此学生
10、信息已经存在); studentDao.addStudent(s); System.out.println(t添加成功n); public void removeStudent() System.out.print(输入学生姓名进行删除: ); String name = scanner.nextLine(); Student s = studentDao.findStudent(name); if (s = null) System.out.println(t查无此学生); else studentDao.removeStudent(s); System.out.println(t已经删除学
11、生: + s); System.out.println(); / 查找学生 public void findStudent() System.out.print(输入学生姓名进行查询: ); String name = scanner.nextLine(); Student s = studentDao.findStudent(name); if (s = null) System.out.println(查无此学生); else System.out.println(t搜索查找到的学生: + s); System.out.println(); / 显示已经有的学生信息 public void
12、 showStudents() List students = studentDao.getStudents(); if (students.size() = 0) System.out.println(列表中还没有任何学生); else System.out.println(=所有学生信息=); for (Student s : students) System.out.println(t + s); System.out.println(); / 对学生数据进行执久化操作class StudentDao private List students; public StudentDao()
13、students = new ArrayList(); / 添加学生 public void addStudent(Student student) students.add(student); / 删除学生 public void removeStudent(Student student) students.remove(student); / 使用学生的名字查找进行查找 public Student findStudent(String name) for (Student s : students) if (s.getName().equals(name) return s; retu
14、rn null; / 返回学生列表的视图,不可修改 public List getStudents() return Collections.unmodifiableList(students); class Student private String name; private int age; public Student() public Student(String name, int age) this.name = name; this.age = age; public String getName() return name; public void setName(Stri
15、ng name) this.name = name; / Info format: name|age public static Student buildStudent(String studentInfo) if (!studentInfo.matches(w+|d+) throw new RuntimeException( The student informations format should be name|age without quote); String infos = studentInfo.split(|); String name = infos0.trim(); i
16、nt age = Integer.parseInt(infos1); return new Student(name, age); Override public String toString() return String.format(Name:%s, Age:%d, name, age); 四、测试结果 在调试的过程中,出现了许多错误,现将几类有代表性的错误列举如下:(1) 原因:在引用用户变量与定义时的不一致,第二个字母大写了。 如何解决:将 studentService(sd, scanner)改为 StudentService(sd, scanner) (2) 原因 : Over
17、ride需要 如何解决:在其后加上(3) 原因:在判断时的比较符写成了赋值号 如何解决:将“=”改成“=”(4) 原因:“ ”是在汉语状态写入的 如何解决:改为英语状态输入 (5) 原因:少写了一个大花括号 如何解决:补上一个后半大花括号五、设计心得 通过此次课程设计,将我本学期所学的JAVA知识得到巩固和应用,在设计的过程中我遇到了很到问题,不过在老师和同学们的帮助和自己的思考下还是很好的完成了。这此课程设计还让我懂得了写程序不能闭门造车,要努力拓宽知识面,开阔视野,拓展思维。它还让我学会了在网上查阅那些无限的资料。六、致 谢在本次Java课程设计中,首先要感谢我的指导老师*老师教给了我很多的Java的编程知识,编程思想,还有要感谢我的同学,是他们在我遇到困难时给了我指导
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1