学生信息管理系统分析毕业论文.docx
- 文档编号:2280346
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:23
- 大小:71.55KB
学生信息管理系统分析毕业论文.docx
《学生信息管理系统分析毕业论文.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统分析毕业论文.docx(23页珍藏版)》请在冰点文库上搜索。
学生信息管理系统分析毕业论文
学生信息管理系统分析毕业论文
一、设计题目
学生信息管理系统是学校日常信息管理的一个重要容。
随着学校考试次数越来越多,学生信息管理的工作量也变得越来越大。
如果能对学生信息做系统的管理,就能更好更方便地快速查询或者修改学生的考试成绩,省去了文件管理的繁琐与麻烦,无疑将给学校的管理部门带来很大的方便。
学生信息管理系统就是把学生的考试成绩实行统一、集中、规的收集管理,建立现代化、专业化的管理系统。
学生信息管理系统的对象是在校学生,信息管理系统为学生提供了成绩查询等服务;为学校及老师提供了添加、修改、删除学生成绩等服务。
本系统基本上能够满足当今学校学生学习成绩信息管理的需求。
学生个人成绩信息录入项目齐全、完整、系统。
本信息管理系统简单明了,可以很方便查询、阅读、修改及重复使用。
二、需求分析
本系统设计者力求根据学生信息管理的需要,而建立一个“学生信息管理系统”,以
方便对学生信息的各项管理操作。
开发目的如:
①能对成绩进行录入和修改:
②能添加该学生的记录:
③能删除该学生的记录;④能查询学生的补考情况。
三、开发环境
1.VC++6.02.SQLServer2000
四、功能要求
1.登陆功能
.WORD版木.
2.读取记录
3.增加记录
4.修改记录
5.刪除记录
6.查询记录
五、实现方法
1.该系统为基于对话框的程序
2.用ADO的方法访问数据库
六、系统设计
(一)概念分析:
概念结构设计阶段是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型
设计成绩管理数据库包括学生、成绩、课程、班级、年级五个关系。
E-R图六一和图六二所示°
图六一实体及其属性图
图六二完整的实体-联系图
(二)逻辑设计:
逻辑结构是独立于任何一种数据模型的信息结构。
逻辑结构的任务是把概念结构设计阶段设计好的基本E-R图转化为宜选用的DBMS所支持的数据模型相符合的逻辑结构,并对其进行优化。
设计学生成绩管理数据库,包括年级、班级、学生、课程、成绩五个关系,考虑到数
据库完整性,其关系模式中对每个实体定义的属性如下:
年级表
年级:
(年级名,年级主任、年级人数)
班级表
班级:
(班级名,年级名,班主任、班级人数)
课程表
课程:
(课程号,课程名,任课教师,学分)
学生表
学生:
(学号性别,班号名、年级名)
成绩表
成绩:
(学号,课程号,考试成绩、平时成绩、总评成绩、补考)
用户表:
用户:
(用户名,密码)
(三)物理设计:
定义每个表的数据类型以及字段限制,使数据库达到一定的完整性。
1、每个表的物理设计如下:
学生:
字段名
类型
长度
主码
学号
int
4
是
Char
20
性别
Char
2
班级名
Char
15
年级名
Char
10
成绩:
字段名
类型
长度
主码
学号
int
4
是
课程号
Char
20
考试成绩
float
8
平时成绩
float
8
总评成绩
float
8
补考
bit
1
课程
字段名
类型
长度
主码
课程号
Char
20
是
课程名
Char
20
任课老师
Char
20
学分
float
8
班级
字段名
类型
长度
主码
班主任
Char
20
班级人数
Sinailint
2
班级名
Char
15
是
年级名
Char
10
年级
字段名
类型
长度
主码
年级主任
Char
20
年级人数
Sinailint
2
年级名
Char
10
是
用户
字段名
类型
长度
主码
用户名
Char
20
是
密码
Char
20
2、数据库概要说明
表26个项目
名称#
所有若
类型创連日期
class
course
dtpropertiesgrate
sc
student
bbbbbb1IQIQIdJ
2012-8-815:
52:
472012-9-815:
45:
06
2012-9-815:
31:
40
2012-9-815:
50:
252012-9-815:
41:
562012-9-815:
34:
51
Qnnn«Q-c1•qh■iq
新建一个数据库,名字为score中包括course,student,sc,class,grate5个数据表。
下图所示的即为本系统中数据库中的数据表结构图,该数据表结构图包含系统所有数据表。
可以清晰地反应数据库信息。
3、数据关系图:
如图所示,student表中的学号与sc表中的学号存在约束关系,sc表中的课程号与course中的课程号也存在约束关系,class中的年级名与grate中的年级名也存在约束关系。
(4)部分功能实现代码
1、VC应用程序连接数据库
BOOLCMvDlg:
:
OninitDialog()
CDialog:
:
OiiInitDialog();
:
:
CoInitialize(NULL);
CMenu*pSysMenu=GetSystemMenu(FALSE);
SetIcon(m_hIcorLTRUE);
Sctlcon(nchlcon,FALSE);
try{
m^DBCnt・CrcatelnstanceC_uuidof(Connection));m_DBCnt->ConncctionString=
"driver二{SQLServer};server=(local);H
"UID=teacher;PWD="";"
”database二score";_variant_tvs;vs.vt=VT_BSTR;
vs.bstrVal=Sys?
\llocString(LuProinptH);
.variant.tvl;vl.vt=VT.I2;vl.iVal=adPromptAlways;
HLDBCnt->Propcrtics->GetItcm(vs)->Value=vl;
m_DBCnt->0pcn("",-1);
}
catch(_errore)
{
AfxMcssagcBox(n无法连接数据库!
”);
this->EndDialog(0);
}
_bstr.tsti•二m_DBCnt->ConncctionString;
2、査询学生资料
voidCMyDlg:
:
RcadstudentO
{nulist.DelcteAllItcms();
_RccordsetPtrprst=NULL;
-bstr_tstrsql(uselect*fromv_studcntORDERBY学号DESC1);inti=0;try
prst・CrcatcInstancc(_uuidof(Recordset));
if(key)prst二m_DBCnt->Exccutc(_bstr_t(ZSQL),NULL,adCindText);
elseprst=m_DBCnt->Execute(strsq1,NULL,adCindText);
^variant_tholder;
if(prst->adoEOF)
{AfxMessagcBox(,r没有相关记录「);key=false;return;}
while(!
prst->adoEOF)
{holdcr=prst->GctCollcct("学号");
if(holder.vt!
=VT_NULL)
m.list.InsertItem(i>(char*)Gbstr_t)holder):
holder=prst->GctCollect(HH);
if(holder.vt!
=VT_NULL)
m」ist・SctltemTcxtCi,L(char*)(_bstr_t)holder);
holder=prst->GctCollect(H性别");
if(holder.vt!
=VT_NULL)
m.list.SctItcmTcxt(i,2,(char*)(_bstr_t)ho1dcr);
holder=prst->GetCollectC1年龄”);
if(holder.vt!
=VT_NULL)
m」ist・SetltcmTcxtCi,3,(char*)(_bstr_t)holdcr);
holdcr=prst->GetCollcct("班级名”);
if(holder.vt!
=VT_NULL)
m」ist・SetItemText(i>4,(char*)(_bstr.t)ho1der);
hoidcr=prst->GetCollect(n年级名”);
if(holder.vt!
=VT_NULL)
m」ist・SctItcmText(i»5,(char*)(_bstr.t)ho1der);
prst->MoveNext();}
prst->Close();key=false;}
catch(_errore)
{AfxMcssagcBox("操作异常!
");return;}}
3、修改学生资料信息
voidCMyDlg:
:
uixiatestuO
{UpdateDataO;POSITIONpos=m_list.GetFirstSc1ccted11cniPosition();
if(pos==NULL){AfxMcssagcBox("没有选中记录!
");return;}if(m_stu_xh=="")
{return;}
CStringstrSql,stuxh,stuxm,stuxb,stunl,stuclass,stugratc;
m_STU_XH.GetWindowText(stuxh);
m„STU_XM.GetWindowTcxt(stuxm);
m^STU^XB.GctWindowText(stuxb);
m_STU_ML・GetWindowTcxt(stun1);
m.STU.CLVSSNAME.GctWindowText(stuclass);
m_STU_NIJINME.GetWindowText(stugrate);
try{strSql.Format(Mupdatev.studentset二'%s,性别二'%s,年龄二%d,班级名二'%s",年级名
='%s',where学号=%d\
stuxm,stuxb,atoi(stunl),stuclass,stugrate,atoi(stuxh));一RccordsctPtr
prst=NULL:
prst・CreateInstance(_uuidof(Rccordsct));prst=in_DBCnt->Excciitc(_bstr_t(strSql),NULL,adCuidTcxt);RcadstudcntO;
MessageBoxC*修改成功!
”);}catch(_errore){AfxMessagcBox(n操作异常或者是你所在的
用户组无此权限!
');return;}}
4、补考通知单
voidCMyDlg:
:
Rcadbukaotongzhi()
{m」ist・DclctcAl1ItcmsO;
_RccordsctPtrprst=NULL;
_bstr_tstrsqlC1select*fromv_bukaotongzhin);
inti=0;try
{prst.CreateInstanccC_uuidof(Recordset)):
//McssagcBox(11D;
prst=m_DBCnt->Execute(strsq1,NULL,adCmdTcxt);
.variantsholder;
whilc(!
prst->adoEOF)
{holder=prst->GetCollect(,r学号八);
if(holder.vt!
=VT_NULL)
m_list.Insertltem(i,(char*)(.bstr_t)holder);holder=prst->GetCollect('rH);
if(holdcr.vt!
=VT_NULL)
m^list.SetItemText(i,1,(char*)(_bstr.t)holdcr);ho1der=prst->GetCo11ectC班级名”);if(holdcr.vt!
=VT_NULL)
in_list・SctItcmText(i,2,(char*)(_bstr.t)holdcr);
holder=prst->GetCollect(n年级名");if(holdcr.vt!
=VT_NULL)
m_list・SetItemText(i,3,(char*)(_bstr.t)holdcr);
ho1der=prst->GetCollectC1课程号”);
if(holder.vt!
=VT_NULL)
m_list・SctltcmTextCi,4,(char*)(_bstr_t)holder);
ho1der=prst->GetCollectC1课程名”);
if(holder.vt!
=VT_NULL)
m_list・SctltcmTextCi,5,(char*)(_bstr_t)holder);
holder=prst->GetCollect('r学分八);
if(holder.vt!
=VTJULL)
m_list・SetItemText(i,6,(char*)(_bstr_t)holdcr);
holdcr=prst->GetCollect(n总评成绩”);
if(holder.vt!
=VT_NULL)
m_list・SctltcmTextCi,7,(char*)(_bstr_t)ho1dcr);
prst->MoveNext();}prst->Close();}
catch(_errore){AfxMessagcBoxC1操作异常!
");return;}}voidCMyDlg:
:
upbukaotongzhiO
{UpdatcDataO;_RccordsetPtrprst=NULL;
prst.CreateInstance(_uuidof(Recordset));
POSITIONpos二GetFirstSelectcdltcniPosition();
if(pos==NULL){2\fxMessagcBox(n没有选中记录「);return;
CStringstrSql,xh,xm,classname,nijinamc,kch,kcni,xf,zpcj;
m_STU一XM.GetWindowText(xm);
m__STU.CLASSNAME.GctWindowText(classnamc);
m_STU_NIJINAME.GetWindowText(nijinanie);
m_KC_KCH.GctWindowText(kch);
m_KC_KCM・GctWindowText(kcin);
m_KC_XF.GetWindowTcxt(xf);
m_XXQK_XH・GetWindowText(xh);
m^XXQK_KCH.GetWindowTcxt(kch);
trylstrSql.FormatC1updatev^bukaotongzhiset二'%s',班级名二'%s,年级名二'%s,课程名二'%s,学分=%f,where学号=%dand课程号=%s",
xin,classnaine,nijiname,kcm,atof(xf),atoi(xh),kch);prst=m_DBCnt->Execute(^bstr.t(strS Readbukaotongzhi(); MessageBox(n修改成功! 11);} catch(_errore) {AfxMcssagcBoxC操作异常或者是你所在的用户组无此权限! ");return;}} voidCMyDlg: : 0nDel() {CStringlb; m_LB・GetLBTcxt(m_LB.GetCurSclO,lb); if(lb==n学生资料")delstu(); if(lb==n课程表")delcourse(); if(lb=="成绩表*')delsc(); if(lb=="班级资料")delclass(); if(lb==h年级资料n)delgrate(); if(lb==n补考通知单")de1bukaotongzhi();} 5、删除学生信息 voidCMyDlg: : delstuO {CStringslD,strsQL;intitem;^RccordsetPtrprst=NULL; prst・CreateInstance(_uuidof(Rccordsct));try {_bstr_tstrsql(nselect*fromstudent"); prst=m_DBCnt->Execute(strsq1,NULL,adCmdTcxt);if(! prst->B0F) prst->\lovcFirstO;else {AIxMcssageBoxC1表数扌居为空");return;} POSITIONpos二m_list・GctFirstSe1ectcdItcinPosition(); if(pos=NULL) {/\fxMessageBox(n没有选中记录F);return;}elsewhile(pos){ itcnrm_1ist.GetNextSclcctcdltcm(pos); slD二m_list・GctItcinTcxt(itcm,0);if(Afx\lcssagcBoxC是否刪 除? ",MB_YESNO)==IDYES)strsQL.Format("deletefromv.studentwhere学号='"+sID+"'"); prst二m_DBCnt-〉Execute(一bstr_t(strsQL),NULL,adCindText);}ReadstudentO;}} catch(_crrore){ AfxMessageBox(M^作异常或者是你所在的用户组无此权限! ");return;}} voidCMyDlg: : dclsc() {CStringsID,strsQL;intitem; _RccordsctPtrprst=NULL;prst・CreateInstancc(_uuidof(Recordset));try {_bstr_tstrsql(nsclect*fromv_scf); prst=m_DBCnt->Execute(strsq1>NULL,adCmdTcxt); if(! prst->BOF) prst->MovcFirst(); e1se{AfxMessageBoxC11表数据为空”);return;} POSITIONpos=m„list.GctFirstSclectedIteinPositionO; if(pos==NULL){AfxMcssagcBoxC没有选中记录! ");return; {item二m_list・GetNextSc1ectedItcm(pos): sID=m」ist.GetItcmText(itcm,0); if(AfxMcssagcBoxC'是否刪除? ”,MB_YESNO)==IDYES) {strsQL.Format("deletefromv_scwhere学号=%s\sID); prst二m_DBCnt-〉Execute(一bstr_t(strsQL),NULL,adCmdText); catch(_errore){ AfxMessagcBoxC撫作异常或者是你所在的用户组无此权限「); voidCMyDlg: : ClcanO {CStringlb; m_LB.GctLBTcxt(m_LB.GetCurSclO,lb); m_STU_XH.SetWindowTextC"); m_STU_XM.SetWindowTextC'"); m_STU_XB.SetWindowTextC"); m_STU_NL.SetWindowTextC"); m_STU_CLASSN.\ME.SetWindowTextC"); m_STU_NIJINAME.SetWindowTextC*"); m_KC_KCH.SetWindowTextC'"); }elsewhile(pos) }RcadSCO;}} return;}} m_KC_KCM・SetWindowText(uH); m_KC_RKLS.SctWindowTcxtC"); m_KC_XF.SetWindowText(,M,); m_CLA_N/\ME.SctWindowTextC'”); m_CLVNIJINAME.SctWindowTextC"); m_CLA_NUM.SctWindowTextC*'); m_CLA_HEAD.SctWindowTextC'"); m_XUQK_KSCJ.SctWindowTextC"); m_XXQK_XH.SctWindowTextC*'); m_XXQK_KCH.SctWindowTextC'”); m_XXQK_PSCJ.SctWindowTextC"); m_XXQK_BK.SetCheck(O); m_GRATE_NAME.SctWindowText(nn); m.G^TE.NUM.SctWindowTextC'n); m_GRATEJHEAD.SctWindowTextC1");} voidCMyDlg: : cxinitCCStrings) {CStringlb; m_LB.GetLBText(m_LB.GetCurSelO,lb); LONG1Style=m_list.SendMessage (LVM_GETEXTENDEDLISTVIEWSTYLE); IStyle|=LVS_EX_FULLROWSELECTILVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDRO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 信息管理 系统分析 毕业论文
![提示](https://static.bingdoc.com/images/bang_tan.gif)