java学生信息系统.pdf

上传人:索**** 文档编号:76193837 上传时间:2023-03-08 格式:PDF 页数:41 大小:168.74KB
返回 下载 相关 举报
java学生信息系统.pdf_第1页
第1页 / 共41页
java学生信息系统.pdf_第2页
第2页 / 共41页
点击查看更多>>
资源描述

《java学生信息系统.pdf》由会员分享,可在线阅读,更多相关《java学生信息系统.pdf(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Java 程序设计课程设计学生信息系统姓名:赖定辉学号:1007508129 班级:10 医用一班专业:计算机科学与技术(医学应用)指导教师:黄国权2012/12/18 目录1 引言 3 2.设计的目的与任务 33 设计方案 3 3.1总体设计 33.2 设计要求 43.3 系统的主要功能 43.4 总功能模块图 53.5 各个模块类说明 6 3.5.1 主要函数类 6 3.5.2 添加模块类 73.5.3 删除模块类 83.5.4 修改模块类 93.5.5 查询模块类 103.5.6 成绩排序类 114.程序源代码 12 5.程序运行结果展示 40 6.总结 41 7.参考文献 42 1.引

2、言JAVA是一种纯面向对象的、网络编程首选的语言。JAVA技术作为软件开的一种革命性技术,已被列为当今世界信息技术的主流之一。为了适应时代潮流,我们应该加强对JAVA的学习,更好的掌握这门课程。为此,我们做了一次大作业,经过慎重考虑,最后决定以“数组ARRAY”为设题,借此巩固加深我们对 JAVA的了解。2.设计目的与任务本课程设计所要求达到的目的和任务:通过Java 程序设计的一些重要理论基础来实现学生信息系统,包含有学生的基本信息,可以完成学生的增删改查操作,可以对学生的成绩进行各种排序、查找等操作。通过此次课程设计的训练,使学生巩固和加深对Java 这门课程的理解,能利用所学到的计算机科

3、学理论知识,去提高解决实际问题的能力,增强运算、编程和查阅技术资料的技能,通过实际问题的分析设计、编程和调试,掌握应用软件的分析方法和工程设计方法,能正确阐述设计和实验结果。3.设计方案3.1 总体设计(1)问题定义:实现学生信息系统,包含有学生的基本信息,可以完成学生的增删改查操作,可以对学生的成绩进行各种排序、查找等操作。(2)问题分析:该系统需要分多个模块来实现,增删改查模块是首先解决的,而每一个模块也可以再细分提高几个方法实现,如:查找模块分:查找学生姓名、学号、性别、年龄段、成绩;成绩排序模块分:从高到低排序,从低到高排序。(3)研究意义:通过本次课程设计,我掌握了 Java 语言的

4、基本运用,提高了理论结合实际的能力。3.2 设计要求1、设计一个学生信息系统,包含有学生的基本信息,可以完成学生的增删改查操作,可以对学生的成绩进行各种排序、查找等操作;2、排序方法要自己写,查找模块有多种方法实现;3、原则上不要用到数据库知识和J2EE 的知识,只用CORE 的知识完成。3.3 系统的主要功能1、可以对学生进行添加、删除、更改、查询等操作;2、可以方便地对成绩做排序操作;3、可以多种方式查找学生。3.4 总功能模块图学生信息系统添加模块删除模块修改模块查询模块成绩排序学号姓名从高到低排序从低到高排序性别年龄段成绩排序查询模块成绩学号姓名年龄段删除模块成绩全部删除全部查询年龄姓

5、名性别班级修改模块成绩学号姓名性别班级添加模块成绩年龄3.5 各功能模块说明3.5.1 主要函数类1、Student 类(学生信息类)定义学生的成员属性:int num;/学号String name;/姓名String sex;/性别int age;/年龄String classes;/班级 int grade;/成绩构造方法:public Student(int num,String name,String sex,int age,String classes,int grade)this.num=num;this.name=name;this.sex=sex;this.age=age;th

6、is.classes=classes;this.grade=grade;2、StudentManager 类(学生信息管理类)public ArrayList s1=new ArrayList();/用 Arraylist做容器装 student 对象集合public void addStudent(Student s)/添加学生public boolean editStudentNum(Student s)/修改学生public ArrayList getStudentNum(int num)/通过学生的学号查询学生信息public boolean removeStudentNum(int

7、num)/通过学生的学号删除该学生public ArrayList getStudentName(String name)/通过学生的姓名查询学生信息 public boolean removeStudentName(String name)/通过学生的姓名删除学生信息public ArrayList getStudentSex(String sex)/通过学生的性别查询学生信息public ArrayList getStudentsByAge(int beginAge,int endAge)/通过学生的年龄段查询学生信息public boolean removeStudentByAge(in

8、t beginAge,int endAge)/通过学生的年龄段删除学生信息public ArrayList getStudentGrade(int grade)/通过学生的成绩查询学生信息public boolean removeStudentGrade(int grade)/通过学生的成绩删除学生信息public ArrayList getAllStudents()/返回所有学生信息public boolean removeStudentAll()/删除所有学生3、StudentMain 类(界面类)Scanner read=new Scanner(System.in);/接受用户的输入St

9、udentManager x=new StudentManager();/生成一个 StudentManager 类的对象 x int num;/用户选择操作的变量,留在case 里用String YN;/留在循环的最后作判断用的变量3.5.2添加模块类1)System.out.print(请选择你要添加多少个学生:);int temp=read.nextInt();Student st=new Student();for(int i=1;i=temp;i+)System.out.println(请输入第+(i)+学生的学号,姓名,性别,年龄,班级,成绩);st=new Student(rea

10、d.nextInt(),read.next(),read.next(),read.nextInt(),read.next(),read.nextInt();x.addStudent(st);/由于系统没有用到数据库,所以一启动系统需要添加学生2)public void addStudent(Student s)/添加学生 s1.add(s);首先调用 1,由界面输入需要学生的个数,然后调用 2 的函数,就能把学生对象添加进ArrayList容器。3.5.3 删除模块类1)public ArrayList getStudentNum(int num)/通过学生的学号查询学生信息 ArrayLis

11、t s2=new ArrayList();for(int i=0;is1.size();i+)Student st=(Student)s1.get(i);if(st.num=num)s2.add(st);return s2;2)public boolean removeStudentNum(int num)/通过学生的学号删除该学生 ArrayList s2=getStudentNum(num);return s1.removeAll(s2);从界面调用 1 函数,传进一个学号作形参,通过判断该学号是否存在于s1 对象集合里来查询信息,2 函数通过调用1函数来删除该学生的信息,其他删除学生的信

12、息函数功能与此例相同。3.5.4 修改模块类1)System.out.println(请输入你要修改的学号:);int nn=read.nextInt();Student sts=(Student)x.getStudentNum(nn).get(0);System.out.println(请选择你要修改的属性(1、姓名)(2、年龄)(3、性别)(4、班级)(5、成绩);2)public boolean editStudentNum(Student s)/修改学生 boolean flag=false;for(int i=0;is1.size();i+)Student st=(Student)s

13、1.get(i);if(st.getNum()=s.getNum()s1.set(i,s);flag=true;break;return flag;设置 flag为修改标识,通过1 代码模块输入要修改的学号,调用 getStudentNum()得到该学号对应的学生对象,然后调用2函数对该学生对象进行修改属性,修改后返回flag。3.5.5 查询模块类1)System.out.println(你选择了查询学生!请选择1.学号 2.姓名 3.性别4.年龄段 5.成绩6.全部);int a=read.nextInt();if(a=1)System.out.println(你选择了用学号查询);Sys

14、tem.out.println(你 要 查 询 的 学 号是:);int aa=read.nextInt();ArrayList s1=x.getStudentNum(aa);for(int i=0;is1.size();i+)Student f=(Student)s1.get(i);System.out.println(学号:+f.num+,姓名:+f.name+,年龄:+f.age+,性别:+f.sex+,班级:+f.classes+,成绩:+f.grade);2)public ArrayList getStudentNum(int num)/通过学生的学号查询学生信息 ArrayList

15、 s2=new ArrayList();for(int i=0;is1.size();i+)Student st=(Student)s1.get(i);if(st.num=num)s2.add(st);return s2;通过 1 代码模块,输入要查询的学号,再调用2 函数来获得该学生的信息并返回到1 代码模块输出显示。其他查询方法如同此例。3.5.6 排序模块类1)class SortByGrade implements Comparator/自定义的成绩排序方法,成绩从高到低排序 public int compare(Object o1,Object o2)Student s1=(Stud

16、ent)o1;Student s2=(Student)o2;if(s1.getGrade()s2.getGrade()return 1;else return 0;2)System.out.println(你选择了成绩排序!请选择(1.从高到低)(2.从低到高);int a1=read.nextInt();if(a1=1)System.out.println(你选择了从高到低排序);ArrayList s2=x.getAllStudents();Collections.sort(s2,new SortByGrade();for(int i=0;is2.size();i+)Student f=(

17、Student)s2.get(i);System.out.println(学号:+f.num+,姓 名:+f.name+,年 龄:+f.age+,性 别:+f.sex+,班级:+f.classes+,成绩:+f.grade);1 函数分别为两个自定义的排序方法,首先通过2 代码模块选择排序方法,调用getAllStudents()方法得到所有学生对象,再调用 1函数对每个学生对象的成绩进行比较,结果返回 2处并显示出来。4.程序源代码package sms;import java.util.ArrayList;import java.util.Scanner;import java.util.

18、Collections;import java.util.Comparator;class Student/学生类 int num;/学号String name;/姓名String sex;/性别int age;/年龄String classes;/班级int grade;/成绩public Student()public Student(int num,String name,String sex,int age,String classes,int grade)/student构造方法 this.num=num;this.name=name;this.sex=sex;this.age=ag

19、e;this.classes=classes;this.grade=grade;public void setNum(int num)/各个属性的 set、get 方法 this.num=num;public int getNum()return num;public void setName(String name)this.name=name;public String getName()return name;public void setAge(int age)this.age=age;public int getAge()return age;public void setSex(S

20、tring sex)this.sex=sex;public String getSex()return sex;public void setClasses(String classes)this.classes=classes;public String getClasses()return classes;public void setGrade(int grade)this.grade=grade;public int getGrade()return grade;class StudentManager/学生管理类 public ArrayList s1=new ArrayList()

21、;/用 Arraylist做容器装 student 对象集合public void addStudent(Student s)/添加学生 s1.add(s);public boolean editStudentNum(Student s)/修改学生 boolean flag=false;for(int i=0;is1.size();i+)Student st=(Student)s1.get(i);if(st.getNum()=s.getNum()s1.set(i,s);flag=true;break;return flag;public ArrayList getStudentNum(int

22、num)/通过学生的学号查询学生信息 ArrayList s2=new ArrayList();for(int i=0;is1.size();i+)Student st=(Student)s1.get(i);if(st.num=num)s2.add(st);return s2;public boolean removeStudentNum(int num)/通过学生的学号删除该学生 ArrayList s2=getStudentNum(num);return s1.removeAll(s2);public ArrayList getStudentName(String name)/通过学生的姓

23、名查询学生信息 ArrayList s2=new ArrayList();for(int i=0;is1.size();i+)Student st=(Student)s1.get(i);if(st.name.equals(name)s2.add(st);return s2;public boolean removeStudentName(String name)/通过学生的姓名删除学生信息 ArrayList s2=getStudentName(name);return s1.removeAll(s2);public ArrayList getStudentSex(String sex)/通过

24、学生的性别查询学生信息 ArrayList s2=new ArrayList();for(int i=0;is1.size();i+)Student st=(Student)s1.get(i);if(st.sex.equals(sex)s2.add(st);return s2;public ArrayList getStudentsByAge(int beginAge,int endAge)/通过学生的年龄段查询学生信息 ArrayList s2=new ArrayList();for(int i=0;i=beginAge&st.age=endAge)s2.add(st);return s2;

25、public boolean removeStudentByAge(int beginAge,int endAge)/通过学生的年龄段删除学生信息 ArrayList s2=getStudentsByAge(beginAge,endAge);return s1.removeAll(s2);public ArrayList getStudentGrade(int grade)/通过学生的成绩查询学生信息 ArrayList s2=new ArrayList();for(int i=0;is1.size();i+)Student st=(Student)s1.get(i);if(st.grade=

26、grade)s2.add(st);return s2;public boolean removeStudentGrade(int grade)/通过学生的成绩删除学生信息 ArrayList s2=getStudentGrade(grade);return s1.removeAll(s2);public ArrayList getAllStudents()/返回所有学生信息 return s1;public boolean removeStudentAll()/删除所有学生 boolean flag=false;s1.clear();flag=true;return flag;public c

27、lass StudentMain/学生主方法类 public static void main(String args)Scanner read=new Scanner(System.in);StudentManager x=new StudentManager();int num;String YN;System.out.print(请选择你要添加多少个学生:);int temp=read.nextInt();Student st=new Student();for(int i=1;i=temp;i+)System.out.println(请输入第+(i)+学生的学号,姓名,性别,年龄,班级

28、,成绩);st=new Student(read.nextInt(),read.next(),read.next(),read.nextInt(),read.next(),read.nextInt();x.addStudent(st);do System.out.println(请选择你要的的操作 1.添 加学 生2.删除学生3.查询学生4.修改学生5.成绩排序);num=read.nextInt();switch(num)case 1:System.out.println(你选择了添加学生!);System.out.println(请输入你要添加多少个:);int tj=read.nextI

29、nt();for(int i=1;i=tj;i+)System.out.println(学生的学号,姓名,性别,年龄,班级,成绩);st=new Student(read.nextInt(),read.next(),read.next(),read.nextInt(),read.next(),read.nextInt();x.s1.add(st);break;case 2:System.out.println(你选择了删除学生!请选择1.学号2.姓名3.年龄段 4.全部删除);int sc=read.nextInt();if(sc=1)System.out.println(你选择用学号删除!你

30、要删除的学号是:);int xh=read.nextInt();boolean a1=x.removeStudentNum(xh);if(a1=true)System.out.println(删除成功!+a1);else System.out.println(删除失败!+a1);else if(sc=2)System.out.println(你选择用姓名删除!你要删除的姓名是:);String xm=read.next();boolean a2=x.removeStudentName(xm);if(a2=true)System.out.println(删除成功!+a2);else System

31、.out.println(删除失败!+a2);else if(sc=3)System.out.println(你选择了用年龄段删除!你要删除的年龄段是:);int bage=read.nextInt();int eage=read.nextInt();boolean a3=x.removeStudentByAge(bage,eage);if(a3=true)System.out.println(删除成功!+a3);else System.out.println(删除失败!+a3);else if(sc=4)System.out.println(你选择了删除全部);boolean a4=x.re

32、moveStudentAll();if(a4=true)System.out.println(删除成功!+a4);else System.out.println(删除失败!+a4);else System.out.println(你选择错误!);break;case 3:System.out.println(你选择了查询学生!请选择 1.学号2.姓名3.性别4.年龄段 5.成绩6.全部);int a=read.nextInt();if(a=1)System.out.println(你选择了用学号查询);System.out.println(你 要 查 询 的 学 号是:);int aa=rea

33、d.nextInt();ArrayList s1=x.getStudentNum(aa);for(int i=0;is1.size();i+)Student f=(Student)s1.get(i);System.out.println(学号:+f.num+,姓 名:+f.name+,年 龄:+f.age+,性 别:+f.sex+,班级:+f.classes+,成绩:+f.grade);else if(a=2)System.out.println(你选择了用姓名查询);System.out.println(你 要 查 询 的 姓 名是:);String bb=read.next();Array

34、List s2=x.getStudentName(bb);for(int i=0;is2.size();i+)Student f=(Student)s2.get(i);System.out.println(学号:+f.num+,姓 名:+f.name+,年 龄:+f.age+,性 别:+f.sex+,班级:+f.classes+,成绩:+f.grade);else if(a=3)System.out.println(你选择了用性别查询);System.out.println(你 要 查 询 的 性 别是:);String cc=read.next();ArrayList s3=x.getStu

35、dentSex(cc);for(int i=0;is3.size();i+)Student f=(Student)s3.get(i);System.out.println(学号:+f.num+,姓 名:+f.name+,年 龄:+f.age+,性 别:+f.sex+,班级:+f.classes+,成绩:+f.grade);else if(a=4)System.out.println(你 选择 了年 龄段 查询!);System.out.println(你 要查 询的 年龄 段是:);int bage=read.nextInt();int eage=read.nextInt();ArrayLis

36、t s4=x.getStudentsByAge(bage,eage);for(int i=0;is4.size();i+)Student f=(Student)s4.get(i);System.out.println(学号:+f.num+,姓 名:+f.name+,年 龄:+f.age+,性 别:+f.sex+,班级:+f.classes+,成绩:+f.grade);else if(a=5)System.out.println(你选择了用成绩查询);System.out.println(你 要 查 询 的 成 绩是:);int cj=read.nextInt();ArrayList s5=x.

37、getStudentGrade(cj);for(int i=0;is5.size();i+)Student f=(Student)s5.get(i);System.out.println(学号:+f.num+,姓 名:+f.name+,年 龄:+f.age+,性 别:+f.sex+,班级:+f.classes+,成绩:+f.grade);else if(a=6)System.out.println(你选择了显示全部信息!);ArrayList s6=x.getAllStudents();for(int i=0;is6.size();i+)Student f=(Student)s6.get(i)

38、;System.out.println(学号:+f.num+,姓 名:+f.name+,年 龄:+f.age+,性 别:+f.sex+,班级:+f.classes+,成绩:+f.grade);else System.out.println(你选择错误!);break;case 4:System.out.println(你选择了修改学生!);System.out.println(请输 入 你 要 修 改 的 学号:);int nn=read.nextInt();Student sts=(Student)x.getStudentNum(nn).get(0);System.out.println(请

39、选择你要修改的属性(1、姓名)(2、年龄)(3、性别)(4、班级)(5、成绩);int rr=read.nextInt();if(rr=1)System.out.println(你 选 择 了 修 改 姓名!);System.out.println(请输入你将修改的姓名:);String b1=read.next();sts.name=b1;x.editStudentNum(sts);System.out.println(x.editStudentNum(sts)+学号为+nn+的学生已经把姓名该成+b1);else if(rr=2)System.out.println(你 选 择 了 修 改

40、 年龄!);System.out.println(请输入你将修改的年龄:);int b2=read.nextInt();sts.age=b2;x.editStudentNum(sts);System.out.println(x.editStudentNum(sts)+学号为+nn+的学生已经把年龄修改成+b2);else if(rr=3)System.out.println(你 选 择 了 修 改 性别!);System.out.println(请输入你将修改的性别:);String b3=read.next();sts.sex=b3;x.editStudentNum(sts);System.

41、out.println(x.editStudentNum(sts)+学号为+nn+的学生已经把性别修改成+b3);else if(rr=4)System.out.println(你 选 择 了 修 改 班级!);System.out.println(请输入你将修改的班级:);String b4=read.next();sts.classes=b4;x.editStudentNum(sts);System.out.println(x.editStudentNum(sts)+学号为+nn+的学生已经把班级修改成+b4);else if(rr=5)System.out.println(你选择了成绩!

42、);System.out.println(请输入你将修改的成绩:);int b5=read.nextInt();sts.setGrade(b5);x.editStudentNum(sts);System.out.println(x.editStudentNum(sts)+学号为+nn+的学生已经把成绩修改成+b5);else System.out.println(对不起,没有这个选项!);break;case 5:System.out.println(你选择了成绩排序!请选择(1.从高到低)(2.从低到高);int a1=read.nextInt();if(a1=1)System.out.pr

43、intln(你选择了从高到低排序);ArrayList s2=x.getAllStudents();Collections.sort(s2,new SortByGrade();for(int i=0;is2.size();i+)Student f=(Student)s2.get(i);System.out.println(学号:+f.num+,姓名:+f.name+,年龄:+f.age+,性别:+f.sex+,班级:+f.classes+,成绩:+f.grade);else if(a1=2)System.out.println(你选择了从低到高排序);ArrayList s2=x.getAll

44、Students();Collections.sort(s2,new SortByGrade2();for(int i=0;is2.size();i+)Student f=(Student)s2.get(i);System.out.println(学号:+f.num+,姓名:+f.name+,年龄:+f.age+,性别:+f.sex+,班级:+f.classes+,成绩:+f.grade);else System.out.println(对不起,没有这个选项!);break;default:System.out.println(对 不 起,你 选 择 错误!);System.out.print

45、ln(如果你还要继续请输入y,否则请输入N);YN=read.next();while(YN.equals(y);System.out.println(所有学生列表:);ArrayList s7=x.getAllStudents();for(int i=0;is7.size();i+)Student f=(Student)s7.get(i);System.out.println(学号:+f.num+,姓名:+f.name+,年 龄:+f.age+,性 别:+f.sex+,班 级:+f.classes+,成绩:+f.grade);class SortByGrade implements Comp

46、arator/自 定义 的成绩排序方法,成绩从高到低排序 public int compare(Object o1,Object o2)Student s1=(Student)o1;Student s2=(Student)o2;if(s1.getGrade()s2.getGrade()return 1;else return 0;5.程序运行结果展示添加学生后进入操作界面:排序功能展示:6.总结本次课程设计最后顺利地完成了任务,通过Java 程序设计的一些重要理论基础来实现学生信息系统,包含有学生的基本信息,可以完成学生的增删改查操作,可以对学生的成绩进行各种排序、查找等操作。从整个过程来看,

47、我发现了自己有很多不足的地方,首先是实际操作起来时总会遇到各种困难,要解决的问题是如何把理论知识运用到实际编程中。其次,我深深体会到要做出一个优秀的程序,除了关注结果之外,更应该关注如何提高执行效率,设计合理的结构和体现良好的可读性。不言而喻,懂得理论与实际相结合也是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。最后在此,对给过我帮助的所有同学和指导老师再次表示衷心的感谢!7.参考文献1、java 面向对象程序设计(第2 版)韩雪(主编)人民邮电出版社2012.9 2、java 程序设计实践教程刘万军等编著清华大学出版社2006.9 3、java 程序设计实践教程张思民、梁维娜编著清华大学出版社2006.8

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 实施方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁