




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录1 设计要求12 数据库设计12.1 概念设计12.2 逻辑设计与物理结构的设计22.3 数据库的输入23 程序设计43.1 学生信息操作53.2 学生成绩操作144 调试报告265 心得体会266 参考文献26学生成绩管理系统1 设计要求管理信息系统MIS(Management Information System),在强调管理,强调信息的现代社会中越来越得到普及,如:人事管理、学生管理系统、工资管理系统等。常用的MIS系统都是基于数据库操作,实现信息的查询、增加、删除、修改等。学生成绩管理系统是用AECESS数据库进行数据库的设计和添加数据,在设置数据源(ODBC)建立数据库与程序的连
2、接后,利用VC开发可视化界面完成基于数据库的操作,实现学生信息的查询、增加、删除、修改和成绩信息的查询、增加、删除、修改、排序、统计等功能,从而实现学生成绩信息的多方位显示,方便管理者对学生成绩的管理。2 数据库设计2.1 概念设计根据设计要求,要对学生信息和成绩进行操作,所以系统实体包括学生基本信息表和课程基本信息表。学生成绩管理系统中它们的联系是一个学生可以选修多门课程,一门课程可以被多个学生选修,学生和课程之间是多对多的关系,。学号分数性别学生由以上分析可以得该系统的E-R关系图:姓名成绩课程 年龄系别 课程号课时课程名 图1 E-R关系图2.2 逻辑设计与物理结构的设计 根据概念设计中
3、的E-R图,可设计三个表,其关系模型如下:学生基本信息表:学号,姓名,性别,年龄,系别课程基本信息表:课程号,课程名,课时 成绩表:学号,课程号,成绩 在ACCESS中定义三个表的物理结构如下:图2 学生信息表物理结构图3 课程信息表物理结构图4 成绩表物理结构2.3 数据库的输入在ACCESS中定义好物理结构后就可以输入数据,同时根据系统的要求,用ACCESS做了两个查询,分别是成绩查询和平均分查询,为以后写程序的方便,对平均分查询进行了按平均分从高到低排序操作。具体数据如下:图5 学生信息表图6 课程信息表图7 成绩表图8 平均分查询图9 成绩查询3 程序设计根据设计要求,本系统是利用VC
4、来开发可视化界面,因此要将程序和数据库进行连接,这要使用ODBC工具将数据库设置数据源,在建立工程时选择数据库查看使用文件支持,在选择数据源时选择自己设置的数据源即可。在主页面,连接学生信息表,在主页面对学生信息表操作就非常方便。主页面如下:图10 主页面3.1 学生信息操作3.1.1 查询操作查询操作的功能是输入学号,点击查询按钮,就可以显示出学生的基本信息。图11 查询操作程序如下:void CMyView:OnButton1() int flag=1,t=0; m_pSet->MoveFirst( ); UpdateData(TRUE); while(flag=1) CString
5、 info="0" info = "学号:t" + m_pSet->m_sno + "n" info += "姓名:t" + m_pSet->m_sn + "n" info += "性别:t" + m_pSet->m_sex + "n" info += "年龄:t" + m_pSet->m_age + "n" info += "系别:t" + m_pSet->m_de
6、pt + "n" if(m_Sno=m_pSet->m_sno) MessageBox( info, "查询到的记录如下:",100 ); flag=0; t=0; else t=1; m_pSet->MoveNext( ); if( m_pSet->IsEOF( ) )flag=0;/ TODO: Add your control notification handler code here if(t=1)MessageBox("你输入的学号不存在","学生管理系统", 0 );3.1.2 添加
7、操作添加操作是在点击添加按钮后,添加记录窗口跳出,在新窗口输入要添加的记录,点击确定按钮后,如果该学生的信息已存在(以学号判断),则提醒该学生信息已存在,如果添加成功,则跳出添加成功提示。如图:图12 添加操作程序如下:void CMyView:OnButton2() Dlg1 dlg; if( dlg.DoModal()=IDOK ) /按IDD_DIALOG1 的"OK"按钮返回之后: int flag=0; m_pSet->MoveFirst( ); UpdateData(TRUE); while(!m_pSet->IsEOF() if(dlg.m_Add
8、Sno=m_pSet->m_sno)flag=1; MessageBox("该学生信息已存在","管理系统", 0 ); m_pSet->MoveNext( ); if(flag=0) m_pSet->AddNew( ); /先执行追加新记录的功能函数AddNew() m_pSet->m_sno = dlg.m_AddSno;/给学号、姓名字段赋值: m_pSet->m_sn = dlg.m_AddSn; m_pSet->m_sex=dlg.m_AddSex; m_pSet->m_age=dlg.m_AddAge
9、; m_pSet->m_dept=dlg.m_AddDept; m_pSet->Update( ) ; /新记录写入数据库的数据表 m_pSet->Requery( ); /刷新记录集。这将改动"物理"数据库。 MessageBox("添加成功","学生管理系统",0); / TODO: Add your control notification handler code here3.1.3 删除操作删除操作是点击删除按钮后,跳出删除窗口,在删除窗口中输入要删除学生信息的学号以及管理员密码,在多种提示后确认无误后删除
10、,删除后会显示已删除提醒。如图:图13 删除操作 图14 学生信息提示 图15 确认操作提示在删除操作中,必须输入密码才能进行删除操作,否则提示密码不正确,密码是唯一的,在本系统中,所有密码都是1234。程序如下:void CMyView:OnButton3() / TODO: Add your control notification handler code hereDlg2 dlg;if( dlg.DoModal()=IDOK ) int flag=1,t=0,flag1=0,flag2=0; m_pSet->MoveFirst( ); UpdateData(TRUE); whil
11、e(flag=1) CString info="0" info = "学号:t" + m_pSet->m_sno + "n" info += "姓名:t" + m_pSet->m_sn + "n" info += "性别:t" + m_pSet->m_sex + "n" info += "年龄:t" + m_pSet->m_age + "n" info += "系别:t"
12、+ m_pSet->m_dept + "n" if(dlg.m_DleSno=m_pSet->m_sno) flag1=MessageBox( info, "请确认删除的学生信息:",100 ); flag=0; t=0; else t=1; m_pSet->MoveNext( ); if( m_pSet->IsEOF( ) )flag=0; if(dlg.m_mima=1234) if(t=1)MessageBox("你输入的学号不存在","学生管理系统", 0 ); if(flag1=6
13、) flag2=MessageBox("确定删除?","学生管理系统", 100 ); if(flag2=6)m_pSet->MovePrev( ); m_pSet->Delete( ); m_pSet->Requery( ); MessageBox("已删除","学生管理系统", 0 ); else MessageBox("密码不正确","提示",0);3.1.4 修改操作修改操作是在主页面输入要修改的学生信息的学号(在查询条件处输入),点击修改按钮,跳出
14、修改窗口,在窗口中会显示该学生现有的信息,将其修改后点击确定按钮,同样要输入管理员密码,否则提示密码不正确。在修改后会提示以修改。如图: 图16 修改操作程序如下:void CMyView:OnButton6() int flag=1,t=0,tag=0; m_pSet->MoveFirst( ); UpdateData(TRUE); while(flag=1) CString info="0" info = "学号:t" + m_pSet->m_sno + "n" info += "姓名:t" + m
15、_pSet->m_sn + "n" info += "性别:t" + m_pSet->m_sex + "n" info += "年龄:t" + m_pSet->m_age + "n" info += "系别:t" + m_pSet->m_dept + "n" if(m_Sno=m_pSet->m_sno) tag=MessageBox( info, "要修改如下记录:",100 ); flag=0; t=0
16、; else t=1; m_pSet->MoveNext( ); if( m_pSet->IsEOF( ) )flag=0; if(t=1)MessageBox("你输入的学号不存在","学生管理系统", 0 ); m_pSet->MovePrev( ); Dlg6 dlg; / 工作对话框开始的程序: if( tag=6 ) /(1)将当前记录的各字段值拷贝到对话框的对应成员变量上: UpdateData(TRUE);/激活对话框控件 dlg.m_CSno = m_pSet->m_sno; dlg.m_CSn = m_pSet-
17、>m_sn; dlg.m_CSex = m_pSet->m_sex; dlg.m_CAge = m_pSet->m_age; dlg.m_CDept = m_pSet->m_dept; UpdateData(FALSE);/控件上的改变显示出来 /(2)按对话框的"OK"按钮时返回,返回之后重置数据库该记录的修改值: UpdateData(TRUE); dlg.DoModal( ); if(dlg.m_mima=1234) m_pSet->Edit(); m_pSet->m_sno = dlg.m_CSno ; m_pSet->m_
18、sn = dlg.m_CSn ; m_pSet->m_sex = dlg.m_CSex ; m_pSet->m_age = dlg.m_CAge ; m_pSet->m_dept = dlg.m_CDept ; m_pSet->Update( ) ; m_pSet->Requery( ); MessageBox("修改成功","学生管理系统",0); elseMessageBox("密码不正确","学生管理系统",0); / TODO: Add your control notific
19、ation handler code here3.1.5 学生信息浏览在主页面,我添加了一个学生信息浏览按钮,点击该按钮会在跳出的窗口中显示学生信息表,该表与数据库中的学生信息表连接,这样可以通过浏览该表来查看自己的删除,修改和添加等操作是否完成,同时可以通过它查看自己不熟悉学号的学生信息。如图:图17 学生信息表这个操作应用了ADO Data控件和DataGrid控件,通过ADO Data控件连接数据表,DataGrid控件连接ADO Data控件后显示数据表,通过这两个控件可直接进行数据的添加、删除和修改。因这些功能已有,所以在本系统中未启用这两个控件的该功能。3.2 学生成绩操作因在主页
20、面连接了学生信息表,所以在主页面添加按钮成绩查询来打开新窗口,在新窗口中连接学生成绩查询这个表,并用ADO Data控件和DataGrid控件来显示学生成绩表。在学生成绩管理窗口中学生成绩查询和成绩的统计排序是主要操作。学生成绩的添加、删除和修改操作通过管理员登录后才能操作。学生成绩管理操作页面如图:图18 学生成绩管理窗口3.2.1 查询操作成绩查询操作是在学生成绩管理窗口中的查询条件中输入学生的学号,点击查询后在查询结果中显示出该学生的第一门成绩,点击下一门会显示第二门成绩,若已是最后一门则提示“这是最后一门 ”。点击首项会跳回该学生的第一门功课成绩。操作如图:图19 查询操作程序如下:v
21、oid Dlg3Name:OnButton1() Dlg3Dataset pset; int flag=1,t=0; pset.Open( ); pset.MoveFirst(); UpdateData( TRUE ); while(flag=1) if(pset.m_sno=m_QSno) m_QSn=pset.m_sn; m_QCn=pset.m_cn; m_QScore=pset.m_score; flag=0; t=1; pset.MoveNext(); if(pset.IsEOF()flag=0; if(t=0)MessageBox("无此人成绩信息","
22、;学生成绩管理系统", 0 ); m_QSn=" " m_QCn=" " m_QScore=" " UpdateData( FALSE ); / TODO: Add your control notification handler code here/查询void Dlg3Name:OnButton2() Dlg3Dataset pset; pset.Open( ); int flag=1,flag1=1,t=0; UpdateData( TRUE ); while(flag1=1) if(pset.m_sno=m_QSn
23、o && pset.m_cn=m_QCn) flag1=0; pset.MoveNext(); if(pset.IsEOF()flag=0; while(flag=1) if(pset.m_sno=m_QSno && pset.m_cn!=m_QCn) m_QSn=pset.m_sn; m_QCn=pset.m_cn; m_QScore=pset.m_score; flag=0; t=1; pset.MoveNext(); if(pset.IsEOF()flag=0; if(t=0)MessageBox("以是最后一门","学生成绩
24、管理系统", 0 ); UpdateData( FALSE );/ TODO: Add your control notification handler code here/下一科目3.2.2 统计平均和排序操作统计平均操作是在查询条件中输入要操作的学生的学号,点击统计平均按钮后在统计排序中显示出该学生的总分、平均分和选课数,未点击时全显示0。排序操作是在点击查看排名按钮后跳出新窗口,在新窗口中用ADO Data控件和DataGrid控件显示平均分查询这个表,同时新窗口连接这个查询,以便操作。在排名窗口中,点击查看就可以显示该学生的平均分排名,也可直接在该窗口中更改学生学号,查看其
25、他学生的排名。如图:图20 统计平均操作图21 查看排名操作统计平均操作如下:void Dlg3Name:OnButton4() Dlg3Dataset pset; pset.Open( ); pset.MoveFirst(); UpdateData( TRUE ); m_sum=0; m_total=0; while(!pset.IsEOF() if(pset.m_sno=m_QSno) m_sum+=atof(pset.m_score); m_total+; pset.MoveNext(); if(m_total=0)MessageBox("无该生成绩信息","
26、;学生成绩管理系统",0); m_sum=0; m_avg=0; m_total=0; UpdateData( FALSE ); else m_avg=m_sum/m_total; UpdateData( FALSE );/ TODO: Add your control notification handler code here/统计平均查看排名程序如下:void Dlg5:OnButton1() UpdateData( TRUE ); Dlg5Dataset pset;pset.Open();pset.MoveFirst();int t=1,flag=0;while(!pset.
27、IsEOF()if(pset.m_sno=m_Sno)m_order=t; UpdateData( FALSE );flag=1;return; t+; pset.MoveNext();if(flag=0)MessageBox("你的学号输入错误","提示",0);/ TODO: Add your control notification handler code here/查看3.2.3 管理员登录操作管理员登录是进行学生成绩添加、删除和修改等操作的前提。点击管理员登录,跳出管理员登录界面,输入密码后跳出管理界面。如图:图22 管理员登录界面图23 成
28、绩管理界面程序如下:void Dlg3Name:OnButton6() Dlg8 dlg;if(dlg.DoModal()=IDOK) UpdateData( TRUE ); if(dlg.m_mima=1234) Dlg9 dlgg; dlgg.DoModal(); elseMessageBox("密码不正确","提示",0); / TODO: Add your control notification handler code here3.2.4 成绩管理操作学生成绩管理操作包括成绩的添加、修改和删除,点击相应按钮会跳出相应的界面供我们操作。添加成绩
29、如下:图24 成绩添加程序如下:void Dlg9:OnButton1() DlgA dlg; DlgADataset pset; pset.Open(); if( dlg.DoModal()=IDOK ) /按IDD_DIALOG1 的"OK"按钮返回之后: int flag=0; pset.MoveFirst( ); UpdateData(TRUE); while(!pset.IsEOF() if(dlg.m_AddSno=pset.m_sno&&dlg.m_AddCno=pset.m_cno)flag=1; MessageBox("该门成绩已
30、存在","管理系统", 0 ); pset.MoveNext( ); if(flag=0) pset.AddNew( ); /先执行追加新记录的功能函数AddNew() pset.m_sno = dlg.m_AddSno;/给学号、姓名字段赋值: pset.m_cno = dlg.m_AddCno; pset.m_score=dlg.m_AddScore; pset.Update( ) ; /新记录写入数据库的数据表 pset.Requery( ); /刷新记录集。这将改动"物理"数据库。 MessageBox("添加成功"
31、,"学生管理系统",0); / TODO: Add your control notification handler code here修改操作如下:图25 修改操作1图26 修改操作2程序如下: void Dlg9:OnButton2() DlgB dlg;DlgB1Dataset pset;pset.Open();if(dlg.DoModal()=IDOK)pset.MoveFirst(); UpdateData(TRUE); int tag=0,t=0; while(!pset.IsEOF() if(dlg.m_MSno=pset.m_sno&&dl
32、g.m_MCno=pset.m_cno) t=1; DlgB2 dlgg; UpdateData(TRUE); dlgg.m_MScore=pset.m_score; UpdateData(FALSE); UpdateData(TRUE); dlgg.DoModal(); tag=MessageBox("确定修改?","提示",100); if(tag=6) pset.Edit(); pset.m_score=dlgg.m_MScore; pset.Update(); pset.Requery(); MessageBox("修改成功","提示",0); return; pset.MoveNext(); if(t=0) Me
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年山西开放大学辅导员考试真题
- 软件设计师试题及答案思维导图
- 2024年天津市第一中心医院招聘笔试真题
- 2024年湖北省科学技术厅下属事业单位真题
- 2025年软件测试技能提升指南试题及答案
- 促进班级内互助学习的机制计划
- 2025届河南省南阳市桐柏县七年级数学第二学期期末考试试题含解析
- 数据分析中的统计方法与应用试题及答案
- 工作计划对员工发展的影响
- 企业战略与合法合规性试题及答案
- 营销策划模版课件
- 第1本书出体旅程journeys out of the body精教版2003版
- 消防系统介绍与维护管理-副本详解知识讲解
- GB_T9578-2021 工业参比炭黑4#(高清最新版)
- (精选)社区管理网上形成性考核作业
- 灸法操作规程完整
- 热力学与统计物理PPT课件
- 恩格勒系统整理17页
- 时钟监控用户手册
- 道路路面恢复施工方案
- 二年级下册三位数列竖式计算(一千道)
评论
0/150
提交评论