学生信息管理系统面向对象设计_第1页
学生信息管理系统面向对象设计_第2页
学生信息管理系统面向对象设计_第3页
学生信息管理系统面向对象设计_第4页
学生信息管理系统面向对象设计_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学生信息管理系统(面向对象设计)项目概述学生管理系统是一个常见的应用场景,它可以帮助学校或教育机构管理学生的基本信息、课程成绩等数据。在这个项目中,我们将设计一个简化版的学生管理系统,涵盖学生信息的录入、查询和统计功能。功能设计学生信息录入:可以输入学生的基本信息,包括姓名、年龄、性别等。学生信息查询:可以根据学号或姓名查询学生的信息,包括基本信息和课程成绩。课程成绩录入:可以录入学生的课程成绩,包括课程名称和分数。成绩统计:可以统计某门课程的平均分、最高分和最低分。类设计根据功能设计,我们可以定义以下类来实现学生管理系统:Student(学生类):用于存储学生的基本信息,如姓名、年龄、性别等。Course(课程类):用于存储课程信息,如课程名称和成绩。StudentManagementSystem(学生管理系统类):主要包含功能方法,如录入学生信息、录入课程成绩、查询学生信息和成绩统计等。类关系图根据类的设计,我们可以得到以下类关系图:+----------------+|Student|+----------------+|-id||-name||-age||-gender|+----------------+^||+------------------------+|Course|+------------------------+|-courseName||-score|+------------------------+^||+--------------------------------+|StudentManagementSystem|+--------------------------------+|-students:List<Student>||-courses:List<Course>|+--------------------------------+|+addStudent()||+addCourse()||+queryStudent()||+calculateAverageScore()|+--------------------------------+以下是一个简化版的学生管理系统代码示例,演示了如何定义类、实现功能方法和处理异常:importjava.util.ArrayList;importjava.util.List;classStudent{privateintid;privateStringname;privateintage;privateStringgender;//构造方法、getter和setter}classCourse{privateStringcourseName;privateintscore;//构造方法、getter和setter}publicclassStudentManagementSystem{privateList<Student>students;privateList<Course>courses;publicStudentManagementSystem(){students=newArrayList<>();courses=newArrayList<>();}publicvoidaddStudent(Studentstudent){students.add(student);}publicvoidaddCourse(Coursecourse){courses.add(course);}publicStudentqueryStudent(Stringname)throwsStudentNotFoundException{for(Studentstudent:students){if(student.getName().equals(name)){returnstudent;}}thrownewStudentNotFoundException("学生不存在:"+name);}publicdoublecalculateAverageScore(StringcourseName)throwsCourseNotFoundException{intsum=0;intcount=0;for(Coursecourse:courses){if(course.getCourseName().equals(courseName)){sum+=course.getScore();count++;}}if(count==0){thrownewCourseNotFoundException("课程不存在:"+courseName);}return(double)sum/count;}publicstaticvoidmain(String[]args){//创建学生管理系统实例,实现功能调用}}总结在今天的课程中,我们通过一个简化版的学生管理系统项目,实战演示了如何将面向对象编程的核心概念应用于实际项目中。通过类的设计、方法的实现以及异常的处理,我们可以构建出结构清晰、功能完备的程序。学习通过实际项目应用编程知识,不仅能够加深理解,还能提高编程实践能力。在接下来的学习中,我们将继续探索更多有关Java编程的知识,不断提升自己的编程技能。

面向对象设计实战项目学生管理系统首先学生管理系统,肯定得有学生类,这个类中应该封装一些学生的基本信息,和修改这些信息的方法。下面我们在IDEA软件中创建Student.java文件packagecom.yan.Demo;/*学生类.该类中的属性分别代表学号,姓名,年龄和性别*///学生类publicclassStudent{privateintid;//学号privateStringname;//姓名privateintage;//年龄privateGendergender;//性别该类是一个枚举类//-----------------------有参和无参构造器--------------------publicStudent(){}publicStudent(intid,Stringname,intage,Gendergender){this.id=id;=name;this.age=age;this.gender=gender;}//---------------------这是一堆setget方法---------------------publicintgetId(){returnid;}publicvoidsetId(intid){this.id=id;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){=name;}publicintgetAge(){returnage;}publicvoidsetAge(intage){this.age=age;}publicGendergetGender(){returngender;}publicvoidsetGender(Gendergender){this.gender=gender;}@OverridepublicStringtoString(){return"student{"+"id="+id+",name='"+name+'\''+",age="+age+",gender='"+gender+'\''+'}';}}enumGender{男,女}好了,有了学生那么接下来还需要有一个管理者来负责整个系统的运行以及保存学生的基本信息以及增删改查方法.packagecom.yan.Demo;importjava.util.*;publicclassstudentSystemManage{//学生对象的Map容器,key:idvalue:studentobjectprivateMap<Integer,Student>students=newHashMap<>();//创建一个扫描器对象扫描键盘输入privateScannerscanner=newScanner(System.in);publicvoidrun(){System.out.println("*************************欢迎来到我的学生管理系统**************************");System.out.println("系统初始化成功........");}publicvoidexit(){System.out.println("*************************谢谢使用我的的学生管理系统**************************");}publicvoidshowMethod(){System.out.println("\n操作菜单内容");System.out.println("1--所有学生信息");System.out.println("2--添加学生信息");System.out.println("3--根据学号查找");System.out.println("4--根据学号删除");System.out.println("5--根据学号修改");System.out.println("6--退出系统");}publicvoidshowAll(){//返回所有的学生信息Set<Integer>sids=students.keySet();Iterator<Integer>iterator=sids.iterator();while(iterator.hasNext()){//如果iterator不为空,则一直遍历Integersid=iterator.next();Studentstudent=students.get(sid);System.out.println(student);}}publicStudentshowStudent(intsid){//查询Studentstudent=students.get(sid);if(student!=null){System.out.println(student);}elseSystem.out.println("该学生在该系统中不存在,请重试");returnstudent;}publicStudentshowStudent(){//查询System.out.println("请输入需要添加学生的学号");intsid=scanner.nextInt();returnshowStudent(sid);}publicbooleanaddStudent(){//添加System.out.println("请输入需要添加学生的学号");intsid=scanner.nextInt();System.out.println("请输入需要添加学生的姓名");Stringname=scanner.next();System.out.println("请输入需要添加学生的年龄");intage=scanner.nextInt();System.out.println("请输入需要添加学生的性别");Gendergender=scanner.next().equals("男")?Gender.男:Gender.女;Studentstudent=newStudent(sid,name,age,gender);students.put(sid,student);System.out.println("添加学生成功");returntrue;}publicbooleandelStudent(intid){//删除Studentstudent=students.remove(id);returnstudent==null?false:true;}publicvoiddelStudent(){//删除System.out.println("请输入需要修改学生的学号");intsid=scanner.nextInt();booleanbool=delStudent(sid);if(true){System.out.println("删除学生成功");}else{System.out.println("学生不存在于该系统");}}publicbooleanupdateStudent(intid){Studentstudent=students.get(id);if(student!=null){//修改System.out.println("请输入需要修改学生的学号");intsid=scanner.nextInt();System.out.println("请输入需要修改学生的姓名");Stringname=scanner.next();System.out.println("请输入需要修改学生的年龄");intage=scanner.nextInt();System.out.println("请输入需要修改学生的性别");Gendergender=scanner.next().equals("男")?Gender.男:Gender.女;student.setId(sid);student.setName(name);student.setAge(age);student.setGender(gender);System.out.println("修改成功");}returnstudent==null?false:true;}publicvoidupdateStudent(){//修改方法System.out.println("请输入需要修改学生的学号");intsid=scanner.nextInt();booleanbool=updateStudent(sid);if(bool){System.out.println("修改成功");}else{System.out.println("学生不存在于该系统");}}}接下来就是测试类了,该类很简单只是调用上面编写好的两个类,通过设置一个标记来保持整个系统的运行,直到捕捉到了用户输入的退出方法。packagecom.yan.Demo;importjava.util.Scanner;publicclassTestSystem{publicstaticvoidmain(String[]args){//系统的主测试入

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论