数据库课程设计学生成绩管理系统.docx
- 文档编号:28352928
- 上传时间:2023-07-10
- 格式:DOCX
- 页数:19
- 大小:24.24KB
数据库课程设计学生成绩管理系统.docx
《数据库课程设计学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计学生成绩管理系统.docx(19页珍藏版)》请在冰豆网上搜索。
数据库课程设计学生成绩管理系统
1。
概述
1.1简单介绍本系统实现的内容
该学生成绩管理系统,实现简单的密码修改、成绩查询、课程查询、学生查询等操作,并能实现简单的数据统计。
此系统主要完成用户密码登录、用户密码的修改、成绩查询、课程查询、学生查询、具体成绩查询等基本功能.
(一)用户密码登录:
在登录程序之前会先弹出一个登录对话框,在正确的输入了数据库中存储的用户和密码后才能登录程序.
(二)用户密码的修改
在成功登录了程序之后用户可以根据自己的需要修改当前密码.
(三)成绩查询
1。
成绩修改
前选中要修改的成绩信息,然后进行修改。
2.成绩添加
直接弹出添加对话框,然后进行添加。
3.成绩删除
前选中要删除的成绩信息,然后直接删除。
(四)课程查询
1。
课程修改
实现对课程名、学时、学分的修改。
2.课程添加
对一门新开设的课程进行录入,并存入数据库。
3。
课程删除
对一门不再开设的课程进行删除,并从数据库中删除。
(五)学生查询
1。
学生信息修改
修改选中当前学生的信息。
2。
学生信息添加
增加新学生的信息。
3。
学生信息删除
删除选中当前学生信息。
1。
2开发环境简介
1)Microsoftvisualc++6。
0
VisualC++是一个功能强大的可视化软件开发工具。
自1993年Microsoft公司推出VisualC++1。
0后,随着其新版本的不断问世,VisualC++已成为专业程序员进行软件开发的首选工具.
VisualC++6.0不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrateddevelopmentenvironment,IDE)。
VisualC++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导ClassWizard等开发工具.这些组件通过一个名为DeveloperStudio的组件集成为和谐的开发环境。
2)MicrosoftSQLServer2000和与系统相关的SQL语言介绍
数据定义DDL(datadefinitionlanguage)
数据定义语言是指对数据的格式和形态下定义的语言,他是每个数据库要建立时候时首先要面对的,举凡数据分哪些表格关系、表格内的有什么栏位主键、表格和表格之间互相参考的关系等等,都是在开始的时候所必须规划好的.
2。
需求分析
2。
1开发背景
随着学校向全国及至世界范围的持续扩张,学生人数的增加,对于学生的信息管理也越来越复杂,要求也越来越高,因此需要一个全面、详细的信息管理系统,以便完成对学生信息的管理。
无纸化的环境是技术时代的一个梦想,也是许多学校和公司越来越意识到的一个真实世界。
以前是由学生档案和公告栏来提供各种信息及通告新的变化,而现在这个繁杂的工作已被网站和内部计算机网络所取代.使得学生信息的管理更方便、安全。
根据调查得知,现在广大学生进行信息提交的主要方式是基于文件、表格等纸介质的手工处理,学生信息管理部门信息处理工作量大,容易出错,且管理方面因人而异。
然而学校网上学生信息管理系统应该覆盖各个所需功能,使各级管理人员和广大教职工在信息系统的辅助下进行工作,提高管理的整体水平。
使得学生信息管理更方便。
学生信息管理系统,可以用集中的数据库将与人力资源管理相关的信息全面、有机地联系起来,有效地减少了信息更新和查找中的重复劳动,保证了信息的相容性,从而大大地提高了工作效率,还能使原来不可能提供的分析报告成了可能。
在采用和实施学生信息管理系统之后,就会将依赖于人的过程改为依赖于计算机系统的过程。
学校管理人员只要获取了相应的权限,就可以随时进入系统,直接查阅相应的信息。
采用和实施学生信息管理系统不仅仅是为了提高工作效率。
为了除掉手工记录的低效率工作方式,运用信息化管理,提高工作效率,开发本系统。
应该看到,在实施学生信息管理系统后,经过整合的、较为全面、准确、一致和相容的信息不仅可以让学校领导对本学校学生资源的现状有一个比较全面和准确的认识,同时也可以生成综合的分析报表供学校领导人在决策时参考。
2.2开发目的
学生成绩管理系统是应对学生人数增多、信息量增大的问题,实现管理的现代化、网络化,逐步摆脱当前学生成绩管理的人工管理方式,提高成绩管理效率而开发的。
希望该开发程序能够解决学生信息存储、学生成绩查询、录入还有课程查询等一系列功能,并提供了对各功能模块的查询和更新功能,且这两种功能基本上是通过存储过程来实现的,其中学生成绩查询和学生信息查询是系统开发的重点。
2.3功能需求
1)教职工:
a。
信息要求:
对学生成绩的了解,对学生成绩会有一个成体的了解,在今后的课程教学中可以对自己进行改进。
同时还可以对教授的课程进行修改和重设。
还可以进一步了解学生的信息,加深对学生的了解,便于因材施教。
b.处理要求:
当学生基本信息发生变化时,老师能对其进行修改。
比如某些同学中有转校、后转来该系或转到其他系中,老师要能根据事实情况进行更新。
需要有的操作是修改、删除、增加.
能够管理课程信息。
如老师进行排课的时候能够有序的安排,不会出现错排或重复等一系列状况。
能够进行课程名、课时、学分的修改、删除和增添。
对成绩的管理,能够进行成绩的录入、修改、删除,能够清晰的了解学生的成绩和大体情况,以便做出相应的总结和改进。
c.安全性与完整性要求:
安全性要求:
1。
系统应设置访问用户的标识以鉴别是否是合法用户,并要求合法用户设置其密码,保证用户身份不被盗用;
2.系统应对不同的数据设置不同的访问级别,限制访问用户可查询和处理数据的类别和内容;
3。
系统应对不同用户设置不同的权限,区分不同的用户,如区分普通用户(学生),教职工。
完整性要求:
1。
各种信息记录的完整性,信息记录内容不能为空;
2。
各种数据间相互的联系的正确性;
3。
相同的数据在不同记录中的一致性。
2)学生:
a.信息要求:
能够查询自己的成绩信息和大家的整体成绩好做出对自己的新的定位,同时还有更改自己的学生信息,还有就是查询新的课程信息。
b。
处理要求:
当学生发现自己信息出现错误时,可以根据自己的实际情况来进行更改,比如某同学发现自己的年龄存储出现了错误就需要相应的机制进行修改、删除等。
同时还可进入成绩查询系统。
在该界面中同学可以查询自己的成绩,还可以查询整个科目的全部成绩。
2。
4数据需求
学生成绩管理系统就是对学生成绩信息的管理,所以首先我们需要知道的是学生有那些信息,并且是怎样进行分类的。
学生信息包含:
学生基本信息、课程基本信息、成绩信息。
学生基本信息根据要求应该包括学生对应的学号,姓名,性别,系别,学生年龄等;课程基本信息应该包课程号,课程名,课时,学分等;成绩表包含课程号,学号,成绩等.
与学生唯一一一对应的是学号,所以学号是唯一的主键,其他的都不能是,根据学号我们可以查找学生的基本信息,还有学生姓名等有关信息;根据课程号可以知道学生对应的成绩等。
与课程一一对应的是课程号,所以课程号是唯一主码,其他的都不是,根据课程号我们可以查询课程的基本信息,如课程名、对应的课时和对应的学分等。
与成绩对应的有两个主码,一个是课程号还有一个是学好。
只有这两个同时确定了之后才能确定一个准确的成绩。
在用户表中可以根据用户需要进行密码的修改等一系列操作。
综合分析对信息管理系统分四个表:
用户表(用户名,用户密码,用户等级)
学生表(学号,姓名,性别,系别,学生年龄)
课程表(课程号,课程名,课时,学分)
成绩表(课程号,学号,成绩)
数据流图
1)功能流图
该数据流图主要体现教职工对学生信息、课程信息和学生成绩的管理,然后存储的信息作用于查询系统。
在学生能够操作的只有成绩查询.
2)登录流图
数据字典
名字:
学生信息
描述:
学生成绩管理中存储的所有学生信息(包括所有学生查询的所需信息)
定义:
学生信息=学生学号+学生姓名+学生性别+院系+学生年龄
位置:
存储输出供查询
名字:
课程信息
描述:
有多个课程必要的信息组成
定义:
课程信息=课程号+课程名+课时+学分
位置:
存储输出供查询
名字:
用户表信息
描述:
用户情况的信息
定义:
用户信息=用户名+用户密码+用户
位置:
存储输出供查询
名字:
学生成绩信息
输入:
学生姓名
输出:
相应学生的成绩信息
名字:
查询信息
描述:
用户所提出的查询请求
定义:
查询信息=[课程查询信息|学生成绩查询信息]
位置:
课程表学生表成绩表
名字:
添加信息
输入:
学号,学生姓名,学生性别,院系,学生年龄
输出:
新输入的学生信息
名字:
删除信息
输入:
选中要删除的学生信息
输出:
删除完成
课程数据字典:
属性名
存储代码
类型
长度
课程存储号
course_id
int
4
课程号
course_no
int
4
课程名
course_name
char
10
课时
course_hour
int
4
学分
course_credit
int
4
状态
active_status
char
2
学生数据字典:
属性名
存储代码
类型
长度
学生存储号
student_id
int
4
学号
student_no
char
8
学生姓名
student_name
char
6
学生性别
student_sex
char
2
院系
student_phone
char
6
状态
active_status
char
2
学生年龄
student_age
char
10
成绩数据字典:
属性名
存储代码
类型
长度
成绩存储号
score_id
int
4
学号
student_no
chat
8
课程号
course_no
int
4
成绩
score
int
4
状态
active_status
char
2
用户数据字典:
属性名
存储代码
类型
长度
用户名
user_name
varchar
50
用户密码
user_password
varchar
50
用户等级
user_level
char
10
状态
active_status
char
10
用户存储号
user_id
int
4
3。
系统设计
4.数据库设计
4.1概念设计(E-R图)
4。
2逻辑设计(与具体的DBMS有关的表结构)
该设计以概念结构设计中的E—R图为主要依据,设计出相关的整体逻辑结构。
根据总E—R图了解有四个实体,四个关系模式如下:
用户表(用户名,用户密码,用户等级)
学生表(学号,姓名,性别,系别,学生年龄)
课程表(课程号,课程名,课时,学分)
成绩表(课程号,学号,成绩)
5.详细设计
画几个主要功能模块的程序流程图或者写算法
1)在课程对话框中实现课程修改
voidCCourseDlg:
:
OnCourseEdit()
{
//得到CList当前所选的行号
introw=m_list.GetSelectionMark();
CStrings,strSQL;
//将当前行的第一列的值赋给s
s=m_list.GetItemText(row,0);
if(s==”")//如果s为空,则表示没有选中行
{
MessageBox("请选择一行!
");
}
else//如果有选中一行
{
//定义查询条件,相当于where
strSQL。
Format("course_id=%s”,s);
//打开记录集
m_courseSet。
Open();
//设置查询条件
m_courseSet。
m_strFilter=strSQL;
//执行查询
m_courseSet。
Requery();
//游标指定到该行所在的记录上,执行修改
m_courseSet。
Edit();
//设置点击修改按钮后其他按钮的状态
m_bConfirm。
EnableWindow(true);
m_bAdd。
EnableWindow(false);
m_bEdit.EnableWindow(false);
m_bDel.EnableWindow(false);
m_strName。
EnableWindow(true);
m_strNo。
EnableWindow(true);
m_strHour.EnableWindow(true);
m_strCredit。
EnableWindow(true);
}
}
2)在课程对话框中实现课程添加
voidCCourseDlg:
:
OnCourseAdd()
{
//设置输入框为可编辑状态并清空输入框中的值
m_strNo。
EnableWindow(true);
m_strNo.SetWindowText("");
m_strName。
EnableWindow(true);
m_strName。
SetWindowText("");
m_strHour.EnableWindow(true);
m_strHour.SetWindowText(”");
m_strCredit。
EnableWindow(true);
m_strCredit.SetWindowText(””);
//打开记录集
m_courseSet.Open();
//添加新记录
m_courseSet.AddNew();
//设置点击确定按钮后,其他按钮的状态
m_bConfirm。
EnableWindow(true);
m_bAdd.EnableWindow(false);
m_bEdit。
EnableWindow(false);
m_bDel。
EnableWindow(false);
}
3)在课程对话框中实现课程删除
voidCCourseDlg:
:
OnCourseDel()
{
//得到CList当前所选的行号
introw=m_list。
GetSelectionMark();
CStrings,strSQL;
//将当前行的第一列的值赋给s
s=m_list。
GetItemText(row,0);
if(s==””)//如果s为空,则表示没有选中行
{
MessageBox(”请选择一行!
");
}
else
{
//弹出窗口询问是否删除数据
if(MessageBox("确定要删除记录吗?
","删除询问
”,MB_OKCANCEL|MB_ICONQUESTION)==IDOK)
{
//查询所选行所在的记录
strSQL。
Format("course_id=%s",s);
m_courseSet。
Open();
m_courseSet。
m_strFilter=strSQL;
m_courseSet。
Requery();
m_courseSet.Edit();
//设置active_status="N”;
m_courseSet.m_active_status="N";
//更新数据库
m_courseSet.Update();
//关闭数据库
m_courseSet.Close();
//更新CList数据
RefreshList();
}
}
}
4)登录的确认
voidCLoginDlg:
:
OnOK()
{
CStringusername,password;//定义两个字符串变量
m_strUserName.GetWindowText(username);//将文本框中的值赋给username
m_strPassword。
GetWindowText(password);//将文本框中的值赋给帕password
if(!
m_database。
IsOpen()){//如果数据没有打开,则打开数据库
if(m_database。
Open(_T("student")))//如果正确打开数据库
{
m_recordSet。
m_pDatabase=&m_database;//将m_database对象赋给m_pDatabase
CStringstrSQL;
strSQL。
Format("select*fromUSER_PSWDwhereuser_name=’%s'anduser_password=’%s'andactive_status=’Y’”,username,password);
m_recordSet.Open(CRecordset:
:
forwardOnly,strSQL);//打开记录集
if(m_recordSet.GetRecordCount()==0)//如果找不到记录
{
MessageBox(”密码错误,请重新输入",”密码错误",MB_OK|MB_ICONWARNING);//提示密码错误
m_strPassword。
SetWindowText(”");//清空密码文本框
m_strPassword。
SetFocus();//设置用户名文本框为当前的焦点
}
else//如果找到记录
{
m_recordSet。
GetFieldValue(”user_level”,m_userLevel);//则将数据库中的权限值赋给m_userLevel
CDialog:
:
OnOK();//进入到主窗口
}
m_recordSet.Close();//关闭记录集
m_database.Close();//关闭数据库
}
else//如果没有正确打开数据库
{
MessageBox(”不能打开数据库”);
}
}
}
5)修改密码的确认
voidCPasswordDlg:
:
OnOK()
{
//定义4个CEdit变量
CEdit*pUsername=(CEdit*)this->GetDlgItem(IDC_EDIT_USERNAME);
CEdit*pPassword=(CEdit*)this—〉GetDlgItem(IDC_EDIT_PASSWORD);
CEdit*pNew=(CEdit*)this—〉GetDlgItem(IDC_EDIT_NEW);
CEdit*pConfirm=(CEdit*)this—〉GetDlgItem(IDC_EDIT_CONFIRM);
//分别将文本框的值赋给4个字符串
CStringusername,password,newPassword,confirmPassword;
pUsername—〉GetWindowText(username);
pPassword—>GetWindowText(password);
pNew-〉GetWindowText(newPassword);
pConfirm-〉GetWindowText(confirmPassword);
//定义数据库对象和记录集对象
CDatabasem_database;
CUserSetm_recordSet;
//判断新密码是是为空
if(newPassword.IsEmpty()||confirmPassword。
IsEmpty())
{
MessageBox(”密码不为空");
}
else
{
if(newPassword!
=confirmPassword)//判断两次输入的新密码是否相同
{
MessageBox(”两次输入密码不一致,请重新输入新密码");
pNew->SetWindowText("”);//清空新密码文本框
pConfirm—〉SetWindowText(””);//清空确认密码文本框
pNew—>SetFocus();//设置新密码文本框为焦点
}
else
{
if(!
m_database。
IsOpen()){//如果数据没有打开,则打开数据库
{m_database.Open(_T("student"));//如果正确打开数据库
//m_recordSet。
Edit();
m_recordSet。
m_pDatabase=&m_database;//将m_database对象赋给m_pDatabase
CStringstrSQL;
strSQL.Format(”select*fromUSER_PSWDwhereuser_name=’%s'anduser_password='%s’andactive_status='Y'”,username,password);
m_recordSet。
Open(CRecordset:
:
forwardOnly,strSQL);//打开记录集
if(m_recordSet.GetRecordCount()==0)//如果找不到记录
{
MessageBox(”密码错误,请重新输入",”密码错误”,MB_OK|MB_ICONWARNING);//提示密码错误
pPassword—>SetWindowText(””);//清空密码文本框
pNew-〉SetWindowText("");//清空新密码文本框
pConfirm—>SetWindowText("");//清空确认密码文本框
pPassword->SetFocus();//设置用户名文本框为当前的焦点
}
else//如果找到记录
{
//更新密码的sql语句
strSQL。
Format("updateUSER_PSWDsetuser_password='%s’whereuser_name='%s’",newPassword,username);
m_database。
ExecuteSQL(strSQL);//执行sql
MessageBox(”修改密码成功!
”);
CDialog:
:
OnOK();
}
m_recordSet。
Close();//关闭记录集
m_database.Close();//关闭数据库
}
}
}
}
}
6.系统总结(或结束语)
6。
1简要介绍在何种开发环境下实现了何种功能、结果如何
该学生成绩管理系统,实现简单的密码修改、成绩查询、课程查询、学生查询等操作,并能实现简单的数据统计。
此系统主要完成用户密码登录、用户密码的修改、成绩查询、课程查询、学生查询、具体成绩查询等基本功能.
(一)用户密码登录:
在登录程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 学生 成绩管理系统
![提示](https://static.bdocx.com/images/bang_tan.gif)