资源描述
《数据库系统原理课程设计报告》
学生学籍管理系统
组 长: 陈 娇 20130516091
组 员:何 露 20130516089
聂雅瑞 20130516140
陈媛媛 20130516137
刘 心 20130516136
系 别: 计算机与信息科学学院
专业班级:计算机科学与技术
指导教师: 王艳霞
2015年6月11日
目录
1 系统背景--————————-——--———-—-————-—-—--——--—-—-4
2 需求分析-——-——-——-——-————-—--——----—-—--———-——-4
2.1 功能需求—————--———-—-—--———--—--------————-——-————---—---4
2.2 可行性分析—-—-——-———-—————-——-—-—-——-————-———--—-—————--—4
3 数据库设计————--———--—---———-—--—---—--—---————5
3.1 功能结构图—---—-———-—-—-——-—-——----—--————-—-—-————-—————5
3.2 流程图-——-—————-————————-—-——-—————-—---————----—---———-—5
3.3 E—R图-——-———————-—---—--—-———---—————-————-—-———-———-———6
3.4 数据字典--———--—--—--—-——-———--—-—————-————-—-——-—-----——7
4 数据库实施———----———————-————--—--—--——--—-—-——9
5 数据库运行——-————-——————-————————-———-—-—-—-——10
5.1 系统登录窗口——---————-———--—-—--——-————-——----——————-—-—10
5.2 系统管理员窗口--—-————-------——————————--—-—————-—---———11
5.3 系统教师窗口-—-———-----—-—-—————--—--————-———-—-———--——-13
5.4 系统学生窗口————-——--—-———---———-——————-——-—-——-—-—---—-14
6 开发环境—-—-———-———--—-—--—-———--———-———-—-——-15
7 总结—--———---——-—-—--—---—-—--——-—-——----—-———16
8 参考文献——————-—————————--—————--—-————--————-16
【摘 要】学生学籍管理工作是高等教育中一个极为重要的环节,是整个院校管理的核心和基础。面对种类繁多的数据和报表,手工处理方式已经很难适应现代化管理的要求.因此改变传统的管理模式,运用现代化手段进行科学管理,已经成为整个教育系统亟待解决的问题。
【关键字】学生学籍管理系统,数据库,教务管理,实体关系图(E-R图),数据字典,数据流图
1系统背景
随着学校规模的不断扩大,专业、班级、学生的数量急剧增加,有关学生学籍的各种信息量也成倍增长,而目前许多高校的学生学籍管理仍停留在复杂的人工操作上,重复工作较多,工作量大,效率低,因此,需要开发学生学籍管理系统来提高管理工作的效率。学生学籍管理系统在教务方面的规范管理、快速查询方面具有较大的实用意义.它提高了信息的开放性,大大地改善了学生、教师对其最新信息查询的准确性。再加上教学体制的不断改革,尤其是学分制、选课制的展开和深入,使用一款适合的教务管理系统将更加迫切。
2需求分析
2.1功能需求
(1)基本功能需求
通过对各个用户的调查,该学生学籍管理系统有如下需求:
1) 系统管理:实现系统管理人员对系统的管理,提供添加、修改和删除用户,更改密码的功能.
2) 教务管理:实现教务管理人员对系统的管理,包括课程安排,成绩审核,学生成绩管理,学生学籍信息及教师信息管理等功能。提供各权限人员对信息的录入、修改、删除等操作.
3) 基本信息:实现显示学生和老师以及课程的基本信息(包括学生学籍信息和学生所修课程信息,教师基本信息)。
4) 选课:实现在一定范围内学生选择课程,选择老师.
5) 查询:包括实现学生查询,老师查询。学生查询包括自己的基本信息,自己的课程,成绩等,老师查询包括查询自己的信息,学生信息,自己所带班的学生以及学生成绩等。
(2)用户界面需求
学籍管理系统提供给用户的界面,此界面要求操作清晰,页面美观,并尽可能的为用户的查询操作提供方便.教务处能通过此界面完成各种基本信息的录入、修改和删除的功能,也能通过此界面控制管理整个用户群;教师通过此界面可完成教学班级信息查询和成绩管理的功能;学生通过此界面主要完成选课和成绩、个人信息查询等功能。
2.2可行性分析
可行性分析是对系统进行全面、概要的分析.通过调查分析,本系统设计主要有以下三个可行性:
(1)操作可行性
系统操作简单,易于理解,只需通过简单指导,上手较快,教务人员、教师和学生均能进行操作,运行环境要求低。
(2)技术可行性
系统在Windows 7 开发环境下,利用VC++开发工具,并使用SQL Server 2008作为数据库管理系统,来实现学生学籍管理系统的各种功能。SQL Server 2008属于主从式的数据库服务器这也是主从式数据库服务器的特点,服务器本身重在数据的管理,为客户端应用程序提供一致的接口。当然数据库管理系统,开发工具也可以是其他更高版,这样可以提高系统的性能,降低它的局限性。
(3)经济可行性
采用新的学生学籍管理系统可取代原系统的手工管理工作,减少人工开支,节省资金,并且可大大提高数据信息的取得,缩短数据信息处理时间,提高学生信息的利用率,使教学质量更进了一个台阶。
3数据库设计
3.1功能结构图
根据系统功能的要求,可以将系统分解成几个功能模块来分别设计,功能模块图如下:
学籍管理处
系统管理员
学生
教师商店
修改教师信息
修改教师信息
学生成绩查询
录入学生信息
修改学生信息
修改学生成绩
学生成绩查询
学生成绩录入
查询
选课
学生选课查询
3—1 功能结构图
3。2 流程图
学生学籍管理系统的需求分析的重点是对学籍管理信息系统的业务流程进行描述,通过采用流程图中的部分图形来对学生学籍管理活动进行规范化说明,如下图如示:
3-2 系统业务流图
3-3 系统数据流图
3。3 E—R图
概念结构设计通常是使用E-R图对它的描述工具进行设计,对需求分析阶段收集到的数据进行分类、组织(聚集),形成实体、实体的属性,标识实体的码,确定实体之间的联系类型,设计E-R图。
系统用户信息(用户名、口令)
学生信息(学号、姓名、性别、年龄、所在系)
教师信息(姓名、密码)
管理员信息(姓名、密码)
课程信息(课程号、课程名、时间、地点)
选课记录信息(学号、学生、课程号、成绩、学分)
全局E-R图如下:
3-4 数据库E—R概念模型
3.4数据字典
学生学籍管理系统各项具体功能实现需要建立相关表格,如下:
3—5 User(用户)表
3-6 Manger表
3—7 Teacher表
3—8 Student表
3-9 SC表
3-10 xuanke(选课)表
4数据库实施
1。连接数据库的实现:
<!DOCTYPE html PUBLIC "—//W3C//DTD XHTML 1。0 Transitional//EN” "http://www。w3.org/TR/xhtml1/DTD/xhtml1—transitional.dtd”〉
〈html xmlns=”http://www.w3.org/1999/xhtml”〉
<head〉
〈meta http-equiv=”Content-Type" content=”text/html; charset=utf—8” />
〈title〉登录验证页面〈/title〉
〈/head>
〈body>
〈?php
header(”content—type:text/html;charset=utf-8”);
//开启session
session_start();
//接收表单传递的用户名和密码
$name=$_POST[’username'];
$pwd=$_POST['password’];
$repwd=$_POST[’repassword’];
//判断密码是否一致
if($pwd!=$repwd){
echo"〈script>alert(’两次密码输入不一致,请重新输入’);〈/script〉”;
echo"〈script〉location=’dl.php’〈/script〉”;
}
else{
//通过php连接到mysql数据库
$conn=mysql_connect("localhost:3306”,”a0918224524”,"19474093”) or die('error’);}
//选择数据库
mysql_select_db(”a0918224524”,$conn);
//设置客户端和连接字符集
mysql_query("set names utf8”);
$query=”select * from user where user=’$name’ and pwd='$pwd’”;
$result=mysql_query($query);
$numrows=mysql_num_rows($result);
if($numrows==0)
{echo ”<script〉alert(’该用户没有注册’);〈/script〉”;
echo”〈script〉location=’zc。php’〈/script〉";
}else{if($name==”tsoft”&&$pwd==”111"){
echo ”<script〉alert('恭喜您,登录成功');</script〉”;
echo"<script>location=’kc。php'</script〉”;
}else{
echo ”<script>alert(’恭喜您,登录成功’);</script>";
echo”〈script〉location='yh。php’〈/script〉”;}
}
?>
〈/body〉
</html〉
2用户注册的操作:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1。0 Transitional//EN” "http://www。w3。org/TR/xhtml1/DTD/xhtml1—transitional。dtd”>
〈html xmlns="http://www.w3。org/1999/xhtml">
〈head〉
〈meta http—equiv=”Content-Type” content="text/html; charset=utf—8” />
〈title〉注册页面〈/title〉
</head〉
〈body>
〈?php
header(”content-type:text/html;charset=utf—8");
//开启session
session_start();
//接收表单传递的用户名和密码
$name=$_POST[’username’];
$pwd=$_POST[’password'];
$repwd=$_POST[’repassword’];
//判断密码是否一致
if($pwd!=$repwd){
echo”〈script〉alert(’两次密码输入不一致,请重新输入');</script〉”;
echo”〈script〉location=’zc。php’</script〉”;
}
else{
//通过php连接到mysql数据库
$conn=mysql_connect(”localhost:3306”,”a0918224524”,"19474093”);
//选择数据库
mysql_select_db(”a0918224524”,$conn);
//设置客户端和连接字符集
mysql_query(”set names utf8”);
//通过php进行insert操作
$sqlinsert="insert into user(user,pwd) values('{$name}’,'{$pwd}’)”;
//添加用户信息到数据库
mysql_query($sqlinsert);
mysql_close($conn);//从结果中拿出一行
echo "〈script>alert('注册成功,请登录');〈/script〉”;
echo”〈script>location='dl。php’</script〉”;}
?〉
〈/body>
</html〉
3.登录操作:
<!DOCTYPE html PUBLIC "—//W3C//DTD XHTML 1.0 Transitional//EN” ”http://www。w3。org/TR/xhtml1/DTD/xhtml1—transitional.dtd">
〈html xmlns=”http://www。w3。org/1999/xhtml"〉
〈head〉
<meta http-equiv=”Content-Type" content="text/html; charset=utf—8” /〉
<title〉登录验证页面〈/title〉
〈/head〉
<body〉
<?php
header(”content—type:text/html;charset=utf—8”);
//开启session
session_start();
//接收表单传递的用户名和密码
$name=$_POST['username’];
$pwd=$_POST[’password'];
$repwd=$_POST[’repassword’];
//判断密码是否一致
if($pwd!=$repwd){
echo"<script〉alert(’两次密码输入不一致,请重新输入');〈/script>";
echo"〈script>location=’dl.php'〈/script〉”;
}
else{
//通过php连接到mysql数据库
$conn=mysql_connect(”localhost:3306”,”a0918224524”,"19474093”) or die('error’);}
//选择数据库
mysql_select_db(”a0918224524",$conn);
//设置客户端和连接字符集
mysql_query(”set names utf8");
$query="select * from user where user='$name’ and pwd=’$pwd'";
$result=mysql_query($query);
$numrows=mysql_num_rows($result);
if($numrows==0)
{echo ”〈script〉alert('该用户没有注册’);〈/script〉”;
echo”〈script>location=’zc。php'〈/script〉”;
}else{if($name=="tsoft”&&$pwd=="111”){
echo "〈script〉alert('恭喜您,登录成功’);</script>”;
echo"〈script〉location='kc。php’</script〉”;
}else{
echo "〈script>alert('恭喜您,登录成功');〈/script>”;
echo"<script>location='yh.php’</script〉";}
}
?〉
〈/body>
〈/html>
4.入库操作:
〈!DOCTYPE html PUBLIC ”—//W3C//DTD XHTML 1。0 Transitional//EN” "http://www.w3。org/TR/xhtml1/DTD/xhtml1-transitional。dtd”>
〈html xmlns="http://www。w3.org/1999/xhtml”>
<head〉
<meta http-equiv="Content-Type” content="text/html; charset=utf—8" /〉
<title〉入库验证页面〈/title〉
</head>
<body〉
〈?php
header(”content—type:text/html;charset=utf—8”);
//开启session
session_start();
//接收表单传递的用户名和密码
$name=$_POST['name’];
$pwd=$_POST[’number'];
$repwd=$_POST['renumber'];
//判断数量是否一致
if($pwd!=$repwd){
echo"<script〉alert(’两次数量输入不一致,请重新输入’);〈/script〉";
echo”〈script〉location=’rk。php’〈/script>";
}
else{
//通过php连接到mysql数据库
$conn=mysql_connect("localhost:3306”,"a0918091058”,”19474093");
//选择数据库
mysql_select_db(”a0918224524”,$conn);
//设置客户端和连接字符集
mysql_query("set names utf8");
//通过php进行insert操作
$sql="select * from kc where name=’$name’”;
$result=mysql_query($sql,$conn);
$num=mysql_num_rows($result);
if($num==0){
$sqlinsert=”insert into kc(name,num) values('{$name}',’{$pwd}')";
//添加用户信息到数据库
mysql_query($sqlinsert);
mysql_close($conn);
echo "〈script〉alert(’入库成功,请查询’);</script>”;
echo”〈script>location=’cx.php’〈/script〉”;}
else{
$exec="update kc set sl=sl+$pwd where name=’$name’";
mysql_query($exec,$conn);
mysql_close($conn);
echo ”〈script>alert(’入库成功,请查询!');〈/script〉";
echo"〈script〉location=’cx。php'〈/script〉";
}
}
?〉
〈/body〉
〈/html>
5.出库操作:
〈!DOCTYPE html PUBLIC ”-//W3C//DTD XHTML 1。0 Transitional//EN" ”http://www.w3。org/TR/xhtml1/DTD/xhtml1—transitional.dtd">
〈html xmlns=”http://www。w3。org/1999/xhtml"〉
〈head〉
〈meta http—equiv=”Content—Type” content="text/html; charset=utf—8” /〉
<title〉出库验证页面〈/title>
</head〉
〈body〉
〈?php
header("content—type:text/html;charset=utf—8”);
//开启session
session_start();
//接收表单传递的用户名和密码
$name=$_POST['num’];
$pwd=$_POST['sl’];
$repwd=$_POST['resl’];
//判断密码是否一致
if($pwd!=$repwd){
echo"<script>alert('两次数量输入不一致,请重新输入');〈/script>";
echo"〈script>location=’rk.php’</script〉”;
}
else{
//通过php连接到mysql数据库
$conn=mysql_connect(”localhost:3306”,"a0918224524",”19474093”);
//选择数据库
mysql_select_db(”a0918224524”,$conn);
//设置客户端和连接字符集
mysql_query("set names utf8");
//通过php进行del操作
$query="select sl from kc where num='$name’”;
$num=mysql_query($query,$conn);
$exec=”update kc set sl=sl—$pwd where mc=’$name'”;
mysql_query($exec,$conn);
mysql_close($conn);
echo "〈script〉alert('出库成功,请查询’);〈/script〉”;
echo”〈script〉location=’cx。php'〈/script>";}
echomysql_error();
?〉
〈/body>
〈/html〉
6。修改操作:
〈!DOCTYPE html PUBLIC ”—//W3C//DTD XHTML 1.0 Transitional//EN” "http://www。w3.org/TR/xhtml1/DTD/xhtml1—transitional。dtd”>
〈html xmlns=”http://www。w3。org/1999/xhtml”〉
〈head〉
〈meta http—equiv=”Content-Type" content=”text/html; charset=utf—8” /〉
〈link href="file:///D|/shujuku/cx.css” rel=”stylesheet” /〉
〈title〉查询页面〈/title〉
<style type=”text/css">
body{background—image:url(file:///D|/shujuku/images/bj3。jpg)}
body{ font—size:24px;
background—repeat:no—repeat; background—size:cover;
z—index:—1}
</style〉
</head>
<body>
〈table width=”609" height="134" border="1” cellpadding=”0” cellspacing=”0” bgcolor="#9e7db4” align=”center”>
<!——表1——>
<form name=”myform” method="post” action=”<?php echo $_SERVER[’file:///D|/shujuku/PHP_SELF’]?〉”〉
<!——action="〈?php echo $_SERVER[’PHP_SELF’]?〉,在浏览器看源代码的结果就是action=”/cx。php"--〉
<tr>
<td width=”605" height=”100” bgcolor=”#009933”〉〈div align="center”><h1 style=” color:#000;font—size:25px”>请输入快递编号〈/h1>〈input name="txt_book" type="text” id="txt_book" size=”25" />
&nbsp;
<input type="submit" name="Submit” value=”查询" />
</div〉</td〉
〈/tr〉
<!——表1的第一行为表单—->
〈/form>
〈trvalign=”top” bgcolor=”#ffffff”〉
<!——表1的第二行开始——〉
<td height=”160”><br /〉
<table width=”572” border=”0” align=”center" cellpadding=”0” cellspacing=”1” bgcolor="#000000"〉
〈!—-表2-—〉
〈tr align=”center" bgcolor="#00CC66” 〉
〈td width=”66” height=”90” bgcolor="#00CC66">〈h1 style=” color:#000;font-size:20px">快递编号</h1〉〈/td>
<td width=”167” bgcolor="#00CC66"〉〈h1 style=” color:#000;font—size:20px”〉类型</h1〉〈/td〉
</tr〉
〈?php
$link = mysql_connect("localhost:3306”,"a0918224524",”19474093”) or die(”数据库连接失败”。mysql_error());//建立与数据库连接
mysql_select_db(”a0918224524",$link);//选择数据库
mysql_query(”set names utf8");
if (isset($_POST[”Submit”])){
$txt_book = $_POST[”txt_book”];
$sql = mysql_query(”select * from kc where num like ’%”。trim($txt_book)。”%’");
$info = mysql_fetch_object($sql);
if($info){
do{
?〉
<tr align="left" bgcolor="#FFFFFF"〉
〈td align="center" style=” font—size:20px; "〉&nbsp;<?php echo $info—〉num;?〉</td>
〈td align=”center” style=”font—size:20px; "〉<?php echo $info—〉type;?>〈/td>
〈/tr>
<?php
}
while($info = mysql_fetch_object($sql));
mysql_free_result($sql);
mysql_close($link);}else{
//如果检索不存在,则输出相应提示信息
echo ”〈div align='center' style=’color:#ff0000; font—size:12px'〉对不起,你检索的快递信息不存在!〈/div>”;}
}
?>
</table></td>
<!——表2结束—-〉
〈/tr>
〈!——表1第二行结束——>
</table〉
〈/body〉
〈/html〉
7.修改密码操作:
〈!DOCTYPE html PUBLIC ”-//W3C//DTD XHTML 1。0 Transitional//EN" ”http://www.w3。org/TR/xhtml1/DTD/xhtml1—transitional。dtd”〉
〈html xmlns=”http://www。w3.org/1999/xhtml">
<head>
〈meta http—equiv=”Content—Type" content=”text/html; charset=utf-8” /〉
〈title〉修改密码页面</title〉
〈/head>
<body〉
〈?php
header("content-type:text/html;charset=utf—8”);
//开启session
session_start();
//接收表单传递的用户名和密码
$name=$_POST[’name’];
$pwd=$_POST['password'];
$repwd=$_POST['repassword’];
//判断密码是否一致
if($pwd!=$repwd){
echo”〈script>alert(’两次密码输入不一致,请重新输入');</script〉";
echo”〈script〉location=’xgmm。php’〈/script>”;
}
else{
//通过php连接到mysql数据库
$conn=mysql_connect("localhost”,”a0918224524”,”19474093”);
//选择数据库
mysql_select_db(”a0918224524”,$conn);
//设置客户端和连接字符集
mysql_query("set names utf8");
//通过php进行insert操作
$sqlinsert=”update user set password='{$pwd}’ where username='{$name}’”;
//添加用户信息到数据库
mysql_query($sqlinsert);
mysql_close($conn);//从结果中拿出一行
echo ”〈script〉alert('修改成功,请重新登录');〈/script>";
echo"<script>location='dl。php’〈/script〉”;}
?>
〈/body>
〈/html〉
8.注销操作:
〈!DOCTYPE html PUBLIC ”—//W3C//DTD XHTML 1。0 Transitional//EN” ”http://www。w3。org/TR/xhtml1/DTD/xhtml1—transitional。dtd”〉
〈html xmlns="http://www。w3。org/1999/xhtml”>
〈head〉
〈meta http—equiv="Content-Type” content=”text/html; charset=utf-8” />
〈title〉修改密码页面〈/title>
〈/head>
〈body〉
<?php
header("content—type:text/html;charset=utf—8”);
//开启session
session_start();
//接收表单传递的用户名和密码
$name=$_POST['name’];
$pwd=$_POST['password’];
$repwd=$_POST['repassword’];
//判断密码是否一致
if($pwd!=$repwd){
echo”<script〉alert(’两次密码输入不一致,请重新输入');</script〉";
echo”<script〉location=’xgmm.php'</script〉”;
}
else{
//通过php连接到mysql数据库
$conn=mysql_connect(”localhost",”a0918224524”,”19474093”);
//选择数据库
mysql_select_db("a0918224524”,$conn);
//设置客户端和连接字符集
mysql_query(”set names utf8");
//通过php进行insert操作
$sqlinsert="update user set password=’{$pwd}’ where username='{$name}’";
//添加用户信息到数据库
mysql_query($sqlinsert);
mysql_close($conn);//从结果中拿出一行
echo ”〈script〉alert(’修改成功,请重新登录');</script〉”;
echo”<script>location='dl。php'〈/script〉”;}
?〉
</body>
</html〉
5数据库运行
5。1系统登录窗口;
用户必须提供正确登录信息,才能启动系统。在系统登录窗口中,用户需要输入用户名和口令。如下图所示:
5—1 登录窗口
5。2新用户注册窗口
5—2新用户注册窗口
5。3密码修改窗口
5-3密码修改窗口
5.4入库窗口
5—4入库窗口
5。5出库窗口
5-4出库窗口
5.6快递查询窗口
5—6 快递查询窗口
5。7主要功能展示
5-7界面的主要功能
6开发及运行环境
开发与运行的环境的选择会影响到数据库设计,本系统开发与运行环境如下:
开发环境:Windows 7
开发工具:VC++
数据库管理系统:SQL Server 2008
本系统在Windows 7 开发环境下,利用VC++开发工具,并使用SQL Server 2008作为数据库管理系统,来实现学生学籍管理系统的各个模块和它们的功能,形成一个立体的学籍管理系统。
7总结
经过一个多月的设计,学生学籍管理系统基本开发完成,在系统的各个模块中体现了它的功能,针对高校学生学籍工作方面进行设计的,同时该系统也是为了方便于教师和学生的一些信息操作,为高校节省了管理成本,提高学校的工作效率。该系统的界面简单大方,非常方便用户的操作,同时,也为以后系统的扩展留出了足够的空间。
在本系统的设计过程中,对数据库应用这一门课程有了更深一步的理解。我们把课堂上所学的理论知识和实践联系起来,在所要开发的系统中渐渐学会了融会贯通。同样通过对SQL的应用,也使我们熟练和巩固了对SQL的理解.这样我们对开发系统的整个过程也有了一个系统的了解。首先通过对高校学籍管理系统功能进行详细的分析,得到系统功能模块图,然后根据系统功能分析,围绕它进行系统的设计,介绍开发环境和开发技术,功能和性能需求分析,可行性分析,然后得出系统业务流图、E—R图,并进行数据库的设计和模块化的实现.
当然,在本次课程设计的成果中还存在许多的不足之处,这就需要我们学习
展开阅读全文