数据库课程设计教务管理系统_第1页
数据库课程设计教务管理系统_第2页
数据库课程设计教务管理系统_第3页
数据库课程设计教务管理系统_第4页
数据库课程设计教务管理系统_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、洛阳理工学院课程设计报告课程名称数据库课程设计设计题目教务管理系统专业计算机科学与技术班级B120505学号姓名完成日期2015-1-4课程设计任务书设计题目:教务管理系统设计内容与要求:设计教务管理系统,类似于我校教务管理系统,有四类用户:教务员、学生、教师、管理员教务员可以输入学生、教师、班级、课程信息。一个班级只属于一个专业,一个学生只属于一个班级。教务员负责输入每个专业、每个班级需要学习哪些课程,指定课程的任课教师。教师可以查看学习该课程的学生名单。课程结束后,教师可以录入课程成绩。一个教师可以教授多个班的多门课程,每门课由多位老师讲授。课程分两类,必修课和选修课。系统要记录每个学生学

2、习各门必修课的成绩,还要记录学生选修了哪些选修课以及课程成绩。学生可以查看自己各门课程的成绩。学生还可以进行评教,给老师打分。管理员可以输入教室信息,并结合班级、课程、教室信息实现自动排课。要求:1 .完成本系统的需求分析,写出功能需求和数据需求描述;2 .完成数据库的概念结构设计、逻辑结构设计、物理结构设计;3 .完成本系统的部分功能模块的程序界面设计。指导教师:高春玲2014年12月28日课程设计评语成绩:指导教师:年月日目录1、 概述21.1、 本设计的目的与意义21.2、 数据库开发工具和应用程序开发工具22、 需求分析22.1、 功能需求22.2、 数据需求23、 概念结构设计23.

3、1、 E-R模型设计23.2、 总体E-R图描述44、 逻辑结构设计44.1、 关系模型44.2、 关系模式的优化与说明45、 物理结构设计55.1、 建立数据库55.2、 表与表结构56、 应用程序设计66.1、 系统总体结构66.2、 系统界面与源代码76.2.1、 界面76.2.2、 功能描述96.2.3、 程序源代码9七、设计总结23八、体会与收获24九、参考文献24概述本系统后台数据库采用MicrosoftSQLServer数据库,该数据库系统在安全性、准确性和运行速度方面有绝对的优势,并且处理数据量大,效率高;前台采用Microsoft公司的VisualStudio2010作为主要

4、开发工具,可与SQLServer2008数据库无缝链接。二、需求分析2.1、 功能需求本系统的功能如下:1)学生信息查询:学生可以根据学号、姓名、专业进行查询.2)学生信息管理:主要是用于学生信息更新、插入、删除;3)学生成绩录入:用于学生成绩管理,录入学生成绩,也可以更新;2.2、 数据需求本系统需要的数据如下:学生:学号、姓名、性别、年龄教师:工号、姓名、性别、年龄班级:班号、班名、人数、课程:课程号、课程名、上课时间、上课地点专业:专业号、专业名三、概念结构设计3.1、 E-R模型设计(E-R图)学生和教师实体及其属性E-R图教师与课程E-R图性别班名班号名数号专业属于属于1一n学习号课

5、程,上课地点上课年龄学生班级名部分实体的E-R图总体E-R图3.2、 总体E-R图描述学生与班级之间的联系是所属关系(一对多关系)班级与专业之间的联系是所属关系(一对多关系)班级与课程之间的联系是学习关系(多对多关系)学生选修一门选修课(一对多关系)学生评教老师所教课程(多对多关系)老师教授课程(多对多关系)四、逻辑结构设计4.1、关系模型学生(也姓名、性别、年龄、班号、选修课程号、分数)教师(工上姓名、性别、年龄)班级(班2班名、人数、专业名)课程(课程号、课程名)成绩(必修课程号、班号、学号、分数)评教(学号、工号、课程号、评分)教授(工号、课程号)课程表(课程号、工号、上课时间、上课地点

6、)(实现排课功能)用户(用户名、密码、用户类型)(存储登陆查询系统的人员信息)加粗表示外键、加下划线表示主码42关系模式的优化与说明例如:教授关系的依赖关系如下:(工号、课程号)一工号、课程号所以教授关系模式属于第三范式教师关系的依赖关系如下:工号一工号、姓名、性别、年龄因为没有非主属性对码的部分函数依赖,也没有非主属性对码的传递函数依赖所以教师关系模式属于第三范式五、物理结构设计5.1、 数据库的建立融系库名标如.所有若(6):'|77融品军文件任建科之徐文仲芫型WitrtdSMBl巨的加长踹役款若谷妻行数据FKDMAKI增国为1nh不限利雷性E1的据库谀设髓善善理,日志襁用1期量为

7、1成,增性的是.l;且上期据埠课设5.2、 表与表结构刘君重就除取NullO3CnojcJhiar(UcnEuVfflrcfriar(20臼Cnumbnyirrt臼ClmjajcirvarrfiarCZO)臼班级(Class)表的结构列名允许Null|直号enojvardhar(io)Cnamevarehar<2O)回课程(Course表的结构SHO SnameSsex: 另己口 a Sgiracie|d-iar(9)vardhar(NO)dhar(2)tinyinttunyintvarchart1O3学生(Student)表的结构列名数据类型允许Null值*3,Tnochar19,Tn

8、amevarchar(20)Tsexchar12>Tag«bnytnts11教师(Teacher)表的结构叩 理 用列名JxuehaoJgonghaoJkehacgrade数据类型char C9) varcharClO)tinyint允许Hull值评教(Judge)表的结构列名数据类型允许Null值叩Tnochar(9)鼠TenovarcharflO允详Null值教授(Teach)表的结构列名数据类型A殍IGkehaoIvarcharflOjU.占占占4占占占上口上041口dhU.&U.占&占44444口41上1414它GbanhaocharfT5char<

9、;9) tin yint建GxuehaoGgrade成绩(Grade)表的结构六、应用程序设计6.1、 系统总体结构1)主界面:登陆界面,通过选择用户类型,输入用户名密码,点击登录进入不同界面。2)子界面:不同用户类型的界面不相同,学生可以查询成绩,老师可以查看自己所教课程有哪些学习,教务员可以实现排课功能。他们都能够修改自己的登录密码6.2、 系统界面与源代码6.2.1、 界面即1昨时月刎日星期日"14-初蟀理篝一字期第I烟登陆界面学生界面老师界面6.2.2、 功能描述1)登录2)学生查询学习课程的成绩3)老师查询学习所教课程的学生名单4)修改登录密码5)查看用户基本信息6.2.3

10、、 程序源代码usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;namespace教务管理系统publicstructUserInform/结构体存储用户输入的信息publicstaticstringUserType;publicstaticstringUserName;publicstaticstringUse

11、rSecret;publicstaticLoginFormlg;publicpartialclassLoginForm:Form/登陆界面publicLoginForm()InitializeComponent();UserInform.lg=this;DataClasses1DataContextdb;privatevoidCancelbutton_Click(objectsender,EventArgse)this.Close();privatevoidLoginbutton_Click(objectsender,EventArgse)db=newDataClasses1DataConte

12、xt();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;for

13、each(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;case"老师":TeacherFormtf=newTea

14、cherForm();tf.Show();break;case"管理员":AdminFormaf=newAdminForm();af.Show();break;case"教务员":JwFormjw=newJwForm();jw.Show();break;if(!b)MessageBox.Show("用户名不存在或密码错误");UsecrettextBox.Clear();UnametextBox.Focus();return;elseMessageBox.Show("请选择用户类型");UnametextBox.C

15、lear();UsecrettextBox.Clear();UnametextBox.Focus();return;publicpartialclassStudentForm:Form/学生界面publicStudentForm()InitializeComponent();DataClasses1DataContextdb;privatevoidStudentForm_Load(objectsender,EventArgse)db=newDataClasses1DataContext();SnotextBox.Text=UserInform.UserName;SnotextBox1.Text

16、=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)this.Close();UserInform.lg.Visible=true;privatevoidlabel3_Cl

17、ick(objectsender,EventArgse)panel2.Visible=true;privatevoidEnterbutton_Click(objectsender,EventArgse)db=newDataClasses1DataContext();if(textBox1.Text="")MessageBox.Show("请输入原密码"力textBox1.Clear();textBox2.Clear();textBox3.Clear();textBox1.Focus();elseif(textBox1.Text=UserInform.Us

18、erSecret)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();MessageBox.Show("修改成功");textBox1.Clear();textBox2.Clear();textBox3.

19、Clear();panel2.Visible=false;elseMessageBox.Show("两次输入应相同");textBox3.Clear();textBox3.Focus();elseMessageBox.Show("原密码输入错误,请重新输入");textBox1.Clear();textBox2.Clear();textBox3.Clear();textBox1.Focus();privatevoidCancelbutton_Click(objectsender,EventArgse)textBox1.Clear();textBox2.C

20、lear();textBox3.Clear();panel2.Visible=false;privatevoidStudentForm_FormClosing(objectsender,FormClosingEventArgse)db=newDataClasses1DataContext();this.bindingSource1.DataSource=db.UserInfo;trythis.bindingSource1.EndEdit();db.SubmitChanges();catch(Exceptionex)MessageBox.Show(ex.Message,"失败"

21、;);privatevoidGradebutton_Click(objectsender,EventArgse)db=newDataClasses1DataContext();if(CnametextBox.Text!="")varss=fromsindb.Coursewheres.Cname=CnametextBox.Textselects;varcs=ss.FirstOrDefault();if(cs!=null)vars1=froms2indb.Gradewheres2.Gkehao=cs.Cno&&s2.Gxuehao=UserInform.User

22、Nameselects2;foreach(varitemins1)GradelistBox.Items.Add(CnametextBox.Text+"的成绩为"+item.Ggrade.ToString();elseGradelistBox.Items.Add("此课程不存在")GradelistBox.Items.Add("请重新输入");CnametextBox.Clear();CnametextBox.Focus();privatevoidClearbutton_Click(objectsender,EventArgse)Gra

23、delistBox.Items.Clear();privatevoidtabPage1_Click(objectsender,EventArgse)publicpartialclassTeacherForm:Form/老师界面publicTeacherForm()InitializeComponent();DataClasses1DataContextdb;privatevoidEnterbutton_Click(objectsender,EventArgse)db=newDataClasses1DataContext();MessageBox.Show("请输入原密码")

24、;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=textBox

25、2.Text;db.SubmitChanges();MessageBox.Show("修改成功");textBox1.Clear();textBox2.Clear();textBox3.Clear();panel2.Visible=false;elseMessageBox.Show("两次输入应相同");textBox3.Clear();textBox3.Focus();elseMessageBox.Show("原密码输入错误,请重新输入");textBox1.Clear();textBox2.Clear();textBox3.Cle

26、ar();textBox1.Focus();privatevoidlabel4_Click_1(objectsender,EventArgse)this.Close();UserInform.lg.Visible=true;privatevoidTeacherForm_Load(objectsender,EventArgse)db=newDataClasses1DataContext();SnotextBox.Text=UserInform.UserName;SnotextBox1.Text=UserInform.UserName;varss=fromsindb.Teacherwheres.T

27、no=UserInform.UserNameselects;foreach(varitminss)SnametextBox.Text=itm.Tname;SagetextBox.Text=itm.Tage.ToString();SsextextBox.Text=itm.Tsex;privatevoidTeacherForm_FormClosing(objectsender,FormClosingEventArgse)db=newDataClasses1DataContext();this.bindingSource1.DataSource=db.UserInfo;trythis.binding

28、Source1.EndEdit();db.SubmitChanges();catch(Exceptionex)MessageBox.Show(ex.Message,"失败");privatevoidlabel3_Click(objectsender,EventArgse)if(panel2.Visible=false)panel2.Visible=true;elsepanel2.Visible=false;privatevoidCancelbutton_Click(objectsender,EventArgse)textBox1.Clear();textBox2.Clear

29、();textBox3.Clear();panel2.Visible=false;privatevoidlabel5_Click(objectsender,EventArgse)db=newDataClasses1DataContext();varss=fromsindb.Teachwheres.Tno=UserInform.UserNameselects;if(ss!=null)SelectTablest=newSelectTable();foreach(variteminss)if(item.Tcno.StartsWith("X")vars1=fromsindb.Stu

30、dentwheres.Skehao=item.Tcnoselectnew课号=s.Skehao,学号=s.Sno,学生姓名=s.Sname,性别=s.Ssex,成绩=s.Sgrade;st.lb.Items.Add("课号t学号tt姓名t性别t成绩");foreach(varimins1)st.lb.Items.Add(im.课号+"t"+im.学号+"t"+im.学生姓名+"t"+im.性别+"t"+im.成绩);elsevars1=fromsindb.Gradewheres.Gkehao=i

31、tem.Tcnoselects;st.lb.Items.Add("课号t学号tt姓名t性别t成绩");foreach(varitmins1)vars2=fromsindb.Studentwheres.Sno=itm.Gxuehaoselectnew课号=itm.Gkehao,学号=itm.Gxuehao,学生姓名=s.Sname,性别=s.Ssex,成绩=itm.Ggrade;variem=s2.FirstOrDefault();st.lb.Items.Add(iem.课号+"t"+iem.学号+"t"+iem.学生姓名+"t"+iem.性别+"t"+iem.成绩);st.Show();elseMessageBox.Show("该老师今年没有教授任何课程");return;privatevoidlabel6_Click(objectsender,EventArgse)db=newDataClasses1DataContext();varss=fromsindb.Teachwheres.Tno=UserInform.UserNameselects;if(ss!=null

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论