完整版学生管理系统的设计与实现.docx
《完整版学生管理系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《完整版学生管理系统的设计与实现.docx(13页珍藏版)》请在冰豆网上搜索。
完整版学生管理系统的设计与实现
学生管理系统的设计与实现
第一章系统概述
1.1系统开发背景
随着高校规模的不断扩大,学生数量也急剧增加,有关学生的各种信息量也成倍增长,各类学生的统计分析工作也越来越困难,面对如此繁杂的工作,为了能够为高校学生信息管理提供一种更加高效实用的管理手段,为学生信息的存储、计算、统计、分析、交流提供一种更加安全快捷的信息平台,并且能够减少大量的人工操作,以及在人工操作中由于人为因素而引起的数据错误,保证学生信息数据的安全性和完整性,使学生管理人员能够轻松,正确无误地完成各项工作,为学生管理工作服务。
意义:
1、保证信息的准确性和时效性,随时通过计算机对系统进行管理,使得学生信息处于最新状态,保证统计数据和分析的准确。
2、减轻劳动强度、提高工作效率、增加学生管理的透明度。
高校学生管理信息系统可以发挥计算机的强大功能,让管理人员从大量繁琐的手工劳动中解放出来,将单调枯燥的纸张涂写变成灵活的电子信息操作。
并充分利用网络优势,加快学校内部学生信息和文档的发布、传送和获取,改善和优化学生工作,使各个部门之间的工作联系紧密、井然有序、清楚明晰,大大减轻工作负担,提高工作效率,增加学生管理的透明度。
3、降低管理成本,由于采用本系统的原因,使辅导员管理工作一改往日埋在各种表格中的被动局面,基本实现了无纸化办公,根除了很多日常管理中的浪费现象,体现出现代化学生管理的优势。
4、规范化管理,由于采用了计算机统计分析学生信息,一些原始信息在录入时就必须要求准确录入,这就要求管理人员在提供信息时要准确,同时要求在录入时也要十分认真,这样做是为了将错误降到最低,提高系统工作的准确率,从而实现学生管理工作规范化。
1.2系统概况
由于学校规模进一步扩大,学生人数逐年上升,学生信息的管理也变得越来越复杂。
为此,学生信息的管理成为了一个急需解决的问题。
本系统采用B/S结构,JAVA为开发语言,SQL Server 2000为数据库,myeclipse作为开发工具来进行设计与开发。
本文档,简要阐述了系统的开发背景与开发环境,对系统的构架进行分析,由此划分出各个模块,包括用户注册模块,用户登录模块,用户信息管理模块,用户信息修改模块,用户添加模块,用户信息删除模块,以及用户信息刷新模块。
用户可以实现对数据进行录入,删除,修改,查询等操作。
从而,实现对学生信息进行合理化管理,学生信息的管理本身就是一项繁重的工作任务,面对如此繁杂的任务,如果让个人去管理文档,就会显得费时费力。
尤其在对学生信息录入时,任务更加繁重,就管理者本身来说,它是一项任务繁重、时效性较强的系统工作,所以本系统在一定程度上减轻了管理人员的工作任务,让学生信息的管理变得更加轻松,更加高效。
第二章系统分析
2.1系统需求分析
1.该系统可用于对学生的基本信息的存储,更新,查询,修改等操作,以实现对学生信息的管理。
2.其中功能包括:
注册登录,添加信息,修改信息,刷新当前数据等,可根据需要添加一个或多个学生信息,也可以对个别学生信息进行适当的修改或删除。
以便随时更新学生信息。
3.系统中设计的查询功能可根据需要从若干数据中查询某个学生信息,只需要按姓名查询即可,以便满足用户需求
2.2开发环境及系统的框构简介
1.操作系统:
Windows10
2.JDK环境:
JavaSEDevelopment(JDK)version7
3.开发工具:
Eclipse4.4.2+AndroidSDK4.0以上
4.开发语言:
JAVA,XML
5.数据库管理软件:
SQLite3
该系统包括客户端和数据库两大版块,其中客户端包括主界面,功能界面。
主界面则包含登录,注册,退出三个模块。
而功能界面则包含搜索,新增,删除,刷新,管理用户这几个功能模块。
第三章系统设计
3.1系统架构设计
图1系统构架图
该系统是由客户端及数据库组成的学生管理系统,其中又包括登录,注册,退出。
而登录则包括搜索和系统功能,系统功能又包括新增,删除,刷新,管理用户这几个模块,以上这些模块共同组成了整个学生管理系统。
3.2系统功能模块设计
图2功能结构图
该系统的主界面包括登录,注册,退出三个模块。
其中登录模块包括学生搜索,系统功能两个模块,学生搜索又包含学生信息修改模块,可以对学生信息进行及时修改从而更新数据,而系统功能则包含新增,删除,刷新,管理用户四个模块,新增功能可以添加新学生的信息,删除功能可以对一些已经失去作用的数据进行删除,刷新功能可以刷新系统中的数据,避免网路波动让数据无法第一时间内被用户查看,还有管理用户功能则是对管理员的注册信息进行管理,可以通过删除对管理员的登录记录进行管理,注册模块则是对管理员进行注册。
3.3系统业务流程图设计
图3业务流程图
用户要登录系统首先需要注册,注册成功后方能进行登录,否则无法实现系统登录,登录完成后进入学生管理系统,系统包括系统功能,学生搜索两个个模块,其中系统功能模块包括管理用户,新增用户,删除用户,刷新这几个功能。
而学生搜索则是通过搜索对学生的基本信息进行修改,最后用户可以通过退出按键退出系统。
3.4数据库设计
3.4.1数据库需求分析
用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入,收集基本数据、数据结构以及数据处理的流程。
3.4.2数据库概念结构设计
图4E-R图
3.4.3数据库逻辑结构设计
Tableuser(用户信息表)
字段名
数据类型
主键否
描述
username
Varchar(20)
是
用户名
password
Varchar(20)
否
密码
Tablestudent(学生信息表)
字段名
数据类型
主键否
描述
name
Varchar(20)
是
姓名
sex
Varchar(20)
否
性别
id
Varchar(20)
否
学号
birthday
Varchar(20)
否
生日
phone
Varchar(20)
否
电话
Tableloginhistory(用户登录记录表)
字段名
数据类型
主键否
描述
name
Varchar(20)
是
名字
第四章系统实现
4.1主界面实现
主界面的布局文件为main.xml,整个界面直观明了,并向用户展示了该系统的部分功能。
界面背景设置为一张图片,在界面最上方为学生信息管理系统几个字,让人一下便能知道系统的主题。
中间是两个文本框,一个是用来输入用户名的,另一个则是用来输入密码的。
在界面最下方放入三个按钮组件,分别为登录按钮,注册按钮以及退出按钮,将三个按纽放入到一个水平的线性布局中。
将这些控件组织在一起,并放入到相对布局管理器中,使这些控件的位置相对摆放整齐。
系统主界面如图5所示:
图5主界面
1.登录:
用来登录系统,从而进一步使用系统功能。
2.注册:
通过注册来实现系统登录,若没进行注册则无法进入系统。
3.退出:
通过退出按钮退出该系统。
部分关键代码如下:
android:
id="@+id/textView2"
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"
android:
layout_gravity="center_horizontal"
android:
layout_marginTop="10dp"
android:
text="请先登录"/>
android:
id="@+id/userName"
android:
layout_width="match_parent"
android:
layout_height="50dp"
android:
layout_marginLeft="50dp"
android:
layout_marginRight="50dp"
android:
layout_marginTop="15dp"
android:
singleLine="true"
android:
background="@drawable/qq_edit_login"
android:
hint="请输入您的用户名"
android:
ems="10">
android:
id="@+id/userPassword"
android:
layout_width="match_parent"
android:
layout_height="50dp"
android:
layout_marginLeft="50dp"
android:
layout_marginRight="50dp"
android:
layout_marginTop="15dp"
android:
singleLine="true"
android:
password="true"
android:
background="@drawable/qq_edit_login"
android:
hint="请输入您的密码"
android:
ems="10"/>
4.2搜索功能模块实现
图6搜索功能模块图
通过搜索框输入学生姓名从而快速找到你所需要查找的学生数据,也可以通过点击学生信息来进行对学生个人信息进行修改操作。
部分关键代码如下:
android:
id="@+id/search_edit"
android:
layout_width="match_parent"
android:
layout_height="42dp"
android:
background="@drawable/qq_edit_login"
android:
completionHint="姓名"
android:
hint="按姓名搜索"
android:
textColor="#ff0000"/>
android:
id="@+id/image_search"
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"
android:
clickable="true"
android:
src="@drawable/search_click"/>
4.3系统功能模块实现
图7系统功能模块图
1.新增:
可以添加新的学生信息。
2.删除:
可以删除系统中一些失效的学生数据,从而保证数据的有效性。
3.刷新:
通过刷新让数据的更新更加及时,避免网络波动等原因导致数据不能及时被查看。
4.管理用户:
可以对注册过的用户名和密码进行删除,从而管理用户信息,其中可以通过勾选超级用户,则无法进行管理员信息删除,防止误删。
部分关键代码如下:
android:
id="@+id/list_image"
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"
android:
src="@drawable/addstudent_image"/>
android:
layout_width="30px"
android:
layout_height="0px"/>
android:
id="@+id/list_txt"
android:
layout_width="match_parent"
android:
layout_height="wrap_content"
android:
text="新增"
android:
textSize="20sp"
android:
textColor="#ffffff"/>
第五章系统测试
运用黑盒测试和白盒测试对系统进行测试。
黑盒测试要写出测试用例。
系统测试是利用一定的测试工具然后按照计划好的方案、流程等对产品分别进行功能测试、性能等的测试,甚至可以根据需要去编写不同功能的测试工具,最后去设计和维护整个测试系统,对测试的方案也可能出现的问题进行分析和评估。
在执行测试的用例之后,根据需要跟踪检测到的故障,以保证开发的产品适合需求。
系统测试是整个软件最后必须要经历的步骤,系统测试主要测试系统的稳定性、健壮性等。
本毕业设计主要测试各个界面切换是否正常、界面内空间是否在操作之后做出相应的反应。
5.1功能测试
第一次打开程序,看经过几秒的延时后,是否进入主界面、在主界面点击各个按钮界面的信息是否发生变化、点击注册页面是否进行用户的注册、在系统功能界面点击某个list是否进入该list对应的功能界面、点击新增按钮是否进行学生信息添加、点击加入删除按钮是否成功删除信息、在用户界面点击需要的list是否进入该list的管理界面,部分功能测试如下。
用例1:
注册。
在用户主界面点击注册是是否弹出注册界面,点击该界面的内容显示栏等是否发生变化。
图8注册图9注册结果
结果:
点击注册按钮出现了用户注册界面,进行管理员注册,输入用户名和密码,且需要进行确认密码,若两次密码不一致则提示“您两次输入的密码不一致”则无法进行注册,如图8和图9所示。
用例2:
系统功能显示。
点击系统功能按钮后是否出现下拉选项框显示系统功能,图10所示。
结果:
点击新增后,用户是否进入新增界面进行学生信息添加,确定后进入了新增界面,该界面将显示需要添加的信息,如学生姓名,生日,电话号码等需要填写的内容,如图11所示。
图10系统功能下拉图图11新增页面添加信息
5.2测试用例
部分测试数据:
数据1:
勾选超级用户,数据用户名及密码,用户类型=用户
序号
操作描述
数据
期望结果
实际结果
测试状态
1
选中“超级用户”看是否能顺利删除数据
用户名
密码
成功删除数据
未能成功删除数据
F
第六章总结
通过本次实验对于本学期学的android基本控件与布局管理器、系统组件安卓四大组件等有了更加深入的了解。
SQLite的使用也更加得心应手。
安卓界面布局真的很方便一个xml配合一个java文件便可按自己的需求布局页面。
这个应用使用比较多的控件有Botton、TextView、CheckBox、RadioGroup。
安卓为这些控件提供了相应的点击事件,相当方便。
对于布局这里主要遇到的问题是基本控件在不同分辨率设备上位置会错乱,通过权重分割可以达到平均分空间。
此程序的主界面采用Listview跟自定义菜单实现展示。
主要通过switch…case语句判断所选择的的功能。
布局管理器使用最多的的是线性布局线性布局管理器LinearLayout,在LinearLayout嵌套的情况下,子LinearLayout必须要设置权值,否则默认的情况是未设置权值的子LinearLayout占据整个屏幕。
高级控件主要用到的ListView用于展示学生信息,通过为Listview添加监听器判断是否被选中。
这里遇到的最大问题是点击学生列表每一个item的时候没有任何反应,经过查找资料可以在相应的xml中增加属性android:
descendantFocusability=”blocksDescendants”覆盖子类控件而直接获得焦点。
登录界面的设计借鉴了QQ登录界面。
比如输入款点击时会出现光圈。
是通过xml控制。
XML文件中包含了多张图片不同操作显示不同的图片这样就产生了单击效果。
对于登录界面我不希望状态栏有黑色的状态栏而使得应用跟设备之间更完整的融合,搜索相关资料发现可以再代用布局文件之前去除调用this.requestWindowFeature(Window.FEATURE_NO_TITLE);即可。
对于页面间的跳转用的是Intent对象,虽然它不在四大组件之中但是作用相当重要,它可以用来启动Activity、Service、BroadcastReceriver。
使用Intent来启动另一个Activity必须在AndroidMainfest.xml申明Activity。
本次开发的应用主要是基于SQLite。
这里主要设计了三张数据表用于登录用户表,历史登录用户表。
学生表。
这里创建表继承了安卓SQLiteOpenHelper的方法。
为了更好地区分学生跟管理员用户和相应的读写数据库操作。
都为他们分别创建了独立的类。
并且每个类中地都有相应的Set、Get方法方便更新数据。
数据库操作是遇到的问题有一个空指针异常,通过logcat定位到行号准确找出可错误所在,数据类型跟自己定义的数据类型不同造成无法写入。
学会了用Sqlite3语句查数据库中想用表格的内容。
adbshell控制台功能强大用的最多的是adblogcat。
程序出现异常并不是束手无策。
仔细分析log有助于我们快速定位错误所在。
在完善对学生信息的修改功能中考虑到误操作,效果是展示学生信息默认是不能进行修改。
查阅资料可以在Textview增加属性android:
enabled="false"即可然后添加单击事件设置相应的控件setEnabled即可修改。
为了让主页的信息能够时时更新,增加了刷新功能。
其实就是对数据库进行一次全部读取。
本次设计让我对安卓开发有了更深刻的认识。
遇到问题寻找解决办法是一项基本技能。
慢慢积累知识。
勤加练习才是关键。