学生选课系统代码加文档 - 范文中心

学生选课系统代码加文档

09/01

论文题目 学生选课系统

参考文献

[01]万波、郑海红. Java 语言程序设计(基础篇) [M]:机械工业出版社. 2008.6 [02]范立峰、林果园.java 程序设计教程 [M]: 人民邮电出版社.2010.4 [03]林信良.java 学习笔记 [M]:清华大学出版社.2010。4

摘要

随着科学技术的发展,计算机已经是日常生活中不可或缺的工具,将学生选课系统从人工管理方式转变成为计算机软件控制。具有检索迅速、查找方便、可靠性高、存储量达、保密性好、寿命长、成本低等巨大优点。以往的选课均是在计划模式下进行:每位教师将所开的课程名称,个人简介,课程限选人数,限选专业等信息交给教务处,教务处再将这些信息统一成册,分发给各个班级班长,由班长将本班的选课情况统计并返回教务处。这是一个相当长的周期,并且耗费大量的人力、物力,对选择结果没有控

制。

如今,学生选课系统已成为日常教学工作中必不可少的管理软件,可对学生信息、选修课程进行各方面的管理,为用户提供充足的信息和快捷的查询、修改手段。该系统将课程的基本信息录入之后,即可由学生选课,受限制专业的学生将无法选择该课程,同样,选课按照先后顺序,超过限制的人数,也不能选择该课程。选课管理系统既面向教师,又面向学生。不同的人,不同的身份操作的权限也不同。作为教师,他可以向教务处申请增加、删除、修改课程信息,并随时了解选修本课的学生名单。作为学生,他可以查询可以选什么课,已有多少学分,还差多少学分,最后进行选课。学分制——允许学生在计划的指导下,根据自己的条件、能力、志趣,有选择地支配自己的学习。学生选系统实现了对信息数据的浏览、查询、编辑和管理等基本数据库操作,采取模块化的编写思想,提高了可读性,同时提高了开发效率,从而实现了校园无纸化办公,提高选课的效率, 减轻选课操作的工作量, 从而提高教学管理的效率。

关键词:增加 删除 修改 查询,选课

目 录

第1章 项目分析 ............................................................................................................................ 4

1.2技术分析 ........................................................................................................................... 6 第2章 实现 .................................................................................................................................... 7 2.1 功能模块1 . ............................................................................................................................... 7 2.2流程图 ............................................................................................................................... 7 2.1.2界面 ................................................................................................................................ 8 2.1.3代码 ................................................................................................................................ 9 2.2 功能模块2 .......................................................................................................................... 13 2.2.2界面 .............................................................................................................................. 14 2.2.3代码 .............................................................................................................................. 15 第三章.结束语 . ...................................................................................................................... 17

第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 的小应用程序 Java Applet ,不必担心病毒的感染和恶意的企图,Java 小应用程序将限制在 Java 运行环境中,不允许它访问计算机的其它部

分。摘自:java语言的八大优点一文

第2章 实现

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

2.1 功能模块1

实现课程信息的维护(即增删改查),老师可以在新学期即将开始是把新课程添加进去,把旧的课程信息删除,从而方便教师。实现此功能使用的方法有readCourseMessage()(查看课程信息)、delCourse()(删除课程信息)、addCourse()(增加课程信息)、update ()(修改课程信息) 。

2.1.2界面

1. 查询课程信息结果

2. 增加课程信息

3. 删除课程信息操 4.. 更新课程信息

2.1.3代码

1. 课程信息的查看:

public Course[] readCourseMessage()throws FileNotFoundException{

);

coursesOfSystem[numberOfCourses].courseTerm coursesOfSystem[numberOfCourses].majorOfStudent

= =

readMessage.next(); readMessage.next();

coursesOfSystem[numberOfCourses].courseCredit=readMessage.nextDouble(

coursesOfSystem = new Course[1]; numberOfCourses=0;

java.io.File read = new java.io.File("Course.txt"); Scanner readMessage = new Scanner(read); while(readMessage.hasNext()){

if (numberOfCourses == coursesOfSystem.length) {

}

= = = =

System.arraycopy(coursesOfSystem, 0, newReadCourse, coursesOfSystem = newReadCourse;

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

0, coursesOfSystem.length);

coursesOfSystem[numberOfCourses] = new Course(); coursesOfSystem[numberOfCourses].courseAttribute coursesOfSystem[numberOfCourses].courseNum coursesOfSystem[numberOfCourses].courseName coursesOfSystem[numberOfCourses].courseHour

readMessage.next(); readMessage.next(); readMessage.next(); 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;

} }

2. 删除学课程

public void delCourse() throws FileNotFoundException, IOException{ 信");

Course [] newCs = new Course[numberOfCourses]; System.arraycopy(coursesOfSystem, coursesOfSystem = newCs; SavaCoursesMessage();

0,

newCs,

} else{

delStudent(coursesOfSystem[indexOfDel].courseName); for(int i=indexOfDel;i

numberOfCourses--;

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

if(indexOfDel==-1){

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

int indexOfDel =SearchCourse(); readMessage.close(); return coursesOfSystem; numberOfCourses++;

numberOfCourses);

} 3. 增加课程

public void addCourse() throws IOException{ //添加新课程

{

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

c"));

{

System.out.println("1,重新输入课程名 2,返回"); } while(true){ System.out.println("请输入课程名:"); String newName = CheakCourseName(input.next()); if(newName.equals("0")) course.department =input.next(); course.courseAttribute="Public"; System.out.println("请输入开课院系:"); course.courseNum=Integer.toString(getNextNum(readCourseMessage(),"Publi } else{ course.courseAttribute="Major"; System.out.println("请选择:1,添加课程 2,返回"); if(input.nextInt()==2) break; course= new Course(); while(true){ System.out.println("您想增加:1,专业选修课 2,公共选修课"); if(input.nextInt()==1)

}

}

else{ } break ; 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("请输入开课年份):"); String years = input.next();

System.out.println("请选择:1 "+years+"上学期 2 "+years+"下学期 ");

}

4. 更新课程信息:

public void UpDateCours()throws

IOException ,FileNotFoundException{

int index = SearchCourse(); Scanner input=new Scanner(System.in ); if (index==-1){ if(input.nextInt()==1) course.courseTerm = years+"上"; else course.courseTerm = years+"下"; System.out.println("请输入此课程面向的专业:"); course.majorOfStudent = input.next(); course.numCourse=0; SavaCourseMessage(); System.out.println("课程已添加!"); }

System. out .println(" 系统没有找到您想操作的数据!请核实信息!" ); } else { while (true ){

System. out .println(" 您想修改:1,学时2,学分3,开课学期4,开课院系5, 退出" );

}

{

String years = input.next(); System. out .println(" 请输入新的开课年份:" ); else if (choose==2){ } else if (choose==3) System. out .println(" 请输入新的学分:" ); int choose=input.nextInt(); if (choose==1){ System. out .println(" 请输入新的学时:" ); coursesOfSystem [index].courseHour = input.next(); coursesOfSystem [index].courseCredit = input.nextDouble();

System. out .println(" 请选择:1," +years+" 上学期 2,"+years+" 下学期 ");

}

}

}

} if (input.nextInt()==1) } else if (choose==4){ coursesOfSystem [index].courseTerm = years+" 上" ; else coursesOfSystem [index].courseTerm = years+" 下" ; if (coursesOfSystem [index].courseAttribute .equals("Public" )){ System. out .println(" 请输入开课院系:" ); coursesOfSystem [index].department = input.next(); }

2.2 功能模块2

学生选课的实现,学生可以选择每学期必修的专业选修课和公共选修课,

选则公共选修课时还可以查看自己选修课程的学分,以便自己可以有选择的选修课程。方便了学生选课,也为老师节省了不少时间。通过程序chooseCourse()来实现学生选课功能。

2. 选课功能流程图

2.2.2界面

2.2.3代码

public void chooseCourse() throws IOException{ //选课功能

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

. numCourse

j=0;j

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

} } Print(" 您已选过此课程!" ); choose = true ; break ; if (choose) break ; if (student . numberOfCourses ==student . coursesOfStudent . length ){

String[] newCourses = new

String[student . coursesOfStudent . length +1];

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

} student . coursesOfStudent = newCourses; student . coursesOfStudent [student . numberOfCourses ] = new String();

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(" 你成功选择此课程" ); } else if (input .nextInt()==2) System. out .println(" 请重新选择" ); else } } System. out .println(" 抱歉,您只能选4门课程" );

}

第三章.结束语

为期三周的课题实践伴随着这个报告的诞生宣告了一个段落,我们在做本课题的三周里,前两周我们主要是写代码,最后一周就是写实践报告。 这次我们的课题是用java 编写学生选课系统,通过这三个周我们两个人的努力,以及于老师的指点,总算出来点成绩我们在规定的时间里勉强完成了我们的课题如果真要评价下的话,我们的课题完成的只能说是还行,我们刚开始的时候感觉到很迷茫,随后我们经过查资料书、上网查,慢慢的有点思路了。很多都是我们所学习的内容,比起C 语言编程我觉得java 更容易些,因为在C 里面我们的方法都是自己来想自己来写,但是java 就不一样了,它给我们提供了现成的方法等我们来调用。我们开发的这个小小学生选课系统可以帮助我们记录课程信息、个人信息,可以进行网上选课。

通过这个系统的编程我们学到了很多,学会了很多我们平时学不到的东西,我们可以将信息保存到件中,虽然我们平时我们编一些小程序但是没有系统的做东西,通过系统我们把我们学的东西系统化了,把我们所学的只是融入到一个小的系统里,让我们学会了融合。我们的这个程序还有很多漏洞和不足,我们的系统功能不够齐全,没法完成对学生成绩的查询和评估。

在我所学的语言当中,我自认为JA V A 是一门比较强大的面向对象的编程语言,不仅仅因为它的跨平台性,更多的是因为它的灵活多变和实用性较强,可以说比较的经典和强悍。所以学好java 语言有很大的用处,这次实训,面对一道陌生的题目和要求时,不应慌张和无措,首先应该想到这和课本上的哪些知识具有结合点,回忆和分析这种结构的算法和具体实施方法,综合考虑其他的方面,例如:该题的易写性和易懂性及其他的问题的可利用性。在编写时,一个小小的符号,一个常量变量的设定,这都无不考量着我们的细心和严谨,所以学习JA V A ,不仅对我们以后学习其他语言有很大的好处,而且也让我们知道了和理解了作为一个编程人员首先应具有的良好心理素质,那就是冷静思考

和专心致志。对待学术知识应该是严谨和认真。 这次实训,我们更多学到的是不懂就问和自己应该尽自己的全力去尝试,哪怕失败,只要自己尽自己的全力,和身边同学一起探讨而不是抄袭,团结合作,发挥团队意识,最后在自己的努力下,终于运行成功,这种成就感美不可言,心情愉悦至极。

作为学习软件工程的一名学生,我深深地知道编程的重要性,这也让我明 白了,在未来的学习过程中一定要多编程,让自己对代码有一定的熟悉感。想要学好本专业,只靠读书是远远不够的,多编程才是硬道理。 给我留下深刻印象的一点是:面对浩大的工程我们要学会转化,分割。再大的一个工程,在被N 次分给之后就会变得很简单,很简洁。能学到这种思想我觉得很重要,这是在将来的学习之中要大力运用的一点。最后,我感觉在本次课题中我们学到了很多东西,得益于老师和同学的帮助再加上自己的努力未来的路还很漫长,我们将继续前进。不够,在未来的学习过程中,我们应该更加的努力。


相关内容

  • 学生网上选课系统毕业论文
    题 目:专 业:准考证号:学生姓名:指导教师:起讫日期: 毕 业 论 文 学生网上选课系统 摘 要 随着在校大学生的不断扩增,学生选课系统也是在学校对学生管理方面中不可缺少的一部分.过去的选课方法是采用人工的方法去管理文件档案,而这种管理方 ...
  • 信息管理系统大作业
    教务管理信息系统 一.需求分析与系统(战略)规划 在学校,教务管理工作是非常重要的一项工作,它负责整个学校的日常教学安排,学生的学籍管理等等.以前都是人工进行操作.随着学校规模扩大,教务处的教务管理工作量大大加重.随着计算机应用的发展,教务 ...
  • 教务管理系统质量分析报告
    教务管理系统 质量分析报告 1. 引言(概述) 1.1 编写目的 为了便于涉及到软件开发的其他部门的工程师,以及测试结束后进行后续工作的工程师了解本软件在经过测试工程师的测试后达到了什么样的质量情况,软件测试组长编写了该文档. 1.2 背景 ...
  • 学员培训手册
    一.项目首页简介 (图1) 二.用户登录 注:可以登陆网址:http://www.teacher.com.cn (如图2-1), (图2-1) 点击"教师培训项目"即可进入各项目列表界面,在项目查找中选择"河北 ...
  • 数据库原理实验指导书(Mysql)
    数据库原理实验指导书 实验项目列表 实验一:数据库的定义实验 一.实验目的: 1.理解MySQL Server 6.0 服务器的安装过程和方法: 2.要求学生熟练掌握和使用SQL .T-SQL .SQL Server Enterpriser ...
  • 数据库实验报告
    数据库技术I 实验报告 系别:计算机科学与技术 班级:计11-2班 姓名:XXX 学号:[1**********] 成绩: 评语: 指导教师签字: 日期: <数据库技术I >实验报告 一. 实验题目 掌握SQL Server 2 ...
  • 问卷调查系统的设计与实现----谢传海
    郑州师范学院 毕业论文(设计) 题目 问卷调查系统的设计与实现 姓名 学号 院 系信息科学与技术学院 专业计算机可与与技术 年级班级 2016年5月20日 毕业论文(设计)作者声明 本人郑重声明:所呈交的毕业论文是本人在导师的指导下独立进行 ...
  • [相对论对人类社会的影响]教学大纲
    <相对论对人类社会的影响>教学大纲 课程代码:9910110 适用专业:自然学科类专业和社会学科类专业 总学时数:18 学时学分: 1学分 理论学时:18学时 编制单位(或执笔者):数计系刘平 编制时间:2013年11月 一.课 ...
  • [软件工程]优秀课程建设总结报告
    <软件工程>优秀课程建设总结报告 在德州学院<软件工程>优质课程建设的工作中,我们课程组全体成员认识到<软件工程>是计算机软件专业的一门核心基础课程,搞好这门课程的建设,对于提高计算机科学与技术专业学生的 ...
  • 真题及答案
    2008年4月全国计算机等级考试四级笔试试卷 数据库工程师 选择题 (1) 数据模型定义子数据库中数据的组织.描述.存储和操作规范,可以分为概念模型.数据结构模 型和物理模型三大类.概念模型的典型代表是 A A )实体-联系模型 B )关系 ...