




免费预览已结束,剩余21页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软软件件 课课程程设设计计报报告告 学生姓名 王晓楠学生姓名 王晓楠 学院专业 电子信息工程学院专业 电子信息工程 班级学号 班级学号 84020102 班班 2008040201052 指导教师 李智慧指导教师 李智慧 训练时间 训练时间 2010 年年 7 月月 12 日至日至 2010 年年 7 月月 24 日日 软软 件件 设设 计计 任任 务务 问题描述问题描述 参加运动会的 n 个学校编号为 l n 比赛分成 m 个男子项目和 w 个女子 项目 项目编号分别为 l m 和 m 1 m w 由于各项目参加人数差别较大 有些项目取前五名 得分顺序为 7 5 3 2 1 还有些项目只取前三名 得 分顺序为 5 3 2 写一个统计程序产生各种成绩单和得分报表 基本要求基本要求 1 产生各学校的成绩单 内容包括各校所取得的每项成绩的项目号 名次 姓名和得分 2 产生团体总分报表 内容包括校号 男子团体总分 女子 团体总分和团体总分 实现提示实现提示 可以假设 n 20 m 30 w 20 姓名长度不超过 20 个字符 每个项目 结束时 将其编号 类型符 区分取前五名还是前三名 输入 并按名次 顺序输入运动员姓名 校名和得分 一一 题目分析题目分析 这次课程设计题目是运动会的分数统计系统 它要求参加运动会的 n 个学校编 号为 1 n 比赛分成 m 个男子项目和 w 个女子项目 项目编号为 1 m 和 m 1 m w 由于各项目参加人数差别较大 有些项目取前五名 得分顺序为 7 5 3 2 1 还有些项目只取前三名 得分顺序为 5 3 2 需要产生各学校的 成绩单和团体总分报表 为了实现这个程序 调用了多个子函数 save 函数实现对数据的存储 getchar 函数是从 stdin 流中读取字符 system 函数是向系统发出一个 DOS 命令程序中用到 的 system pause 其功能是运行的时候就可以出现 请按任意键继续 由 于在这个从程序中的下一条命令是返回主菜单界面若不加一条命令得话 就会使显 示的结果一闪而到主菜单界面就会看不清楚 程序中用到的 system cls 其 功能是清屏 malloc 函数的功能是内存分配如 g1 ALLitems malloc sizeof ALLitems g2 ALLNode malloc sizeof ALLNode 就是给 g1 和 g2 指针分配内存地址空间大小 函数 fclose 的功能是关闭数据流 如程序中用到的 fclose fp2 就是将 fp2 文件的数据流关闭 用在本程序的 save 函 数中 当执行 funct1 输入信息保存后关闭当前信息流 程序中自定义的 funct1 8 的功能分别是 funct1 输入各个项目成绩并存储文件 funct2 统计各学校总分 funct3 按学校编号排序输出 funct4 按学校总分排序输出 funct5 按男团体总分排序输出 funct6 按女团体总分排序输出 funct7 按学校编号查询学校某个项目情况 funct8 按项目编号查询取得名次的学校 funct0 退出 最后是主函数 main 它是所有程序运行的入口 目录目录 1 1 需需求求分分析析 4 功能要求 4 性能需求 4 2 2 概概要要设设计计 4 1 存储结构设计 4 2 流程图设计 6 3 3 详详细细设设计计 10 4 菜菜单单窗窗口口 19 1 主菜单窗口 19 2 输入各个项目成绩并存储文件 19 3 统计各学校总分 22 4 按学校编号排序输出 23 5 按学校总分排序输出 23 6 按男团体总分排序输出 24 7 按女团体总分排序输出 24 8 按学校编号查询学校某个项目情况 25 9 按项目编号查询取得名次的学校 25 10 退出 25 5 5 课课程程设设计计总总结结与与体体会会 26 6 6 致致谢谢 26 1 1 需求分析 需求分析 任务 参加运动会有 n 个学校 学校编号为 1 n 比赛分成 m 个男子项目 和 w 个女 子项目 项目编号为男子 1 m 女子 m 1 m w 不同的项目取前五名或前三 名积分 取前五名的积分分别为 7 5 3 2 1 前三名的积分分别为 5 3 2 哪些取前五名或前三名由学生自己设定 m 20 n 20 功能要求 功能要求 1 可以输入各个项目的前三名或前五名的成绩 2 能统计各学校总分 3 可以按学校编号 学校总分 男女团体总分排序输出 4 可以按学校编号查询学校某个项目的情况 可以按项目编号查询取得前三或前五 名的学校 规定 输入数据形式和范围 20 以内的整数 如果做得更好可以输入学校的名称 运动项目的名称 性能需求 性能需求 输出形式 有中文提示 各学校分数为整形 界面要求 有合理的提示 每个功能可以设立菜单 根据提示 可以完成相关的功 能要求 存储结构 学生自己根据系统功能要求自己设计 但是要求运动会的相关数据要存 储在数据文件中 2 2 概要设计 概要设计 1 存储结构设计 存储结构设计 主菜单 123456780 输入各个 项目成绩 并存储文 件 统计各 学校总 分 按学校编 号排序输 出 按学校总 分排序输 出 按男团体 总分排序 输出 按女团体 总分排序 输出 按学校编 号查询学 校某个项 目情况 按项目编 号查询取 得名次的 学校 退出 2 统计各学校的总分 显示 各学校的总分退出 按 enter 键 3 按学校编号排序输出 1 输入各个项目成绩并存储文件 输 入 男 子 项 目 总 数 m 输 入 女 子 项 目 总 数 w 输 入 参 加 运 动 会 的 学 校 总 数 n 男子项目女子项目输 入 项 目 0 返 回 主 菜 单 界 面 输入项目编号 如 1 输入项目编号 如 m 输入项目编 号 如 m 1 输入项目编号 如 m n 选择 运动 会项 目 1 前三 名 2 前五 名 输入 第五 名 或 第三 名 学校 编 号为 输入 第一 名学 校 编 号为 选择 运动 会项 目 m 前三 名 2 前五 名 输入 第五 名 或 第三 名 学校 编 号为 输入 第一 名学 校 编 号为 选择 运动 会项 目 m 1 前三 名 2 前五 名 输入 第五 名 或 第三 名 学校 编 号为 输入 第一 名学 校 编 号为 选择 运动 会项 目 m 1 前三 名 2 前五 名 输入 第五 名 或 第三 名 学校 编 号为 输入 第一 名学 校 编 号为 输入学校编号退出 返回菜单主界面 按 enter 显示按学校排序输 出结果 返回到主界面 4 按学校总分排序输出 输入学校编号退出 返回菜单主界面 按 enter 显示按学校总分排 序结果 返回到主界面 5 按男团体总分排序输出 输入学校编号退出 返回菜单主界面 按 enter 显示按学校编号排 序结果 返回到主界面 6 按女团体总分排序输出 输入学校编号退出 返回菜单主界面 按 enter 显示按女团体总分 排序结果 返回到主界面 7 按学校编号查询学校某个项目情况 输入要查询 的学校编号 输入要查询 的项目编号 退出 返回菜单主界面 按 enter 显示要查询学校的某个项 目的获奖情况 返回到主界面 8 按项目编号查询取得名次的学校 前三名或前五名 输入要查询的项目 编号 退出 返回菜单主界面 按 enter 显示某个项目编号 的学校名次 前三 或前五 返回到主界面 0 退出 按任意键可以推出 2 流程图设计 流程图设计 Main 函数流程图 开始 int t g2 g1 exit 1 system cls 选择操作编号 123456789 School p1 和和 Items p2 p1 p2 exit 1 Y Printf w20 N YYY Printf 输入有误输入有误 Printf 输入有误输入有误 Printf 输入有误输入有误 NNN Y 请选择请选择 1 前三名前三名 2 前五名前五名 1 kn printf d t t t k g2 b k score k Printf n 结束 开始 int i 2 j k in printf d t k system pause 结束 Y N multiplex i k 1 kn printf d t t d n g2 b k school g2 b k score k N Y 开始 int i 2 j k in printf d t k system pause 结束 Y N multiplex i k 1 kn printf d t t d n g2 b k school g2 b k score k N Y Save 函数流程图 Funct2 函数流程图 funct3 函数流程图 funct4 函数流程图 开始 int i 2 j k in printf d t k system pause 结束 Y N multiplex i k 1 kn printf d t t d n g2 b k school g2 b k boys k N Y 开始 int i 2 j k in printf d t k system pause 结束 Y N multiplex i k 1 kn printf d t t d n g2 b k school g2 b k girls k N Y 开始 int i 2 j k P2 NULL 结束 Y N P2item p2 record p2 p2 next printf n Y N 开始 int i P2 NULL 结束 N printf n printf 学校 d 得 d 分 p1 school p1 record Y Funct5 函数流程图 Funct6 函数流程图 funct7 函数流程图 funct8 函数流程图 3 3 详细设计 详细设计 include include include include include 屏幕操作函数 define MAX 50 define NULL 0 typedef struct node1 int school 学校编号 int record 项目成绩 struct node1 next 链域 Schools typedef struct int item 项目编号 Schools firstschool 链域指向链表中第一个结点 ITEM typedef struct int z 项目总数 ITEM a MAX ALLitems typedef struct node2 int item 该学校获奖的项目 int record 项目成绩 struct node2 next 链域 Items typedef struct int school 学校编号 int score 学校总分 int boys 男团体总分 int girls 女团体总分 Items firstitem 链域指向链表中第一个获奖项目的结点 SCHNode typedef struct int n 学校总数 SCHNode b MAX ALLNode ALLitems g1 ALLNode g2 void funct1 ALLitems g1 ALLNode g2 输入各个项目成绩 Schools p1 Items p2 int i j k m w h x p1 Schools malloc sizeof Schools 添加的 p2 Items malloc sizeof Items if p1 p2 exit 1 添加的 printf n 电子信息工程系 08 电子信息工程 2 班 运动会分数统计系统 printf n 王晓楠 n n printf n 输入各个项目信息 n n printf 输入男子项目总数 m scanf d if m20 printf 输入有误 m 是 20 以内的整数 请重新输入 scanf d printf 输入女子项目总数 w scanf d if w20 printf 输入有误 w 是 20 以内的整数 请重新输入 scanf d printf 输入参加运动会的学校总数 n scanf d if g2 nn 20 printf 输入有误 n 是 20 以内的整数 请重新输入 scanf d g1 z m w printf 则项目编号为男子 1 d 女子 d d m m 1 g1 z printf n n 记录运动会成绩 printf n n 输入 0 标志结束 n for k 1 kz k 对两个邻接表置初态 g1 a k item k g1 a k firstschool NULL for k 1 kn k g2 b k school k g2 b k firstitem 0 g2 b k score 0 g2 b k boys 0 g2 b k girls 0 g2 b 0 score 0 g2 b 0 boys 0 g2 b 0 girls 0 while i 0 printf n 项目 scanf d if i 0 printf 1 前三名 2 前五名 n printf 请选择 scanf d if j 1 scanf d if j 1 该项目只有前三名时执行此语句 h 3 do printf 第 d 名 学校 学校编号为数字 h scanf d p1 Schools malloc sizeof Schools p1 school x p2 Items malloc sizeof Items 生成新节点 建表用的往结点赋值 p2 item i if h 3 p2 record p1 record 2 if h 2 p2 record p1 record 3 if h 1 p2 record p1 record 5 p1 next g1 a i firstschool g1 a i firstschool p1 p2 next g2 b x firstitem g2 b x firstitem p2 g2 b x score g2 b x score p2 record 累计总分 if ib x boys g2 b x boys p2 record 累计男团体总分 else g2 b x girls g2 b x girls p2 record 累计女团体总分 h while x 0 if j 2 该项目有前五名时执行此语句 h 5 do printf 第 d 名 学校 学校编号为数字 h scanf d p1 Schools malloc sizeof Schools p1 school x p2 Items malloc sizeof Items p2 item i if h 5 p2 record p1 record 1 if h 4 p2 record p1 record 2 if h 3 p2 record p1 record 3 if h 2 p2 record p1 record 5 if h 1 p2 record p1 record 7 p1 next g1 a i firstschool g1 a i firstschool p1 p2 next g2 b x firstitem g2 b x firstitem p2 g2 b x score g2 b x score p2 record 累计总分 if ib x boys g2 b x boys p2 record 累计男团体总分 else g2 b x girls g2 b x girls p2 record 累计女团体总分 h while x 0 void save 存储数据文件 FILE fp1 fp2 fp1 FILE malloc sizeof FILE fp2 FILE malloc sizeof FILE if fp1 fopen sports1 wb NULL printf cannot open file n return if fwrite g1 sizeof ALLitems 1 fp1 1 printf file write error n fclose fp1 if fp2 fopen sports2 wb NULL printf cannot open file n return if fwrite g2 sizeof ALLNode 1 fp2 1 printf file write error n fclose fp2 void funct2 ALLNode g2 输出各学校总分 int k printf n 电子信息工程系 08 电子信息工程 2 班 运动会分数统计系统 printf n 王晓楠 n printf n n 输出各学校总分 n printf 学校编号 t 总分 n for k 1 kn k printf d t t t d n k g2 b k score printf n system pause printf 按任意键返回主菜单 getchar void funct3 ALLNode g2 按学校编号排序输出 int k Items p2 p2 Items malloc sizeof Items printf n 电子信息工程系 08 电子信息工程 2 班 运动会分数统计系统 printf n 王晓楠 n printf n n 按学校编号排序输出 n printf 学校编号 t t t 获奖情况 n scanf d printf 输入要查询的 xuexiao 编号 for k 1 kn k printf t t t t t t d t k p2 g2 b k firstitem while p2 NULL printf 项目 d 得 d 分 p2 item p2 record p2 p2 next printf n printf n system pause printf 按任意键返回主菜单 getchar void funct4 ALLNode g2 按学校总分排序输出 int i j k Items p2 printf n 电子信息工程系 08 电子信息工程 2 班 运动会分数统计系统 printf n 王晓楠 n printf n n 按学校总分排序输出 n printf 学校编号 t t 总分 n scanf d printf 输入要查询的项目编号 for i 2 in i printf d t k p2 g2 b k firstitem while p2 NULL printf d t t d n g2 b k school g2 b k score p2 p2 next printf n g2 b 0 score g2 b i score g2 b 0 boys g2 b i boys g2 b 0 girls g2 b i girls g2 b 0 school g2 b i school j i 1 while g2 b 0 scoreb j score g2 b j 1 boys g2 b j boys g2 b j 1 girls g2 b j girls g2 b j 1 school g2 b j school j g2 b j 1 score g2 b 0 score g2 b j 1 boys g2 b 0 boys g2 b j 1 girls g2 b 0 girls g2 b j 1 school g2 b 0 school for k 1 kn k printf d t t d n g2 b k school g2 b k score system pause printf 按任意键返回主菜单 getchar void funct5 ALLNode g2 按男团体总分排序输出 int i j k Items p2 p2 Items malloc sizeof Items printf n 电子信息工程系 08 电子信息工程 2 班 运动会分数统计系统 printf n 王晓楠 n printf n n 按男团体总分排序输出 n printf 学校编号 t t 男团体总分 n scanf d printf 输入要查询的学校编号 for i 2 in i 添加的程序段 printf d t k p2 g2 b k firstitem while p2 NULL printf d t t d n g2 b k school g2 b k boys p2 p2 next printf n 添加的程序 段 g2 b 0 score g2 b i score g2 b 0 boys g2 b i boys g2 b 0 girls g2 b i girls g2 b 0 school g2 b i school j i 1 while g2 b 0 boysb j boys g2 b j 1 boys g2 b j boys g2 b j 1 girls g2 b j girls g2 b j 1 school g2 b j school j g2 b j 1 score g2 b 0 score g2 b j 1 boys g2 b 0 boys g2 b j 1 girls g2 b 0 girls g2 b j 1 school g2 b 0 school for k 1 kn k printf d t t d n g2 b k school g2 b k boys system pause 暂停等待 printf 按任意键返回主菜单 getchar void funct6 ALLNode g2 按女团体总分排序输出 int i j k Items p2 p2 Items malloc sizeof Items printf n 电子信息工程系 08 电子信息工程 2 班 运动会分数统计系统 printf n 王晓楠 n printf n n 按女团体总分排序输出 n printf 学校编号 t t 女团体总分 n scanf d printf 输入要查询的项目编号 for i 2 in i printf d t k p2 g2 b k firstitem while p2 NULL printf d t t d n g2 b k school g2 b k girls p2 p2 next printf n g2 b 0 score g2 b i score g2 b 0 boys g2 b i boys g2 b 0 girls g2 b i girls g2 b 0 school g2 b i school j i 1 while g2 b 0 girlsb j girls g2 b j 1 boys g2 b j boys g2 b j 1 girls g2 b j girls g2 b j 1 school g2 b j school j g2 b j 1 score g2 b 0 score g2 b j 1 boys g2 b 0 boys g2 b j 1 girls g2 b 0 girls g2 b j 1 school g2 b 0 school for k 1 kn k printf d t t d n g2 b k school g2 b k girls system pause printf 按任意键返回主菜单 getchar void funct7 ALLNode g2 按学校编号查询学校某个项目情况 int i j Items p2 printf n 电子信息工程系 08 电子信息工程 2 班 运动会分数统计系统 printf n 王晓楠 n printf n 按学校编号查询学校某个项目情况 n printf 输入要查询的学校编号 scanf d printf 输入要查询的项目编号 scanf d p2 g2 b i firstitem while p2 NULL if p2 item j printf 学校编号 d t 项目 d 得 d 分 n i p2 item p2 record p2 p2 next printf n system pause printf 按任意键返回主菜单 getchar void funct8 ALLitems g1 按项目编号查询取得名次的学校 int i Schools p1 printf n 按项目编号查询取得名次的学校 n printf 输入要查询的项目编号 scanf d printf 项目编号 t t t 取得名次的学校 n printf d t i p1 g1 a i firstschool while p1 NULL printf 学校 d 得 d 分 p1 school p1 record p1 p1 next printf n n system pause printf 按任意键返回主菜单 getchar void main int t ALLitems g1 ALLNode g2 g2 ALLNode malloc sizeof ALLNode g1 ALLitems malloc sizeof ALLitems if g2 g1 exit 1 textcolor WHITE textbackground BLUE clrscr system cls for printf t t n printf t t 电子信息工程系 08 电子信息工程 2 班 n printf t t n printf t t 运动会分数统计系统 n printf t t n printf t 难 t 1 输入各个项目成绩并存储文件 t 欢 n printf t 免 t 2 统计各学校总分 t 迎 n printf t 有 t 3 按学校编号排序输出 t 大 n printf t 不 t 4 按学校总分排序输出 t 家 n printf t 足 t 5 按男团体总分排序输出 t 指 n printf t 之 t 6 按女团体总分排序输出 t 点 n printf t 处 t 7 按学校编号查询学校某个项目情况 t n printf t t 8 按项目编号查询取得名次的学校 n printf t t 0 退出 n printf t t n printf t t n printf t t n printf t t 设计人 王晓楠 n printf t t n printf t t n printf t t 请选择 0 8 loop scanf d clrscr system cls switch t case 1 funct1 g1 g2 save break case 2 funct2 g2 break case 3 funct3 g2 break case 4 funct4 g2 break case 5 funct5 g2 break case 6 funct6 g2 break case 7 funct7 g2 break case 8 funct8 g1 break case 0 exit 0 default printf 输入有误 请重新选择 goto loop clrscr system cls 4 菜单窗口 菜单窗口 1 主菜单窗口主菜单窗口 2 输入各个项目成绩并存储文件输入各个项目成绩并存储文件 请选择 0 8 1 进入输入各个项目成绩并存储文件 1 输入男子项目总数 m 3 2 输入男子项目总数 m 3 3 输入参加运动会的学校总数 输入 项目 1 请选择 1 1 前三名 2 前五名 第 3 名 学校3 第 2 名 学校2 第 1 名 学校1 项目 2 请选择 1 1 前三名 2 前五名 第 3 名 学校1 第 2 名 学校2 第 1 名 学校3 项目 3 请选择 1 1 前三名 2 前五名 第 3 名 学校1 第 2 名 学校3 第 1 名 学校2 输入 项目 4 请选择 1 1 前三名 2 前五名 第 3 名 学校1 第 2 名 学校2 第 1 名 学校3 项目 5 请选择 1 1 前三名 2 前五名 第 3 名 学校3 第 2 名 学校2 第 1 名 学校1 项目 6 请
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农业文化体验旅游创新创业项目商业计划书
- 金融合规服务创新创业项目商业计划书
- 汽车客户关系管理系统升级创新创业项目商业计划书
- 2025年共青城市市级机关公开遴选考试笔试试题(含答案)
- 消费者购物体验研究创新创业项目商业计划书
- 编程乐园探险记创新创业项目商业计划书
- 智能化烹饪菜谱创新工具创新创业项目商业计划书
- 2025年数字艺术市场创作与交易政策环境分析报告
- 2025年文化创意产品创新研发资金申请策略研究报告
- 2025年心血管疾病心血管疾病心血管疾病患者教育项目市场前景报告
- 《焊工培训课件》课件
- 杭州本级公共租赁住房资格续审申请表Ⅴ
- 部编版小学语文六年级上册古诗三首之《浪淘沙(其一)》说课稿(附教学反思、板书)课件(共47张课件)
- 统编版道德与法治八年级上册期末复习知识点考点提纲
- (正式版)YS∕T 5040-2024 有色金属矿山工程项目可行性研究报告编制标准
- NB-T35020-2013水电水利工程液压启闭机设计规范
- DZ∕T 0450-2023 地质灾害监测数据通信技术要求(正式版)
- 学校食堂及校内小卖部食品安全专项检查表
- 建筑CAD(高职)全套教学课件
- 实验室家具生产、安装进度计划表
- 干细胞健康推广策划方案
评论
0/150
提交评论