C++专业课程设计专业资料.doc
《C++专业课程设计专业资料.doc》由会员分享,可在线阅读,更多相关《C++专业课程设计专业资料.doc(34页珍藏版)》请在咨信网上搜索。
大 连 科 技 学 院 面向对象程序设计(A)课程设计 题 目 好学生C++成绩管理系统 学生姓名 安凯辰 专业班级 计算机08-1班 指引教师 王影 刘瑞杰 职 称 高工 讲师 所在单位 信息科学系计算机教研室 教学部主任 王立娟 完毕日期 9月9日 课程设计报告单 学号 姓名 安凯辰 专业班级 计算机08-1 考 核 项 目 评分 备注 1 平时工作态度及遵守纪律状况 (10分) 2 掌握基本理论、核心知识、基本技能限度和阅读参照资料水平 (10分) 3 独立工作能力、综合运用所学知识分析和解决问题能力及实际工作能力提高限度 (20分) 4 完毕课程设计阐明书及软件状况与水平(小组分工状况、规范性、整洁清晰、论述完整性、思路清晰限度、工作量及实际运营状况和创新性) (60分) 总评成绩 综 合 评 定: (优、良、中、及格、不及格) 指引教师签字: 9月9日 《面向对象程序设计(A)课程设计》任务书 一、课程设计任务及规定: 任务:为理解决中高学校信息混乱不易查找、减轻有关工作压力等问题。本次课程设计开发了这套稳定可靠、操作简朴、相对安全在校学生C++成绩管理系统。该系统将对学生成绩信息进行管理,输入N个学生成绩,涉及学号,姓名,成绩,通过插入、删除、修改、输出先进成绩人数等操作对系统进行操作。 规定: (1) 依照软件系统开发普通原则,完毕相应系统功能设计,完毕重要功能模块程序实现并进行测试训练,给出代码运营成果和相应设计文档。可以分组进行,但所有学生必要经历整个系统开发全过程,以便加深对系统开发全过程结识。 (2)提交课程设计报告。 (3)指标:规定完毕课程设计报告3000字以上(约二十页);完毕所设计题目,设计题目语句行数在200行语句以上。 二、工作量 2周(10个工作日)时间 三、筹划安排 第1个工作日:查找有关资料、书籍,阅读示例文档,选取题目。 第2个工作日-第3个工作日:设计程序构造、模块图。 第4个工作日-第9个工作日:完毕程序编码,并且自己调试、测试。穿插进行课程设计报告撰写。 第10个工作日:上交课程设计报告,由教师检查软件测试效果、检查课程设计报告,给出学生成绩。 指引教师签字: 8月29日 目 录 1 需求分析 1 2 概要设计 2 3 详细设计 3 3.1 主函数流程图 3 3.2 类设计 3 3.3 函数设计 3 4 编码 4 4.1 功能函数代码 4 4.2 程序运营环境 7 5 调试分析 9 6 测试成果及运营效果 10 7 系统开发所用到技术 14 参照文献 15 课程设计实践总结 16 附 录 17 1 需求分析 用链表数据构造完毕一种学生C++成绩管理系统,此系统详细功能如下: (1) 学生成绩输入功能 顾客从键盘输入每个学生信息:学号、姓名、C++成绩。 (2) 文献保存功能 a 学生成绩等信息存为一种数据文献,数据文献可在程序中打开、修改和重新保存。 b 顾客输入学生成绩可随时保存数据文献。 (3) 文献打开功能 a 程序只能对当前打开数据文献进行编辑。 (4) 查询功能 a 浏览所有学生成绩; b 按学号查询学生成绩; c 查询某个学生成绩; d 查询及格学生个数和先进成绩学生个数。 (5) 修改功能 对已经存在学生成绩进行修改,并保存。 (6) 报表输出功能 a 按学号输出一种学生信息:学号、姓名、C++成绩,到屏幕和文献。 2 概要设计 图2-1 函数功能设计图 设计思路: 1.宏定义N,由于题目规定输入各种学生信息,在程序过程中比较繁琐。而使用宏定义可以大大减轻承担。 2.定义一种学生构造体,声明构造体类型Student。涉及一种数组num,可以容纳6个字符,涉及6个整型变量。 3.定义Student类型数组stu和数组stud。 struct构造体名 { 成员表列 }; 4.构建各个模块:输入模块,记录先进成绩模块,删除模块,修改模块,查找模块,菜单模块。 5.调实验证,运营修改程序,及时查漏补缺。 3 详细设计 3.1 主函数流程图 图3-1 主函数流程图 3.2 类设计 类:Student 数据成员:编号、学生姓名、C++成绩 3.3 函数设计 函数:inputData(输入成绩) searchScore(查询成绩) modifyScore(修改成绩) outputData(打印成绩) count(记录及格人数和先进成绩人数) exitSys(退出系统) 4 编码 4.1 功能函数代码 (1)输入成绩代码: void inputData(LinkList *head) //输入成绩 { int score; char name[20]; int stuNo; cout<<"请输入姓名:"<<endl; cin>>name; cout<<"请输入C++成绩:"<<endl; cin>>score; cout<<"请输入编号:"<<endl; cin>>stuNo; insertLinkList(head,name,score,stuNo); } (2)查询成绩代码: void searchScore(LinkList *head) //查询成绩。 { int stuNo; cout<<"请输入编号:"<<endl; cin>>stuNo; LinkList * p =NULL; p =head->next; while(p && p->Data.stuNo != stuNo) { p = p->next; } if(!p) { cout<<"NO RESULT!"<<endl; } else if(p->Data.stuNo == stuNo) { cout<<"stuNO "<<"name "<<"score "<<endl; cout<<p->Data.stuNo<<" "<<p->Data.name<<" "<<p->Data.score<<endl; } } (3)修改程序代码: void modifyScore(LinkList *head) //修改成绩。 { int stuNo; cout<<"请输入编号:"<<endl; cin>>stuNo; cin.get(); LinkList * p =NULL; p =head->next; while(p && p->Data.stuNo != stuNo) { p = p->next; } if(!p) { cout<<"NO RESULT!"<<endl; } else if(p->Data.stuNo == stuNo) { int score; cout<<"请输入成绩:"<<endl; cin>>score; cin.get(); p->Data.score = score; cout<<"改后信息:"<<endl; cout<<"stuNO "<<"name "<<"score "<<endl; cout<<p->Data.stuNo<<" "<<p->Data.name<<" "<<p->Data.score<<endl; } } void outputData(LinkList *head) //打印成绩。 { LinkList * p = NULL; p=head->next; cout<<"stuNO "<<"name "<<"score "<<endl; while(p) { cout<<p->Data.stuNo<<" "<<p->Data.name<<" "<<p->Data.score<<endl; p = p->next; } } 4.2 程序运营环境 本系统是有VC++ 6.0中文版本编译,一方面创立了一种Student工程。 图4-1 在VC++中创立一种student工程 另一方面,在Student工程中创立一种Student类,在student类中student.cpp中进行编译。 图4-2 在student.cpp中对程序进行编译 图4-3 编译成功,弹出cmd 5 调试分析 本次c++课程设计,在指引教师辅导下,我学会了如何用C++编写一种简朴应用程序。一方面要对程序设计规定有一种比较明确结识,然后系统分析与系统设计,最后是代码设计与调试。程序实现上,设计了简朴查询界面,将各个功能集中出来按照程序编写原则,便于查询。 依照C++课程所学概念、理论和办法,按照C++程序设计基本环节,设计出一种恰当规模程序;进一步加深对C++语言理解和掌握。理论联系实际,加深和巩固所学理论知识,提高实践能力和计算机综合运用能力。咱们编写程序过程是辛苦与高兴,程序编写原则很重要,只要咱们在编程,就必要不断改进,才干更好提高编程能力。 尽管人们很认真了,但仍有些许局限性之处,这也正暴露了咱们学习中诸多漏洞,在此后仍得继续努力,踏踏实实学好基本知识。由于对C++知识理解不够透彻以及时间问题,本程序没有可以实现排序功能,在此后我会继续努力不断完善本程序功能。 6 测试成果及运营效果 图6-1 程序主页面 图6-2 程序第一种功能:输入学生信息及成绩 图6-3 程序第二个功能:查询功能 图6-4 程序第三个功能:输出所有学生成绩 图6-5 修改功能界面 图6-6 退出系统界面 图6-7 输出先进成绩和及格人数功能 7 系统开发所用到技术 本程序是使用C++语言编写。通过VC++ 6.0进行编译,是通过cmd运营。 Visual C++6.0简称VC或VC6.0,是微软推出一款C++编辑器,将“高档语言”翻译成“机器语言(低档语言)”程序。 Visual C++6.0开发环境是基于windows操作系统可视化、面向对象集成开发环境(Integrated Development Environment,IDE)。在该环境下顾客可以开发关于C和C++各种应用程序,应用程序涉及建立、编辑、浏览、保存、编译、链接和调试等操作,这些操作都可以通过单击菜单选项或工具栏按钮来完毕,使用以便、快捷。它还提供了项目工作区(WorkSpace)、应用程序向导(AppWizard)、类操作向导(ClassWizard)和WizardBar等实用编辑工具。 Visual C++6.0最大长处就是提供了功能强大MFC类库,MFC是一种很大C++类层次构造,其中封装了大量类及其函数,诸多windows程序所共有原则内容可以由MFC类来提供,MFC类为这些内容提供了顾客接口原则实现办法,程序员所需要做就是通过预定义接口把详细应用程序特有东西填入这个轮廓。 命令提示符窗口(cmd.exe)是Windows“标配”组件,它可以实现顾客与操作系统直接交流,并负责顾客输入所有命令解释和支持。 参照文献 [1] 谭浩强.C++面向对象程序设计.北京:清华大学出版社. [2] 谭浩强.C程序设计(第三版).北京:清华大学出版社. [3] 谭浩强编著.C程序设计题解与上机指引(第三版).北京:清华大学出版社. [4] StanleyB.Lippman,JoseeLaijoie等.C++ primer(中文版).人民邮电出版. [5] 夏云庆,Visual C++6.0数据库高档编程.北京:但愿电子出版社. [6] Dcoder编著.C/C++程序设计.北京:中华人民共和国铁道出版社. 课程设计总结 课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼解决实践能力重要环节,是对学生实际工作能力详细训练和考察重要环节,是对学生实际工作能力详细训练和考察过程。 回顾本次课程设计,至今我感触颇多,确,自从拿到题目到完毕整个编程,从理论到实践,在整整两个星期日子里,可以学到诸多在课本上没有学到知识,并且巩固了此前学过知识。通过这次课程设计是我懂得了理论与实践相结合时很重要,只有理论知识是远远不够,只有把所学理论知识与实践结合起来,从理论中得出结论,才干真正提高自己实际动手能力。 在此,感谢这两个星期里教师对我悉心指引,帮我分析代码,解决问题。 附 录 1 主函数某些代码 #include<iostream> #include<string.h> #include<stdlib.h> using namespace std; struct studentstr { int stuNo; char name[20]; int score; //这里假设为整型,其实为实数比较妥当 }; typedef struct link { struct studentstr Data; struct link * next; }LinkList; int linkListLen(LinkList * head) //返回链表长度,这样可以很容易计算学生编号 { int len =0; LinkList * p =NULL; p = head->next; while(p) { len++; p=p->next; } return len; } LinkList * createLinkList(LinkList *head) { head = new LinkList; head->Data.stuNo = -1; head->next = NULL; return head; } int calcStuNo(LinkList *head) { return 1000+linkListLen(head); //设立学号一种起始值 } void insertLinkList(LinkList *head,char * name,int score,int stuNo) { LinkList *p = NULL; LinkList *q = NULL; p= new LinkList; p->Data.stuNo = calcStuNo(head); strcpy(p->Data.name,name); p->Data.score = score; p->next = NULL; q=head; while(q->next) { q = q->next; } q->next = p; } int menu() { cout<<"好学生C++成绩管理系统"<<endl; cout<<"**************************************"<<endl; cout<<"**************************************"<<endl; cout<<"*******1--输入成绩********************"<<endl; cout<<"*******2--查询成绩********************"<<endl; cout<<"*******3--修改成绩********************"<<endl; cout<<"*******4--输出所有学生成绩************"<<endl; cout<<"*******5--记录及格和先进人数**********"<<endl; cout<<"*******6--退出系统********************"<<endl; cout<<"**************************************"<<endl; int innum; while(1) { cout<<"请输入你选取:"<<endl; cin>>innum; cin.get(); if(innum >= 1 && innum <= 6) { break; } else { cout<<"输入有误!"<<endl; } } return innum; } 2 输入成绩某些代码 void inputData(LinkList *head) //输入成绩 { int score; char name[20]; int stuNo; cout<<"请输入姓名:"<<endl; cin>>name; cout<<"请输入C++成绩:"<<endl; cin>>score; cout<<"请输入编号:"<<endl; cin>>stuNo; insertLinkList(head,name,score,stuNo); } 3 查询成绩某些代码 void searchScore(LinkList *head) //查询成绩 { int stuNo; cout<<"请输入编号:"<<endl; cin>>stuNo; LinkList * p =NULL; p =head->next; while(p && p->Data.stuNo != stuNo) { p = p->next; } if(!p) { cout<<"NO RESULT!"<<endl; } else if(p->Data.stuNo == stuNo) { cout<<"stuNO "<<"name "<<"score "<<endl; cout<<p->Data.stuNo<<" "<<p->Data.name<<" "<<p->Data.score<<endl; } } 4 修改成绩某些代码 void modifyScore(LinkList *head) //修改成绩 { int stuNo; cout<<"请输入编号:"<<endl; cin>>stuNo; cin.get(); LinkList * p =NULL; p =head->next; while(p && p->Data.stuNo != stuNo) { p = p->next; } if(!p) { cout<<"NO RESULT!"<<endl; } else if(p->Data.stuNo == stuNo) { int score; cout<<"请输入成绩:"<<endl; cin>>score; cin.get(); p->Data.score = score; cout<<"改后信息:"<<endl; cout<<"stuNO "<<"name "<<"score "<<endl; cout<<p->Data.stuNo<<" "<<p->Data.name<<" "<<p->Data.score<<endl; } } void outputData(LinkList *head) //打印成绩 { LinkList * p = NULL; p=head->next; cout<<"stuNO "<<"name "<<"score "<<endl; while(p) { cout<<p->Data.stuNo<<" "<<p->Data.name<<" "<<p->Data.score<<endl; p = p->next; } } 5 记录输出某些代码 void count(LinkList *head) //记录及格和先进成绩人数。 { LinkList *p = NULL; p=head->next; int jige = 0; int youxiu = 0; while(p) { if(p->Data.score >= 60) { jige++; } if(p->Data.score >=90) //假设不不大于等于90为先进。 { youxiu++; } p = p->next; } cout<<"及格人数为:"<<jige<<endl; cout<<"先进人数为:"<<youxiu<<endl; } void exitSys() //退出系统。 { char temp; cout<<"If you want to exit?(y/n)\n"; cin>>temp; cin.get(); if(temp == 'y' || temp =='Y') { cout<<"exit success!\n"; cout<<"BYE BYE\n"; exit(0); } else { return; } } int main() { int selectnum; LinkList *head = NULL; head = createLinkList(head); while(1) { selectnum = menu(); switch(selectnum) { case 1: { inputData(head); break; } case 2: { searchScore(head); break; } case 3: { modifyScore(head); break; } case 4: { outputData(head); break; } case 5: { count(head); break; } case 6: { exitSys(); break; } } } }- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 专业课程 设计 专业 资料
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文