logo资料库

电视大赛观众投票及排名系统.doc

第1页 / 共19页
第2页 / 共19页
第3页 / 共19页
第4页 / 共19页
第5页 / 共19页
第6页 / 共19页
第7页 / 共19页
第8页 / 共19页
资料共19页,剩余部分请下载后查看
1 绪 论
1.1 课程设计目的
1.2 课程设计意义
1.3 问题描述
2 需 求 分 析
2.1 数据输入
用户程序经编译组建无误后,运行界面输入选手的数目及其基本信息(编号和姓名)。
2.2 数据输出
运行界面显示输出名次、编号、姓名、票数四项信息,若票数相同,则显示并列名次。
2.3 功能
(1) 将选手信息、得票数存储,排序时直接提取,并最终输出结果。
(2) 采用模块化设计,使程序结构清晰明了。
3 设 计 思 路
图3.2
4 详 细 设 计
本程序分为五个模块
(1) 主程序模块:如图4.1所示
实现对函数的调用;
图4.1
(2) 顺序表模块:如图4.2所示
实现选手信息存储;
(3) 投票模块:如图4.3所示
实现观众对选手的投票;
图4.2
图4.3
(4) 排序模块: 如图4.4所示
实现对选手成绩的排序;
(5) 文件保存模块:如图4.5所示
实现对选手信息的保存.
图4
图4.4
5 数 据 测 试
(1) 输入选手信息界面
输入选手的个数以及每个选手的信息输入“4”“张三、李四、王五、赵大” 。
(2)给选手投票界面:输入“1 2 2 3 3 3 4 4 3 3 1 0”。
(3) 排序界面
(4) 排序结果界面
(5) 保存到文件
(6) 保留到文件界面
(7) 退出
6 总 体 体 会
通过本次课程设计,我在这一过程中有许多感触,充分感受到了模块化设计的优越性,要看清问题,将问题要求理
数据结构课程 课程设计 题 院 目 电视大赛观众投票及排名系统 (系) 专 业 班 级 学 生 姓 名 学 号 设 计 地 点 指 导 教 师 起止时间:
数据结构课程设计任务分配 院(系): 课程设计题目 教研室:软件教研室 电视大赛观众投票及排名系统 (1)要求小组成员达到熟练掌握数据结构的基本知识和技 能; (2)基本掌握算法设计的思路和方法; (3)能够利用所学的基本知识和技能,解决算法设计问题。 (4)训练用系统的观点和软件开发一般规范进行软件开发, 并在此过程中培养严谨的科学态度和良好的工作作风。初步 掌握软件开发过程的问题分析、系统设计、程序编码、测试 等基本方法和技能。 姓名 学号 承担任务 是否组长 否 否 否 是 课 程 设 计 目 的 小 组 成 员 及 任 务 分 配
1 绪 论 电视大赛观众投票及排名系统是一个运用在各种电视节目中用来进行投票 的一种较为智能的系统。该系统用途广泛例如进行选手的投票和选手的观众的支 持数量统计以及各种竞赛节目都能发挥作用。 1.1 课程设计目的 通过课程设计,加深对《数据结构》课程所学知识的理解,熟练掌握和巩固 C/C++语言的基本知识和语法规范,包括:数据类型(整形、实型、字符型、指 针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运 算等);程序结构(顺序结构、判断选择结构、循环结构);库函数应用等;复杂 任务功能分解方法(自顶向下逐步求精、模块化设计、信息隐藏等),熟练掌握 和巩固三种基本的数据结构(线性结构、树形结构、图形结构)的逻辑结构、存 储结构以及相关运算和应用。 1.2 课程设计意义 在很多的电视大赛中,通常当选手表演结束后,现场观众通过手中的按键对 参赛选手进行投票,然后对选手获得的票数进行统计,从高到低进行降序排序, 从而自动产生冠军、亚军和季军。 1.3 问题描述 在该课程设计中,首先输入参赛选手的人数(范围为 1-9 个),然后根据人数 存放选手信息的顺序表。将选手的编号和姓名依此存入顺序表单元中,观众通过 按键进行投票,按“1”为 1 号选手投票,按“2”为 2 号选手投票,以此类推, 以按“0”作为投票结束标志。投票结束后进行排序,在此采用希尔排序,然后 为每个选手计算名次,得票相同的名次也相同。最终输出排名结果,并将结果保 存到文件中。 1
2 需 求 分 析 2.1 数据输入 用户程序经编译组建无误后,运行界面输入选手的数目及其基本信息(编号 和姓名)。 2.2 数据输出 运行界面显示输出名次、编号、姓名、票数四项信息,若票数相同,则显示 并列名次。 2.3 功能 (1) 将选手信息、得票数存储,排序时直接提取,并最终输出结果。 (2) 采用模块化设计,使程序结构清晰明了。 2
3 设 计 思 路 将输入的信息储存在顺序链表中,然后观众投票后对其累加票数,最后利用 希尔排序对选手的得票进行从高到低地排序,显示名次的先后(包含并列名次), 并对最终结果进行保存到文件。如图 3.1 所示 电视大赛观众投 票及排名系统 输 入 选 手 信 息 对 选 手 进 行 投 票 查 看 投 票 信 息 对 选 手 排 序 计 算 名 次 将 数 据 保 存 到 文 件 中 图 3.1 层次图 (1) 本程序分为四个模块: ①主程序模块:实现对函数的调用; ②顺序表模块:实现对选手信息的存储; ③投票模块:实现观众对选手的投票; ④排序模块:实现对选手成绩的排序。 (2) 它们之间的关系为:如图 3.2 所示 主 程 序 模 块 投 票 模 块 顺 序 表 模 块 图 3.2 排 序 模 块 3
4 详 细 设 计 本程序分为五个模块 (1) 主程序模块:如图 4.1 所示 实现对函数的调用; 开始 While(1) 输入 sel switch(sel) I n i t _ s q ( ) : M e u n ( ) I n i t ( ) : M e u n ( ) V o t e ( ) : M e u n ( ) S h e l l s o r t ( ) : M e u n ( ) main( ) 结束 图 4.1 4 R a n k ( ) : M e u n ( ) D i s p l a y ( ) : M e u n ( ) S a v e ( ) : M e u n ( )
(2) 顺序表模块:如图 4.2 所示 实现选手信息存储; (3) 投票模块:如图 4.3 所示 实现观众对选手的投票; 开始 创建 Init()函数 开始 int i,n 调用 Vote()函数进行投票 录入选手信息 结束 图 4.2 Y i=1 i<=L-> length Y N L->data[i].s core += 1 i++ N int i,num 输入 num num != 0 Y num<0||nu m> N continue 结束 图 4.3 5
(4) 排序模块: 如图 4.4 所示 实现对选手成绩的排序; (5) 文件保存模块:如图 4.5 所示 实现对选手信息的保存. 开始 int i,j,dk 调用 Shellsort()函数 比较票数,创建增量序 列进行排序 调用 Rank()函数, 计算选手名次 结束 图 4.4 开始 i, filename[20] 输入 filename 建立新文件 将数据保存的 文件中 结束 图 4.5 6
分享到:
收藏