欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    VC++设计学生成绩管理系统.doc

    • 资源ID:23967868       资源大小:836.50KB        全文页数:62页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    VC++设计学生成绩管理系统.doc

    Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateVC+设计学生成绩管理系统1 绪论1 绪论学生成绩管理系统对学校加强学生成绩管理有着极其重要的作用。由于各个大学都在持续扩招,学生的数量日益庞大,传统手工的学生成绩管理,管理过程繁琐而复杂,执行效率低,并且易于出错。另外,学生的成绩要用于学校教务管理的各个方面,所以一旦学生成绩管理出现了错误,后果往往是非常严重的。通过学习成绩管理系统,我们可以做到信息的规范管理和快速查询。 本次设计的学生成绩管理系统是典型的信息管理系统,它能够高效率地帮助教师上传学生的成绩和最终成绩记录的保存,也方便了学生查询成绩,其开发主要包括后台数据库的建立和维护以及前台应用程序的开发两个方面。对于前者要求建立起数据一致性高和完整性强、数据安全性好的库,而对于后者则要求应用程序功能完备,易使用等特点。 基于学校学生众多,为了数据的安全性,系统将学生数据保存在数据库中,以Visual C+设计前台对系统进行设计。因为成绩管理系统是一项很实用的系统,所面对的数据量很大,所以我们要求系统能够高效快速的处理这些数据,并且要保证数据的正确性、相容性和安全性。C+作为前台是将数据库中的数据读取出来,有助于用户对这些数据进行相应的操作,使操作更方便,更符合用户的要求。所以该系统应该要有一个良好的界面,使用户感觉很直观,使用快捷,这就是用C+所要实现的功能。关键词:Visual C+,数据库,学生成绩管理系统2 设计要求基于C+的学生成绩管理系统设计学生成绩管理系统有学号,姓名,成绩等组成; 开发工具有VC+6.0,ACCESS2003,SQL2005等;主要功能:前台用VC+设计界面,后台用数据库。(1)能完成对学生成绩的录入、修改(2)能统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序(3)能查询学生成绩,不及格科目及学生名单(4)能输出学生的成绩单3 数据库设计3.1 概念设计根据设计要求,要对学生成绩进行操作,所以系统实体属性包括学号,姓名语文成绩,数学成绩,英语成绩。由以上分析可以得该系统的E-R关系图如图1所示学号姓名语文成绩学生 数学成绩英语成绩图1 学生成绩E-R图3.2 逻辑设计与物理设计根据概念设计中的E-R图,可设计一个表,其关系模型如下:学生基本信息表:学号,姓名,语文成绩,数学成绩,英语成绩。在ACCESS中定义一个表的物理结构如下: 图2 学生成绩表物理结构3.3 数据库的输入 在ACCESS中定义好物理结构后就可以输入数据,同时根据系统的要求,用ACCESS做了一个查询去求总分和平均分。具体数据如下:图3 学生成绩表图4 总分平均分查询4 程序设计根据设计要求,本系统是利用VC来开发可视化界面,因此要将程序和数据库进行连接,这要使用ODBC工具将数据库设置数据源,在建立工程时选择数据库查看使用文件支持,在选择数据源时选择自己设置的数据源即可。在主页面,连接平均分总分查询,在主页面对学生成绩操作就非常方便。主页面如图5所示:图5 主页面4.1 查询操作查询操作的功能是输入学号,点击查询按钮,就可以显示出学生的基本信息。如图6所示:图6 查询操作按下查询按钮,调用函数,跳到查询界面,显示各信息。程序如下:void CGGView:OnButton2() int flag=1,t=0,tag=0; m_pSet->MoveFirst( ); UpdateData(TRUE); while(flag=1) if(m_Sno=m_pSet->m_column2) tag=6 ; flag=0; t=0; else t=1; m_pSet->MoveNext( ); if( m_pSet->IsEOF( ) )flag=0; if(t=1)MessageBox("你输入的学号不存在","学生管理系统", 0 ); m_pSet->MovePrev( ); Dlg4 dlg; / 工作对话框开始的程序: if( tag=6 ) /(1)将当前记录的各字段值拷贝到对话框的对应成员变量上: UpdateData(TRUE);/激活对话框控件 dlg.m_Sno = m_pSet->m_column2; dlg.m_Sn = m_pSet->m_column1; dlg.m_Cla = m_pSet->m_column3; dlg.m_C1 = m_pSet->m_column4; dlg.m_C2 = m_pSet->m_column5; dlg.m_C3 =m_pSet->m_column6; dlg.m_C4 =m_pSet->m_column7; UpdateData(FALSE);/控件上的改变显示出来 /(2)按对话框的"OK"按钮时返回,返回之后重置数据库该记录的修改值: UpdateData(TRUE); dlg.DoModal( );4.2 添加操作添加操作是在点击添加按钮后,添加记录窗口跳出,在新窗口输入要添加的记录,点击确定按钮后,如果该学生的信息已存在(以学号判断),则提醒该学生信息已存在,如果添加成功,则跳出添加成功提示。如7图所示:图7 添加操作按下添加按钮,调用添加函数,跳到添加界面,即可进行相关操作。程序如下:void CGGView:OnButton1() Dlg1 dlg;if(dlg.DoModal()=IDOK)int flag=0;m_pSet->MoveFirst();UpdateData(TRUE);while(!m_pSet->IsEOF() if(dlg.m_column2=m_pSet->m_column2) flag=1;MessageBox("该学生信息已存在","管理系统",0);m_pSet->MoveNext();if(flag=0)m_pSet->AddNew();m_pSet->m_column1=dlg.m_column1;m_pSet->m_column2=dlg.m_column2;m_pSet->m_column3=dlg.m_column3;m_pSet->m_column4=dlg.m_column4;m_pSet->m_column5=dlg.m_column5;m_pSet->Update();m_pSet->Requery();MessageBox("添加成功","学生管理系统",0);4.3 删除操作删除操作是点击删除按钮后,跳出删除窗口,在删除窗口中输入要删除学生信息的学号,在多种提示后确认无误后删除,删除后会显示已删除提醒。如下图所示:图8 删除操作图9 删除提示 图10 确认删除程序如下:void CGGView:OnButton5() / 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);while(flag=1)CString info="0" info="学号:t"+m_pSet->m_column2+"n" info+="姓名:t"+m_pSet->m_column1+"n" if(dlg.m_DleSno=m_pSet->m_column2)flag1=MessageBox(info,"请确认删除学生的信息:",100);flag=0;t=0;elset=1;m_pSet->MoveNext();if(m_pSet->IsEOF()flag=0;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);4.4 修改操作修改操作是在主页面输入要修改的学生成绩的学号,点击修改按钮,跳出修改窗口,在窗口中会显示该学生现有的信息,将其修改后点击确定按钮。如图11所示:图11 修改操作程序如下:void CGGView:OnButton6() / TODO: Add your control notification handler code hereint flag=1,t=0,tag=0; m_pSet->MoveFirst( ); UpdateData(TRUE); while(flag=1) CString info="0" info = "学号:t" + m_pSet->m_column2+ "n" info += "姓名:t" + m_pSet->m_column1 + "n" if(m_Sno=m_pSet->m_column2) 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( ); Dlg3 dlg; / 工作对话框开始的程序: if( tag=6 ) /(1)将当前记录的各字段值拷贝到对话框的对应成员变量上: UpdateData(TRUE);/激活对话框控件 dlg.m_CSno = m_pSet->m_column2; dlg.m_CSn = m_pSet->m_column1; dlg.m_CCla = m_pSet->m_column3; dlg.m_CC1 = m_pSet->m_column4; dlg.m_CC2 = m_pSet->m_column5;/ dlg.m_CC3 =m_pSet->m_c3; UpdateData(FALSE);/控件上的改变显示出来 /(2)按对话框的"OK"按钮时返回,返回之后重置数据库该记录的修改值: UpdateData(TRUE); dlg.DoModal( ); m_pSet->Edit(); m_pSet->m_column2 = dlg.m_CSno ; m_pSet->m_column1 = dlg.m_CSn ; m_pSet->m_column3 = dlg.m_CCla ; m_pSet->m_column4= dlg.m_CC1 ; m_pSet->m_column5 = dlg.m_CC2 ; m_pSet->Update( ) ; m_pSet->Requery( ); MessageBox("修改成功","学生管理系统",0); / TODO: Add your control notification handler code here4.5 显示和排序操作显示操作是在点击显示按钮后,主页面的表格会显示所有学生成绩,排序操作是在点击排序按钮后再点击显示按钮,主页面会按平均分的升序排列显示所有学生成绩。如下图所示:图12 显示操作图13 排序操作程序如下:显示程序void CGGView:OnInitialUpdate()m_pSet = &GetDocument()->m_gGSet;CRecordView:OnInitialUpdate();GetParentFrame()->RecalcLayout();ResizeParentToFit();m_list.SetExtendedStyle(LVS_EX_FLATSB|LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE|LVS_EX_GRIDLINES);/设置扩展样式m_list.InsertColumn(0,"学号",LVCFMT_LEFT,80,0);/添加项m_list.InsertColumn(1,"姓名",LVCFMT_LEFT,80,1);/m_list.InsertColumn(2,"语文",LVCFMT_LEFT,80,2);/ m_list.InsertColumn(3,"数学",LVCFMT_LEFT,80,3);/ m_list.InsertColumn(4,"英语",LVCFMT_LEFT,80,4);/m_list.InsertColumn(5,"总分",LVCFMT_LEFT,80,5);m_list.InsertColumn(6,"平均分",LVCFMT_LEFT,80,6);int CGGView:OnButton3() / TODO: Add your control notification handler code herem_list.DeleteAllItems();int i=0; m_pSet->MoveFirst(); do CString s; s.Format("%s",m_pSet->m_column2); m_list.InsertItem(i,s,0); m_list.SetItemText(i,1,m_pSet->m_column1); s.Format("%.1f",m_pSet->m_column3); m_list.SetItemText(i,2,s); s.Format("%.1f",m_pSet->m_column4); m_list.SetItemText(i,3,s); s.Format("%.1f",m_pSet->m_column5); m_list.SetItemText(i,4,s); s.Format("%.1f",m_pSet->m_column6); m_list.SetItemText(i,5,s); s.Format("%.1f",m_pSet->m_column7); m_list.SetItemText(i,6,s); i+; m_pSet->MoveNext(); while(!m_pSet->IsEOF(); if(m_pSet->IsEOF()m_pSet->MovePrev(); m_pSet->Close(); m_pSet->Open(); return i; 排序程序void CGGView:OnButton4() / TODO: Add your control notification handler code hereUpdateData();m_pSet->Close();m_pSet->m_strSort="平均分"m_pSet->Open();UpdateData(FALSE);4.6 显示不及格学生名单操作 显示不及格学生名单操作是在点击不及格名单按钮后,主页面会显示不及格学生学号,姓名,不及格科目及分数。如图14所示:图14 显示不及格学生名单操作程序如下:int CGGView:OnButton7() / TODO: Add your control notification handler code herem_list.DeleteAllItems();int i=0;int a=0,b=0,c=0; m_pSet->MoveFirst(); do if(m_pSet->m_column3<60) a=1; if(m_pSet->m_column4<60) b=1; if(m_pSet->m_column5<60) c=1; if(a=1|b=1|c=1) CString s; s.Format("%s",m_pSet->m_column2); m_list.InsertItem(i,s,0); m_list.SetItemText(i,1,m_pSet->m_column1); if(a=1) s.Format("%.1f",m_pSet->m_column3); m_list.SetItemText(i,2,s); if(b=1) s.Format("%.1f",m_pSet->m_column4); m_list.SetItemText(i,3,s); if(c=1) s.Format("%.1f",m_pSet->m_column5); m_list.SetItemText(i,4,s); a=0,b=0,c=0; i+; m_pSet->MoveNext(); while(!m_pSet->IsEOF();if(m_pSet->IsEOF()m_pSet->MovePrev(); m_pSet->Close(); m_pSet->Open(); return i;5 调试报告软件编写完成后对其进行调试,调试过程中发现自己的程序缺少一些人机交互,例如在删除后应该让用户知道自己的删除操作是否完成,所以在删除完成后应用MessageBox来告知用户删除已完成。自己的程序在调试是经常出现功能不能执行或不管条件怎样都会执行的情况,检查程序发现,自己的If语句在编写时=写成=,导致程序出现错误。在显示不及格名单的时候,因为IF语句结构错误,导致不能显示不及格的成绩。最后修改结构及相关条件,最后成功实现显示不及格的科目及名单的要求。6 心得体会本次课程设计锻炼了我们综合利用C+语言进行程序设计的能力,考察了观察能力和总结能力和将所学知识转化为分析和设计简单实际问题的能力。通过此次学生成绩管理系统的设计,使我对面向对象程序设计有了深一步的了解,对系统设计及开发有了比较全面的思路。例如在Visual C+中,文档类、与文档类相关联的视图类以及视图类提供的显示框架窗口都是由文档模板创建的,每一种文档类型都有一种文档模板与之相对应,文档模板负责创建和管理该文档类型的所有文档。总之,通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过与同学们探讨和向老师请教才得以解决,这也激发了我今后努力学习的兴趣,也很感谢老师和同学对我的帮助,我想这将对我以后的学习产生积极的影响,为今后的学习和实践打下了良好的基础。参考文献1 Michael R.Groh.ACCESS 2007宝典.人民邮电出版社.20102 罗摩克里希纳 科尔基.数据库管理系统原理原理与设计(第三版).清华大学出版社.20103任芳芳.ACCESS2007数据库设计实用教程(中文版).中国水利水电出版社.20114王海龙等.VISUALC+6.0设计师之路.电子工业大学出版社.20125徐武等.VISUALC+6.0与ORACLE数据库编程实例.电子工业大学出版社.2010-

    注意事项

    本文(VC++设计学生成绩管理系统.doc)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开