《《数据库原理与技术课程设计》设计报告(共17页).doc》由会员分享,可在线阅读,更多相关《《数据库原理与技术课程设计》设计报告(共17页).doc(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上数据库原理与技术课程设计设计报告姓名:杨延超学号:5班级:计算机科学与技术01班课程设计题目:学籍管理系统1 需求分析1.1系统目标:实现一个通用学籍管理系统,完成对学生学籍信息的增加、删除、修改、查询、显示全部学生学籍信息等功能。1.1系统功能需求:本系统只在学校内部使用,故无需登录。用户可直接进入到主界面,进行各种操作,诸如录入学生信息、删除已不在的学生的学籍信息、修改有错误信息的学生的学籍信息、查询所要找的学生的学籍信息以及查看所有学生的学籍信息。(1) 功能划分:用户无需经过身份验证,直接进入到学籍管理系统的主界面。主界面为用户提供了6个功能,即增加记录、删除
2、记录、修改记录、查询记录、显示全部记录和退出。(2) 功能描述:增加记录:用户进入到主界面后,若想添加新的学生学籍信息,可点击增加记录按钮。则会跳出一增加记录的对话框,用户可在各对应的框内填写所要填写的信息。当然这些不能胡乱的填写,要根据日常情况来填写。删除记录:用户进入到主界面后,若想把那些已不在的学生删除掉,可点击删除记录按钮。则会跳出一删除记录对话框,用户填写所要删除学生的学号,点击确定。若该学生的学籍信息不在数据库中,则会出现提示信息“无此学生”。若在数据库中有该学生的学籍信息,则会显示另一提示信息“确定删除吗?”,点击确定,又会出现一提示信息“删除成功”。虽然有些繁琐,但能确保不误删
3、学生的学籍信息。修改记录:用户进入到主界面后,倘若想修改那些由于各种情况所造成的错误信息时,可点击主界面上的修改记录按钮。点击后会跳出一修改记录的对话框,用户可以根据有错误信息的学生的学号,先进行查询,查询后会显示该学生的全部学籍信息,用于可将错误的信息纠正过来,然后点击修改。返回主界面可点击退出按钮。查询记录:用户进入到主界面后,如果想要查看某个学生的学籍信息,可点击查询记录按钮。则会跳出一查询记录的对话框,用户输入想要查询学生的学号就可以查看到该学生的全部学籍信息。全部记录:用户进入到主界面后,想要查看全部学生的学籍信息,可点击全部记录按钮。则会在主界面的下部显示全部学生的学籍信息。退出:
4、用户进入到主界面后,进行了各种操作后,想要退出该学生学籍管理系统,可点击主界面上的退出按钮。点击后,用户就可以退出本系统。2 数据库的概念设计2.1系统的概念模型:111N1N用户增加记录学生学籍信息1N删除记录学生学籍信息N修改记录学生学籍信息N查询记录学生学籍信息全部显示学生学籍信息退出使用权限姓名图2-1 学生学籍管理系统概念模型的E/R图学生学籍信息学号姓名性别政治面貌家庭地址出生年月籍贯系院专业 图2-2 学生学籍信息的属性E/R图上面两张图是学生学籍管理系统的概念模型的E/R图,该系统所涉及的实体集有:学生学籍信息实体集:具体属性有学号、姓名、性别、政治面貌、出生年月、专业、系院、
5、籍贯、家庭住址。用户实体集:具体属性有使用权限。用户可以对多个学生的学籍信息进行管理,所以用户与学生学籍信息之间的关系为1:N。3 将概念模型转换为改性模型3.1将E-R模型转换为关系模式(1)学生学籍信息转换为关系:STUDENT(CODE,NAME,SEX,POLITICAL,NATIVE,BIRTH,DEPARMENT,MAJOR,ADDRESS)CODEE表示学号,NAME表示姓名,SEX表示性别,POLITICAL表示政治面貌,NATIVE表示籍贯,BIRTH表示出生年月,DEPARMENT表示院系,MAJOR表示专业,ADDRESS表示家庭地址。3.2数据库表结构设计:把关系模型转
6、化为表结构:学生学籍信息表(student)所包含的学生学籍信息,定义如下:表 1 学生学籍信息表域名含义数据类型例子备注code学号nvarchar(10)主键name姓名nvarchar(30)陈云龙sex性别nvarchar(2)男political政治面貌Nvarchar(16)团员native籍贯Nvarchar(8)江苏birth出生年月Nvarchar(10)1989deparment院系Nvarchar(30)计算机工程major专业Nvarchar(30)科学与技术address家庭地址Nvarchar(100)启东3.3实现数据完整性通过各种约束,缺省,规则和触发器实现数据
7、的完整性。由于学生学籍管理系统的重要性,和各个数据之间的复杂相关性,保证数据的完整性显得更为重要。不能让用户随意的删除,修改数据。(1) CHECK约束保证查询时只能输入学号。(2)PRIMARY KEY约束在表中定义了一个惟一标识每一列的主键,即code(学号)。(3)使用默认值和规则。(4)各种外键约束保证数据的完整性,不能随意删除。(5)主键约束保证实体的完整性。(6)创建规则保证学生的出生年月只能输入数字,不会输入错误数据。(7)创建触发器,保证在添加学生信息的时候,自动将该班级的必修课添加到选课表中。4 应用程序设计开始进入主界面退出Y退出N选择相关操作退出进行相关操作YN继续相关操
8、作4.1 学生学籍管理系统的处理流程图: 图5-1 学生学籍管理系统的处理流程图 4.2 总体结构和外部模块设计:学生学籍管理系统学生学籍信息增加模块学生学籍信息删除模块学生学籍信息修改模块学生学籍信息查询模块学生学籍信息全部显示模块退出 图4-2 模块设计图4.3 主要功能的代码(1)增加记录void CAddDlg:OnButton1() UpdateData(true); /把编辑框里的东西放到相关变量CAdd m_set;m_set.Open();m_set.MoveFirst();doif(m_set.m_code=m_code)MessageBox(学号已存在,请重新输入!,增加记
9、录);m_set.Close();return;m_set.MoveNext();while(!m_set.IsEOF();m_set.AddNew(); /m_set.m_code=m_code;m_set.m_name=m_name;m_set.m_sex=m_sex;m_set.m_political=m_political;m_set.m_native=m_native;m_set.m_borth=m_borth;m_set.m_department=m_department;m_set.m_major=m_major;m_set.m_address=m_address;m_set.U
10、pdate(); /更新m_set.Close();MessageBox(录入成功!,增加成功);void CAddDlg:OnButton2() OnOK();(2)删除记录void CDelDlg:OnButton1() UpdateData(true);CAdd dat;dat.Open();dat.MoveFirst();doif(dat.m_code=m_code)if (MessageBox(确定删除吗?,学生信息管理,MB_YESNO)=IDNO)dat.Close();return;dat.Delete();MessageBox(删除成功!,学生信息管理);dat.Close(
11、);return;dat.MoveNext();while(!dat.IsEOF(); MessageBox(无此学生,学生信息管理);(3)修改记录void CChangDlg:OnButton1() UpdateData(true);CAdd dat;dat.Open();dat.MoveFirst();doif(dat.m_code=m_code)dat.Edit();dat.m_code=m_code;dat.m_name=m_name;dat.m_sex=m_sex;dat.m_political=m_political;dat.m_native=m_native;dat.m_bor
12、th=m_borth;dat.m_department=m_department;dat.m_major=m_major;dat.m_address=m_address;dat.Update();MessageBox(修改成功!,修改记录);dat.Close();return;dat.MoveNext();while(!dat.IsEOF();dat.Close();MessageBox(无此学生!,修改记录);(4)查询记录void CScanDlg:OnButton1() UpdateData(true);int flag=0;m_list.DeleteAllItems();CStrin
13、g s;CAdd m_set;if(m_code=)MessageBox(请输入要查的学号!,学生信息查询);return;m_set.Open();m_set.MoveFirst();int j=0;doif(m_set.m_code=m_code)flag=1;break;m_set.MoveNext();while(!m_set.IsEOF();if(flag=0)MessageBox(不存在该学号!,错误);elsem_list.InsertItem(0,m_set.m_code,0);m_list.SetItemText(0,1,m_set.m_name);m_list.SetIte
14、mText(0,2,m_set.m_sex);m_list.SetItemText(0,3,m_set.m_political);m_list.SetItemText(0,4,m_set.m_native);m_list.SetItemText(0,5,m_set.m_borth);m_list.SetItemText(0,6,m_set.m_department);m_list.SetItemText(0,7,m_set.m_major);m_list.SetItemText(0,8,m_set.m_address);m_set.Close();UpdateData(false);(5)全部
15、记录void CMyDlg:OnAll() UpdateData(true);CAdd m_set; /调用数据库m_set.Open(); /打开数据库m_set.MoveFirst();int j=0;m_list.DeleteAllItems();dom_list.InsertItem(j,m_set.m_code,0); /m_list.SetItemText(j,1,m_set.m_name);m_list.SetItemText(j,2,m_set.m_sex);m_list.SetItemText(j,3,m_set.m_political);m_list.SetItemText
16、(j,4,m_set.m_native);m_list.SetItemText(j,5,m_set.m_borth);m_list.SetItemText(j,6,m_set.m_department);m_list.SetItemText(j,7,m_set.m_major);m_list.SetItemText(j,8,m_set.m_address);j+;m_set.MoveNext();while(!m_set.IsEOF();m_set.Close();UpdateData(false);(6)退出void CMyDlg:OnCancel() OnOK();5 编程实现下面给出学生
17、学籍管理系统的主要用户界面:5.1 学生学籍管理系统的主界面 5-1 学生学籍管理系统的主界面图5-1是学生学籍管理系统的主界面,用户可以在主界面上选择增加记录、删除记录、修改记录、查询记录、显示全部记录、退出6个操作。5.2 学生学籍管理系统的增加记录界面5-2 学生学籍管理系统的增加记录界面 图 5-3 图 5-4图5-2是学生学籍管理系统的增加记录界面,用户可以在这里面填写所要添加的学生学籍信息。填写好所有信息后,用户可点击确定按钮,就把该学生的学籍信息录入到数据库中。若该学生的信息以录入到数据库中,则出现如图5-3的画面。若还没录入到是数据库中,则出现如图5-4的画面。点击退出,则返回
18、主界面。5.3 学生学籍管理系统的删除记录界面5-5 学生学籍管理系统的删除记录界面 图 5-6 图 5-7 图 5-8图5-5学生学籍管理系统的删除记录界面,用户可以输入要删除学生学籍信息的学号,若该学生是存在的,则点击确定,会跳出一对话框,提示用户到底要不要删,具体如图5-6所示,点击确定,显示删除成功,如图5-7所以。若该学生是不存在的,则会跳出一提示信息,具体如图5-8所示。5.4 学生学籍管理系统的修改记录界面5-9 学生学籍管理系统的修改记录界面图 5-10图5-9是学生学籍管理系统的修改记录界面,用户若想修改有错误的学生学籍信息,可进入此界面。用户必须先输入该学生的学号,然后点击
19、查询,就可以看到该学生的全部的学籍信息。用户若想修改,可修改编辑框中的信息,全部改好后,点击修改。若填写的格式,规范都符合要求,就能修改成功,出现如图5-10所示的提示信息。5.5 学生学籍管理系统的查询记录界面5-11 学生学籍管理系统的查询记录界面图 5-12图5-11是学生学籍管理系统的查询记录界面,用户若想要查看某同学的学籍信息,可以进入到此界面中。输入想要查询学生的学号,点击确定,就可以查询了。若是该学号不存在,则出现如图5-12所示。若存在,就可以看到该学生的的全部学籍信息。5.6 学生学籍管理系统的显示全部信息界面5-13 学生学籍管理系统的显示全部信息界面图5-13是学生学籍管
20、理系统的显示全部信息界面,也就是在主界面上。用户想要查看全部学生的学籍信息,可点击主界面上的全部记录按钮,则可以在主界面的下方显示出数据库全部学生的学籍信息。5.7 学生学籍管理系统的退出界面此界面就是主界面,退出只是上面的一个功能按钮。用户进行各种操作后, 若想退出学生学籍管理系统,可点击主界面上的退出按钮,就能推出本系统。总 结通过一个星期的数据库课程设计实习,我从中受益匪浅,并且对数据库这一门课程有了更深一步的认识。在实习的过程中,我把这学期所学的理论知识和实践联系起来,在所要开发的程序中渐渐融会贯通。虽然我们对这些知识还运用得还不是很熟练,但是相信在现在和今后的学习中会得到更加深刻的掌
21、握。在课程设计中,设计了一个学生学籍管理系统,对学生学籍信息进行管理。基本上包含了学籍管理所要求的信息,能够完成一定的数据管理功能。但是这是一个完全不能真正用与实际的系统,它没有登陆注册界面,一点都不安全。也没有完善的数据完整性的约束。具体说来就是不具有可靠的安全性。但总之在设计当中我学习到了许多东西,用到了很多的数据库的理论知识,增强了一定的实践能里。这学期也做过蛮多的实验,但那是有步骤的,可以照着做就可以了。然而,课程设计就给了我一个课题,什么都没有,都要自己去想,去查资料,去做。对自己的能力有很大的提高。特别是以前数据库中没搞清楚的弄懂了,不熟练的变得熟练了,让我对数据库的理论知识有了一个更加深的认识。 在一个系统开发的过程中编码不是重要的,我感觉重要的是分析系统、建立起系统模型和对数据的处理。在分析一个系统前,分析人员必须要对将要开发的系统所涉及到的各方面知识有一个认识,然后将系统的模型建立起来。这是要考虑到很多数据的特性及其关联。总结这次课程设计给我感受最深的至少有四点:1.进行软件开发这样的工作,要有恒心,要能静下新来做,而不能浮躁。2.要遵循软件开发本身的规律和善于吸收已有的经验。3.要善于同别人交流与合作,善于获取有用的各种资源。4.要真真实实的多查资料,多问,多做。专心-专注-专业