足球联赛积分管理系统.doc_第1页
足球联赛积分管理系统.doc_第2页
足球联赛积分管理系统.doc_第3页
足球联赛积分管理系统.doc_第4页
足球联赛积分管理系统.doc_第5页
免费预览已结束,剩余28页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实践教学实践教学 兰州理工大学兰州理工大学 计算机与通信学院 2010 年秋季学期 面向对象面向对象 课程设计课程设计 题 目 足球联赛积分管理系统 专业班级 计算机科学与技术二班 姓 名 杨 森 学 号 08240203 指导教师 王 燕 成 绩 2 目 录 序 言 3 摘要 4 第一章 问题描述 5 第二章 需求分析 6 2 1 需求陈述 6 2 1 1 开发语言 6 2 1 2 运行环境 6 2 2 建立对象模型 6 2 3 建立功能模型 6 第三章 概要设计 7 3 1 系统设计 7 3 1 1 系统分析 7 3 1 2 系统设计思想 8 3 2 系统类层次及结构图 9 第四章 详细设计 10 第五章 源代码 11 第六章 测试与维护 28 设计总结 30 参考文献 31 致 谢 32 3 序序 言言 近年来 在计算机软件业 面向对象程序设计的思想已经被越来越多的软件设计人员 所接受 不仅因为它是一种最先进的 新颖的计算机程序设计思想 最主要的是这种新的 思想更接近人的思维活动 人们利用这种思想进行程序设计时 可以很大程度地提高编程 能力 减少软件维护的开销 面向对象程序设计方法是通过增加软件的可扩充性和可重用 性来提高程序员的编程能力 随着计算机在我国广泛而深入的应用 在分析和开发计算机系统软件和应用软件的过 程中 迫切需要掌握各种数据结构的描述方法以及相应的处理算法 因此面向对象程序设 计知识是计算机相关科学的学生和从事计算机应用的技术人员必备的专业基础知识 著名 的瑞士计算机科学家沃思提出 对象 消息 程序 4 摘要摘要 本文详细介绍了足球联赛分数统计程序的设计与实现 该程序具有足球赛成绩的输入 统计与输出等功能 在课程设计中 程序设计语言采用 Visual C 程序运行平台为 Windows XP 对于获得名次的球队在存储其成绩的时候采用了链表的结构 有利于数据的存 储与查找 程序通过调试运行 实现了最初的设计目标 并且经过适当完善后 在实际中可 以解决更多的问题 关键词 足球联赛积分 程序设计 C 5 第一章第一章 问题描述问题描述 足球联赛采用主客场双循环赛制 胜一场得3分 平局各得1分 负一场得0分 联赛排 名以积分多者在前 当两队 或多队 积分相同时 则净胜球 即进球数与失球数之差 多 者在前 若净胜球相同 则进球数多者在前 若仍相同 则抽签或踢附加赛决定名次 这在 联赛结束后进行 联赛未结束则两队名次并列 本程序不做这方面要求 该设计要求学生 以足球联赛为背景 设计 开发一套 足球联赛积分管理系统 软件 通过该题目的设计 培养学生面向对象程序设计的思想 要求学生达到熟练掌握 C 语言的 基本知识和技能 基本掌握面向对象程序设计的基本思路和方法 能够利用所学的基本知识 和技能 解决简单的面向对象程序设计问题 同时强调好的程序设计风格 提高解决实际问 题的能力 6 第二章第二章 需求分析需求分析 2 1 需求陈述需求陈述 本课程设计主要解决在足球联赛上 将各个比赛所有球队成绩输入 成绩查询 以及成 绩输出 2 1 1 开发语言开发语言 本课程涉及主要采用了 C C 语言是在 C 语言的基础上发展起来的 不仅继承了 C 语言的所有特点 而且引入了面向对象的程序设计方法 1 C 改进了程序涉及思路 将编 程方式进化到面向对象进行程序设计这一新的思维过程 2 C 语言代表着对以往语言之精 华的发展和提炼 既支持面向对象的程序设计 也支持结构化的程序设计 它修补了 C 语 言中的一些漏洞 提供更好的类型检查和编译时的分析 提供了异常处理机制 简化了程序 的出错处理 利用 throw try 和 catch 关键字 提高了程序的可靠性和可读性 函数重载允 许相同的函数名具有不同参数表 系统根据参数的个数和类型匹配相应的函数 提供了模板 机制 模板包括类模板和函数模板两种 它们将数据类型作为参数 2 1 2 运行环境运行环境 Microsoft Visual C 6 0 Visual C 简称 VC 是 Microsoft 公司推出的目前使用极为 广泛的基于 Windows 平台的 C 可视化开发环境 可视 的资源编辑器与 MFC 类以及 应用程序向导 为快速高效地开发出功能强大的 Windows 应用程序提供了极大的方便 利 用 Visual C 6 0 进行 Internet 数据库及多媒体等多方面的程序开发也很容易 3 2 2 建立对象建立对象模型模型 将每次比赛所有获得的成绩输入 成绩查询 以及成绩输出封装为一个类 通过函数调 用将这些对象连接起来 2 3 建立功能模型建立功能模型 1 输入每个球队的净胜球 赢球数 输球数 平 胜 负 2 产生各个球队的名次 7 第三章第三章 概要设计概要设计 3 1 系统设计系统设计 3 1 1 系统分析系统分析 本程序用户只有足球 football 一个类 每一个球队都是这个类的对象 由于联赛中队伍数 目不知道 为了便于给程序留下空间 因此用容器进行实现 每次输入两个队伍的比赛成绩 则相应的队的有关数据 比赛场数 赢得场数 平的常数 负的常数 进球数 失球数 积 分 即可进行修改 比赛成绩录入完成 调用 sout 函数直接对积分进行从小到大的排序 从而得出名次 考虑到在程序中必须对每一个队伍各个数据进行记忆 必须使得每一个都有返回值 其 中有一个成员函数是返回成员数据的 这样就可以进行对队伍的数据自身进行操作 队伍中 各个数据都是一个结构体 这个结构体中包含队伍的进球数 失球数 赢得场数 输的场数 平的场数 排名和积分 2 实现注释 各项要求的实现程度 在完成基本要求的基础上还实现了什么功 能 足球类可以对对信息进行初始化 包括进球数 失球数 赢得场数 输的场数 平的场数积分都初始化为零 当你进入 DOS 界面时就会让你输入用户名和密码方可 进入 此操作只能进行三次 若还失败则登录失败 自动退出 如果成功进入欢迎界 面以后你可以选择显示排名 此时可以查阅 8 排名 也可以输入比赛结果 输入后则就可以进行排名 显示出积分和排名 3 1 2 系统设计思想系统设计思想 面向对象程序设计方法是通过增加软件的可扩充性和可重用性来提高程序员的编程能 力的 面向对象程序的基本元素是对象面向对象的主要结构特点是 第一 程序一般由类的 定义和类的使用两部分组成 在主程序中定义各对象并规定它们之间传递消息的规律 第二 程序间的一切操作都是通过向对象发送消息来实现的 对象接收到消息后 启动有关方法完 成相应的操作 第三 类由继承关系产生相互间的联系 一个程序中涉及到的类 可以由程 序设计者自己定义 也可以使用现成的类 尽量使用现成的类 是面向对象程序设计范型所 倡导的程序设计风格 9 3 2 系统类层次及结构图系统类层次及结构图 10 第四章第四章 详细设计详细设计 class football private int courseNo 队伍编号 string name 队伍名字 int credit 积分 int wNume 赢 int sNume 输的 int pNume 平 int jNume 进球数 int dNume 失球数 public football courseNo 0 name credit 0 wNume 0 sNume 0 pNume 0 11 jNume 0 dNume 0 第五章第五章 源代码源代码 系统以菜单方式工作 设积分表结构如下 队名 不超过 15 个字符 已比赛的场数 赢的场数 平的场数 负 的场数 进球数 失球数 积分 积分表放在正文文件中 最近一轮的结果从键盘输入 其形式为 主队名 可用代码 客队名 可用代码 主队 得分 即进球数 客队得分 即进球数 球队信息浏览功能和查询功能 程序应根据此轮结果修改各队的积分和名次 所得的最新记分表仍在原积分文件中并同时 在屏幕上显示 运行该程序先要在 d 盘建立 f txt 文件 Football cpp include include using namespace std class football private int courseNo 队伍编号 string name 队伍名字 int credit 积分 int wNume 赢 int sNume 输的 int pNume 平 int jNume 进球数 int dNume 失球数 public football 12 courseNo 0 name credit 0 wNume 0 sNume 0 pNume 0 jNume 0 dNume 0 构造函数 football int c string n int cre int w int s int p int j int d courseNo c credit cre name n wNume w sNume s pNume p jNume j dNume d void setCourseNo int courseNo this courseNo courseNo void setName string name this name name void setCredit int credit 13 this credit credit void setjNume int j jNume j void setdNume int d dNume d int getCourseNo return courseNo string getName return name int getCredit return credit int getDNume return dNume int getJNume 14 return jNume void setWNume int w wNume w int getWNume return wNume void setSNume int s sNume s int getSNume return sNume void setPNume int p pNume p int getPNume return pNume void setResult int n1 int n2 15 jNume n1 dNume n2 if n1 n2 credit 3 wNume else if n1 n2 credit pNume else sNume 1 bool operator football if credit f getCredit if jNume dNume f getJNume f getDNume return true else if jNume f getJNume return true return false 16 bool operatorcredit f getCredit return true if credit f getCredit if jNume dNume f getJNume f getDNume return true else if jNume f getJNume return true return false 足球 cpp include include include include include include include include include include football cpp using namespace std istream 用铃声提示用户输入密码 17 cout 密 码 return stream istream 用铃声提示用户输入用户名 cout 0 for int p 14 p 0 p system cls for int q p q 14 q cout string q endl Sleep m else system cls for int p 0 p 14 p cout string p endl 18 cout 请注意 排名是由低向高排名的 endl cout 请输入您的选择 endl int login system color 4B int k 0 K 是允许输入密码和名字的次数 char ID 10 设置用户名长度 char password 10 设置密码长度 do for int j 0 j 6 j j 是调节截面在 DOS 下的位置 cout 12 12 是开机的笑脸画面 cout 2 2 2 2 2 2 2 2 2 2 2 endl cout 12 cout 登录界面 endl cout getID ID cout getpassword password k if k 3 当 K 3 时登陆结束 break cout 12 if k 2 当 K 2 时提醒用户需要慎重 cout 最后一次输入 请慎重 endl 19 cout 2 2 2 2 2 2 2 2 2 2 2 endl if k 2 cout 2 2 2 2 2 2 2 2 2 2 2 endl Sleep 1000 大循环演示登陆情况 system cls while strcmp ID 08240224 strcmp password 08240224 成功登陆 if k 3 K 3 时登陆失败 system cls for int j 0 j 10 j cout 12 cout 验 证 失 败 系 统 结 束 endl return 0 else for int j 0 j 10 j cout 12 cout 请等待 endl cout 验证通过 系统登录中 for k 0 k 6 k Sleep 1000 用大循环使时间延迟 cout 用输入 20 return 1 system cls int input int choice system color 3A ifstream is d f txt ios base in if is good cout 您所存档的文档不存在 请建立 endl return 1 将文件中的内容保存在 fbList 数组中 vector fbList while is good int num 0 string name int credit int wNume int sNume int pNume int jNume int dNume is num name credit wNume sNume pNume jNume dNume if num 0 21 fbList push back football num name credit wNume sNume pNume jNume dNume is close 排序 sort fbList begin fbList end 输出它们的信息 cout setw 16 名字 setw 6 积分 setw 5 赢 setw 5 输 setw 5 平 setw 5 进球 setw 5 失球 endl endl endl for int i 0 i fbList size i football f fbList at i cout setw 16 f getName setw 6 f getCredit setw 5 f getWNume setw 5 f getSNume setw 5 f getPNume setw 5 f getJNume setw 5 f getDNume endl endl endl cout choice 22 return 0 int credit vector fbList ifstream is d f txt ios base in if is good cout 文件不存在 num name credit wNume sNume pNume jNume dNume if num 0 fbList push back football num name credit wNume sNume pNume jNume dNume 23 is close 输出它们的信息 cout setw 18 名字 setw 6 积分 setw 6 赢 setw 6 输 setw 6 平 setw 6 进球 setw 6 失球 endl endl for int i 0 i fbList size i football f fbList at i cout setw 18 f getName setw 6 f getCredit setw 6 f getWNume setw 6 f getSNume setw 6 f getPNume setw 6 f getJNume setw 6 f getDNume endl endl char d y while d y string name1 name2 int jNume1 jNume2 cout 欢迎使用足球积分系统 endl cout 请输入最近一轮比赛的结果 endl cout name1 cout name2 cout jNume1 cout jNume2 if fbList size 0 football f f setCourseNo fbList size 1 f setName name1 f setResult jNume1 jNume2 fbList push back f football f2 f2 setCourseNo fbList size 1 f2 setName name2 f2 setResult jNume2 jNume1 fbList push back f2 cout 暂且没有排名 请您选择 2 输入比赛结果 endl 积分结果 else for int i 0 i fbList size i if fbList at i getName name1 fbList at i setResult jNume1 jNume2 break else if i fbList size 1 25 football f f setCourseNo fbList size 1 f setName name1 f setResult jNume1 jNume2 fbList push back f break for i 0 i fbList size i if fbList at i getName name2 fbList at i setResult jNume2 jNume1 break else if i fbList size 1 football f f setCourseNo fbList size 1 f setName name2 f setResult jNume2 jNume1 fbList push back f break sort fbList begin fbList end cout 现在的排名是 endl cout setw 18 名字 setw 6 积分 26 setw 6 赢 setw 6 输 setw 6 平 setw 6 进球 setw 6 失球 endl ofstream os d f txt ios base out for i 0 i fbList size i football f fbList at i cout setw 18 f getName setw 6 f getCredit setw 6 f getWNume setw 6 f getSNume setw 6 f getPNume setw 6 f getJNume setw 6 f getDNume endl os setw 6 f getCourseNo setw 18 f getName setw 6 f getCredit setw 6 f getWNume setw 6 f getSNume setw 6 f getPNume setw 6 f getJNume setw 6 f getDNume endl endl endl is close cout d 27 int main password if login 0 return 0 else system cls for system cls menu int choice 选择采单 cin choice switch choice

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论