数据库课程设计教务管理系统Word文档下载推荐.doc
《数据库课程设计教务管理系统Word文档下载推荐.doc》由会员分享,可在线阅读,更多相关《数据库课程设计教务管理系统Word文档下载推荐.doc(25页珍藏版)》请在冰点文库上搜索。
3.完成本系统的部分功能模块的程序界面设计。
指导教师:
高春玲
2014年12月28日
课程设计评语
成绩:
指导教师:
_______________
年月日
洛阳理工学院课程设计报告
目录
一、概述 2
1.1、本设计的目的与意义 2
1.2、数据库开发工具和应用程序开发工具 2
二、需求分析 2
2.1功能需求 2
2.2数据需求 2
三、概念结构设计 2
3.1、E-R模型设计 2
3.2、总体E-R图描述 4
四、逻辑结构设计 4
4.1、关系模型 4
4.2、关系模式的优化与说明 4
五、物理结构设计 5
5.1建立数据库5
5.2表与表结构5
六、应用程序设计 6
6.1、系统总体结构6
6.2、系统界面与源代码7
6.2.1、界面7
6.2.2、功能描述9
6.2.3、程序源代码9
七、设计总结 23
八、体会与收获 24
九、参考文献 24
一、概述
本系统后台数据库采用MicrosoftSQLServer数据库,该数据库系统在安全性、准确性和运行速度方面有绝对的优势,并且处理数据量大,效率高;
前台采用Microsoft公司的VisualStudio2010作为主要开发工具,可与SQLServer2008数据库无缝链接。
二、需求分析
2.1、功能需求
本系统的功能如下:
1)学生信息查询:
学生可以根据学号、姓名、专业进行查询.
2)学生信息管理:
主要是用于学生信息更新、插入、删除;
3)学生成绩录入:
用于学生成绩管理,录入学生成绩,也可以更新;
2.2、数据需求
本系统需要的数据如下:
学生:
学号、姓名、性别、年龄
教师:
工号、姓名、性别、年龄
班级:
班号、班名、人数、
课程:
课程号、课程名、上课时间、上课地点
专业:
专业号、专业名
三、概念结构设计
3.1、E-R模型设计(E-R图)
学生和教师实体及其属性E-R图
教师与课程E-R图
部分实体的E-R图
总体E-R图
3.2、总体E-R图描述
学生与班级之间的联系是所属关系(一对多关系)
班级与专业之间的联系是所属关系(一对多关系)
班级与课程之间的联系是学习关系(多对多关系)
学生选修一门选修课(一对多关系)
学生评教老师所教课程(多对多关系)
老师教授课程(多对多关系)
四、逻辑结构设计
4.1、关系模型
学生(学号、姓名、性别、年龄、班号、选修课程号、分数)
教师(工号、姓名、性别、年龄)
班级(班号、班名、人数、专业名)
课程(课程号、课程名)
成绩(必修课程号、班号、学号、分数)
评教(学号、工号、课程号、评分)
教授(工号、课程号)
课程表(课程号、工号、上课时间、上课地点)(实现排课功能)
用户(用户名、密码、用户类型)(存储登陆查询系统的人员信息)
加粗表示外键、加下划线表示主码
4.2、关系模式的优化与说明
例如:
教授关系的依赖关系如下:
(工号、课程号)—〉工号、课程号
所以教授关系模式属于第三范式
教师关系的依赖关系如下:
工号—>
因为没有非主属性对码的部分函数依赖,也没有非主属性对码的传递函数依赖
所以教师关系模式属于第三范式
五、物理结构设计
5.1、数据库的建立
5.2、表与表结构
班级(Class)表的结构
课程(Course)表的结构
学生(Student)表的结构
教师(Teacher)表的结构
评教(Judge)表的结构
教授(Teach)表的结构
成绩(Grade)表的结构
六、应用程序设计
6.1、系统总体结构
1)主界面:
登陆界面,通过选择用户类型,输入用户名密码,点击登录进入不同界面。
2)子界面:
不同用户类型的界面不相同,学生可以查询成绩,老师可以查看自己所教课程有哪些学习,教务员可以实现排课功能。
他们都能够修改自己的登录密码
6.2、系统界面与源代码
6.2.1、界面
登陆界面
学生界面
老师界面
6.2.2、功能描述
1)登录
2)学生查询学习课程的成绩
3)老师查询学习所教课程的学生名单
4)修改登录密码
5)查看用户基本信息
6.2.3、程序源代码
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
namespace教务管理系统
{
publicstructUserInform //结构体存储用户输入的信息
{
publicstaticstringUserType;
publicstaticstringUserName;
publicstaticstringUserSecret;
publicstaticLoginFormlg;
}
publicpartialclassLoginForm:
Form//登陆界面
publicLoginForm()
{
InitializeComponent();
UserInform.lg=this;
}
DataClasses1DataContextdb;
privatevoidCancelbutton_Click(objectsender,EventArgse)
this.Close();
privatevoidLoginbutton_Click(objectsender,EventArgse)
db=newDataClasses1DataContext();
this.bindingSource1.DataSource=db.UserInfo;
boolb=false;
if(UtypecomboBox.SelectedIndex!
=-1)
{
UserInform.UserName=UnametextBox.Text;
UserInform.UserSecret=UsecrettextBox.Text;
UserInform.UserType=UtypecomboBox.SelectedItem.ToString();
varss=fromsindb.UserInfowheres.Utype==UserInform.UserTypeselects;
foreach(varxinss)
{
if(x.Uname.ToLower()==UserInform.UserName.ToLower()&
&
x.Usecret==UserInform.UserSecret)
{
MessageBox.Show("
欢迎您登陆!
!
"
);
this.Visible=false;
b=true;
switch(UserInform.UserType)
{
case"
学生"
:
StudentFormsf=newStudentForm();
sf.Show();
break;
老师"
TeacherFormtf=newTeacherForm();
tf.Show();
管理员"
AdminFormaf=newAdminForm();
af.Show();
教务员"
JwFormjw=newJwForm();
jw.Show();
}
}
}
if(!
b)
MessageBox.Show("
用户名不存在或密码错误"
UsecrettextBox.Clear();
UnametextBox.Focus();
return;
}
}
else
MessageBox.Show("
请选择用户类型"
UnametextBox.Clear();
UsecrettextBox.Clear();
UnametextBox.Focus();
return;
publicpartialclassStudentForm:
Form//学生界面
publicStudentForm()
privatevoidStudentForm_Load(objectsender,EventArgse)
SnotextBox.Text=UserInform.UserName;
SnotextBox1.Text=UserInform.UserName;
varss=fromsindb.Studentwheres.Sno==UserInform.UserNameselects;
foreach(varitminss)
SnametextBox.Text=itm.Sname;
SagetextBox.Text=itm.Sage.ToString();
SsextextBox.Text=itm.Ssex;
privatevoidlabel4_Click(objectsender,EventArgse)
UserInform.lg.Visible=true;
privatevoidlabel3_Click(objectsender,EventArgse)
panel2.Visible=true;
privatevoidEnterbutton_Click(objectsender,EventArgse)
if(textBox1.Text=="
)
请输入原密码"
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox1.Focus();
elseif(textBox1.Text==UserInform.UserSecret)
if(textBox2.Text==textBox3.Text)
varss=fromsindb.UserInfowheres.Uname==UserInform.UserName&
s.Utype==UserInform.UserTypeselects;
varui=ss.FirstOrDefault();
if(ui!
=null)
ui.Usecret=textBox2.Text;
db.SubmitChanges();
修改成功"
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
panel2.Visible=false;
else
{
两次输入应相同"
textBox3.Clear();
textBox3.Focus();
else
原密码输入错误,请重新输入"
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
panel2.Visible=false;
privatevoidStudentForm_FormClosing(objectsender,FormClosingEventArgse)
try
this.bindingSource1.EndEdit();
db.SubmitChanges();
catch(Exceptionex)
MessageBox.Show(ex.Message,"
失败"