ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:613.50KB ,
资源ID:5043491      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5043491.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(课程设计学生成绩管理系统.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

课程设计学生成绩管理系统.docx

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数据库进行数据库的设计和添加数据

2、,在设置数据源(ODBC)建立数据库与程序的连接后,利用VC开发可视化界面完成基于数据库的操作,实现学生信息的查询、增加、删除、修改和成绩信息的查询、增加、删除、修改、排序、统计等功能,从而实现学生成绩信息的多方位显示,方便管理者对学生成绩的管理。2 数据库设计2.1 概念设计根据设计要求,要对学生信息和成绩进行操作,所以系统实体包括学生基本信息表和课程基本信息表。学生成绩管理系统中它们的联系是一个学生可以选修多门课程,一门课程可以被多个学生选修,学生和课程之间是多对多的关系,。由以上分析可以得该系统的E-R关系图:图1 E-R关系图2.2 逻辑设计与物理结构的设计 根据概念设计中的E-R图,

3、可设计三个表,其关系模型如下:学生基本信息表:学号,姓名,性别,年龄,系别课程基本信息表:课程号,课程名,课时 成绩表:学号,课程号,成绩 在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 info=0; i

5、nfo = 学号: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_dept + 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:

6、Add your control notification handler code here if(t=1)MessageBox(你输入的学号不存在,学生管理系统, 0 );3.1.2 添加操作添加操作是在点击添加按钮后,添加记录窗口跳出,在新窗口输入要添加的记录,点击确定按钮后,如果该学生的信息已存在(以学号判断),则提醒该学生信息已存在,如果添加成功,则跳出添加成功提示。如图:图12 添加操作程序如下:void CMyView:OnButton2() Dlg1 dlg; if( dlg.DoModal()=IDOK ) /按IDD_DIALOG1 的OK按钮返回之后: int flag=

7、0; m_pSet-MoveFirst( ); UpdateData(TRUE); while(!m_pSet-IsEOF() if(dlg.m_AddSno=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

8、_pSet-m_age=dlg.m_AddAge; 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 删除操作删除操作是点击删除按钮后,跳出删除窗口,在删除窗口中输入要删除学生信息的学号以及管理员密码,在多种提示后确认无误后删除,删除后会显示已删除提醒。如图:图13 删除操作

9、 图14 学生信息提示 图15 确认操作提示在删除操作中,必须输入密码才能进行删除操作,否则提示密码不正确,密码是唯一的,在本系统中,所有密码都是1234。程序如下:void CMyView:OnButton3() / TODO: Add your control notification handler code here Dlg2 dlg; if( dlg.DoModal()=IDOK ) int flag=1,t=0,flag1=0,flag2=0; m_pSet-MoveFirst( ); UpdateData(TRUE); while(flag=1) CString info=0;

10、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_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( )

11、)flag=0; if(dlg.m_mima=1234) if(t=1)MessageBox(你输入的学号不存在,学生管理系统, 0 ); if(flag1=6) flag2=MessageBox(确定删除?,学生管理系统, 100 ); if(flag2=6)m_pSet-MovePrev( ); m_pSet-Delete( ); m_pSet-Requery( ); MessageBox(已删除,学生管理系统, 0 ); else MessageBox(密码不正确,提示,0);3.1.4 修改操作修改操作是在主页面输入要修改的学生信息的学号(在查询条件处输入),点击修改按钮,跳出修改窗口

12、,在窗口中会显示该学生现有的信息,将其修改后点击确定按钮,同样要输入管理员密码,否则提示密码不正确。在修改后会提示以修改。如图: 图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_pSet-m_sn + n; info += 性别:t + m_pSet-m_sex + n; info += 年

13、龄: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; 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)将当前记录的各字

14、段值拷贝到对话框的对应成员变量上: UpdateData(TRUE);/激活对话框控件 dlg.m_CSno = m_pSet-m_sno; dlg.m_CSn = m_pSet-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_

15、pSet-Edit(); m_pSet-m_sno = dlg.m_CSno ; m_pSet-m_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 notification handler code

16、 here3.1.5 学生信息浏览在主页面,我添加了一个学生信息浏览按钮,点击该按钮会在跳出的窗口中显示学生信息表,该表与数据库中的学生信息表连接,这样可以通过浏览该表来查看自己的删除,修改和添加等操作是否完成,同时可以通过它查看自己不熟悉学号的学生信息。如图:图17 学生信息表这个操作应用了ADO Data控件和DataGrid控件,通过ADO Data控件连接数据表,DataGrid控件连接ADO Data控件后显示数据表,通过这两个控件可直接进行数据的添加、删除和修改。因这些功能已有,所以在本系统中未启用这两个控件的该功能。3.2 学生成绩操作因在主页面连接了学生信息表,所以在主页面添加

17、按钮成绩查询来打开新窗口,在新窗口中连接学生成绩查询这个表,并用ADO Data控件和DataGrid控件来显示学生成绩表。在学生成绩管理窗口中学生成绩查询和成绩的统计排序是主要操作。学生成绩的添加、删除和修改操作通过管理员登录后才能操作。学生成绩管理操作页面如图:图18 学生成绩管理窗口3.2.1 查询操作成绩查询操作是在学生成绩管理窗口中的查询条件中输入学生的学号,点击查询后在查询结果中显示出该学生的第一门成绩,点击下一门会显示第二门成绩,若已是最后一门则提示“这是最后一门 ”。点击首项会跳回该学生的第一门功课成绩。操作如图:图19 查询操作程序如下:void Dlg3Name:OnBut

18、ton1() 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(无此人成绩信息,学生成绩管理系统, 0 ); m_QSn= ; m_QCn= ; m_

19、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_QSno & pset.m_cn=m_QCn) flag1=0; pset.MoveNext(); if(pset.IsEOF()flag=0; while

20、(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(以是最后一门,学生成绩管理系统, 0 ); UpdateData( FALSE ); / TODO: Add your control notification handler code here/下一科目3.2.2 统计平均和排序操作统计平均

21、操作是在查询条件中输入要操作的学生的学号,点击统计平均按钮后在统计排序中显示出该学生的总分、平均分和选课数,未点击时全显示0。排序操作是在点击查看排名按钮后跳出新窗口,在新窗口中用ADO Data控件和DataGrid控件显示平均分查询这个表,同时新窗口连接这个查询,以便操作。在排名窗口中,点击查看就可以显示该学生的平均分排名,也可直接在该窗口中更改学生学号,查看其他学生的排名。如图:图20 统计平均操作图21 查看排名操作统计平均操作如下:void Dlg3Name:OnButton4() Dlg3Dataset pset; pset.Open( ); pset.MoveFirst(); U

22、pdateData( 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(无该生成绩信息,学生成绩管理系统,0); m_sum=0; m_avg=0; m_total=0; UpdateData( FALSE ); else m_avg=m_sum/m_total; UpdateData( FALSE ); / TODO: Add your contro

23、l notification handler code here/统计平均查看排名程序如下:void Dlg5:OnButton1() UpdateData( TRUE ); Dlg5Dataset pset; pset.Open(); pset.MoveFirst(); int t=1,flag=0; while(!pset.IsEOF() if(pset.m_sno=m_Sno) m_order=t; UpdateData( FALSE ); flag=1; return; t+; pset.MoveNext(); ; if(flag=0)MessageBox(你的学号输入错误,提示,0)

24、; / TODO: Add your control notification handler code here/查看3.2.3 管理员登录操作管理员登录是进行学生成绩添加、删除和修改等操作的前提。点击管理员登录,跳出管理员登录界面,输入密码后跳出管理界面。如图:图22 管理员登录界面图23 成绩管理界面程序如下:void Dlg3Name:OnButton6() Dlg8 dlg; if(dlg.DoModal()=IDOK) UpdateData( TRUE ); if(dlg.m_mima=1234) Dlg9 dlgg; dlgg.DoModal(); elseMessageBox(

25、密码不正确,提示,0); / TODO: Add your control notification handler code here3.2.4 成绩管理操作学生成绩管理操作包括成绩的添加、修改和删除,点击相应按钮会跳出相应的界面供我们操作。添加成绩如下:图24 成绩添加程序如下:void Dlg9:OnButton1() DlgA dlg; DlgADataset pset; pset.Open(); if( dlg.DoModal()=IDOK ) /按IDD_DIALOG1 的OK按钮返回之后: int flag=0; pset.MoveFirst( ); UpdateData(TRU

26、E); while(!pset.IsEOF() if(dlg.m_AddSno=pset.m_sno&dlg.m_AddCno=pset.m_cno)flag=1; MessageBox(该门成绩已存在,管理系统, 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( ) ; /新记录写入数

27、据库的数据表 pset.Requery( ); /刷新记录集。这将改动物理数据库。 MessageBox(添加成功,学生管理系统,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&dlg.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(); MessageBo

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1