学生管理系统的设计与实现.docx
学生管理系统的设计与实现第一章系统概述31.1系统开发背景31.2系统概况4第二章系统分析52.1系统需求分析52.2开发环境及系统的框构简介5第三章系统设计63.1系统架构设计63.2系统功能模块设计63.3系统业务流程图设计73.4数据库设计83.4.1数据库需求分析83.4.2数据库概念结构设计83.4.3数据库逻辑结构设计8第四章系统实现104.1主界面实现104.2搜索功能模块实现124.3系统功能模块实现13第五章系统测试155.1功能测试155.2测试用例16第六章总结17第一章系统概述1.1系统开发背景随着高校规模的不断扩大,学生数量也急剧增加,有关学生的各种信息量也 成倍增长,各类学生的统计分析工作也越来越困难,面对如此繁杂的工作,为了 能够为高校学生信息管理提供一种更加高效实用的管理手段,为学生信息的存 储、计算、统计、分析、交流提供一种更加安全快捷的信息平台,并且能够减少 大量的人工操作,以及在人工操作中由于人为因素而引起的数据错误,保证学生 信息数据的安全性和完整性,使学生管理人员能够轻松,正确无误地完成各项工 作,为学生管理工作服务。意义:1、保证信息的准确性和时效性,随时通过计算机对系统进行管理,使得学生信 息处于最新状态,保证统计数据和分析的准确。2、减轻劳动强度、提高工作效率、增加学生管理的透明度。高校学生管理信息 系统可以发挥计算机的强大功能,让管理人员从大量繁琐的手工劳动中解放出 来,将单调枯燥的纸张涂写变成灵活的电子信息操作。并充分利用网络优势,加 快学校内部学生信息和文档的发布、传送和获取,改善和优化学生工作,使各个 部门之间的工作联系紧密、井然有序、清楚明晰,大大减轻工作负担,提高工作 效率,增加学生管理的透明度。3、降低管理成本,由于采用本系统的原因,使辅导员管理工作一改往日埋在各 种表格中的被动局面,基本实现了无纸化办公,根除了很多日常管理中的浪费现 象,体现出现代化学生管理的优势。4、规范化管理,由于采用了计算机统计分析学生信息,一些原始信息在录入时 就必须要求准确录入,这就要求管理人员在提供信息时要准确,同时要求在录入 时也要十分认真,这样做是为了将错误降到最低,提高系统工作的准确率,从而 实现学生管理工作规范化。1.2系统概况由于学校规模进一步扩大,学生人数逐年上升,学生信息的管理也变得越来 越复杂。为此,学生信息的管理成为了一个急需解决的问题。本系统采用B/S 结构,JAVA为开发语言,SQL Server 2000为数据库,my eclipse作为开发 工具来进行设计与开发。本文档,简要阐述了系统的开发背景与开发环境,对系 统的构架进行分析,由此划分出各个模块,包括用户注册模块,用户登录模块, 用户信息管理模块,用户信息修改模块,用户添加模块,用户信息删除模块,以 及用户信息刷新模块。用户可以实现对数据进行录入,删除,修改,查询等操作。 从而,实现对学生信息进行合理化管理,学生信息的管理本身就是一项繁重的工 作任务,面对如此繁杂的任务,如果让个人去管理文档,就会显得费时费力。尤 其在对学生信息录入时,任务更加繁重,就管理者本身来说,它是一项任务繁重、 时效性较强的系统工作,所以本系统在一定程度上减轻了管理人员的工作任务, 让学生信息的管理变得更加轻松,更加高效。第二章系统分析2.1系统需求分析1. 该系统可用于对学生的基本信息的存储,更新,查询,修改等操作,以实现 对学生信息的管理。2. 其中功能包括:注册登录,添加信息,修改信息,刷新当前数据等,可根据 需要添加一个或多个学生信息,也可以对个别学生信息进行适当的修改或删除。 以便随时更新学生信息。3. 系统中设计的查询功能可根据需要从若干数据中查询某个学生信息,只需要 按姓名查询即可,以便满足用户需求2.2开发环境及系统的框构简介1. 操作系统:Windows102. JDK 环境:Java SE Development(JDK) version 73. 开发工具:Eclipse4.4.2+Android SDK4. 0以上4. 开发语言:JAVA,XML5. 数据库管理软件:SQLite3 该系统包括客户端和数据库两大版块,其中客户端包括主界面,功能界面。主界 面则包含登录,注册,退出三个模块。而功能界面则包含搜索,新增,删除,刷 新,管理用户这几个功能模块。第三章系统设计3.1系统架构设计该系统是由客户端及数据库组成的学生管理系统,其中又包括登录,注册,退出。 而登录则包括搜索和系统功能,系统功能又包括新增,删除,刷新,管理用户这 几个模块,以上这些模块共同组成了整个学生管理系统。3.2系统功能模块设计图2功能结构图该系统的主界面包括登录,注册,退出三个模块。其中登录模块包括学生搜 索,系统功能两个模块,学生搜索又包含学生信息修改模块,可以对学生信息进 行及时修改从而更新数据,而系统功能则包含新增,删除,刷新,管理用户四个 模块,新增功能可以添加新学生的信息,删除功能可以对一些已经失去作用的数 据进行删除,刷新功能可以刷新系统中的数据,避免网路波动让数据无法第一时 间内被用户查看,还有管理用户功能则是对管理员的注册信息进行管理,可以通 过删除对管理员的登录记录进行管理,注册模块则是对管理员进行注册。3.3系统业务流程图设计图3业务流程图用户要登录系统首先需要注册,注册成功后方能进行登录,否则无法实现系 统登录,登录完成后进入学生管理系统,系统包括系统功能,学生搜索两个个模 块,其中系统功能模块包括管理用户,新增用户,删除用户,刷新这几个功能。 而学生搜索则是通过搜索对学生的基本信息进行修改,最后用户可以通过退出按 键退出系统。3.4数据库设计3.4.1数据库需求分析用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据 库结构能充分满足各种信息的输出和输入,收集基本数据、数据结构以及数据处 理的流程。3.4.2数据库概念结构设计图4 E-R图3.4.3数据库逻辑结构设计Table user(用户信息表)字段名数据类型主键否描述usernameVarchar(20)是用户名passwordVarchar(20)否密码Table student(学生信息表)字段名数据类型主键否描述nameVarchar(20)是姓名sexVarchar(20)否性别idVarchar(20)否学号birthdayVarchar(20)否生日phoneVarchar(20)否电话Table loginhistory(用户登录记录表)字段名数据类型主键否描述nameVarchar(20)是名字第四章系统实现4.1主界面实现主界面的布局文件为main.xml,整个界面直观明了,并向用户展示了该系统 的部分功能。界面背景设置为一张图片,在界面最上方为学生信息管理系统几个 字,让人一下便能知道系统的主题。中间是两个文本框,一个是用来输入用户名 的,另一个则是用来输入密码的。在界面最下方放入三个按钮组件,分别为登录 按钮,注册按钮以及退出按钮,将三个按纽放入到一个水平的线性布局中。将这 些控件组织在一起,并放入到相对布局管理器中,使这些控件的位置相对摆放整 齐。系统主界面如图5所示:学生信息管理系统清先登录请输入您的用户名隋输入您的密码裳录 注册 退出图5主界面1. 登录:用来登录系统,从而进一步使用系统功能。2. 注册:通过注册来实现系统登录,若没进行注册则无法进入系统。3. 退出:通过退出按钮退出该系统。部分关键代码如下:<TextViewandroid:id=+id/textView2 android:layout_width="wrap_content"android:layout_height=wrap_contentandroid:layout_gravity=center_horizontalandroid:layout_marginTop=10dpandroid:text二请先登录 /><EditTextandroid:id=+id/userName android:layout_width=match_parentandroid:layout_height=50dpandroid:layout_marginLeft=50dpandroid:layout_marginRight=50dpandroid:layout_marginTop=15dpandroid:singleLine=true”android:background=drawable/qq_edit_loginandroid:hint="请输入您的用户名 android:ems=10 ><requestFocus /></EditText><EditTextandroid:id=+id/userPassword android:layout_width="match_parent android:layout_height=50dpandroid:layout_marginLeft=50dp android:layout_marginRight=50dp android:layout_marginTop=15dpandroid:singleLine二 trueandroid:password=trueandroid:background=drawable/qq_edit_loginandroid:hint=请输入您的密码android:ems="10 />4.2搜索功能模块实现图6搜索功能模块图通过搜索框输入学生姓名从而快速找到你所需要查找的学生数据,也可以通 过点击学生信息来进行对学生个人信息进行修改操作。部分关键代码如下: <AutoCompleteTextViewandroid:id=+id/search_editandroid:layout_width=match_parentandroid:layout_height=42dpandroid:background=drawable/qq_edit_login android:completionHint二姓名android:hint二按姓名搜萦android:textColor=#ff0000 /></LinearLayout><ImageViewandroid:id=+id/image_searchandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:clickable=true”android:src=drawable/search_click/>4.3系统功能模块实现图7系统功能模块图1. 新增:可以添加新的学生信息。2. 删除:可以删除系统中一些失效的学生数据,从而保证数据的有效性。3. 刷新:通过刷新让数据的更新更加及时,避免网络波动等原因导致数据不能及 时被查看。4. 管理用户:可以对注册过的用户名和密码进行删除,从而管理用户信息,其 中可以通过勾选超级用户,则无法进行管理员信息删除,防止误删。部分关键代码如下:<ImageViewandroid:id=+id/list_imageandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:src=drawable/addstudent_image'/><Viewandroid:layout width=30pxandroid:layout_height="0px" /><TextViewandroid:id=+id/list_txtandroid:layout_width="match_parent"android:layout_height="wrap_contentandroid:text 二新增android:textSize="20sp"android:textColor=#ffffff" />第五章系统测试运用黑盒测试和白盒测试对系统进行测试。黑盒测试要写出测试用例。系统测试是利用一定的测试工具然后按照计划好的方案、流程等对产品分别 进行功能测试、性能等的测试,甚至可以根据需要去编写不同功能的测试工具, 最后去设计和维护整个测试系统,对测试的方案也可能出现的问题进行分析和评 估。在执行测试的用例之后,根据需要跟踪检测到的故障,以保证开发的产品适 合需求。系统测试是整个软件最后必须要经历的步骤,系统测试主要测试系统的 稳定性、健壮性等。本毕业设计主要测试各个界面切换是否正常、界面内空间是 否在操作之后做出相应的反应。5.1功能测试第一次打开程序,看经过几秒的延时后,是否进入主界面、在主界面点击各 个按钮界面的信息是否发生变化、点击注册页面是否进行用户的注册、在系统功 能界面点击某个list是否进入该list对应的功能界面、点击新增按钮是否进行 学生信息添加、点击加入删除按钮是否成功删除信息、在用户界面点击需要的 list是否进入该list的管理界面,部分功能测试如下。用例1:注册。在用户主界面点击注册是是否弹出注册界面,点击该界面的 内容显示栏等是否发生变化。图8注册图9注册结果结果:点击注册按钮出现了用户注册界面,进行管理员注册,输入用户名和密码,且需要进行确认密码,若两次密码不一致则提示“您两次输入的密码不一致”则无法进行注册,如图8和图9所示。用例2:系统功能显示。点击系统功能按钮后是否出现下拉选项框显示系统 功能,图10所示。结果:点击新增后,用户是否进入新增界面进行学生信息添加,确定后进入了新增界面,该界面将显示需要添加的信息,如学生姓名,生日,电话号码等需要填写的内容,如图11所示。图11新增页面添加信息图10系统功能下拉图5.2测试用例部分测试数据:数据1:勾选超级用户,数据用户名及密码,用户类型二用户序号操作描述数据期望结果实际结果测试状态1选中“超级用户”看 是否能顺利删除数 据用户名密码成功删除数据未能成功删除数据F第六章总结通过本次实验对于本学期学的android基本控件与布局管理器、系统组件 安卓四大组件等有了更加深入的了解。SQLite的使用也更加得心应手。安卓界 面布局真的很方便一个xml配合一个java文件便可按自己的需求布局页面。这 个应用使用比较多的控件有Botton、TextView、CheckBox、RadioGroup。安卓 为这些控件提供了相应的点击事件,相当方便。对于布局这里主要遇到的问题是 基本控件在不同分辨率设备上位置会错乱,通过权重分割可以达到平均分空间。 此程序的主界面采用Listview跟自定义菜单实现展示。主要通过switchcase 语句判断所选择的的功能。布局管理器使用最多的的是线性布局线性布局管理器 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语句查数据库中想用 表格的内容。adb shell控制台功能强大用的最多的是adb logcat。程序出现异 常并不是束手无策。仔细分析log有助于我们快速定位错误所在。在完善对学生 信息的修改功能中考虑到误操作,效果是展示学生信息默认是不能进行修改。查 阅资料可以在Textview增加属性android:enabled="false”即可然后添加单击 事件设置相应的控件setEnabled即可修改。为了让主页的信息能够时时更新, 增加了刷新功能。其实就是对数据库进行一次全部读取。本次设计让我对安卓开 发有了更深刻的认识。遇到问题寻找解决办法是一项基本技能。慢慢积累知识。 勤加练习才是关键。