数据结构课设--运动会成绩管理

数据结构课设--运动会成绩管理,第1张

数据结构课设--运动会成绩管理

最近天天混死了,综述这两天要快点写完
现在把这学期期末的数据结构课设提交一下
得分91

我只提交了代码,文档部分我不会提交

#include
#include
#include
#include 
#include
#include

//宏定义 
#define MAX 50 

//函数声明
void input_file_school();
void input_file_xiangmu();
void create_file_xiangmu();
void Menu();
void input_score_menu();
void out();
void print_school();
void print_xiangmu_male();
void print_xiangmu_female();
void input_male_xiangmu_score(int id);
void input_male_xiangmu_score_menu();
void input_female_xiangmu_score(int id);
void input_female_xiangmu_score_menu();
void printf_sorted_total_score();
void printf_sorted_male_score();
void printf_sorted_name();
void printf_sorted_female_score();
void search_school_xiangmu_menu();
void initialize();
void sorted_menu();
void search_school_xiangmu_menu_male();
void search_school_xiangmu_menu_female();
void print_school_2();
void search_menu();
void search_gender_xiangmu_menu();


//--------------------------------------


//数据结构创建:
typedef int ElemType;//数据元素类型定义,此处选择常用的int,后续可根据数据类型自行更改 

//线性表的单链表存储结构(结构指针):
typedef struct LNode{
	ElemType data;//数据域 
	struct LNode*next;//指针域 
}LNode,*linkList;//LNode是struct LNode的别名,linkList是LNode的指针(linkList=struct LNode*)

//创建具有头结点的链表函数
//空的链表 
linkList Create(){
	//n为传入元素个数
	linkList L;
	L=(linkList)malloc(sizeof(LNode));
	L->next=NULL;
	return L;
} 

void ListInsert(linkList L,ElemType e){//注意传入linkList &L,是引用的意思,函数体内可以更改L的元素的值,也可以更改L的值 
	//在末尾插入数字 
	while(L->next){
		L=L->next;
	}
	linkList p=(linkList)malloc(sizeof(LNode));
	L->next=p;
	p->next=NULL;
	p->data=e;
}

void PrintlinkList(linkList L){
	//传入L为头指针(head)
	if(L->next==NULL)
		return ;
	L=L->next;//现在L指向数据元素结构体的第一个 
	if(L->data){//得有值 
		while(L->next){
			printf("%d ",L->data);L=L->next;
		}	
		printf("%dn",L->data);//最后那个结构体的指针域是NULL,但是数据域有值,别忘了输出  
	}
	return ;	
}
//-----------------------------------------------------------------------------------------


//---------------------------------------
//全局变量定义 
int male_xiangmu_num=1;
int female_xiangmu_num=1;
int school_num=1;
//--------------------------------------- 




//--------------------------------------
//定义各种结构体 
struct name_pointer{
	char xiangmu_name[MAX];
	int id;
	linkList List_head=NULL;//默认为NULL 
};

struct school{
	int id;
	char school_name[MAX];
	int total=0;
	int male_total=0;
	int female_total=0;
	name_pointer name_pointer_male[MAX];//这是一个结构体,里面存储各个项目的名字以及对应的地址 
	name_pointer name_pointer_female[MAX];
};

struct xiangmu_rating{
	int i;
	int num;
	char name_rating[MAX][MAX];
};

struct xiangmu{
	int id;
	char xiangmu_name[MAX];
};

struct xiangmu_file{
	int id;
	char file_name[MAX];
};


//------------------------------------------------------------
//结构体数组定义 
school schools[MAX];
xiangmu xiangmus_male[MAX];//男生项目数组 
xiangmu xiangmus_female[MAX];//女生项目数组 
xiangmu_file xiangmu_files_male[MAX];//男生文件数组 
xiangmu_file xiangmu_files_female[MAX];//女生文件数组
xiangmu_rating xiangmu_rating_male[MAX];//男生项目前几名排名
xiangmu_rating xiangmu_rating_female[MAX];//女生项目前几名排名 
// 指向各个项目的指针数组 
linkList male_pointer[MAX];
linkList female_pointer[MAX];
int rating_five_score[6]={0,7,5,3,2,1};
int rating_three_score[4]={0,5,3,2};


//功能函数






//读取学校信息 
void input_file_school(){
    FILE *fp;
    if((fp=fopen("school.txt","r"))==NULL)  //打开文件
    {
        printf("Can not open file!n");
        exit(1);
    }
    while(!feof(fp))    //读取到文件尾
    {
        fscanf(fp,"%d %s",&schools[school_num],schools[school_num].school_name);
        school_num++;
    }
}
//从文件中读取项目 
void input_file_xiangmu(){
    FILE *fp;
    if((fp=fopen("xiangmu_male.txt","r"))==NULL)  //打开文件
    {
        printf("Can not open file!n");
        exit(1);
    }
    while(!feof(fp))    //读取到文件尾
    {
        fscanf(fp,"%d %s",&xiangmus_male[male_xiangmu_num].id,xiangmus_male[male_xiangmu_num].xiangmu_name);
        for(int i=1;i=1&&id=1&&id0){
				school tmp=schools[j];
				schools[j]=schools[j+1];
				schools[j+1]=tmp;
			}
	printf("按照学校名升序排列的学校名:n"); 
	for(int i=1;ischool_num){
		printf("输入错误,按任意键重新输入!n");
		getch();
		search_school_xiangmu_menu();
	}
	else{
	printf("男生项目情况:n");
	for(int i=1;i=male_xiangmu_num){
		printf("输入错误!n");
		printf("按任意键重新输入!n");
			getch();
	}
	for(int i=1;i<=xiangmu_rating_male[n].num;i++){
		printf("%sn",xiangmu_rating_male[n].name_rating[i]);
	}
		printf("按任意键继续!n");
			getch();
}

void search_school_xiangmu_menu_female(){
	system("cls");
	printf("******************************************************************************************************************nn");
	print_xiangmu_female();
	printf("请输入查询的项目:n");
	int n;
	scanf("%d",&n);
	if(n<1||n>=female_xiangmu_num){
		printf("输入错误!n");
		printf("按任意键重新输入!n");
			getch();
	}
	else{
		for(int i=1;i<=xiangmu_rating_female[n].num;i++){
		printf("%sn",xiangmu_rating_female[n].name_rating[i]);
	}
		printf("按任意键继续!");
			getch();
	}
	
}

//打印所有学校2
void print_school_2(){
	printf("所有参赛学校如下:n");
	for(int i=1;i					
										


					

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5718477.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存