已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实践教学实践教学 兰州理工大学兰州理工大学 计算机与通信学院 2008 年秋季学期 面向对象课程设计面向对象课程设计 题 目 运动会分数统计系统 专业班级 信息与计算科学一班 姓 名 学 号 指导教师 成 绩 1 2 序序 言言 近年来 在计算机软件业 面向对象程序设计的思想已经被越来越多的软件设 计人员所接受 不仅因为它是一种最先进的 新颖的计算机程序设计思想 最主要 的是这种新的思想更接近人的思维活动 人们利用这种思想进行程序设计时 可以 很大程度地提高编程能力 减少软件维护的开销 面向对象程序设计方法是通过增 加软件的可扩充性和可重用性来提高程序员的编程能力 随着计算机在我国广泛而深入的应用 在分析和开发计算机系统软件和应用软 件的过程中 迫切需要掌握各种数据结构的描述方法以及相应的处理算法 因此面 向对象程序设计知识是计算机相关科学的学生和从事计算机应用的技术人员必备的 专业基础知识 著名的瑞士计算机科学家沃思提出 对象 消息 程序 3 目 录 序 言 摘 要 第一章 问题描述 第二章 需求分析 2 1 需求陈述 2 2 建立对象模型 2 3 建立功能模型 第三章 概要设计 3 1 系统设计 3 1 1 系统分析 3 1 2 系统设计思想 3 2 系统类层次及结构图 第四章 详细设计 4 1 类与对象的设计 4 1 1 类属性的详细设计 4 1 2 类行为的详细设计 4 2 类的详细继承关系 第五章 编码 第六章 测试与维护 设计总结设计总结 参考文献 致 谢 4 摘摘 要要 本文详细介绍了运动会分数统计程序的设计与实现 该程序具有运动会成绩的输 入 统计与输出等功能 在课程设计中 程序设计语言采用 Visual C 程序运行平 台为 Windows XP 对于获得名次的同学在存储其成绩的时候采用了链表的结构 有利 于数据的存储与查找 程序通过调试运行 实现了最初的设计目标 并且经过适当完 善后 在实际中可以解决更多的问题 关键词 运动会分数统计 面向对象 C 5 第一章第一章 问题描述问题描述 本课程设计主要解决在运动会上 将各个比赛项目所有获得名次的同学的成绩输入 成绩查 询 成绩修改 成绩删除 以及成绩输出 该程序用于运动会上 涉及到比赛项目成绩的录入 某个学校在某个项目中获得成绩的查询 某个学校在某个运动项目中获得的成绩的修改 某个学 校在某个运动项目中获得的成绩的删除 以及某个学校所有获得成绩的得分报表以及团体成绩的 得分报表 其中比赛成绩的录入可以按照运动项目举行的次序输入 也可以输入自己指定的运动 项目的成绩 自己扩展的功能是 某个学校在某个项目中获得成绩的查询 某个学校在某个运动 项目中获得的成绩的修改 某个学校在某个运动项目中获得的成绩的删除 三项 这三项都要求 输入学校以及运动项目编号 通过这两项作为参数具体的函数可以查询 修改成绩或者是删除某 项成绩记录 进而影响到最后得分报表的输出 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 输入男女参赛项目数及项目编号 项目名次 得分 参赛学校 运动员编号 性 别 7 2 产生各学校的成绩单 内容包括各校所取得的每项成绩的项目号 名次 姓名 3 产生团体总分报表 内容包括校号 男子团体总分 女子团体总分和团 体总分 8 第三章第三章 概要设计概要设计 3 1 系统设计系统设计 3 1 1 系统分析系统分析 该程序先采用了一个 spotmeeting 类成员 void menu 中的 switch 语句来控制要 执行操作的编号 用户可以有多种选择 根据不同的需要选择不同的操作 其中具体的操作主要采用的是一个链表的结构 涉及到了链表的插入 链表的查 找 以及链表的删除等知识点 链表的插入解决了各个项目中获得名次的同学的成绩 的录入问题 链表的查找解决了运动项目成绩的查询 以及后面的成绩的输出 删除 都要用到链表的查找 查找时先将头结点的地址赋给查找函数 根据查找的条件依次 与每个结点中相应的比较 若相等则输出所需要的信息 否则返回 查找的元素不存 在 信息 而成绩的删除 先查找到其所在的结点 然后将该结点前后结点相连 再 删除该结点 成绩的修改要先查找到其所在的结点 然后再重新录入数据 至于学校 所获得的各项成绩的输出 将该校所在的头结点的地址赋给控制输出的函数 利用指 针的移动依次将各项成绩输出 而团体成绩的输出 先要根据运动项目编号来确定是 男生还是女生项目 然后再依次累加 分别得到男女生的团体得分 最后将两者相加 得到学校的团体得分 系统功能要求如下 1 输入男 女参赛项目数 及项目编号 项目名次 得分 参赛学校编号 运动员编号 性别 2 产生各学校的成绩单 内容包括各校所取得的每项成绩的项目号 名次 成绩 姓名 3 产生团体总分报表 内容包括校号 男子团体总分 女子团体总分和团体总分 4 要求系统能实现查询 排序 删除 修改功能 3 1 2 系统设计思想系统设计思想 面向对象程序设计方法是通过增加软件的可扩充性和可重用性来提高程序员的编 程能力的 面向对象程序的基本元素是对象面向对象的主要结构特点是 第一 程序 一般由类的定义和类的使用两部分组成 在主程序中定义各对象并规定它们之间传递 消息的规律 第二 程序间的一切操作都是通过向对象发送消息来实现的 对象接收 9 到消息后 启动有关方法完成相应的操作 第三 类由继承关系产生相互间的联系 一个程序中涉及到的类 可以由程序设计者自己定义 也可以使用现成的类 尽量使 用现成的类 是面向对象程序设计范型所倡导的程序设计风格 3 2 系统类层次及结构图系统类层次及结构图 图 3 1 系统流程图 用一个 do while 循环语句执行完标号为 1 6 的某个分支之后 重新回到操作目录 1 2 3 45 60 输入运动会的一些基本信息 参赛学校数 男女的项目数 开始 列出一个操作目录 选 择要操作的编号 成 绩 输 入 具成 体绩 项 查 目 询 查 询 修 成 改 绩 项 目 删 记 除 录 错 误 的 输 的 出 名 各 次 个 记 项 录 目 输 体 出 成 学 绩 校 团 退 出 程 序 列出一个操作目录 选择要操作的编号 结束 10 选择要进行的操作 直到选择标号为 7 的分支退出程序 sportmeeting 类 studentlist类 Student 图 3 2 类的继承图 11 第四章第四章 详细设计详细设计 4 1 类与对象的设计类与对象的设计 该程序先采用了一个嵌套在 do while 循环语句中的 switch 语句来控制要执行操 作的编号 用户可以有多种选择 根据不同的需要选择不同的操作 其中具体的操作主要采用的是一个链表的结构 涉及到了链表的插入 链表的查 找 以及链表的删除等知识点 链表的插入解决了各个项目中获得名次的同学的成绩 的录入问题 具体为 为每个学校建立一个头结点 若该学校有同学取得名次 建立 一个新的结点来存储该同学的信息 并将其插到该学校所在链表的最后一个结点后面 链表的查找解决了运动项目成绩的查询 以及后面的成绩的输出 删除都要用到链表 的查找 查找时先将头结点的地址赋给查找函数 根据查找的条件依次与每个结点中 相应的比较 若相等则输出所需要的信息 否则返回 查找的元素不存在 信息 而 成绩的删除 先查找到其所在的结点 然后将该结点前后结点相连 再删除该结点 成绩的修改要先查找到其所在的结点 然后再重新录入数据 至于学校所获得的各项 成绩的输出 将该校所在的头结点的地址赋给控制输出的函数 利用指针的移动依次 将各项成绩输出 而团体成绩的输出 先要根据运动项目编号来确定是男生还是女生 项目 然后再依次累加 分别得到男女生的团体得分 最后将两者相加 得到学校的 团体得分 4 1 1 类属性的详细设计类属性的详细设计 类的属性包括静态属性和动态属性 该程序用于运动会上 其中类的静态属性包 括 运动项目的编号 参加比赛的学校总数 涉及到的动态属性包括 比赛项目成绩 的录入 某个学校在某个项目中获得成绩的查询 某个学校在某个运动项目中获得的 成绩的修改 某个学校在某个运动项目中获得的成绩的删除 以及某个学校所有获得 成绩的得分报表以及团体成绩的得分报表 其中比赛成绩的录入可以按照运动项目举 行的次序输入 也可以输入自己指定的运动项目的成绩 自己扩展的功能是 某个学 校在某个项目中获得成绩的查询 某个学校在某个运动项目中获得的成绩的修改 某 个学校在某个运动项目中获得的成绩的删除 三项 这三项都要求输入学校以及运动 12 项目编号 通过这两项作为参数具体的函数可以查询 修改成绩或者是删除某项成绩 记录 进而影响到最后得分报表的输出 4 1 2 类行为的详细设计类行为的详细设计 class sportmeeting 类 void sportmeeting menu 该函数进入系统界面 void sportmeeting insert 该函数用来添加成绩记录 void sportmeeting del 该函数用来删除成绩记录 void sportmeeting find 该函数用来查找成绩记录 void sportmeeting mod 该函数用来修改成绩记录 void sportmeeting printall 输出团体成绩 void sportmeeting printone 输出各学校成绩 class studentlist 类 void print sportmeeting 类 find 该函数成员用来实际的执行函数 void add int it char c sportmeeting 类中添加 insert 函数用来执行 void mod int it char c portmeeting 类修改成员函数 mod 的调用 student list 3 用来存放前三名的成绩 13 4 2 类的详细继承关系类的详细继承关系 sportmeeting 类 studentlist类 Student 图 4 2 1 类的继承图 14 第五章第五章 编码编码 1 要求利用面向对象的方法以及 C 的编程思想来完成系统的设计 2 要求在设计的过程中 建立清晰的类层次 3 在系统设计中要分析和定义各个类 每个类中要有各自的属性和方法 4 在系统的设计中 要求运用面向对象的机制 继承 派生及多态性 来 实现系 统功能 5 在基本要求达到后 可进行创新设计 如根据查找结果进行修改的功能 及设计 出比较友好的界面等 6 系统功能要求如下 1 输入男 女参赛项目数及项目编号 项目名次 得分 参赛学校编号 运动员编号 性别 2 产生各学校的成绩单 内容包括各校所取得的每项成绩的项目号 名次 成 绩 姓名 3 产生团体总分报表 内容包括校号 男子团体总分 女子团体总分和团 体总分 4 要求系统能实现查询 排序 删除 修改功能 include include include using namespace std class student public student int ps 0 int sc 0 int cID 0 int sID 0 char c 0 string nm void print int pos 排名 int score 成绩 int schID 学校 ID int stuID 学生 ID char sex 性别 15 string name 学生姓名 student student int ps int sc int cID int sID char c string nm name nm pos ps score sc schID cID stuID sID sex c void student print cout pos score schID stuID sex name endl class studentlist public studentlist studentlist void print void add int it char c void mod int it char c student list 3 studentlist studentlist studentlist studentlist void studentlist mod int it char c 16 cout 这是你将要修改的信息 n print cout 你输入 n add it c void studentlist add int it char c int i cout 分别输入 1 2 3 的信息 n for i 0 i 3 i cout list i score list i schID list i stuID list i name list i pos i 1 list i sex c void studentlist print cout 分别输出 1 2 3 名次的信息 n cout 成绩 学校 ID 学生 ID 学生性别 学生姓名 n int i for i 0 i 3 i cout list i score list i schID list i stuID list i sex list i name endl 17 class school public school int sumscore vector mv 3 int mscore vector wv 3 int wscore school school sumscore 0 mscore 0 wscore 0 class sportmeeting public sportmeeting int n int m int w sportmeeting void menu void insert void find void mod void printone int n void printall void del void check private const int n 18 const int m const int w studentlist mlist bool mflags bool wflags studentlist wlist school arr bool flag sportmeeting sportmeeting int n int m int w n n m m w w flag false int i mlist new studentlist m wlist new studentlist w arr new school n mflags new bool m for i 0 i m i mflags i false wflags new bool w for i 0 i w i wflags i false 19 sportmeeting sportmeeting delete mflags delete wflags delete mlist delete wlist delete arr void sportmeeting menu int ch 7 int z 用一个循环和 switch 语句控制要执行的操作 do cout 运动会成绩管理系统 endl cout t t 1 输入某个项目的成绩 endl cout endl cout t t 2 查询某个学校参加某个项目的成绩 endl cout endl cout t t 3 修改某个项目的成绩 endl cout endl cout t t 4 删除某个错误的记录 endl cout endl cout t t 5 输出某个学校的成绩单及得分报表 endl cout endl cout t t 6 输出学校的团体得分报表 endl cout endl cout t t 7 退出该程序 endl ch 20 switch ch case 1 insert break case 2 find break case 3 mod break case 4 del break case 5 cout z printone z break case 6 printall break default break while ch 7 void sportmeeting insert int it cout it cout c if c w 21 wlist it add it c wflags it true else mlist it add it c mflags it true void sportmeeting del int it cout it char c cout c if c w wflags it false else mflags it false void sportmeeting find int it 22 cout it char c cout c if c w if wflags it wlist it print else cout 没有该信息 n else if mflags it mlist it print else cout 没有该信息 n void sportmeeting mod int it cout it 23 char c cout c if c w if wflags it wlist it mod it c else cout 没有该信息 n else if mflags it mlist it mod it c cout 没有该信息 n void sportmeeting check int i j int n for i 0 i m i if mflags i 24 for j 0 j 3 j n mlist i list i schID arr n 1 mv j push back i 1 arr n 1 sumscore j 1 arr n 1 mscore j 1 for i 0 i m i if wflags i for j 0 j 3 j n wlist i list i schID arr n 1 wv j push back i 1 arr n 1 sumscore j 1 arr n 1 wscore j 1 void sportmeeting printall if flag check flag true int i 25 cout 学校 ID 学校总分 男子总分 女子总分 n for i 0 i n i cout i 1 arr n sumscore arr n mscore arr n wscore endl void sportmeeting printone int n if flag check flag true int i j k f cout 男子部分 n for i 0 i 3 i cout 下面是第 i 1 名 n k arr n 1 mv i size for j 0 j k j f arr n 1 mv i at j mlist f 1 list i print cout 女子部分 n for i 0 i 3 i cout 下面是第 i 1 名 n k arr n 1 wv i size 26 for j 0 j k j f arr n 1 wv i at j wlist f 1 list i print cout 总分是 arr n sumscore endl int main int n m w cout n cout m cout w sportmeeting sport n m w sport menu return 0 27 第六章第六章 测试与维护测试与维护 运行界面运行界面 一 进入系统 图 6 1 进入系统的界面 二 设置运动项目和男子与女子项目总数 图 6 2 设置运动项目与项目总数的界面 28 三 添加 图 6 3 添加项目的界面 四 查询 图 6 4 查询项目的界面 29 五 删除 图 6 5 删除项目的界面 六 退出 图 6 6 退出的界面 30 设计总结设计总结 本次课程设计 使我对数据结构线性表 栈的设计方法 步骤 思路 有一定的 了解与认识 它相当于实际设计工作的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 西式烹调师操作管理强化考核试卷含答案
- 2024年自考汉语言文学(专科)《现代汉语语法》真题及答案
- 2025年大学二年级行星地质工程专业《行星地质勘探》期末考试测验卷及答案
- 外勤机械工安全专项水平考核试卷含答案
- 钼铁冶炼工岗前规划考核试卷含答案
- 飞机试飞设备安装调试工岗位设备安全技术规程
- 速录师岗前安全文明考核试卷含答案
- 耐火窑炉烧成工岗前安全生产意识考核试卷含答案
- 公司火柴制造工岗位工艺技术规程
- 粉末冶金成型工保密强化考核试卷含答案
- 小儿推拿基础篇课件
- 医院药房盘点工作
- 汽修镗缸加工承包合同协议书
- 数字媒体技术专业个人就业能力展示
- 对数运算性质说课课件
- 医保基金预警管理办法
- DB11∕T 512-2024 建筑装饰工程石材应用技术规程
- 妇科危重患者的病情观察及护理
- 拔牙术后感染处理
- 麻醉后反流误吸临床防治
- CJ/T 125-2014燃气用钢骨架聚乙烯塑料复合管及管件
评论
0/150
提交评论