已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
滁滁州州学学院院 课课程程设设计计报报告告 课程名称 课程名称 数据结构课程设计报告 设计题目设计题目 学生运动会成绩数据库 系系 别 别 计算机科学与技术系 专专 业 业 计算机科学与技术专业 组组 别 别 第四三组 起止日期起止日期 2011 年 5 月 20 日 2011 年 6 月 20 日 指导教师指导教师 杨斌 计算机科学与技术系二计算机科学与技术系二 九年制九年制 课程设计任务书课程设计任务书 课程设计题目学生运动会成绩数据库 组长李通学号2010211104班级计科 101 系别 计算机科学与技 术系 专业计算机科学与技术专业 组员冯婷婷 黄华 蒋陆陆 指导教师杨斌 课程设计目的 深入理解数据结构的基本理论 掌握数据存储结构的设计方法 掌握数据结构基于的各种操作的实现方法 课程设计所需环境Microsoft Visual C 6 0 课程设计任务要求 用数据结构的基本理论和数据存储的设计方法完成一个实际应用 问题 在完成程序设计的同时能够写出比较规范的设计报告 课程设计工作进度计划 序号起止日期工 作 内 容分工情况 12011 5 24 2011 6 1 Push Delete Change 添加 删除 修改 要 稍微详细描述下功能 李通完成 22011 5 24 2011 5 28 Addupscore Sort 合计 排序 黄华完成 32011 5 24 2011 5 29 Malesort Femalesort 男生排序 女生排序 蒋陆陆完成 42011 5 24 2011 5 29 Acasearch Itemsearch 按系部查找 按项目查找 冯婷婷完成 520115 24 2011 5 30 main Mainmenu 主函数 主菜单 朱路平完成 62011 6 2 2011 6 15 课程设计报告冯婷婷完成 引言与需求分析 蒋璐璐完成 概要设计 黄华完成 调试与操作说明 李通完成 课程设计总结与体会 朱路平完成 实验报告其余部分 指导教师签字 年 月 日 教研室审核意见 教研室主任签字 年 月 日 目目 录录 引引言言 1 需需求求分分析析 1 2 1 问题描述 1 2 2 设计思路 2 2 3 运行环境及开发工具 2 概概要要设设计计 2 3 1 流程图 2 3 2 主要数据结构 3 3 3 函数及其实现的功能 3 详详细细设设计计 4 4 1 程序代码 4 调调试试与与操操作作说说明明 14 5 1 操作说明 14 5 2 运行结果 14 课课程程设设计计总总结结与与体体会会 20 6 1 总结 20 6 2 收获与体会 21 致致谢谢 21 参参考考文文献献 21 1 课程设计的主要内容课程设计的主要内容 引言 数据结构 主要介绍一些最常用的数据结构 阐明各种数据结构内在的逻辑关系 讨论其在计算机中的存储表示 以及在其上进行各种运算时的实现算法 并对算法的效率 进行简单的分析和讨论 数据结构是介于数学 计算机软件和计算机硬件之间的一门计算 机专业的核心课程 它是计算机程序设计 数据库 操作系统 编译原理及人工智能等的 重要基础 广泛的应用于信息学 系统工程等各种领域 2 需求分析 2 1 问题描述 题目 学生运动会成绩数据库 功能 学生运动会成绩数据库系统记录某校运动会上全部运动项目 各系获得的分数及排名 的情况 包括 50 100 200 400 1500 米 跳高 跳远 标枪 铅球铁饼等 进入系统 后可以输入和修改某个项目的结果情况 可以按各系院编号输出总分 按总分排序 按男 团体总分排序 按系院编号查询 按项目编号查询 按女团体总分排序 分步实施 1 初步完成总体设计 搭好框架 确定人机对话的界面 确定函数个数 2 完成最低要求 建立一个文件 包括某个系 5 个项目的得分情况 能对文件中地 信息进行扩充 追加 修改和删除 3 进一步要求 完成对多个系 多个项目的得分排序 以及完成系统查询功能 有兴 趣的同学可以自己扩充系统功能 键盘输入 系院数目 男子项目数女子项目数 每项目取前三名 分别为 10 5 2 分 要求 1 界面友好 函数功能要划分好 2 总体设计应画一流程图 3 程序要加必要的注释 4 要提供程序测试方案 5 程序一定要经得起测试 宁可功能少一些 也要能运行起来 不能运行的程序是 没有价值的 2 2 2 设计思路 表 1 系部项目信息表 501001500跳高跳远 男子女子男子女子男子女子男子女子男子女子 计算机系 数学系 经管系 如上图所示 即是为学生运动会所列出的表格 根据此表格即可定义 Academy 和 Score 两个结构体 定义且完成数据的输入操作后再对其进行添加系 添加项目 更改数据 查询总分 按总分男子团体总分和女子团体总分分别查询排名等操作即可 2 3 运行环境及开发工具 运行环境 Microsoft Visual C 6 0 开发工具 C C 概要设计 3 1 流程图流程图 开始 输入 Menu 输入 输入 Chang e Addup score Sort Maleso rt Female sort Acasea rch Itemse arch Delete Push 结束 图 3 1 程序总流程图 3 3 2 主要数据结构 结构原型由上表所示 建立包含系名称和编号的代表系的结构体 Academy 代表整个 表格的 Score 结构体和交换变量结构体 change 具体数据结构定义如下 typedef struct 定义系结构体 包括系名和该系的编号 char name 20 int num Academy typedef struct Academy Aca Maxnum struct int male int female score Maxnum Maxnum int m n b g m n b g 分别代表系数目 项目数目 男子项目数和女子项目数 Score typedef struct 定义一个交换变量结构体 int score char name 20 change name 20 和 num 分别为系名称和编号 score Maxnum Maxnum 为表格中的数值 m n b g 分别代表系数目 项目数目 男子项目数和女子项目数 3 3 函数及其实现的功能 程序中除了 main 主函数外还包括九个函数 即实现九种功能 和将这九种功能集成在 一起的功能函数 Mainmenu 这九个函数分别为 1 Push Score p 功能 在定义好的学生运动会数据库中添加新的系或者项目 并为新添加的系或项目输入 成绩数据 操作 输入标示符 flag 和要添加的数目 f 若 flag 为 0 则再输入系名称 编号以及成绩数 据 若 flag 为 1 则再输入每个系在新项目中的成绩数据 2 Change Score p 功能 更改某一个系目的分数 操作 输入要更改系项目的系编号 项目编号 男子或女子选项和更改后的分数 3 Addupscore Score p 功能 核算各个系的总分 4 操作 按系编号输出核算后的结果 4 Sort Score p 功能 核算各个系的总分 并按分数高低进行排名 操作 按排名先后输出系总分 5 Malesort Score p 功能 核算各个系的男子项目总分 并按分数高低进行排名 操作 按排名先后输出系男子项目总分 6 Femalesort Score p 功能 核算各个系的女子项目总分 并按分数高低进行排名 操作 按排名先后输出系女子项目总分 7 Acasearch Score p 功能 查找特定系所有项目的分数 操作 输入待查找的系编号 并输出该系所有项目的分数 8 Itemsearch Score p 功能 查找特定项目的所有系分数 操作 输入待查找的项目编号 并输出该项目所有系的分数 9 Delete Score p 功能 删除某个系 操作 输入该系的编号 删除该系 详细设计 4 1 程序代码 include include include include include define Maxnum 50 typedef struct 定义系结构体 包括系名和该系的编号 char name 20 int num Academy typedef struct Academy Aca Maxnum struct int male int female score Maxnum Maxnum int m n b g m n b g 分别代表系数目 项目数目 男子项目数和女子项目数 Score typedef struct 5 int score char name 20 change void Mainmenu Score p void Push Score p 在定义好的学生运动会数据库中添加新的系部或者项目 并为新添加的系 部或项目输入成绩数据 char ch char m 10 int flag i j n FILE fp printf 添加新的系部 请输入 flag 0 scanf d if flag 0 if fp fopen fp txt a NULL 以追加方式打开文本文档 printf File open error exit 0 printf 输入系部编号 cin n printf 输入系部名称 cin m printf 输入各项目男女分数 for j 0 j n j scanf d d printf n fprintf fp n fprintf fp d s n m for j 0 j n j fprintf fp 4d 4d p score i j male p score i j female if fclose fp printf Can t close the file exit 0 if fp fopen fp txt r NULL printf File open error exit 0 while feof fp 判断读写位置指针是否指向文件尾 ch fgetc fp 从磁盘文件读入一个字符到 ch putchar ch if fclose fp printf Can t close the file exit 0 6 p m Mainmenu p void Delete Score p 删除某个系 int i j f char ch Academy Aca Maxnum FILE fp if fp fopen fp txt r NULL printf File open error exit 0 for i 0 i m i fscanf fp d s for j 0 j n j fscanf fp d d if fclose fp printf Can t close the file exit 0 printf 请选择要删除的系部序号 scanf d printf n for int k f k m 1 k Aca k num Aca k 1 num strcpy Aca k name Aca k 1 name for j 0 j n j p score k j male p score k 1 j male p score k j female p score k 1 j female p m if fp fopen fp txt w NULL 建立新文本文档进行读 写 printf File open error exit 0 for i 0 i m i fprintf fp 3d 5s Aca i num Aca i name for j 0 j n j fprintf fp 4d 4d p score i j male p score i j female fprintf fp n if fclose fp printf Can t close the file 7 exit 0 if fp fopen fp txt r NULL printf File open error exit 0 while feof fp ch fgetc fp putchar ch if fclose fp printf Can t close the file exit 0 Mainmenu p void Change Score p 更改某一个系部项目的分数 int i j sex f FILE fp char ch Academy Aca Maxnum if fp fopen fp txt r NULL printf File open error exit 0 for i 0 i m i fscanf fp d s for j 0 j n j fscanf fp d d printf sex 为 0 时代表男生 为 1 时代表女生 n printf Please put in the academy num the item num male or female and the score scanf d d d d printf n if sex 0 p score i j male f if sex 1 p score i j female f if fclose fp printf Can t close the file exit 0 if fp fopen fp txt w NULL printf File open error exit 0 8 for i 0 i m i fprintf fp 3d 5s Aca i num Aca i name for j 0 j n j fprintf fp 4d 4d p score i j male p score i j female fprintf fp n if fclose fp printf Can t close the file exit 0 if fp fopen fp txt r NULL printf File open error exit 0 while feof fp ch fgetc fp putchar ch if fclose fp printf Can t close the file exit 0 Mainmenu p void Addupscore Score p 核算各个系部的总分 int i j f 0 FILE fp Academy y y Academy malloc sizeof Academy if fp fopen fp txt r NULL printf File open error exit 0 for i 0 i m i 计算各个系的男女总分 fscanf fp d s printf d 8s 总分 y num y name for j 0 j n j 计算一个系所有项目男女总分 fscanf fp d d if p score i j male 1 f p score i j male if p score i j female 1 f p score i j female printf 2d n f f 0 printf n 9 if fclose fp printf Can t close the file exit 0 Mainmenu p void Sort Score p 核算各个系部的总分 并按分数高低进行排名 int i j change a Maxnum t 定义一个数组 存储一个系的系名和总分 int h 12 FILE fp Academy y y Academy malloc sizeof Academy for i 0 i m i h i i 1 if fp fopen fp txt r NULL printf File open error exit 0 for i 0 i m i 计算各个系的男女总分 fscanf fp d s a i score 0 strcpy a i name y name for j 0 j n j 计算一个系所有项目男女总分 fscanf fp d d if p score i j male 1 a i score p score i j male if p score i j female 1 a i score p score i j female for i 0 i m 1 i 选择排序 将最高分的移到最前 面 for j i 1 j m j if a i score a j score t score a i score strcpy t name a i name a i score a j score strcpy a i name a j name a j score t score strcpy a j name t name for i 0 i m i printf 名次 d 8s d n h i a i name a i score if fclose fp printf Can t close the file exit 0 10 Mainmenu p void Malesort Score p 核算各个系部的男子项目总分 并按分数高低进行排名 int i j change a Maxnum t 定义一个数组 存储一个系的系 名和总分 int h 12 FILE fp Academy y y Academy malloc sizeof Academy for i 0 i m i h i i 1 if fp fopen fp txt r NULL printf File open error exit 0 for i 0 i m i 计算所有系项目男总分 fscanf fp d s a i score 0 strcpy a i name y name for j 0 j n j 计算一个系所有项目男总分 fscanf fp d d if p score i j male 1 a i score p score i j male for i 0 i m 1 i 选择排序 将最高分移到最前面 for j i 1 j m j if a i score a j score t score a i score strcpy t name a i name a i score a j score strcpy a i name a j name a j score t score strcpy a j name t name for i 0 i m i printf 名次 d 8s d n h i a i name a i score if fclose fp printf Can t close the file exit 0 Mainmenu p void Femalesort Score p 核算各个系部的女子项目总分 并按分数高低进行排名 int i j change a Maxnum t 11 int h 12 FILE fp Academy y y Academy malloc sizeof Academy for i 0 i m i h i i 1 if fp fopen fp txt r NULL printf File open error exit 0 for i 0 i m i fscanf fp d s a i score 0 strcpy a i name y name for j 0 j n j fscanf fp d d if p score i j female 1 a i score p score i j female for i 0 i m 1 i for j i 1 j m j if a i score a j score t score a i score strcpy t name a i name a i score a j score strcpy a i name a j name a j score t score strcpy a j name t name for i 0 i m i printf 名次 d 8s d n h i a i name a i score if fclose fp printf Can t close the file exit 0 Mainmenu p void Acasearch Score p 查找特定系部所有项目的分数 int i j printf Please put in the academy number scanf d printf n printf 该系的各项目分数为 for j 0 j n j printf d d p score i j male p score i j female Mainmenu p void Itemsearch Score p 查找特定项目的所有系部分数 12 int i j printf Please put in the item number scanf d printf n printf 该项目的各系分数为 for i 0 i m i printf d d p score i j male p score i j female Mainmenu p void Mainmenu Score p int ch printf n menu n printf 1 Push score n2 change score n3 Addup score n4 Sort score n5 Malesort n6 Femalesort n7 Acasearch n8 Itemsearch n9 Delete n0 Exit n printf menu n printf Please Choose 1 8 scanf d printf n switch ch case 0 break case 1 Push p break 在定义好的学生运动会数据库中添加新的系或者项目 并为新添 加的系或项目输入成绩数据 case 2 Change p break 更改某一个系项目的分数 case 3 Addupscore p break 核算各个系的总分 case 4 Sort p break 核算各个系的总分 并按分数高低进行排名 case 5 Malesort p break 核算各个系的男子项目总分 并按分数高低进行排名 case 6 Femalesort p break 核算各个系的女子项目总分 并按分数高低进行排名 case 7 Acasearch p break 查找特定系所有项目的分数 case 8 Itemsearch p break 查找特定项目的所有系分数 case 9 Delete p break 删除某个系 default printf Put in the wrong number void main printf 数据结构课程设计 n printf 小组成员 李通 冯婷婷 黄华 蒋陆陆 n printf n printf n 13 printf n printf 欢迎进入学生运动会成绩数据库管理界面 n printf n printf n printf n Score p Academy Aca Maxnum FILE fp int t int i j p Score malloc sizeof Score printf put in the academy number item number male item number female item number n scanf d d d d printf n printf 50 100 1500 跳远 铅 球 n printf n printf 男 女 for int k 1 k 5 k printf 男 女 printf n printf n printf 编号 系部 n printf n if fp fopen fp txt r NULL 以只读方式打开文本文档 printf File open error exit 0 for i 0 i m i fscanf fp d s 读入数据 printf d s Aca i num Aca i name 打印数据 for j 0 j n j fscanf fp d d printf 5d 6d p score i j male p score i j female printf n printf n if fclose fp 关闭文件 printf Can t close the file exit 0 printf 是否进入管理菜单 是请输入 1 否请输入 0 scanf d if t 1 Mainmenu p else 14 调试与操作说明 5 1 操作说明 程序运行后屏幕上会出现一个菜单 我们的操作就是对菜单进行操作 菜单上共有 10 个选项 其中 9 个操作项 1 个退出项 我们根据自己所需要的操作选出某一项进行操作 即可 具体操作在 5 2 节中详细给出 5 2 运行结果 程序开始运行出现以下界面 图 5 1 开始界面界面 程序要求我们输入系部数目 项目数目 男项目数目 女项目数目 我们输入一下数 据 2 5 5 5 按下回车键得以下界面 图 5 2 原始数据界面 15 此时输入 1 进入菜单管理 界面如下 图 5 3 菜单界面 此时根据需要选择函数编号 我们选择函数 1 Push score 此函数是增加系部数据 进 行数据输入得到以下界面 图 5 4 添加新系部界面 16 现在我们选择函数 2 change score 此函数是改变某系某项目男或女的成绩 现在输入 1 2 0 5 按下回车得到以下界面 图 5 5 更改成绩界面 现在我们选择函数 3 Addup score 此函数是计算各系的总成绩 得到以下界面 图 5 6 各系总分界面 17 现在我们选择函数 4 Sort score 此函数是计算各系总成绩并进行排名 得到以下界面 图 5 7 系排名界面 现在我们选择函数 5 Malesort 此函数是计算各系男生成绩并进行排名 得到以下界面 18 图 5 8 各系男运动员总成绩界面 现在我们输入函数 6 Femalesort 此函数是计算各系女生成绩并进行排名 得到以下界 面 图 5 9 各系女运动员总成绩界面 现在我们输入函数 7 Acasearch 此函数是查询某系各项目男女分数 输入相应的数据 例如 2 得到以下界面 19 图 5 10 某系各项目分数界面 现在输入函数 8 Itemsearch 此函数是查询某项目各系男女分数 输入相应的数据 例 如 4 得到以下界面 图 5 11 某项目各系分数界面 现在我们输入函数 9 Delete 此函数是删除某系的全部数据 输入相应系部编号 例如 2 得到以下界面 20 图 5 12 删除界面 最后我们输入 0 Exit 退出程序得到以下界面 图 5 13 退出界面 课程设计总结与体会 6 1 总结 经过这次课程设计 通过对程序的编制 调试和运行 使我更好的掌握了数据结构中 数据存储以及对数据的操作 熟悉了各种调用的数据类型 在调试和运行过程中使我更加 的了解和熟悉程序运行的环境 提高了我对程序调试分析的能力和对错误的纠正能力 这 次数据结构的程序设计 对于我来说是一个挑战 我对数据结构的学习在程序的设计中也 有所体现 课程设计是培养学生综合运用所学知识 发现 提出 分析和解决实际问题 锻炼实践能力的重要环节 是对学生实际工作能力的具体训练和考察过程 随着科学技术 发展的日新月异 当今计算机应用在生活中可以说得是无处不在 因此作为二十一世纪的 大学来说掌握计算机开发技术是十分重
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年二级建造师考试试题一及答案详解一套
- 人力资源规划测试题及答案
- 国开电大《人力资源管理》形考任务四答案
- 中级会计实务-金融资产(六)-2模拟题
- 2025年安全培训试题及答案【各地真题】
- 低压电工证考试题库低压电工科目一二三四
- 2025年上海普外科主治医师专业实践能力试题
- 2025年度司法考试卷四第二题解析
- 2025年一级建造师考试试题(名校卷)附答案详解
- 圆与扇形测试题及答案
- 卫生院老年人健康管理工作总结
- 思想道德与法治论述题
- 仓库发错货的解决方案
- 报案授权委托书
- 晒谷场项目申请书
- 基于单片机的智能恒温箱设计
- 第19课《苏州园林》同步测试(含答案)
- T-CHSA 010-2023 恒牙拔牙术临床操作规范
- 海姆立克评分标准
- 社会主义核心价值观与中华传统文化
- 新汉语水平考试HSK(五级)模拟试卷4(题后含答案及解析)
评论
0/150
提交评论