C++课设竞赛成绩管理系统报告.docx
- 文档编号:12812092
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:42
- 大小:374.42KB
C++课设竞赛成绩管理系统报告.docx
《C++课设竞赛成绩管理系统报告.docx》由会员分享,可在线阅读,更多相关《C++课设竞赛成绩管理系统报告.docx(42页珍藏版)》请在冰点文库上搜索。
C++课设竞赛成绩管理系统报告
沈阳工程学院
信息学院
C++程序设计
课程设计
设计题目:
竞赛程序管理系统
系别计算机科学与技术系班级计算机
学生姓名
学号
指导教师职称
起止日期:
2016年12月26日起——至2016年12月30日止
任务分工
组长姓名
题目
竞赛成绩管理系统
项目组成员
个人任务描述
自我评定
负责小组分工合作,整体程序的编写,并将所有的程序汇总,运行,修改。
良
主要负责根据编写好的程序画出相应的流程图,最后排版好整个报告,绪论,总结等等。
良
沈阳工程学院信息学院
C++程序设计课程设计成绩评定表
系(部):
计算机科学与技术系班级:
计算机学生姓名:
指导教师评审意见
评价
内容
具体要求
权重
评分
加权分
调研
论证
能独立查阅文献,收集资料;能制定课程设计方案和日程安排。
0.1
5
4
3
2
工作能力
态度
工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作,
0.2
5
4
3
2
工作量
按期圆满完成规定的设计任务,工作量饱满,难度适宜。
0.2
5
4
3
2
说明书的质量
说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。
0.5
5
4
3
2
指导教师评审成绩
(加权分合计乘以12)
分
加权分合计
指导教师签名:
年月日
评阅教师评审意见
评价
内容
具体要求
权重
评分
加权分
查阅
文献
查阅文献有一定广泛性;有综合归纳资料的能力
0.2
5
4
3
2
工作量
工作量饱满,难度适中。
0.5
5
4
3
2
说明书的质量
说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。
0.3
5
4
3
2
评阅教师评审成绩
(加权分合计乘以8)
分
加权分合计
评阅教师签名:
年月日
课程设计总评成绩
分
沈阳工程学院信息学院
C++程序设计课程设计成绩评定表
系(部):
计算机科学与技术系班级:
计算机学生姓名:
指导教师评审意见
评价
内容
具体要求
权重
评分
加权分
调研
论证
能独立查阅文献,收集资料;能制定课程设计方案和日程安排。
0.1
5
4
3
2
工作能力
态度
工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作,
0.2
5
4
3
2
工作量
按期圆满完成规定的设计任务,工作量饱满,难度适宜。
0.2
5
4
3
2
说明书的质量
说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。
0.5
5
4
3
2
指导教师评审成绩
(加权分合计乘以12)
分
加权分合计
指导教师签名:
年月日
评阅教师评审意见
评价
内容
具体要求
权重
评分
加权分
查阅
文献
查阅文献有一定广泛性;有综合归纳资料的能力
0.2
5
4
3
2
工作量
工作量饱满,难度适中。
0.5
5
4
3
2
说明书的质量
说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。
0.3
5
4
3
2
评阅教师评审成绩
(加权分合计乘以8)
分
加权分合计
评阅教师签名:
年月日
课程设计总评成绩
分
沈阳工程学院信息学院
课程设计任务书
课程设计题目:
竞赛成绩管理系统
系别计算机科学与技术系班级计算机
学生姓名
学号
指导教师职称
课程设计进行地点:
任务下达时间:
2016年12月5日
起止日期:
2016年12月26日起——至2016年12月30日止
系主任2016年12月6日批准
一、课程设计的原始资料及依据
查阅有关资料,进一步理解面向对象程序设计的思想,并利用MFC框架编写一个简单的windows系统。
通过本设计可以加深理解使用面向对象程序设计思想开发一个系统的方法,提高分析问题、解决问题和实际动手的能力。
二、课程设计主要内容及要求
设计内容:
1.初始化设置:
N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数;各项目名次取法有如下几种:
取前5名:
第1名得分7,第2名得分5,第3名得分3,第4名得分2,第5名得分1;
取前3名:
第1名得分5,第2名得分3,第3名得分2;
2.用户自定义:
每个项目名次取法由用户指定。
3.由用户填写比赛结果,输入各项目获奖运动员的信息。
4.所有信息记录完毕后,用户可以查询各个学校的比赛成绩,生成团体总分报表,查看参赛学校信息和比赛项目信息等。
设计要求:
(1)要求利用面向对象的方法以及MFC框架来完成系统的设计;
(2)要求在设计的过程中建立清晰的类层次,并画出类图;
(3)设计功能满足要求、易于操作的友好界面;
(4)界面中需有菜单、工具栏、状态栏;
(5)在系统的设计中,至少要用到面向对象的一种机制:
继承、多态等;
(6)在完成该题目时,小组人员进行详细的任务分工,并要在报告中体现出来。
三、对课程设计说明书撰写内容、格式、字数的要求
1.课程设计说明书是体现和总结课程设计成果的载体,主要内容包括:
设计题目、设计目的、设备器材、设计原理及内容、设计步骤、遇到的问题及解决方法、设计总结、参考文献等。
一般不应少于3000字。
2.在适当位置配合相应的实验原理图、功能模块图、算法流程图等图表进行说明。
应做到文理通顺,内容正确完整,书写工整,装订整齐。
3.设计总结部分主要写本人完成工作简介以及自己的设计体会,包括通过课程设计学到了什么,哪里遇到了困难,解决的办法以及今后的目标。
4.课程设计说明书手写或打印均可。
手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时采用A4纸,页边距均为20mm,正文采用宋体小四号字,行间距18磅。
文中大标题采用黑体小三号字,一级节标题采用黑体四号字,二级节标题采用黑体小四号字,表题与图题采用宋体五号字。
5.课程设计说明书装订顺序为:
封面、任务书、成绩评定表、目录、正文、参考文献。
四、设计完成后应提交成果的种类、数量、质量等方面的要求
(1)完成“任务书”中指定的功能,运行结果正确。
(2)课程设计说明书。
五、时间进度安排
顺序
阶段日期
计划完成内容
备注
1
第1天
进行设计准备,阅读资料,分析设计任务书,明确设计要求、内容和步骤
2
第2天
需求分析
3
第3天
概要设计,详细设计
4
第4天
编码、调试
5
第5天
程序答辩,撰写课程设计报告
六、主要参考资料(文献)
[1]王育坚.主编《VisualC++面向对象编程教程》(第二版).北京:
清华大学出版
[2]陈维兴,林小茶.《C++高级程序设计教程》.北京:
清华大学出版社
[3]谭浩强.《C++程序设计教程》.北京:
中国科学技术出版社
[4]王燕.《面向对象的理论与C++实践》.北京:
清华大学出版社
[5]马石安,魏文平.主编《VisualC++程序设计与应用教程》.北京:
清华大学出版社
[10]郑莉董渊张瑞丰编着.《C++语言程序设计》(第3版).北京:
清华大学出版社.2006
摘要
本次C++课程设计的题目是竞赛成绩管理,在系统的设计中,用到了类的继承,在存储设计上用到了链表存储。
竞赛成绩管理系统是完全根据用户需要自主输入所需要信息。
系统可以实现四个功能,分别是:
1、初始化设置:
可以初始化参赛学校总数,M-男子竞赛项目数、名称,W-女子竞赛项目数、名称;2、用户自定义:
每个项目名次、成绩取法由用户指定,由用户填写比赛结果,输入各项目获奖运动员的信息;3、成绩查询:
所有信息记录完毕后,用户可以查询各个学校的比赛成绩,查看参赛学校信息和比赛项目信息等;4、生成团体总分报表,查看每个学校的总分。
一周的C++课程设计学习中,先要学习C++课程的目的是掌握类的继承的方法,学习使用计算机语言编写程序,以实现所需要处理的任务。
要正确处理算法与语法的关系。
不应把学习重点放在语法规则上,语法是重要的,不掌握语法规则就无法编写出正确的程序。
一定要把重点放在解题的思路上和运用何种存储的方法,通过思考和大量的阅读,来构造一个完整的程序。
关键词类的继承,友元类,链表,数组,竞赛成绩管理
目录
摘要I
目录II
第一章绪论1
1.1绪论1
1.2课程设计的目的1
1.3设计内容和要求1
1.3.1设计内容1
1.3.2设计要求1
1.4系统分析2
1.5课程设计意义2
第二章原理与运行环境3
2.1c++语言概述3
2.1.1C++语言概述3
2.1.2C++语言的主要特点3
2.2基本操作3
第三章系统分析与设计9
3.1系统设计9
3.1.1系统总体框架9
3.1.2类的层次图9
3.1.3系统流程图10
3.2系统关键算法流程图11
第四章系统功能实现15
4.1菜单函数15
4.2初始化功能17
4.3各项目名次取法功能18
4.4输入各项目获奖运动员的信息功能20
4.5查询功能20
4.6生成团队报表功能21
4.7查看参赛学校信息功能22
4.8输出比赛信息功能23
结论25
致谢26
参考文献27
第一章绪论
1.1绪论
竞赛成绩管理系统是竞赛管理中的一个重要内容,随着时代的进步,竞赛类型、人员数量也不断增加、分工的不断细化,对竞赛管理的要求也不断提高。
早期的人工方式的管理系统已不适合现代竞赛成绩管理的发展,实现竞赛成绩管理的系统化、规范化、自动化,是竞赛管理管理的首选。
此次课程设计的目的是以《C++语言程序设计》为基础,针对具有一定难度的综合性题目,进行分析、编程、调试和运行,进一步掌握面向对象和面向过程程序设计的基本方法和编程技巧,巩固所学理论知识,使理论与实践相结合,提高分析问题、解决问题的能力。
通过设计一个简单的成绩管理系统,进一步熟悉C++中类的概念、类的封装、继承和多态的实现方式。
了解系统开发的需要分析,类层次设计,模块分析,编码测试,模块组装与整体调试的全过程,逐步熟悉程序设计的方法,并养成良好的编程习惯。
1.2课程设计的目的
(1)要求学生能够熟练掌握C++语言的基本知识和技能。
(2)基本掌握面向对象程序设计的基本思路和方法。
(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
1.3设计内容和要求
1.3.1设计内容
1.初始化设置:
N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数;各项目名次取法有如下几种:
取前5名:
第1名得分7,第2名得分5,第3名得分3,第4名得分2,第5名得分1;
取前3名:
第1名得分5,第2名得分3,第3名得分2;
2.用户自定义:
每个项目名次取法由用户指定。
3.由用户填写比赛结果,输入各项目获奖运动员的信息。
4.所有信息记录完毕后,用户可以查询各个学校的比赛成绩,生成团体总分报表,查看参赛学校信息和比赛项目信息等。
1.3.2设计要求
(1)要求利用面向对象的方法以及MFC框架来完成系统的设计;
(2)要求在设计的过程中建立清晰的类层次,并画出类图;
(3)设计功能满足要求、易于操作的友好界面;
(4)界面中需有菜单、工具栏、状态栏;
(5)在系统的设计中,至少要用到面向对象的一种机制:
继承、多态等;
(6)在完成该题目时,小组人员进行详细的任务分工,并要在报告中体现出来。
1.4系统分析
根据问题描述和要求,系统要求能够实现初始化设置:
初始化N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数;实现用户自定义:
每个项目名次取法由用户指定;由用户填写比赛结果,输入各项目获奖运动员的信息;所有信息记录完毕后,用户可以查询各个学校的比赛成绩,生成团体总分报表,查看参赛学校信息和比赛项目信息等。
本课设中,对不同的对象采取不同的储存结构,对比赛项目采取链表式结构,对于参赛运动员采取一个结构就可以了。
本程序中主要用到链表的一些基本操作,将比赛项目信息,运动员信息,赛事信息都构造成链表。
具体功能通过主函数分别调用各函数实现。
参考本课设功能要求,本程序分为六个模块:
主函数,全部学校信息类模块sportmen,各个学校信息类模块school,各运动项目类sport,初始化信息类compete,提示模块。
主函数模块主要通过for循环来控制菜单,并通过各种类定义其对象。
全部学校信息类模块包括:
publicinput输入学校信息(学校名称、编号)、display输出函数(运动员名字、运动员的学校编码、运动项目名称、得分)、private私有成员number、name[40]、num-school、sportname、num、score。
各个学校信息类模块包括:
publicinput输入各学校名称、display-1函数输出学校信息,编号及名称、display函数主要输出学校名字编号及分数、private私有成员name[40]、num-school、score。
运动项目类模块包括:
publicinput函数是各项目名次的取法函数(取前5名、前3名、自定义)、display是输出一个项目的所有信息函数(名字、编号、运动项目、得分)、input-sportmen是输出获奖运动员信息的函数,privateint*p;//运动名次得分Sportmen*head;//运动员数组地址Sport*next;//运动项目指针链表。
初始化信息类包括:
初始化N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数。
综合考虑系统具有下面5项功能模块:
查询个学校信息、生成团队报表、输出各参赛学校的信息、输出比赛项目信息、退出。
1.5课程设计意义
通过设计此系统,熟练掌握C++语言的基本知识和技能,基本掌握面向对象程序开发的基本思路和方法,培养学生的动手操作能力,提高自主学艺能力,能够利用所学的基本知识和技能,进行简单应用程序设计。
加深理解利用程序设计思想开发一个系统的整个流程,提高分析问题、解决问题和实际动手的能力。
第二章原理与运行环境
2.1c++语言概述
2.1.1C++语言概述
C++语言即保留了C语言的有效性、灵活性、便于移植等全部精华和特点,有添加了面向对象编程的支持,具有强大的编程功能,可方便地构造出模拟现实问题的实体和操作;编写出的程序具有结构清晰、易于扩充等优良特性,适合与各种应用软件、系统软件的程序设计。
用C++编写的程序可读性好,生成的代码质量高,运行效率仅比汇编语言慢10%~20%。
2.1.2C++语言的主要特点
C++语言是C语言的超集。
它即保持了C语言的简洁、高效和接近汇编语言等特点,又克服了C语言的缺点,其编译系统能检查更多的语法错误,因此,C++比C语言更安全。
C++保持了与C语言的兼容。
绝大多数C语言程序可以不经修改直接在C++环境中运行,用C语言编写的众多库函数可以用于C++程序中。
C++程序在可重用性、可扩充性、可维护性和可靠性等方面都较C语言得到了提高,使其更适合开发大中型的系统软件和应用程序。
C++设计成静态类型、和C同样高效且可移植的多用途程序设计语言。
2.2基本操作
(1)新建一个工程
首先鼠标左键单击“文件”菜单,选择“新建”单击鼠标左键,系统将弹出一个窗口,单击“工程”选项,将得到图2.1所示窗口。
请在“工程名称”栏填入工程名,然后鼠标左键单击左边窗口倒数第三项“Win32ConsoleApplication”,使该项变蓝,然后鼠标左键单击“确定”按钮。
得到图2.2所示窗口,选择“一个空工程”,单击“完成”得到图2.3。
再单击“确定”得到图2.4所示的窗口。
图2.4VisualC++6.0的工作环境
(2)新建一个源文件
要新建一个C程序源文件可以选择“文件”菜单的“新建”选项,在弹出的窗口中选择“文件”选项单击,得到如图2.5所示的窗口,其“位置”栏中的内容是默认的,在“添加到工程”前打勾,“工程名”也是默认的。
(3)编辑程序
编辑环境如图2.6所示。
把程序代码输入计算机,如图2.7所示。
图2.6编辑区域
图2.7编辑程序
(4)编译、连接、运行、调试一个程序
当源文件编辑完成后,就可以编译、连接和运行程序了。
方法如下:
1.单击“组建”菜单的“编译”选项,将完成编译工作得到***.cpp目标文件(文件名就是源文件的名字),编译结果将在窗口最下面的输出窗口显示。
可根据窗口的提示修改源文件以改正错误。
2.单击“组建”菜单的“组建”选项,完成连接工作得到可执行文件(文件名是工程名),连接的结果也将在窗口最下面的输出窗口显示。
3.单击“组建”菜单的“全部重建”选项,将完成编译和连接两项工作,编译和连接的结果将在输出窗口显示。
4.单击“组建”菜单的“执行”选项,可运行程序,程序运行的结果如图2.8所示。
图2.8程序运行结果
第三章系统分析与设计
3.1系统设计
3.1.1系统总体框架
使用面向对象的程序设计思想进行分析,整个系统涉及四大类信息和操作:
全部学校信息类sportmen、各个学校信息类school、各运动项目类sport、初始化信息类compete。
系统的总体框架就是显示主菜单,用户根据需要初始化N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数,各项目名次取法以及填写获奖运动员的信息等等。
进入管理子菜单,在子菜单中根据提示选择相应的功能。
3.1.2类的层次图
类的层次图如图3.1所示:
(1)classSportmen类的intnumber-运动项目编号,charname[40]-运动员名字,intnum_school-学校编码,charsport_name[80]-参加运动项目名称,intnum-名次,intscore-得分,voidinput(char*a,inti,ints)-输入学校信息,voiddisplay()-输出函数。
由于定义了友元类friendclassSport,Sport是Sportmen的友元类。
(2)classSchool各个学校信息类,包含本类对象特有的数据,intnum_school-学校编,charname[40]-学校名称,intscore-学校总得分,voiddisplay_1()-输出函数,voiddisplay()-输出函数,由于定义了友元类friendclassCompete-Compete为Sportmen的友员类。
(3)classSport各运动项目类包含类中的charname[40]-运动项目名称,intnum-运动项目的名次数,int*p-运动名次得分,Sportmen*head-运动员数组地址,Sport*next-运动项目指针链表,voidinput()-各项目名次,voiddisplay()-输出一个项目的所有的信息,voidinput_sportman()-输入获奖运动员的信息,intfind_sport(intj)-查找在一个项目中,学校的得分k,由于定义了友元类friendclassCompete是Sport的友元类。
(4)classCompete初始化信息类包括intN-学校个数,intM-男子竞赛项目数,intW-女子竞赛项目数,Sport*M_head-男子竞赛项目链表指针,Sport*W_head-女子竞赛项目链表指针,School*head-学校数组地址,voidinput()-初始化输入函数,voidchain_M()-男子竞赛项目填写,voidchain_W()-女子竞赛项目填写,voiddisplay(intj)-显示项目信息,j=0显示男子的项目信息,j=1显示女子的项目信息,voidinput_men()-输入所有的获奖的运动员信息,voiddisplay_sport()-显示所有的比赛运动员的项目信息,voidaccount()-计算各学校团体总分,voidfind_school()-并查询各学校的成绩,voiddiplay_school1()-输出团队总分报表,voiddisplay_school()-输出参赛学校信息。
图3.1类的层次图
3.1.3系统流程图
主函数首先调用菜单函数,显示菜单,菜单函数给出用户可选择的项目,用户可以通过选择该项前的代码来实现想要实现的功能。
菜单函数返回一个值给主函数,主函数根据返回值,调用相应函数。
主函数流程图如图3.2所示:
图3.2主函数流程图
3.2系统关键算法流程图
(1)初始化信息
添加输入学校总数以及名称、男子女子项目总数及名称、各项目名次的取法、输入男女子竞赛获奖信息,如图3.3所示:
图3.3初始化信息函数流程图
(2)查询各学校信息
在
(1)的基础上请输入你想查询的学校编码(1、2、3…),查询学校编号,若找到则显示该学校的信息,若找不到则提示未找到,如图3.4所示:
图3.4查询各学校信息流程图
(3)生成团队报表
运行程序在
(1)的基础上,选择菜单中的“2-生成团队报表”即可。
如图3.5所示:
图3.5生成团队报表流程图
(4)输出各参赛学校信息
运行程序在
(1)的基础上,选择菜单中的“3-输出各参赛学校信息”,即可显示参赛学校编号及其名称。
如图3.6所示:
图3.6输出各参赛学校信息流程图
(5)输出比赛项目信息
运行程序在
(1)的基础上,选择“4-输出比赛项目信息”即可显示出男女子所有比赛项目信息,包括:
运动项目名称,运动员名字,运动员所属学校编号,运动项目及其得分。
如图3.7所示:
图3.7输出比赛项目信息流程图
第四章系统功能实现
4.1菜单函数
菜单函数首先标出欢迎使用竞赛成绩管理系统,然后给出用户可选择的项目,用户可以通过选择该项前的代码来实现想要实现的功能。
程序源代码如下:
intmain()
{
Tishi();
stringk;
Competeq;
q.input();
q.a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 竞赛 成绩管理系统 报告