最近天天混死了,综述这两天要快点写完
现在把这学期期末的数据结构课设提交一下
得分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&&id 0){ school tmp=schools[j]; schools[j]=schools[j+1]; schools[j+1]=tmp; } printf("按照学校名升序排列的学校名:n"); for(int i=1;i school_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 欢迎分享,转载请注明来源:内存溢出
评论列表(0条)