




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
重重庆庆文文理理学学院院 计计算算机机科科学学与与技技术术专专业业 数数据据结结构构课课程程设设计计报报告告 题 目: 运 动 会 计 分 系 统 班 级: 14 级计算机科学与技术 姓 名: 张张 超超 学 号: 2145827404221458274042 起 迄 日 期: 2015 年 7 月 4 日 课程设计地点: 格致楼格致楼 A317A317 指导教师: 周周 建建 新新 评阅意见:评阅意见: 成绩评定:成绩评定: 评阅人:评阅人: 日期:日期: 完成日期:2015 年 7 月 5 日 目录目录 一.设计目的 .2 二、需求分析二、需求分析2 2 2.1 功能需求2 2.2 数据需求 .2 三概要设计三概要设计2 2 3.1 设计背景2 3.2 程序流程:3 四、详细设计四、详细设计4 4 4.1 运动会计分系统的主要结构4 4.1.14.1.1 结构定义结构定义4 4 4.1.24.1.2 主要函数声明及功能描述如下主要函数声明及功能描述如下5 5 4.2 源程序.10 4.2.14.2.1 头文件头文件 dssx14.hdssx14.h 1010 4.2.24.2.2 函数文件函数文件 dssx14.cdssx14.c 1515 4.2.34.2.3 主函数文件主函数文件 dssx14main.cdssx14main.c 1919 五五. .程序测试结果及问题分析程序测试结果及问题分析2020 5.1 程序测试结果.20 5.2 问题分析: 23 六六. .总结总结2323 七七. .参考文献参考文献2424 第 2 页 一一. .设计目的设计目的 1. 通过设计、编码、调试等各环节的训练,深刻理解、牢固掌握数据结构和算 法设计 技术,掌握分析、解决实际问题的能力。 2. 综合运用所学知识,上机解决一些与实际应用结合紧密的、规模较大的问题, 逐步 。 掌握软件开发的基本思想、方法和实现步骤,提高实际应用水平。 3. 初步树立正确的程序设计思想,培养分析问题、解决问题的能力,提高查询 资料和撰写书面文件的能力。 4.提高综合软件开发能力,体验项目开发流程,规范代码。 二、需求分析二、需求分析 2.12.1 功能需求功能需求 本系统主要是运动会分数统计方案设计。 运动会分数统计方案适合采用结构 体数组,为了实现系统功能,主要应实现以下几部分:比赛成绩输入、比赛成 绩输出、查询比赛成绩和调用统计结果。 本程序在运行期间,为了避免在运行大量数据时不会出错,并且能够在很短的 时间内将运行结果稳定输出,就需要系统达到安全性能好,可靠性高,稳定性 强,处理数据迅速等特点。应具备一定的实用性。 2.22.2 数据需求数据需求 需要输入学校编号,项目编号,取得的名次,以及哪些名次 三概要设计三概要设计 3.13.1 设计设计背景背景 参加运动会有 n 个学校,学校编号为 1n。比赛分成 m 个男子项目,和 w 个 女子项目。项目编号为男子 1m,女子 m+1m+w。不同的项目取前五名或 前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为: 5、3、2;哪些取前五名或前三名由学生自己设定。 (m #include #include /数据结构的设计 /项目表结构/ typedef struct xm_table int item;/项目编号 char xm_name20;/项目名称 int selectCount;/获奖人数;取前五名或取前三名,则 5 或 3 XM_TABLE; /运动员信息表 / typedef struct STUDENT char studentName20;/运动员姓名 int score;/运动员成绩 int range;/名次 int item;/获奖项目编号 int sex;/性别 STUDENT; /学校成绩信息表 typedef struct SCHOOL int serial;/学校编号 char schoolName20;/学校名称 int allCount;/获奖总人数 int menScore;/男子总分 int womenScore;/女子总分 int allscore;/团体总分 int jifeng;/总积分 STUDENT student41;/获奖学生:下标为 0 的单元不装数据,参赛项目不 超过 40 个 第 11 页 SCHOOL; /学校结点结构,单链表 typedef struct SchoolLink SCHOOL school; struct SchoolLink *next;/下一个节点指针 SchoolLink; /功能函数声明/ /参数设置 /*功能:设置参赛学校数目、男子比赛项目数目和女子比赛项目数目 /输入:参赛学校数目、男子比赛项目数目和女子比赛项目数目 /输出:无 */ void setArgs(); /比赛项目信息设置 /* 功能: 输入: 输出: */ void setXmInfo(); /生成空的学校信息单链表 /* 功能:生成一个带头结点的空学校信息单链表,每个参赛学校对应一个节点, 输入学校编号,名称,并置其他成员值为空 输入:学校编号,名称 输出:单链表的头指针 */ SchoolLink *creat_SchoolLink(); /向学校信息单链表添加一个获奖学生的获奖信息 /* 功能:向学校信息单链表添加一个获奖学生的获奖信息,并修改学校得分和积 分 输入:获奖学生的姓名,性别,参赛编号,成绩和名次 输出:无 */ void Add_One_StudentScore(SchoolLink *); /添加所有获奖学生成绩 /* 功能:调用 void Add_One_StudentScore(SchoolLink *);添加所有获奖学生成绩 输入: 输出: 第 12 页 */ void Add_All_StudentScore(SchoolLink *); /汇总各学校的总成绩 /* 功能:依次统计各学校的总成绩,包括团体总,男女总分和总积分 输入: 输出: */ void Cal_SchoolScore(SchoolLink *); /向屏幕输出比赛成绩数据 /* 功能:向标准输出设备输出数据,包括各个学校的各项总成绩,总积分和获奖 学生信息 输入: 输出: */ void Print_All_Score(SchoolLink *); /查找类算法 /按项目编号查询取得前三或前五名的学校 /* 功能:按项目编号查询取得前三或前五名的学校 输入:学校比赛信息单链表的头指针,查找的项目编号 输出: */ void Find_Xm_ID(SchoolLink *,int xm_ID); /按学校编号查询学校某个项目的情况 /* 功能:按学校编号查询学校某个项目的情况 输入:学校比赛信息单链表的头指针,查找的项目编号,学校编号 输出: */ void Find_School_Xm(SchoolLink *,int School_ID,int xm_ID); /排序类 /按团体总分排序 /* 功能:按团体总分排序 输入: 输出: */ void SortByTotlscore(SchoolLink *); /按男子总分排序 /* 功能:/按男子总分排序 输入: 第 13 页 输出: */ void SortByMenscore(SchoolLink *); /按女子总分排序 /* 功能:按女子团体总分排序 输入: 输出: */ void SortByWomenscore(SchoolLink *); /按总积分排序 /* 功能:按总积分排序 输入: 输出: */ void SortByJiFeng(SchoolLink *); /导入原始数据类 /从文件导入参数 /* 功能:从文件导入参赛学校数目,男子比赛项目数目和女子比赛项目数目 输入:当前目录下文件:args.txt 输出:无 */ void ImportArgs(); /从文件导入比赛项目 /* 功能:从文件导入比赛项目 输入:当前目录下文件:xminfotable.txt 输出:无 */ void ImportXmInfo(); /从文件读入学校名称生成空的学校信息单链表 /从文件导入学校成绩总表 /导出类 /* 功能:生成一个带头结点的空学校信息单链表,每个参赛学校对应一个结点, 输入 学校编号、名称,并置其它成员值为空,学校名称从文件 allschool.txt 读入。 输入:学校编号、名称 输出:单链表的头指针 */ SchoolLink *CreatSchoolLinkByFile(); /从文件导入学校成绩总表 第 14 页 /* 功能:从文件导入学校成绩总表 输入:从当前目录下文件:allscoretable.txt 导入 输出:无 */ void ImportStudentScore(SchoolLink *head); /导入按团体总分排序的成绩 /*功能:从文件导入已排序男子团体总分表并显示在屏幕上 输入:当前目录下文件:sortedtotalscoretable.txt 输出:无 */ void ImportSortedTotalscore(); /导入按男子团体总分排序的成绩 /*功能:从文件导入已排序男子团体总分表并显示在屏幕上 输入:当前目录下文件:sortedmenscoretable.txt 输出:无 */ void ImportSortedMenscore(); /导入按女子团体总分排序的成绩 /*功能:从文件导入已排序女子团体总分表并显示在屏幕上 输入:当前目录下文件:sortedwomenscoretable.txt 输出:无 */ void ImportSortedWomenscore(); /导入按总积分排序的成绩 /*功能:从文件导入已排序总积分表并显示在屏幕上 输入:当前目录下文件:sortedjftable.txt 输出:无 */ void ImportSortedJf(); /导出类 /void ExportSchoolTable(SchoolLink *head); /将团体总分排名导出到文件中/ /*功能:将团体总分排名导出到文件中 输入: 输出:当前目录下文件:sortedtotalscoretable.txt */ void ExportSortedTotalscore(SchoolLink *head); /将男子团体总分排名导出到文件中/ /*功能:将男子团体总分排名导出到文件中 输入:ExportMenscore 输出:当前目录下文件:sortedmenscoretable.txt 第 15 页 */ void ExportSortedMenscore(SchoolLink *head); /将女子团体总分排名导出到文件中/ /*功能:将女子团体总分排名导出到文件中 输入: 输出:当前目录下文件:sortedwomenscoretable.txt */ void ExportSortedWomenscore(SchoolLink *head); /将总积分排名导出到文件中/ /*功能:将总积分排名导出到文件中 输入: 输出:当前目录下文件:sortedjftable.txt */ void ExportSortedJf(SchoolLink *head); /登录类 /* 功能:输入用户名和密码,与文件 managers.txt 中的用户进行对比,如果是合 法用户, 则进入相应的界面(管理员权限(用整数 1 表示)进入后台界面,操作员权限 (用整数 0 表示) 进入前台界面,否则询问是否继续登录或退出系统,最多登录验证 3 次 输入:当前目录下文件 managers.txt,用户名和密码 输出:无 */ void login(); /菜单类 /前台菜单 void reception(); /后台菜单 void backstage(); 4.2.2 函数文件 dssx14.c /比赛项目信息设置 /* 功能: 输入: 输出: 第 16 页 */ void setXmInfo() int i; printf(“n 请输入男子项目。“); for(i=1;inext=(SchoolLink *)malloc(sizeof(SchoolLink); p-school.serial=i; printf(“请输入 NO%d 学校的名称:“,i); scanf(“%s“,p-school.schoolName); p-school.allCount=0; p-school.allscore=0; p-school.jifeng=0; p-school.menScore=0; 第 17 页 p-school.womenScore=0; p-next=NULL; return head; /向学校信息单链表添加一个获奖学生的获奖信息 /* 功能:向学校信息单链表添加一个获奖学生的获奖信息,并修改学校得分和积 分 输入:获奖学生的姓名,性别,参赛编号,成绩和名次 输出:无 */ void Add_One_StudentScore(SchoolLink *head) int schoolid; char studentName20; int sex; int xm_id; int score; int range; SchoolLink *p; printf(“n 请输入获奖学生所在学校的 ID:“); scanf(“%d“, printf(“n 请输入获奖学生的姓名:“); scanf(“%s“,/1 表示男生,0 表示女生 printf(“n 请输入获奖学生的性别:“); scanf(“%d“, printf(“n 请输入获奖学生参赛项目的 ID:“); scanf(“%d“, printf(“n 请输入获奖学生的比赛成绩:“); scanf(“%d“, printf(“n 请输入获奖学生的比赛名次:“); scanf(“%d“, /printf(“aaaaa“); p=head-next; /printf(“bbbbb“); while(p) if(p-school.serial=schoolid) p-school.allCount+; /printf(“ccccc“); strcpy(p-school.studentp-school.allCount.studentName,studentName); p-school.studentp-school.allCount.score=score; p-school.studentp-school.allCount.range=range; 第 18 页 p-school.studentp-school.allCount.sex=sex; p-school.studentp-school.allCount.item=xm_id; /else p=p-next; /添加所有获奖学生成绩 /* 功能:调用 void Add_One_StudentScore(SchoolLink *);添加所有获奖学生成绩 输入: 输出: */ void Add_All_StudentScore(SchoolLink *head) int studentcount,i; printf(“n 输入获奖总人数:“); scanf(“%d“, for(i=1;inext; while(p) for(i=1;ischool.allCount;i+) 第 19 页 totalscore+=p-school.studenti.score;/依次累加该校学生获奖分 数 if(p-school.studenti.sex) menscore+=p-school.studenti.score;/依次累加该校男生获 奖分数 else womenscore+=p-school.studenti.score;/依次累加该校女生 获奖分数 item_i=p-school.studenti.item; if(xm_Titem_i.selectCount=5)/取前五名的积分 switch(p-school.studenti.range) case 1:jf+=7;break; case 2:jf+=5;break; case 3:jf+=3;break; case 4:jf+=2;break; case 5:jf+=1;break; if(xm_Titem_i.selectCount=3)/取前 3 名的积分 switch(p-school.studenti.range) case 1:jf+=5;break; case 2:jf+=3;break; case 3:jf+=1;break; p-school.jifeng=jf; p-school.allscore=totalscore; p-school.menScore=menscore; p-school.womenScore=womenscore; p=p-next; menscore=0; womenscore=0; totalscore=0; jf=0; 第 20 页 4.2.3 主函数文件 dssx14main.c #include“dssx14.h“ extern int SchoolCount=0;/参赛学校总数 extern int boyCount=0;/男生项目总数 extern int girlCount=0;/女生项目总数 extern int xmCount=0;/比赛项目总数 extern XM_TABLE xm_T41;/比赛项目表 extern SchoolLink * SchoolTable; void main() int n,m=1; while(m) system(“cls“); printf(“*欢迎使用运动会积分系统 *n“); printf(“(1)前台服务(普通人员身份登录)n“); printf(“(2)后台服务(管理员身份登录)n“); printf(“(0)退出n“); printf(“请选择您的身份进行登录:“); scanf(“%d“, switch(n) case 1: reception(); break; case 2: login(); break; case 0: m=0; break; default: printf(“您的输入有误,任意键继续.n“); getchar(); 第 21 页 五五. .程序测试结果程序测试结果及问题分析及问题分析 5.15.1 程序测试结果程序测试结果 主界面 前台服务界面 后台服务界面 第 22 页 学校成绩明细 第 23 页 团体总分排序 手工输入数据 5.25.2 问题分析:问题分析: 1、调试过程中我遇到的问题是:“您所引用的内存不能写!”通过对变量的调 整此问题得以解决。 2、上述算法的时间复杂度和空间复杂度较好,改进设想:将程序中所用到的变 量以数组形式代替大量变量名使相应算法用循环语句重新整合; 3、在设计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水利工程质量管理及保证措施
- 体育高考冬季训练计划
- 工厂食堂食品安全管理机构职责
- 供热通风与空调工程技术专业顶岗实习总结范文
- 市场营销人员德能勤绩廉述职报告范文
- 商业地产大型集体活动审批制度流程
- 幼儿园保健医沟通与协调能力计划
- 户外活动疫情防控措施
- 学生电子信息道德培养计划
- 国内外学校物业管理对比计划
- 高级保育师试题(含答案)
- 基础护理学练习题和答案
- 项目管理中期答辩
- 2025-2030中国美容院行业市场深度调研及发展趋势和前景研究报告
- 2025年2月超算中心硬件维护技术服务合同
- 《热力公司各岗位工作流程及工作职责》
- 中药饮片处方书写规范
- 运维保障方案
- 【浙江大学(姚畅)】2025年AI大模型如何破局传统医疗报告
- 天翼云认证高级解决方案架构师练习试题附答案
- 危重症镇痛镇静的护理
评论
0/150
提交评论