⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainfile.c

📁 校际运动会管理程序,实现功能运动会管理的大部分功能。
💻 C
📖 第 1 页 / 共 2 页
字号:
	}
	return _TRUE;
}
/************************************************************************/
/* 填充参赛学校信息                                                     */
/************************************************************************/
Bool SetSchoolInfo(int* pnTotalNmOfSch)
{
	int i=0;
	if (!SetSchoolTotalNum(pnTotalNmOfSch)) {
		printf("\nerr!");
		return _FALSE;
	}
	else{
		g_school.nTotalNmOfSch=*pnTotalNmOfSch;		
		for(i=0;i<g_school.nTotalNmOfSch;i++)
		{
			g_school.schInfoArray[i].SchoolNum=i+1;
			printf("\n请输入编号为%d的学校名称:",i+1);
			scanf("%s",g_school.schInfoArray[i].schoolName);
			g_school.schInfoArray[i].schoolName[MAXLENGTH-1]='\0';/*截断多余字符*/
		}
	}
	return _TRUE;
}
/************************************************************************/
/* 打印参赛学校信息                                                     */
/************************************************************************/
Bool GetSchoolInfo()
{	
	int i=0;
	printf("\n共有%d个学校参赛",g_school.nTotalNmOfSch);
	for(i=0;i<g_school.nTotalNmOfSch;i++)
	{
		printf("\n学校编号:%d",g_school.schInfoArray[i].SchoolNum);
		printf("    校名:%s",g_school.schInfoArray[i].schoolName);
	}
	return _TRUE;
}

/************************************************************************/
/*为某个竞赛项目设定比赛结果信息                                        */
/************************************************************************/
void SetPositionForOneSport(int sportNum/*项目编号-1*/)
{
	int i=0,j=0;
	Bool err=_FALSE;
	printf("\n--------- ------------    --------- ------");
	printf("\n填写项目%d的比赛结果",sportNum+1);
	for(i=0;i<g_sport.sportInfoArray[sportNum].scrInfo.total;i++)
	{
		ptrNew=(pPosition)malloc(LEN);
		if (ptrHead==(pPosition)NULL)
		{
			ptrHead=ptrThis=ptrNew;
		}
		else
		{
			ptrThis=ptrHead;
			while (ptrThis->ptrNext!=(pPosition)NULL)
			{
				ptrThis=ptrThis->ptrNext;
			}
			ptrThis->ptrNext=ptrNew;
			ptrThis=ptrNew;
		}
		/*项目编号*/
		ptrThis->sportNum=sportNum+1;
		printf("\n输入获得第%d名的学生信息",i+1);
		/*姓名*/
		printf("\n姓名:");
		scanf("%s",ptrThis->name);

		/*学校编号*///检查编号合法性
		do {
			printf("\n学校编号:");
			scanf("%d",&ptrThis->schoolNum);				
			if (ptrThis->schoolNum<=0||ptrThis->schoolNum>g_school.nTotalNmOfSch) {
				printf("\n学校编号必须大于0小于等于%d",g_school.nTotalNmOfSch);
				err=_FALSE;
			}
			else
			{
				err=_TRUE;
			}			
		} while(err==_FALSE);
		
		/*名次*/
		ptrThis->score=i+1;
		ptrThis->ptrNext=(pPosition)NULL;
	}	
}
/************************************************************************/
/* 填充所有竞赛项目结果信息                                             */
/************************************************************************/
void SetPositionForAllSports()
{
	int i=0;
	for(i=0;i<g_sport.nTotalNmOfFSprt+g_sport.nTotalNmOfMSprt;i++)
	{
		system("cls");
		SetPositionForOneSport(i);
	}
	return;
}
/************************************************************************/
/* 根据竞赛项目编号获得对应项目名称                                     */
/************************************************************************/
char* GetSportName(int sportNum)
{
	int i=0;
	for(i=0;i<g_sport.nTotalNmOfFSprt+g_sport.nTotalNmOfMSprt;i++)
	{
		if (sportNum==g_sport.sportInfoArray[i].sportNum) {
			break;
		}
	}
	if (i==g_sport.nTotalNmOfFSprt+g_sport.nTotalNmOfMSprt) {
		return NULL;
	}
	return g_sport.sportInfoArray[i].sportName;
}
/************************************************************************/
/*获取指定竞赛项目的某一名次所对应的分值                                */
/************************************************************************/
int GetPower(int sportNum/*项目编号*/,int score/*名次*/)
{
	int i=0;
	for(i=0;i<g_sport.nTotalNmOfFSprt+g_sport.nTotalNmOfMSprt;i++)
	{
		if (sportNum==g_sport.sportInfoArray[i].sportNum) {
			break;
		}
	}
	if (i==g_sport.nTotalNmOfFSprt+g_sport.nTotalNmOfMSprt) {
		return (int)-1;
	}
	return g_sport.sportInfoArray[i].scrInfo.power[score-1];
}

/************************************************************************/
/*   按学校打印成绩                                                     */
/************************************************************************/
void GetScoreBySchool()
{
	int schnum;/*学校编号*/
	if (g_school.nTotalNmOfSch<=0)
	{
		printf("\n没有学校参加比赛");
		return;
	}
	printf("\n请输入您想查询的学校编号:");
	scanf("%d",&schnum);

	if (schnum>g_school.nTotalNmOfSch||schnum<=0) 
	{
		printf("\n学校编号必须大于0小于等于%d",g_school.nTotalNmOfSch);
		return;
	}

	if(ptrHead==(pPosition)NULL)
	{
		printf("\n没有比赛结果");
		return;
	}

	ptrThis=ptrHead;
	printf("\n学校编号:%d  校名:%s",schnum,g_school.schInfoArray[schnum-1].schoolName);
	printf("\n\n 项目号            项目名称  名次              姓名 得分");
	printf("\n  ----------  ---------------  ----  ----------------  ----");
	do {
		if (ptrThis->schoolNum==schnum) 
		{
			printf("\n%5d",ptrThis->sportNum);/*项目号*/
			printf("%20s",GetSportName(ptrThis->sportNum));/*项目名称*/
			printf("%5d",ptrThis->score);/*名次*/
			printf("%20s",ptrThis->name);/*姓名*/
			printf("%5d",GetPower(ptrThis->sportNum,ptrThis->score));
		}
		ptrThis=ptrThis->ptrNext;
	} while(ptrThis!=(pPosition)NULL);
}
/************************************************************************/
/* 生成报表                                                             */
/************************************************************************/
void GetReport()
{
	int i,j,manTotal=0,womTotal=0,Total=0;/*男子团体总分,女子团体总分,团体总分*/
	
	if(ptrHead==(pPosition)NULL)
	{
		printf("\n没有比赛结果");
		return;
	}	
	ptrThis=ptrHead;
	
	printf("\n团体总分报表:");
	printf("\n\n学校编号           学校校名   男子团体总分    女子团体总分      团体总分");
	printf("\n---------    ----------------  -------------   -----------    -----------");
	for(i=0;i<g_school.nTotalNmOfSch;i++)
	{
		manTotal=0;womTotal=0;Total=0;
		ptrThis=ptrHead;
		do {
			if(ptrThis->schoolNum==g_school.schInfoArray[i].SchoolNum)/*同一学校*/
			{
				for(j=0;j<g_sport.nTotalNmOfFSprt+g_sport.nTotalNmOfMSprt;j++)
				{
					if (ptrThis->sportNum==g_sport.sportInfoArray[j].sportNum) {/*某一竞赛项目*/
						if (g_sport.sportInfoArray[j].sprtTyp==_MAN) {
							manTotal+=g_sport.sportInfoArray[j].scrInfo.power[ptrThis->score-1];
						}
						else{
							womTotal+=g_sport.sportInfoArray[j].scrInfo.power[ptrThis->score-1];
						}						
					}
				}
			}
			ptrThis=ptrThis->ptrNext;			
		} while(ptrThis!=(pPosition)NULL);	
		Total+=manTotal+womTotal;
		printf("\n%5d",g_school.schInfoArray[i].SchoolNum);
		printf("%20s",g_school.schInfoArray[i].schoolName);
		printf("%10d",manTotal);
		printf("%15d",womTotal);
		printf("%15d\n",Total);		
	}
}
/************************************************************************/
/* 打印竞赛项目信息                                                     */
/************************************************************************/
void GetSportInfo()
{
	int i,j;
	system("cls");
	printf("\n您输入的比赛项目信息如下:");
	printf("\n----- -------- ------- -------");
	for(i=0;i<g_sport.nTotalNmOfFSprt+g_sport.nTotalNmOfMSprt;i++)
	{
		printf("\n项目编号:%d  项目名称:%s",g_sport.sportInfoArray[i].sportNum,GetSportName(g_sport.sportInfoArray[i].sportNum));
		for(j=0;j<g_sport.sportInfoArray[i].scrInfo.total;j++)
		{
			printf("\n    第%d名   得分:%d",j+1,g_sport.sportInfoArray[i].scrInfo.power[j]);
		}
	}
	printf("\n按任意键继续");
	getch();
}
/************************************************************************/
/* 打印名次链表信息                                                     */
/************************************************************************/
void GetList()
{
	int i=0,j;
	int n=0;
	if(ptrHead==(pPosition)NULL)
	{
		printf("\n没有比赛结果");
		return;
	}	
	ptrThis=ptrHead;
	do {
		printf("\n第%d个结点:",n++);
		for(i=0;i<g_sport.nTotalNmOfFSprt+g_sport.nTotalNmOfMSprt;i++)
		{
			if (ptrThis->sportNum==g_sport.sportInfoArray[i].sportNum) {
				break;
			}
		}
		if (i==g_sport.nTotalNmOfFSprt+g_sport.nTotalNmOfMSprt) {
			return;
		}
		printf("\n  项目编号:%d",ptrThis->sportNum);
		for(j=0;j<g_sport.sportInfoArray[i].scrInfo.total;j++)
		{
			printf("\n名次:%d  分值%d",j+1,g_sport.sportInfoArray[i].scrInfo.power[j]);
		}
		ptrThis=ptrThis->ptrNext;
	} while(ptrThis!=(pPosition)NULL);	
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -