学生选课系统代码加文档.docx

上传人:b****6 文档编号:5281352 上传时间:2022-12-14 格式:DOCX 页数:15 大小:134.70KB
下载 相关 举报
学生选课系统代码加文档.docx_第1页
第1页 / 共15页
学生选课系统代码加文档.docx_第2页
第2页 / 共15页
学生选课系统代码加文档.docx_第3页
第3页 / 共15页
学生选课系统代码加文档.docx_第4页
第4页 / 共15页
学生选课系统代码加文档.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

学生选课系统代码加文档.docx

《学生选课系统代码加文档.docx》由会员分享,可在线阅读,更多相关《学生选课系统代码加文档.docx(15页珍藏版)》请在冰豆网上搜索。

学生选课系统代码加文档.docx

学生选课系统代码加文档

 

论文题目学生选课系统

 

参考文献

[01]万波、郑海红.Java语言程序设计(基础篇)[M]:

机械工业出版社.2008.6[02]范立峰、林果园.java程序设计教程[M]:

人民邮电出版社.2010.4[03]林信良.java学习笔记[M]:

清华大学出版社.2010。

4

 

摘要

随着科学技术的发展,计算机已经是日常生活中不可或缺的工具,将学生选课系统从人工管理方式转变成为计算机软件控制。

具有检索迅速、查找方便、可靠性高、存储量达、保密性好、寿命长、成本低等巨大优点。

以往的选课均是在计划模式下进行:

每位教师将所开的课程名称,个人简介,课程限选人数,限选专业等信息交给教务处,教务处再将这些信息统一成册,分发给各个班级班长,由班长将本班的选课情况统计并返回教务处。

这是一个相当长的周期,并且耗费大量的人力、物力,对选择结果没有控

制。

如今,学生选课系统已成为日常教学工作中必不可少的管理软件,可对学生信息、选修课程进行各方面的管理,为用户提供充足的信息和快捷的查询、修改手段。

该系统将课程的基本信息录入之后,即可由学生选课,受限制专业的学生将无法选择该课程,同样,选课按照先后顺序,超过限制的人数,也不能选择该课程。

选课管理系统既面向教师,又面向学生。

不同的人,不同的身份操作的权限也不同。

作为教师,他可以向教务处申请增加、删除、修改课程信息,并随时了解选修本课的学生名单。

作为学生,他可以查询可以选什么课,已有多少学分,还差多少学分,最后进行选课。

学分制——允许学生在计划的指导下,根据自己的条件、能力、志趣,有选择地支配自己的学习。

学生选系统实现了对信息数据的浏览、查询、编辑和管理等基本数据库操作,采取模块化的编写思想,提高了可读性,同时提高了开发效率,从而实现了校园无纸化办公,提高选课的效率,减轻选课操作的工作量,从而提高教学管理的效率。

关键词:

增加删除修改查询,选课

 

第1章项目分析

目标系统具备以下功能。

1.教师客户端功能

*可以维护学生信息(即学生信息的增删改查);

*可以维护课程信息(即课程信息的增删改查);

*可以统计每门课的选课学生及每个学生选修的课程;

2.学生客户端功能

*学生可以注册账户;

*学生可以查看自己的基本信息;

*学生端可以进行远程选课,并且可以查看自己已选的课程信息。

1.1问题描述

1.课题描述:

课程基本信息:

课程名,课时,开课学期,学分

专业选修课信息包括:

课程名,课时,开课学期,学生,所属专业

公共选修课信息包括:

课程名,课时,开课学期,学生,面向专业,开课系部

学生信息:

学号,姓名,专业,选课信息

2.功能要求:

(1)课程信息的维护:

查询课程信息情况、增加课程信息、删除课程信息、更新课程信息。

(2)学生信息的维护:

查询学生信息情况、增加学生信息、删除学生信息、更新学生信息。

(3)选课:

每人每学期选课不能超过4门;只能选自己专业的专业选修课或面向自己专业的公共选修课。

(4)选课信息:

记录学生的选课情况,包括课程名,选课时间(学期)。

(5)统计模块:

每个学生选修课程的门数,每门课程选修的学生人数。

学生选课系统流程图:

1.2技术分析

该学生选课系统的的实现用的是eclipse开发工具,是用java语言编写的,Java语言是纯面向对象的语言,程序的结构由一个以上的类和(或)接口组成。

程序的设计集中于类与对象、继承与接口上。

通过继承机制,子类可以使用父类所提供的属性与方法,实现了软件代码的复用。

.面向对象基于对象的编程更符合人的思维模式,使人们更容易编写程序。

在实际生活中,我们每时每刻都与对象在打交道。

我们用的钢笔,骑的自行车,乘的公共汽车等。

而我们经常见到的卡车,公共汽车,轿车等都会涉及以下几个重要的物理量可乘载的人数,运行速度,发动机的功率,耗油量,自重,轮子数目等。

另外,还有几个重要的功能加速功能,减速功能,刹车,转弯功能等。

我们也可以把这些功能称作是他们具有的方法,而物理量是它们的状态描述。

仅仅用物理量或功能不能很好的描述它们。

在现实生活中,我们用这些共有的属性和功能给出一个概念机动车类。

一个具体的轿车就是机动车类的一个实例对象.Java语言与其它面向对象语言一样,引入了类的概念,类是用来创建对象的模板,它包含被创建的对象的状态描述和方法的定义。

与平台无关是Java语言最大的优势。

其它语言编写的程序面临的一个主要问题是操作系统的变化,处理器升级以及核心系统资源的变化,都可能导致程序出现错误或无法运行。

Java的虚拟机成功地解决了这个问题,Java编写的程序可以在任何安装了Java虚拟机JVM的计算机上正确的运行,Sun公司实现了自己的目标“一次写成,处处运行”。

Java程序的基本组成单元就是类,有些类是自己编写的,有一些是从类库中引入的,而类又是运行时动态装载的,这就使得Java可以在分布环境中动态地维护程序及类库,而不像C++那样,每当其类库升级之后,相应的程序都必须重新修改,编译。

当你准备从网络上下载一个程序时,你最大的担心是程序中含有恶意的代码,比如试图读取或删除本地机上的一些重要文件,甚至该程序是一个病毒程序等。

当你使用支持Java的浏览器时,你可以放心地运行Java的小应用程序JavaApplet,不必担心病毒的感染和恶意的企图,Java小应用程序将限制在Java运行环境中,不允许它访问计算机的其它部分。

摘自:

java语言的八大优点一文

第2章实现

学生信息和课程信息用文件实现保存,查看。

2.1功能模块1

实现课程信息的维护(即增删改查),老师可以在新学期即将开始是把新课程添加进去,把旧的课程信息删除,从而方便教师。

实现此功能使用的方法有readCourseMessage()(查看课程信息)、delCourse()(删除课程信息)、addCourse()(增加课程信息)、update()(修改课程信息)。

2.2流程图

 

2.1.2界面

1.查询课程信息结果

1,查询课程信息情况2、增加课程信息3、删除课程信息4、更新课程信息5、退出

1专业选修课

课程号课程名学时学分开课学期面向专业已选限选可选

101Java727.02013上软件工程510095

102英语口语605.02013下软件工程410096

公共选修课

课程号课程名学时学分开课学期面向专业已选限选可选开课院系

202音乐鉴赏151.02013下软件0100100软件工程

 

2.增加课程信息

1,查询课程信息情况2、增加课程信息3、删除课程信息4、更新课程信息5、退出

2

请选择:

1,添加课程2,返回

1

您想增加:

1,专业选修课2,公共选修课

2

请输入开课院系:

 

1,查询课程信息情况2、增加课程信息3、删除课程信息4、更新课程信息5、退出

3

请输入课程号:

202

你已成功删除此课程。

3.删除课程信息操

 

4..更新课程信息

1,查询课程信息情况2、增加课程信息3、删除课程信息4、更新课程信息5、退出

4

请输入课程号:

102

您想修改:

1,学时2,学分3,开课学期4,开课院系5,退出

 

2.1.3代码

1.课程信息的查看:

publicCourse[]readCourseMessage()throwsFileNotFoundException{

coursesOfSystem=newCourse[1];

numberOfCourses=0;

java.io.Fileread=newjava.io.File("Course.txt");

ScannerreadMessage=newScanner(read);

while(readMessage.hasNext()){

if(numberOfCourses==coursesOfSystem.length){

Course[]newReadCourse=newCourse[coursesOfSystem.length+1];

System.arraycopy(coursesOfSystem,0,newReadCourse,0,coursesOfSystem.length);

coursesOfSystem=newReadCourse;

}

coursesOfSystem[numberOfCourses]=newCourse();

coursesOfSystem[numberOfCourses].courseAttribute=readMessage.next();

coursesOfSystem[numberOfCourses].courseNum=readMessage.next();

coursesOfSystem[numberOfCourses].courseName=readMessage.next();

coursesOfSystem[numberOfCourses].courseHour=readMessage.next();

coursesOfSystem[numberOfCourses].courseCredit=readMessage.nextDouble();

coursesOfSystem[numberOfCourses].courseTerm=readMessage.next();

coursesOfSystem[numberOfCourses].majorOfStudent=readMessage.next();

if(coursesOfSystem[numberOfCourses].courseAttribute.equals("Public")){

coursesOfSystem[numberOfCourses].department=readMessage.next();

}

coursesOfSystem[numberOfCourses].numCourse=readMessage.nextInt();//异常代码

coursesOfSystem[numberOfCourses].surplus=coursesOfSystem[numberOfCourses].recruit-coursesOfSystem[numberOfCourses].numCourse;

numberOfCourses++;

}

readMessage.close();

returncoursesOfSystem;

}

2.删除学课程

publicvoiddelCourse()throwsFileNotFoundException,IOException{

intindexOfDel=SearchCourse();

if(indexOfDel==-1){

System.out.println("系统没有找到您想操作的数据!

请核实信");

}

else{

delStudent(coursesOfSystem[indexOfDel].courseName);

for(inti=indexOfDel;i

coursesOfSystem[i]=coursesOfSystem[i+1];

}

numberOfCourses--;

Course[]newCs=newCourse[numberOfCourses];

System.arraycopy(coursesOfSystem,0,newCs,numberOfCourses);

coursesOfSystem=newCs;

SavaCoursesMessage();

}

}

3.增加课程

publicvoidaddCourse()throwsIOException{//添加新课程

course=newCourse();

while(true){

System.out.println("请选择:

1,添加课程2,返回");

if(input.nextInt()==2)

break;

System.out.println("您想增加:

1,专业选修课2,公共选修课");

if(input.nextInt()==1)

{

course.courseNum=Integer.toString(getNextNum(readCourseMessage(),"Major"));

course.courseAttribute="Major";

}

else{

course.courseNum=Integer.toString(getNextNum(readCourseMessage(),"Public"));

course.courseAttribute="Public";

System.out.println("请输入开课院系:

");

course.department=input.next();

}

while(true){

System.out.println("请输入课程名:

");

StringnewName=CheakCourseName(input.next());

if(newName.equals("0"))

{

System.out.println("1,重新输入课程名2,返回");

if(input.nextInt()==2)

break;

}

else{

course.courseName=newName;

break;

}

}

if(course.courseName.equals("0"))break;

System.out.println("请输入学时:

");

course.courseHour=input.next();

System.out.println("请输入学分:

");

course.courseCredit=input.nextDouble();

System.out.println("请输入开课年份):

");

Stringyears=input.next();

System.out.println("请选择:

1"+years+"上学期2"+years+"下学期");

if(input.nextInt()==1)

course.courseTerm=years+"上";

elsecourse.courseTerm=years+"下";

System.out.println("请输入此课程面向的专业:

");

course.majorOfStudent=input.next();

course.numCourse=0;

SavaCourseMessage();

System.out.println("课程已添加!

");

}

}

4.更新课程信息:

publicvoidUpDateCours()throwsIOException,FileNotFoundException{

intindex=SearchCourse();

Scannerinput=newScanner(System.in);

if(index==-1){

System.out.println("系统没有找到您想操作的数据!

请核实信息!

");

}

else{

while(true){

System.out.println("您想修改:

1,学时2,学分3,开课学期4,开课院系5,退出");

intchoose=input.nextInt();

if(choose==1){

System.out.println("请输入新的学时:

");

coursesOfSystem[index].courseHour=input.next();

}

elseif(choose==2){

System.out.println("请输入新的学分:

");

coursesOfSystem[index].courseCredit=input.nextDouble();

}

elseif(choose==3)

{

System.out.println("请输入新的开课年份:

");

Stringyears=input.next();

System.out.println("请选择:

1,"+years+"上学期2,"+years+"下学期");

if(input.nextInt()==1)

coursesOfSystem[index].courseTerm=years+"上";

elsecoursesOfSystem[index].courseTerm=years+"下";

}

elseif(choose==4){

if(coursesOfSystem[index].courseAttribute.equals("Public")){

System.out.println("请输入开课院系:

");

coursesOfSystem[index].department=input.next();

}

}

}

}

}

2.2功能模块2

学生选课的实现,学生可以选择每学期必修的专业选修课和公共选修课,选则公共选修课时还可以查看自己选修课程的学分,以便自己可以有选择的选修课程。

方便了学生选课,也为老师节省了不少时间。

通过程序chooseCourse()来实现学生选课功能。

2.选课功能流程图

 

2.2.2界面

1,个人信息2,课程信息3,选课4、退出

3

请输入课程号:

103

您确定选择此课程吗?

1,是2,否

1

你成功选择此课程

 

2.2.3代码

publicvoidchooseCourse()throwsIOException{//选课功能

if(student.numberOfCourses

curriculum.showCourseName();

StringcourseNumber=input.next();

for(inti=0;i<10;i++){

intupDate=SearchCourse();

if(upDate==-1){

Print("系统没有找到您想操作的数据!

请重新输入!

");

}

else

break;

}

intii=0;

Coursec=newCourse();

booleanchoose=false;

for(inti=0;i

if(courseNumber.equals(curriculum.coursesOfSystem[i].courseNum)&&curriculum.coursesOfSystem[i]

.numCourse

for(intj=0;j

if(curriculum.coursesOfSystem[i].courseName.equals(student.coursesOfStudent[j])){

Print("您已选过此课程!

");

choose=true;

break;

}

}

if(choose)

break;

if(student.numberOfCourses==student.coursesOfStudent.length){

String[]newCourses=newString[student.coursesOfStudent.length+1];

System.arraycopy(student.coursesOfStudent,0,newCourses,0,student.coursesOfStudent.length);

student.coursesOfStudent=newCourses;

}

student.coursesOfStudent[student.numberOfCourses]=newString();

student.coursesOfStudent[student.numberOfCourses]=curriculum.coursesOfSystem[i].courseName;

curriculum.coursesOfSystem[i].numCourse++;

student.numberOfCourses++;

ii=i;

c=curriculum.coursesOfSystem[i];

}

}

if(!

choose){

System.out.println("您确定选择此课程吗?

1,是2,否");

if(input.nextInt()==1){

Sava=true;

curriculum.changeCourse(c,ii);

writeStudentMessage();

System.out.println("你成功选择此课程");

}

elseif(input.nextInt()==2)

System.out.println("请重新选择");

else

System.out.println("抱歉,您只能选4门课程");

}

}

}

 

第三章.结束语

为期三周的课题实践伴随着这个报告的诞生宣告了一个段落,我们在做本课题的三周里,前两周我们主要是写代码,最后一周就是写实践报告。

这次我们的课题是用java编写学生选课系统,通过这三个周我们两个人的努力,以及于老师的指点,总算出来点成绩我们在规定的时间里勉强完成了我们的课题如果真要评价下的话,我们的课题完成的只能说是还行,我们刚开始的时候感觉到很迷茫,随后我们经过查资料书、上网查,慢慢的有点思路了。

很多都是我们所学习的内容,比起C语言编程我觉得java更容易些,因为在C里面我们的方法都是自己来想自己来写,但是java

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1