Java学生管理系统
实训报告
学 号:
姓 名:
班 级:
指导老师:
一、项目计划
(1)项目名称:学生信息管理系统
(2)实训地点:
(3)小组成员:
二、系统总体设计
(1)需求分析
学生信息管理系统,是对学生的个人信息,课程信息,成绩信息以信息化的方式进行管理,最大限度地减少各个环节可能出现的错误,有效减少因人力资源局限性导致的存储信息量大,信息存储错误,混淆等问题,合理进行信息存储,使学校能够合理录入学生的个人资料,学期成绩情况,以及课程安排,为学校师生的工作提供后方面。
通过实际调查,要求学生信息管理系统具有以下功能:
1.界面设计美观大方,方便,快捷,操作灵活。
2.实现强大的学生个人信息,课程信息,成绩信息的查询,修改,录入,删除管理。
3.实现强大的联系人信息及其类别的查询,录入,删除管理。
4.能够在不同的的操作系统下运行,不局限于特定的平台。
5.提供数据库备份与恢复功能。
6.提供友情平台,例如:计算机,方便对成绩的操作;
(2)项目计划安排
一项任务的成功完成,必须依靠合理的计划安排以及各种资源的有效利用.有计划、有步骤地进行软件开发,除了可以提高开发进度外,更能明确项目组各成员之间的职责及任务。项目进度表要安排每个成员的任务,并要求成员每天修改自己的进度,保证项目管理人员可以随时查看整个项目的进度,以及时发现问题,调整工作策略.
(3)概要设计
概要设计是根据系统分析的需求和工作环境的情况对整个软件的总体结构进行大致的设计.概要设计要坚持以下几个原则:1:细分原则2:提高代码重用性:3:从上而下层层分析4:一致性原则5:提高性6:模块的大小要尽量适中.由于概要设计是整个设计的重中之重,牵一发而动全身,所以要努力做一个好的概要设计,才能在今后软件开发过程中不再反复。现在软件行业流行模式化驱动设计,将一些市场上比较成功的模式拿来用在自己的设计中.
(4)详细设计
概要设计是为了明确开发人员的工作步骤和工作目标。详细设计使开发人员可以轻松地完成代码的编写,并熟悉所编写的业务流程。
(5)数据表设计
根据系统所需,可以得出需要以下数据表信息:
需要管理学生信息:学生表。
需要管理教师信息:教师表。
需要管理课程信息:课程表.
需要管理选课信息:选课表。
需要管理院系信息:院系表。
需要管理管理员信息:管理员表。
(6)系统功能结构
(7)系统功能设计
系统功能框架:作为一个学生管理系统,本系统的设计主要包含:系统登录、学生信息管理、班级管理、课程管理和用户管理。学生管理系统主框架的主要结构.
(8)数据库设计
表1 | Student(学生)表 | |
字段名 | 数据类型 | 备注 |
stuID | varchar(20) not null | 学号 |
stuPwd | varchar(20) not null | 密码 |
stuName | varchar(10) not null | 姓名 |
stuDepart | int | 系院号 |
stuGrade | int | 年级 |
stuClass | int | 班级 |
表2 | Teacher(教师)表 | |
字段名 | 数据类型 | 备注 |
teaID | varchar(20) not null | 教师编号 |
teaPwd | varchar(20) not null | 教师密码 |
teaName | varchar(10) not null | 教师姓名 |
teaDepart | int | 系院号 |
表3 | Cource(课程)表 | |
字段名 | 数据类型 | 备注 |
courceID | varchar(20) not null | 课程编号 |
tealID | varchar(20) not null | 教师编号 |
courceName | varchar(100) not null | 课程名称 |
courceTime | varchar(20) | 上课时间 |
courceAddress | varchar(50) | 上课地点 |
courceInfo | text | 课程简介 |
表4 | Elect(选课)表 | |
字段名 | 数据类型 | 备注 |
electId | int not null | 选课编号 |
stuID | varchar(20) not null | 学生编号 |
teaID | varchar(20) not null | 教师编号 |
courceID | varchar(20) not null | 课程编号 |
score | int | 成绩 |
表5 | Users(系统管理员)表 | |
字段名 | 数据类型 | 备注 |
adminName | varchar(20) not null | 管理员用户名 |
adminPwd | varchar(20) | 管理员密码 |
表6 | Depart(系院)表 | |
字段名 | 数据类型 | 备注 |
departed | int not null | 系院号 |
departName | varchar(100) | 系院名称 |
设计好软件所需要的全部数据表后,如何将设计好的这些图形元素转化成SQL Server中的数据库呢?PowerDesigner的一个优点就是对数据库可逆.下面是连接数据库的具体步骤:
1 打开PowerDesigner,出现工作界面.
2 单击“数据库|生成数据库”菜单命令,弹出对话框。这里可以看到所有与生成数据库有关的选择,比如生成文件目的地、是否生成视图、是否生成主键索引等。
3 修改SQl脚本的保存地址,单击“确定”按钮,如果不提示错误,在所选的目的地就能发现一个crebas.sql脚本文件。所生成的脚本文件中并没有关于数据库的信息,因为所创建的仅仅是数据库中表的所有信息.下面就要创建一个数据库。
4 打开SQL Server,出现其控制台窗口。这里主要包含对象资源管理器和摘要2个区域.
5 在对象资源管理器中,右键单击“数据库”项目,在弹出的菜单中选择“新建数据库”,就出现了新建数据库的窗口。
6 在“数据库名称”文本框内,填写本项目数据库的名称:StudentManager。单击“确定”按钮,就生成了程序所需的数据库,并返回到数据库界面.
7 单击“常规工具栏|新建查询"按钮,系统自动创建一个名为“SQLQuery1。sql"的文本窗口,并显示在摘要区内。
8 打开第3步生成的脚本文件,按Ctrl+A组合键,选择文件里的所有内容,复制到打开的查询文件中.
9 检查一下复制过来的代码是否完整,然后在“常规工具栏|数据库选择”下拉框中选择“StudentManager”。
10 单击“常规工具栏|执行”按钮,执行脚本.如果提示“命令成功执行”,则生成了完整的数据库文件.
在完成对数据库中自动生成的表的检查后,如果没有问题,整个数据库设计就完成了。为了避免日后的重复操作,在设计数据库时,一定要全面掌握每个表的信息内容,因为后期再添加字段将会带来极高的维护成本.
(10)项目的测试
测试是为了更好地完成项目的功能,虽然测试并不能完全模拟实际发生的流程,但可以降低错误的发生概率,提高软件项目的稳定性。按照极限编程的理论,写测试就是对软件进行设计的过程,它的重要性甚至超过了完成实际功能的代码.先将测试写完,然后再来实现代码,这样所有的测试通过之日也就是程序完成之时.虽然这些理论并不能完全实践,但测试的重要性是毋庸置疑的.
四、实训总结
1.第一次完成项目,深刻的体会到软件整体架构的重要性,编程不能想到哪编到哪,这样在项目的后期会出现很多无法解决的致命错误,所以软件的整体架构的成败将会决定软件的成败,软件分析架构的时间应该占整个项目的大部分时间。
2.Java不仅仅是一个实训更是检验一个人综合能力的测试题。它在考察知识的同时,也考验了一个人的心理素质,沟通交流,表达能力,所以,在做好java任务的同时必须能够协调好这些。
3.软件测试的过程应该贯穿整个软件设计的过程,而不是等做好了再测试,需求分析的时候就应该测试了,而且要反复循环的测试。
4.虽然现在对需求分析还很模糊,但应该强化自己的需求分析的能力,一个好的需求分析才是软件的灵魂。
5.团队精神非常重要,需要不断的沟通。
6.总体上由于自己本身能力有限,还需要进一步学习。
五、实训心得
在几天的实训中我真正体会到这几点。首先兴趣是关键,我的学习完全是兴趣导向的,所以压力并不大。因为有兴趣,所以我会很想充分理解一切细节。又因为理解,所以许多原本片片断断的知识都可以渐渐互相融会贯通,累积技术能量、理论和实务之间的玻璃被打破了,学习效率才能倍增。
其次态度要端正,摆正自己的心态,不要以为什么东西上网搜搜就可以了,一定要有自己的东西。只有自己付出过,当程序运行成功时的那种喜悦才会令自己有一种莫名的自豪感。态度决定一切!然后还要有敢于挑战不安于现成的程序,要敢于用多种方法实现一个目的。
这次的实训也让我明白了要做好一个系统,团队合作永远是最重要的,一个人的力量永远是渺小的,团队分工、合作会使得问题更加的简单、解决的迅速。