




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中原工学院计算机学院课程设计报告课程名称: windows程序设计课设 专 业: 计算机科学与技术 班 级: 计科111 姓 名: 胡玉旺 辅导老师: 王海龙 题 目: 学生成绩信息管理基本系统 2013年1月目录程序简介3目的3功能需求3程序主框架4详细设计与功能实现4在score基类中定义了私有变量4学生信息的添加OnAdd()4删除信息OnDel()5信息的查找OnFind():6修改信息OnModify():6显示全部信息OnShowall()7OnClear() 清空函数:7Save()函数:8Show()函数:8对平均分排序sort():8GetID():9系统测试9查找9修改学生成绩信息10清空10显示全部:10删除信息:11对学生成绩信息进行添加:11总结:12程序简介此程序操作简单方便,当然功能也不是太花,对学生的成绩基本信息进行录入、查询、修改、删除、显示、记录保存等最基本功能,学生的信息包括:学生的ID、姓名、数学成绩、英语成绩、语文成绩、及由系统自动计划的平均分。本程序虽然功能简单,但也可输入大量的信息以供保存查找,于是并定义了对平均分进行从低到高的排序功能。目的了解Windows编程的基础知识,掌握MFC应用程序的基本知识。基本掌握面向对象程序设计的基本思路和方法。掌握用VC+开发应用程序的的一般步骤和方法。并能过此次课设设计并编写出一份实用的程序。提高自己的编写代码与程序的能力,以及发现问题解决问题的能力功能需求对一次性写在编辑框内的学生的信息依次保存显示在列表框内对学生的信息进行每次打开能从文件中读取显示在列表框内根据文件读出的学生的信息根据学号进行查询显示在编辑框内根据查询出的结果根据需要进行修改并保存在文件中删除学生信息即彻底从文件中删除、清空列表框中的信息并未真正意义上的删除通过显示全部能够再次显示出来对录入学生的三门成绩进行平均分计算并根据从大到小进行排序,即在列表框内以从高到低的顺序进行显示程序主框架程序主界面的设计各项主要功能交接口的设计程序中类的声名与成员变量的设计程序各种主要功能的算法实现学生成绩管理详细设计与功能实现在score基类中定义了私有变量 定义保护成员函数: 分别实现了用于保存学生的各项信息,并能过成员函数的调用对学生的成绩信息进行获得和设置。学生信息的添加OnAdd():此由CStudentsDlg派生出:并由代码判断添加的学生的ID是否为空或重复否则提示并返回,判断添加的学生的姓名,成绩是否这空,否则提示“填写的信息不全请重新填写”。计算平均分。最后将各项信息初始化为输入的信息保存。代码如下:void CStudentsDlg:OnAdd() / TODO: Add your control notification handler code hereUpdateData(TRUE);if(m_lID=0|getID(m_lID)!=-1)MessageBox(ID不能为空或者ID不能为重复的值);return ;if(m_strName=|m_dMath=0|m_dEnglish=0|m_dChinese=0)MessageBox(填写的信息不全请重新填写);return;score Score; Score.setId(m_lID);Score.setName(m_strName);Score.setEng(m_dEnglish);Score.setChin(m_dChinese);Score.setMath(m_dMath);float ave=(m_dEnglish+m_dChinese+m_dMath)/3;Score.setAve(ave);StudenT.push_back(Score);Sort();Save();OnShowall();删除信息OnDel():删除信息判断是否有要被删除的信息,如果没有,则提示“删除的信息不存在”若有,因本次删除操作是删除文件中的所有的信息所以以警告的方式提示用户, “确定删除吗?慎用!“yes则执行删除操作。代码如下:void CStudentsDlg:OnDel() / TODO: Add your control notification handler code hereUpdateData(TRUE);int n;if(n=getID(m_lID)=-1)MessageBox(删除的信息不存在);return ;int a=MessageBox(确定删除吗?慎用!,警告,MB_YESNO);if (a=IDYES) while(StudenT.size()vector:iterator it=StudenT.begin();StudenT.erase(it,it+1);Save();MessageBox(删除成功!);OnShowall();信息的查找OnFind():学生ID是只一标识学生的一种身份标识,因此以学生ID进行查找,此过和为一判断的程过程 得到编辑框内的学生ID进行判断为空,提示查找的信息不存在,否则,依次得到学生的姓名,各项成绩并让其显示到编辑框中。void CStudentsDlg:OnFind() / TODO: Add your control notification handler code hereUpdateData(TRUE);int n;if(n=getID(m_lID)=-1)MessageBox(查找的信息不存在);return ;m_strName=StudenTn.getName();m_dEnglish=StudenTn.getEng();m_dChinese=StudenTn.getChin();m_dMath=StudenTn.getMath();m_fAvg=StudenTn.getAve();UpdateData(FALSE);return;修改信息OnModify():学生ID在本程序中不能修改,并同样同查询一样,得到ID并判断,是否符合要求否则:MessageBox(修改的信息不存在或不能修改ID值);return ;若符合条件则用set*()设置所修改的学生的成绩并保存。代码如下:void CStudentsDlg:OnModify() / TODO: Add your control notification handler code hereUpdateData(TRUE);int i;if(i=getID(m_lID)=-1)MessageBox(修改的信息不存在或不能修改ID值);return ;StudenTi.setName(m_strName);StudenTi.setEng(m_dEnglish);StudenTi.setMath(m_dMath);StudenTi.setChin(m_dChinese); m_fAvg=(StudenTi.getEng()+StudenTi.getMath()+StudenTi.getChin()/3;StudenTi.setAve(m_fAvg);Sort();Save();OnShowall();UpdateData(FALSE);显示全部信息OnShowall():显示全部信息就是将文件中的学生成绩全部显示出来 首先:m_list.DeleteAllItems();(这里区别于删除)先清一下,然后Show();显示出来再。/*关于 Show()函数的定义呆会再说:DeleteAllItems()在msdn library中有定义:Call this function to delete all items from the list view control.*/代码如下:void CStudentsDlg:OnShowall() / TODO: Add your control notification handler code herem_list.DeleteAllItems();for(int i=0;iStudenT.size();i+)Show(i);OnClear() 清空函数:用于清空列表中的学生的信息,但并没有真正删除文件中的学生成绩。并可由OnShowall() 来继续显示到列表当中。代码如下:void CStudentsDlg:OnClear() / TODO: Add your control notification handler code hereint a=MessageBox(确定清空吗?,警告,MB_YESNO);if (a=IDYES)m_strName=;m_lID=0;m_dEnglish=m_dMath=m_dChinese=0.0;m_list.DeleteAllItems();UpdateData(FALSE);Save()函数:打开Student.dat 文件实现数据的写入和保存。void CStudentsDlg:Save()ofstream out(student.dat,ios_base:binary);for(int i=0;iStudenT.size();i+)out.write(char*)&StudenTi,sizeof(score);out.close();cout操作已经保存endl;Show()函数:用于显示学生的信息:void CStudentsDlg:Show(int i)CString strID,strEng,strMath,strChin,strAve;m_list.InsertItem(i,StudenTi.getName(); strID.Format(%d,StudenTi.getId();m_list.SetItemText(i,1,strID);strEng.Format(%4.2f,StudenTi.getEng();m_list.SetItemText(i,2,strEng);strMath.Format(%4.2f,StudenTi.getMath();m_list.SetItemText(i,3,strMath);strChin.Format(%4.2f,StudenTi.getChin();m_list.SetItemText(i,4,strChin);strAve.Format(%4.2f,StudenTi.getAve();m_list.SetItemText(i,5,strAve);对平均分排序sort():按平均分总成绩的从大小在列表中进行有序显示void CStudentsDlg:Sort()int i,MAX,j;for(i=0;iStudenT.size()-1;i+)MAX=i;for(j=i+1;jStudenTMAX.getCompute()score swap;swap=StudenTj;StudenTj=StudenTMAX; StudenTMAX=swap; GetID():打开文件,从中得到学生的ID:int CStudentsDlg:getID(long ID)score id;ifstream in2(student.dat,ios:binary);for(int i=0;iStudenT.size();i+)in2.read(char*)&id,sizeof(id);if(ID=id.getId()in2.close();return i;return -1;系统测试文件中已经有了之前输入的学生的成绩直接运行会自动载入这些信息:查找:例如查找ID为5的同学的成绩在学生ID编辑中输入5 点查找如下:各项信息都已在编辑框中显示了出来。修改学生成绩信息:例如将学生7的数学成绩修改成110 首先先查找出这位学生,在编辑框数学处写入110点击修改:看到了该学生的信息已经修改了。清空:点击清空会提示你:“确定清空吗?”在列表框区如下: 已经清空。显示全部:点击上面的显示全部信息则又将恢复显示列表框:删除信息:点下删除,若ID编辑框内没有学号,则会提示:“删除的信息不存在”此时应该此框中输入学生的ID再点删除会提示我们:“确定删除吗?慎用”点击“是”则信息全部删除并以提示的形式提示我们:若此时再点击显示全部,则不会显示,因为是把文件中的信息给删除了已经,所以不会显示。只有重新再添加,这了是本程序的不足之处之一,以后会改尽。 对学生成绩信息进行添加:添加过程中,学生的ID和成绩 姓名都不能为空,并且ID不能为重复的 否则会提示如下,若各项都满足则会显示下面的列表框中,并保存在文件中(学生ID只有10位,超过这个数则会以乱码的形式出现,学生的成绩有7位)添加学生成绩信息姓名胡玉旺 ID:14106 数学1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 测量专业试题及答案
- 湖北省汉川市金益高级中学2025-2026学年高二上学期9月起点考试语文试卷
- 安徽省淮南市第二中学2025-2026学年高二上学期开学考试物理试题
- 铝塑板挑檐施工方案
- 辽宁电镀线施工方案
- 娱乐休闲产业发展蓝图
- 人力资源管理数字化现状与挑战
- 【高中语文】《哦香雪》课件+统编版高一语文必修上册
- 大学新教师试用期转正个人工作总结字
- 涞水防火聚苯板施工方案
- 2025-2030年中国聚晶金刚石复合片钻头行业市场现状供需分析及投资评估规划分析研究报告
- 2025至2030中国游乐场设备行业发展趋势分析与未来投资战略咨询研究报告
- 2025至2030中国新房验收行业市场深度调研及竞争格局及有效策略与实施路径评估报告
- 违建处置工作报告
- 白介素2联合地塞米松治疗气道过敏性炎症性疾病:疗效与机制的深度剖析
- 2025年江苏省农业融资担保有限责任公司招聘笔试参考题库附带答案详解
- 口腔护理论文-口腔论文-临床医学论文-医学论文
- 部队油库承包合同协议
- 江苏语文单招试题及答案
- 2024第41届全国中学生物理竞赛预赛试题(含答案)
- 模具厂合伙协议合同协议
评论
0/150
提交评论