资源简介
设计内容:参加运动会有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) 可以按学校编号查询学校某个项目的情况;
5) 可以按项目编号查询取得前三或前五名的学校。

代码片段和文件信息
#include
#include
#include
#define LT(ab) ((a)<(b))
#define LIST_INIT_SIZE 100//线性表存储空间的初始分配量
#define LISTINCREMENT 10//线性表存储空间的分配增量
typedef int InfoType; // 定义其它数据项的类型
typedef int KeyType; // 定义关键字类型为整型
struct RedType // 记录类型
{
KeyType key; // 关键字项
InfoType otherinfo; // 其它数据项,具体类型在主程中定义
};
typedef struct
{
int schnum;//学校的编号
int mscore[20];//学校在各个男生项目的积分
int wscore[20];//学校在各个女生项目的积分
}school;//学校记录类型
typedef int ElemType;
struct SqList
{
ElemType *elem;// 存储空间基址
int length; // 当前长度
int listsize; // 当前分配的存储容量(以sizeof(ElemType)为单位)
};
struct List
{
RedType r[20];
int length;
};
int InitList(SqList &L) // 算法2.3
{ // 操作结果:构造一个空的顺序线性表
L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));
if(!L.elem)
exit(-1); // 存储分配失败
L.length=0; // 空表长度为0
L.listsize=LIST_INIT_SIZE; // 初始存储容量
return 1;
}
int ListInsert(SqList &Lint iElemType e) // 算法2.4
{ // 初始条件:顺序线性表L已存在,1≤i≤ListLength(L)+1
// 操作结果:在L中第i个位置之前插入新的数据元素e,L的长度加1
ElemType *newbase*q*p;
if(i<1||i>L.length+1) // i值不合法
return 0;
if(L.length>=L.listsize) // 当前存储空间已满增加分配
{
if(!(newbase=(ElemType *)realloc(L.elem(L.listsize+LISTINCREMENT)*sizeof(ElemType))))
exit(-1); // 存储分配失败
L.elem=newbase; // 新基址
L.listsize+=LISTINCREMENT; // 增加存储容量
}
q=L.elem+i-1; // q为插入位置
for(p=L.elem+L.length-1;p>=q;--p) // 插入位置及之后的元素右移
*(p+1)=*p;
*q=e; // 插入e
++L.length; // 表长增1
return 1;
}
void InsertSort(List &L)
{ // 对顺序表L作直接插入排序。算法10.1
int ij;
for(i=2;i<=L.length;++i)
if LT(L.r[i].keyL.r[i-1].key) // “<“需将L.r[i]插入有序子表
{
L.r[0]=L.r[i]; // 复制为哨兵
for(j=i-1;LT(L.r[0].keyL.r[j].key);--j)
L.r[j+1]=L.r[j]; // 记录后移
L.r[j+1]=L.r[0]; // 插入到正确位置
}
}
void print(List L)
{
int i;
for(i=1;i<=L.length;i++)
printf(“(%d%d%d)\n“L.length-i+1L.r[i].otherinfoL.r[i].key);
printf(“\n“);
}
void main() //规定男生项目前三名分别积分5、3、2,女生项目前五名分别积分7、5、3、2、1
//规定没有名次则积分为0 ,不考虑并列的情况
//请正确输入各学校对应项目的积分
{
int nmwij;
school a[20];
int summscore[20]sumwscore[20]sumscore[20];//定义存储各个学校男团、女团、总分
RedType d[20];//定义排序所需的数组为RedType型
SqList LLmLw;//定义存放各个学校总分、男团、女团积分的顺序线性表
List Lr;//定义积分排序所需的顺序线性表
InitList(L);//初始化各线性表
InitList(Lm);
InitList(Lw);
cout<<“请输入参加运动会的学校数目(5~20):“< cin>>n;
while(n<5||n>20)
{
cout<<“输入学校数目有误,请重新输入!“< cout<<“请输入参加运动会的学校数目(5~20):“< cin>>n;
}
cout<<“请分别输入男生、女生的项目数目(1~20):“< cin>>m>>w;
cout<<“规定男生项目前三名分别积分5、3、2“< cout<<“女生项目前五名分别积分7、5、3、2、1“< cout<<“没有名次则积分为0且本程序不涉及并列排名的情况!“< cout<<“请正确输入各学校对应项目的积分!\n“< for(i=1;i<=n;i++)
{
a[i-1].schnum=i;//赋给学校对应的编号
printf(“请输入学校 %d 男生各个项目的成绩:\n“i);
for(j=1;j<=m;j++)//分别输入对应学校的各个男生项目的积分情况
cin>>a[i-1].mscore[j-1];
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
.CA.... 8779 2009-01-06 12:45 运动会分数统计.cpp
文件 31232 2010-01-07 22:50 测试数据.doc
----------- --------- ---------- ----- ----
40011 2
相关资源
- 数据结构年终考题范围和答案 耿国华
- 数据结构 朱战力 习题解答 数据结构
- 数据结构课程设计 6 1 彩票系统
- 教学计划编制系统
- 大数(链表、数组)实现
- 自己写的航空订票系统c 版--数据结构
- 数据结构实验魔王语言
- 航空订票系统_数据结构课程设计
- 多项式求和(数据结构C 版)
- 尚观培训linux董亮老师关于数据结构的
- 数据结构 知识点总结
- 华南理工大学数据结构复习提纲二
- 华南理工大学数据结构复习提纲一
- 数据结构用C 写的停车场系统源代码
- 数据结构(河北科技大学)
- 数据结构考前习题 清华大学出版社
- 数据结构课件(北邮)
- 数据结构实验 基于栈的表达式求值
- 数据结构课程设计——图书管理系统
- 成绩管理系统(数据结构)
- 数据结构-最小通信网问题
- 数据结构课程设计同学通讯录系统
- 数据结构课程设计 公园导游图
- 数据结构殷人昆版的课后答案
- 2006年湖北工业大学409数据结构试题
- 数据结构实验-魔王语言-源码加实验报
- 简单计算器的实现(数据结构)
- 简单计算器的实现(数据结构 修正版
- Fundamentals of Data Structure in C
- 北京邮电大学数据结构历年考研真题
评论
共有 条评论