同学录管理系统(C语言)

同学录管理系统

实现学生通讯录管理的几个操作功能(新建、插入、删除、从文件中读取、写入文件和查询、屏幕输出等功能)。通讯录中学生的信息有学号、姓名、出生日期、性别、电话和地址等。

[内容]

1、利用链式存储结构来实现

2、系统的菜单功能项如下:

1----新建学生通讯录

2----向学生通讯录插入学生信息

3----在通讯录删除学生信息

4----在文件中读取通讯录信息

5----向文件中写入学生通讯录信息

6----在通讯录中查询学生信息

7----在屏幕中输出全部学生信息

8----退出
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 100
#define len sizeof(Student)
/*定义一个学生类型的结构体 sizeof(Student)
所用的空间的大小赋值给变量len*/
static int De;
static int De2;
typedef struct Classmaterecord *Position;
typedef Position BinTree;
BinTree BT;

typedef struct Classmaterecord
{
	int number; //学号 
	char name[N]; //姓名
	char sex[N]; //性别
	char phone[N]; //电话号码 
	BinTree Left;//左子树
	BinTree Right;  //右子树
}Student;
void init()//初始化
{
	BT==NULL;
}
void Traversal( );//显示 先序、中序、后序实现遍历
	void Preorder(BinTree BT);
	void Inorder(BinTree BT);
	void Postorder(BinTree BT);

void Find();//查找 按学号、姓名、电话号码
	void FindBynum(BinTree BT,int number);
	void FindByname(BinTree BT,char name[]);
	void FindByphone(BinTree BT,char phone[]);

void FindBynum(BinTree BT,int number){//按照学号进行查找
	if(BT!= NULL){
		FindBynum(BT->Left,number);
		if(BT->number==number){
			system("cls");
			printf("\n==============================所查同学数据===========================\n"); 
			printf("\n--------学号-------------姓名-----------性别-----------手机号码------\n");
			printf("\n\t%3d\t",BT->number);
			printf("\t%3s\t",BT->name);
			printf("\t%3s\t",BT->sex);
			printf("\t%3s\t",BT->phone);
			printf("\n\n");
			}
		FindBynum(BT->Right,number);
		}
}
void FindByname(BinTree BT,char name[]) //按照名字查找 遍历查找
{
	if(BT != NULL){
		FindByname(BT->Left,name);
		if(strcmp(BT->name,name) == 0){
			system("cls");
			printf("\n===============================所查同学数据============================\n"); 
			printf("\n--------学号-------------姓名-----------性别-----------手机号码-----\n");
			printf("\n\t%3d\t",BT->number);
			printf("\t%3s\t",BT->name);
			printf("\t%3s\t",BT->sex);
			printf("\t%3s\t",BT->phone);
			printf("\n\n");
			}
		FindByname(BT->Right,name);
		}
}
void FindByphone(BinTree BT,char phone[]){ //按照电话号码进行查找
	if(BT!=NULL){
		FindByphone(BT->Left,phone);
		if(strcmp(BT->phone,phone)==0){
			system("cls");
			printf("\n==============================所查同学数据==========================\n"); 
			printf("\n--------学号-------------姓名-----------性别-----------手机号码-----\n");
			printf("\n\t%3d\t",BT->number);
			printf("\t%3s\t",BT->name);
			printf("\t%3s\t",BT->sex);
			printf("\t%3s\t",BT->phone);
			printf("\n\n");
			}
	FindByphone(BT->Right,phone);
	}
}
//显示前序遍历的结果
void Preorder(BinTree BT){
	if(BT!=NULL){
		printf("\n\t%d\t",BT->number);
		printf("\t%s\t",BT->name);
		printf("\t%s\t",BT->sex);
		printf("\t%s\t",BT->phone);
		printf("\n\n");
		Preorder(BT->Left);
		Preorder(BT->Right);
	}
}
//中序遍历
void Inorder(BinTree BT){
	if(BT!=NULL){
		Inorder(BT->Left);
		printf("\n\t%3d\t",BT->number);
		printf("\t%3s\t",BT->name);
		printf("\t%3s\t",BT->sex);
		printf("\t%3s\t",BT->phone);
		printf("\n\n");
		Inorder(BT->Right);
	}
}
//后序遍历
void Postorder(BinTree BT){
	if(BT!=NULL){
		Postorder(BT->Left);
		Postorder(BT->Right);
		printf("\n\t%3d\t",BT->number);
		printf("\t%3s\t",BT->name);
		printf("\t%3s\t",BT->sex);
		printf("\t%3s\t",BT->phone);
		printf("\n\n");
		}
}
void Traversal()
{
	printf("显示原来的预置数组里同学的信息\n");
	printf("----------------------------------------------------------\n");
	printf("(1)先序遍历预置数组里同学的信息\n");
	printf("(2)中序遍历预置数组里同学的信息\n");
	printf("(3)后序遍历预置数组里同学的信息\n");
	printf("(0)返回主菜单\n");
	printf("----------------------------------------------------------\n");
	printf("请输入你的选择(0-3):\n");
    int i;
    scanf("%d",&i);
	switch(i){
		case 1:	{
				system("cls");
				printf("\n--------学号-------------姓名-----------性别-----------手机号码-----\n");
				Preorder(BT);
				break;
				}
		case 2:{
				system("cls");
				printf("\n--------学号-------------姓名-----------性别-----------手机号码-----\n");
				Inorder(BT);
				break;
				}
		case 3:{
				system("cls");
				printf("\n--------学号-------------姓名-----------性别-----------手机号码-----\n");	
				Postorder(BT);
				break;
				}
		case 0:system("cls");
			break;
		}
}
void Find(){
	printf(" 查找同学的信息\n");
	printf("----------------------------------------------------------\n");
	printf("(1)按照学号查找同学的信息\n");
	printf("(2)按照姓名查找同学的信息\n");
	printf("(3)按照电话查找同学的信息\n");
	printf("(0)返回主菜单\n");
	printf("----------------------------------------------------------\n");
	printf("请输入你的选择(0-4): ");
	int i;
    scanf("%d",&i);
	if(i==1){
		int number;
		printf("\n请输入学号:") ;
		scanf("%d",&number);
		FindBynum(BT,number);
		}
	else if(i==2){
		char name[N];
		printf("\n请输入姓名:") ;
		scanf("%s",name);
		FindByname(BT,name);
		}
	else if(i==3){
		char phone[N];
		printf("\n请输入手机号码:") ;
		scanf("%s",phone);
		FindByphone(BT,phone);
		}
}
void Delete();//删除 按学号、姓名、电话号码
	void chazhao(BinTree BT, char name[]);
	void chazhao1(BinTree BT, char phone[]);
	BinTree DeleteBynum(BinTree BT,int number); 
	
Student *FindMin(BinTree BT)
{
	if(!BT){ //空的二叉树,返回NULL
		return NULL;
		}
	else{
		if(!BT->Left)
		return BT; //找到最左叶的结点并返回
		else{
			return FindMin(BT->Left); //沿着左分支继续查找
			}
		}
}

void chazhao(BinTree BT, char name[])//有名字查找学号 
{
	BinTree D;
	D=BT;
	if(D!=NULL)
	{	
	    chazhao(D->Left,name);
		chazhao(D->Right,name);
		if(strcmp(D->name,name)==0){
        De=D->number;
		}
    }
	}
void chazhao1(BinTree BT, char phone[]) //由电话查找学号 
{
	BinTree D;
	D=BT;
	if(D!=NULL){	
	    chazhao1(D->Left,phone);
		chazhao1(D->Right,phone);
		if(strcmp(D->phone ,phone)==0){
        	De2=D->number;
			}
    	}
}

BinTree DeleteBynum(BinTree BT,int number){	//由学号删除 
	BinTree Tmp;
	if( !BT ) 
        printf("要删除的元素未找到"); 
    else {
        if( number<BT->number ) 
            BT->Left = DeleteBynum( BT->Left, number );   /* 从左子树递归删除 */
        else if( number> BT->number  ) 
            BT->Right = DeleteBynum( BT->Right,number ); /* 从右子树递归删除 */
        else { 							/* BT就是要删除的结点 */
            							/* 如果被删除结点有左右两个子结点 */ 
            if( BT->Left && BT->Right ) {
                						/* 从右子树中找最小的元素填充删除结点 */
                Tmp = FindMin( BT->Right );
                BT->number=Tmp->number;
                strcpy(BT->name,Tmp->name);
                strcpy(BT->phone,Tmp->phone);
                strcpy(BT->sex,Tmp->sex);
                						/* 从右子树中删除最小元素 */
                BT->Right = DeleteBynum( BT->Right, BT->number );
            }
            else { 						/* 被删除结点有一个或无子结点 */
                Tmp = BT; 
                if( !BT->Left )     	/* 只有右孩子或无子结点 */
                    BT = BT->Right; 
                else                 	/* 只有左孩子 */
                    BT = BT->Left;
                free( Tmp );
            }
        }
    }
    return BT;
}
void Delete()//删除按学号、姓名、电话号码
{
	printf(" 删除同学的信息\n");
	printf("----------------------------------------------------------\n");
	printf("(1)根据学号做为索引删除同学的信息\n");
	printf("(2)根据姓名作为索引删除同学的信息\n");
	printf("(3)根据电话做为索引删除同学的信息\n");
	printf("(0)返回主菜单\n");
	printf("----------------------------------------------------------\n");
	printf("请输入你的选择(0-3):\n");
	int i;
	scanf("%d",&i);
	if(i==1){
		int number;
		printf("请输入学号:");
		scanf("%d",&number);
		DeleteBynum(BT,number);
		}
	else if(i==2){
		char name[N];
		printf("请输入姓名:");
	    scanf("%s",name);
	    chazhao(BT,name);
	    DeleteBynum(BT,De);
		}
	else if(i==3){
		char phone[N];
		printf("请输入手机号:"); 
	    scanf("%s",phone);
	    chazhao1(BT,phone); 
		DeleteBynum(BT,De2);
		}
	system("cls"); 
	printf("\n====================================================================\n");
	printf("\t*****************||  删除成功! ||*****************\n");
	printf("====================================================================\n");
}
BinTree Add(int number,char name[],char sex[],char phone[],BinTree BT);//新增元素的添加(插入)
 
void Modify();//修改 按学号、姓名、电话号码
	void ModifyBynum(BinTree BT,int number);
	void ModifyByname(BinTree BT,char name[]);
	void ModifyByphone(BinTree BT,char phone[]);

void add()//添加数据 
{
	int number;
	printf("\n==================================添加同学数据===============================\n"); 
	printf("\n");
	printf("请输入学号:") ;
	scanf("%d",&number);
	printf("\n");
	printf("请输入姓名:") ;
	char name[N];
	scanf("%s",name);
	char sex[N];
	printf("\n");
	printf("请输入性别:") ;
	scanf("%s",sex);
	char phone[N];
	printf("\n");
	printf("请输入手机号:") ;
	scanf("%s",phone);
	BT = Add(number,name,sex,phone,BT);
	system("cls");
}

BinTree Add(int number,char name[],char sex[],char phone[],BinTree BT)
{
	if(BT==NULL){		// 判断根节点是否有人,没有人则执行插入操作 
		BT=(Student*)malloc(len);
		BT->number=number;
		strcpy(BT->name,name);
		strcpy(BT->sex,sex);
		strcpy(BT->phone,phone);
		BT->Left=NULL;
		BT->Right=NULL;
		}
	else{ 		//如果根结点有人
		if(number<BT->number){		//如果插入的学号比根结点的学号小,则放在左孩子结点
			BT->Left=Add(number,name,sex,phone,BT->Left);
			} 
		
		else if(number>BT->number){		//插入的学号比根节点的学号要大,则放在右孩子结点
			BT->Right=Add(number,name,sex,phone,BT->Right);
			}
		
		else if(number=BT->number){
			printf("插入结点失败,插入失败的结点是%d%s\n:",number,BT->name);
			}
		}
	return BT;
}//插入失败

	 
void ModifyBynum(BinTree BT,int number)//按学号修改 
{ 
	int k;
	if (BT != NULL){
		ModifyBynum(BT->Left,number);
		if(BT->number==number){
			printf("\t%d\t", BT->number);
			printf("%s\t", BT->name);
			printf("%s\t", BT->sex);
			printf("%s\n", BT->phone);
			while(1){
				printf("\n\n");
				printf(" 1: 姓名\n");
				printf(" 2: 性别\n");
				printf(" 3: 电话\n");
				printf(" 0:退出修改\n");
				scanf("%d",&k);
				switch(k){
					case 1:{
						char name[N];
						printf("请输入名字:");
						scanf("%s",&name);
						strcpy(BT->name,name);
						}break;
				
					case 2:{
						char sex[N];
						printf("请输入性别:");
						scanf("%s",&sex);
						strcpy(BT->sex,sex);
						}break;
				
					case 3:{
						char phone[N];
						printf("请输入新号码:");
						scanf("%s",phone);
						strcpy(BT->phone,phone);
						}break;
				
					case 4:{
						printf("\t学号\t姓名\t性别\t电话\n");
						printf("\t%d\t",BT->number);
						printf("%s\t",BT->name);
						printf("%s\t",BT->sex);
						printf("%s\n",BT->phone);
						printf("\n");
					}break;
					
					case 0:break;
				}
				if(k==0)break;
			}
			system("cls");
		}
	ModifyBynum(BT->Right,number);
	}
}

void ModifyByname(BinTree BT,char name[])//按姓名修改 
{ 
	int k;
	if(BT != NULL){
		ModifyByname(BT->Left,name);
		if(strcmp(BT->name,name)==0){
			printf("\t%d\t", BT->number);
			printf("%s\t", BT->name);
			printf("%s\t", BT->sex);
			printf("%s\n", BT->phone);
			while(1){
				printf("\n\n");
				printf(" 1: 姓名\n");
				printf(" 2: 性别\n");
				printf(" 3: 电话\n");
				printf(" 0:退出修改\n");
				scanf("%d",&k);
				switch(k){
					case 1:{
						char name[N];
						printf("请输入名字:");
						scanf("%s",&name);
						strcpy(BT->name,name);
						}break;
				
					case 2:{
						char sex[N];
						printf("请输入性别:");
						scanf("%s",&sex);
						strcpy(BT->sex,sex);
						}break;
				
					case 3:{
						char phone[N];
						printf("请输入新号码:");
						scanf("%s",phone);
						strcpy(BT->phone,phone);
						}break;
				
					case 4:{
						printf("\t学号\t姓名\t性别\t电话\n");
						printf("\t%d\t",BT->number);
						printf("%s\t",BT->name);
						printf("%s\t",BT->sex);
						printf("%s\n",BT->phone);
						printf("\n");
					}break;
					
					case 0:break;
				}
				if(k==0)break;
			}
		system("cls");
		}
	ModifyByname(BT->Right,name);
	}
}
 	 
void ModifyByphone(BinTree BT,char phone[])//按手机号修改 
{ 
	int k;
	if(BT != NULL){
		ModifyByphone(BT->Left,phone);
		if(strcmp(BT->phone,phone)==0){
			printf("\t%d\t", BT->number);
			printf("%s\t", BT->name);
			printf("%s\t", BT->sex);
			printf("%s\n", BT->phone);
			while(1){
				printf("\n\n");
				printf(" 1: 姓名\n");
				printf(" 2: 性别\n");
				printf(" 3: 电话\n");
				printf(" 0:退出修改\n");
				scanf("%d",&k);
				switch(k){
					case 1:{
						char name[N];
						printf("请输入名字:");
						scanf("%s",&name);
						strcpy(BT->name,name);
						}break;
				
					case 2:{
						char sex[N];
						printf("请输入性别:");
						scanf("%s",&sex);
						strcpy(BT->sex,sex);
						}break;
				
					case 3:{
						char phone[N];
						printf("请输入新号码:");
						scanf("%s",phone);
						strcpy(BT->phone,phone);
						}break;
				
					case 4:{
						printf("\t学号\t姓名\t性别\t电话\n");
						printf("\t%d\t",BT->number);
						printf("%s\t",BT->name);
						printf("%s\t",BT->sex);
						printf("%s\n",BT->phone);
						printf("\n");	
						}break;
						 
					case 0:break;
					}	
				if(k==0)
				break;
			}
		system("cls");
		}
	ModifyByphone(BT->Right,phone);
	}
}

void Modify(){			//修改 按学号、姓名、电话号码
	printf(" 修改同学的信息\n");
	printf("----------------------------------------------------------\n");
	printf("(1)根据学号做为索引修改同学的信息\n");
	printf("(2)根据姓名作为索引修改同学的信息\n");
	printf("(3)根据电话做为索引修改同学的信息\n");
	printf("(0)返回主菜单\n");
	printf("----------------------------------------------------------\n");
	printf("请输入你的选择(0-3):\n");
	int i;
    scanf("%d",&i);
	if(i==1){
	int number;
	printf("请输入学号:");
	scanf("%d",&number);
	ModifyBynum(BT,number);}
	else if(i==2){
		char name[N];
		printf("请输入姓名:");
	    scanf("%s",name);
		ModifyByname(BT,name);
		}
	else if(i==3){
		char phone[N];
		printf("请输入手机号:"); 
	    scanf("%s",phone);
		ModifyByphone(BT,phone);
		}
}	
//主函数 
int main(){

	//预置数组信息
	BT=Add(01,"张常超","男","15537271222",BT);
	BT=Add(02,"刘鹏翔","男","15514902622",BT);
	BT=Add(03,"程龙","男","12345678901",BT);
	 int n=-1;
	 while(n!=0){
	 // 系统首页 
	 printf("\n\t\t\t *********************");
	 	printf("\n\t\t\t||   同学录管理系统  ||\n");
		printf("*******************************************************************\n");
		printf(" 1:显示原来的预置数组里同学的信息 \n\n");
		printf(" 2:查找同学的信息 \n\n");
		printf(" 3:修改同学录信息 \n\n");
		printf(" 4:添加新同学信息 \n\n");
		printf(" 5:删除同学录信息 \n\n");
		printf(" 0:退出该系统\n\n");
		printf("*******************************************************************\n");
		printf("选择您要进行的操作前的序号(0~5): ");
	 	scanf("%d",&n); 
	 	system("cls");
	 	
	 	switch(n){
		 	case 0:{
				break;
			 }
			case 1:{
				Traversal();
				break;
				}
			case 2:{
				Find();
				break;
				}
		 	case 3:{
		 		Modify();
				break;
				}
			case 4:{
				add();
				break;
				}
			case 5:{
				Delete();
				break;
				}
		}
	 	
	} 
} 
  • 14
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
以下是同学录管理系统C语言代码,您可以参考: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_CLASS_NUM 100 #define MAX_STUDENT_NUM 1000 // 班级结构体 typedef struct { char class_id[10]; // 班级号 int enrollment_year; // 入学年份 int graduation_year; // 毕业年份 int student_num; // 同学数量 } Class; // 同学结构体 typedef struct { char name[20]; // 姓名 char gender[5]; // 性别 char class_id[10]; // 班级号 char student_id[20]; // 学号 } Student; Class class_list[MAX_CLASS_NUM]; // 班级数组 Student student_list[MAX_STUDENT_NUM]; // 同学数组 int class_num = 0; // 班级总数 int student_num = 0; // 同学总数 // 显示主菜单 void show_menu() { printf("==== 同学录管理系统 ====\n"); printf("1. 显示班级列表\n"); printf("2. 增加班级\n"); printf("3. 删除班级\n"); printf("4. 班级同学加入\n"); printf("5. 班级同学删除\n"); printf("6. 同学录显示\n"); printf("7. 同学录存盘\n"); printf("8. 同学录文件调入\n"); printf("9. 退出\n"); } // 显示班级列表 void show_class_list() { printf("班级总数:%d\n", class_num); for (int i = 0; i < class_num; i++) { printf("班级号:%s 入学年份:%d 毕业年份:%d 同学数量:%d\n", class_list[i].class_id, class_list[i].enrollment_year, class_list[i].graduation_year, class_list[i].student_num); } } // 增加班级 void add_class() { if (class_num >= MAX_CLASS_NUM) { printf("班级数量已达到上限!\n"); return; } Class new_class; printf("请输入班级号:"); scanf("%s", new_class.class_id); printf("请输入入学年份:"); scanf("%d", &new_class.enrollment_year); printf("请输入毕业年份:"); scanf("%d", &new_class.graduation_year); new_class.student_num = 0; class_list[class_num] = new_class; class_num++; printf("班级添加成功!\n"); } // 删除班级 void delete_class() { char class_id[10]; printf("请输入要删除的班级号:"); scanf("%s", class_id); int index = -1; for (int i = 0; i < class_num; i++) { if (strcmp(class_list[i].class_id, class_id) == 0) { index = i; break; } } if (index == -1) { printf("找不到该班级!\n"); return; } for (int i = index; i < class_num - 1; i++) { class_list[i] = class_list[i + 1]; } class_num--; printf("班级删除成功!\n"); } // 班级同学加入 void add_student() { if (student_num >= MAX_STUDENT_NUM) { printf("同学数量已达到上限!\n"); return; } Student new_student; printf("请输入同学姓名:"); scanf("%s", new_student.name); printf("请输入同学性别:"); scanf("%s", new_student.gender); printf("请输入班级号:"); scanf("%s", new_student.class_id); printf("请输入学号:"); scanf("%s", new_student.student_id); int index = -1; for (int i = 0; i < class_num; i++) { if (strcmp(class_list[i].class_id, new_student.class_id) == 0) { index = i; break; } } if (index == -1) { printf("找不到该班级!\n"); return; } student_list[student_num] = new_student; student_num++; class_list[index].student_num++; printf("同学加入成功!\n"); } // 班级同学删除 void delete_student() { char class_id[10]; char student_id[20]; printf("请输入班级号:"); scanf("%s", class_id); printf("请输入学号:"); scanf("%s", student_id); int class_index = -1; int student_index = -1; for (int i = 0; i < class_num; i++) { if (strcmp(class_list[i].class_id, class_id) == 0) { class_index = i; break; } } if (class_index == -1) { printf("找不到该班级!\n"); return; } for (int i = 0; i < student_num; i++) { if (strcmp(student_list[i].class_id, class_id) == 0 && strcmp(student_list[i].student_id, student_id) == 0) { student_index = i; break; } } if (student_index == -1) { printf("找不到该同学!\n"); return; } for (int i = student_index; i < student_num - 1; i++) { student_list[i] = student_list[i + 1]; } student_num--; class_list[class_index].student_num--; printf("同学删除成功!\n"); } // 同学录显示 void show_student_list() { char class_id[10]; printf("请输入班级号:"); scanf("%s", class_id); int index = -1; for (int i = 0; i < class_num; i++) { if (strcmp(class_list[i].class_id, class_id) == 0) { index = i; break; } } if (index == -1) { printf("找不到该班级!\n"); return; } printf("班级号:%s 同学数量:%d\n", class_list[index].class_id, class_list[index].student_num); for (int i = 0; i < student_num; i++) { if (strcmp(student_list[i].class_id, class_id) == 0) { printf("姓名:%s 性别:%s 学号:%s\n", student_list[i].name, student_list[i].gender, student_list[i].student_id); } } } // 同学录存盘 void save_student_list() { char filename[50]; printf("请输入文件名:"); scanf("%s", filename); FILE* fp = fopen(filename, "w"); if (fp == NULL) { printf("文件打开失败!\n"); return; } fprintf(fp, "%d\n", class_num); for (int i = 0; i < class_num; i++) { fprintf(fp, "%s %d %d %d\n", class_list[i].class_id, class_list[i].enrollment_year, class_list[i].graduation_year, class_list[i].student_num); } fprintf(fp, "%d\n", student_num); for (int i = 0; i < student_num; i++) { fprintf(fp, "%s %s %s %s\n", student_list[i].name, student_list[i].gender, student_list[i].class_id, student_list[i].student_id); } fclose(fp); printf("同学录保存成功!\n"); } // 同学录文件调入 void load_student_list() { char filename[50]; printf("请输入文件名:"); scanf("%s", filename); FILE* fp = fopen(filename, "r"); if (fp == NULL) { printf("文件打开失败!\n"); return; } fscanf(fp, "%d", &class_num); for (int i = 0; i < class_num; i++) { fscanf(fp, "%s %d %d %d", class_list[i].class_id, &class_list[i].enrollment_year, &class_list[i].graduation_year, &class_list[i].student_num); } fscanf(fp, "%d", &student_num); for (int i = 0; i < student_num; i++) { fscanf(fp, "%s %s %s %s", student_list[i].name, student_list[i].gender, student_list[i].class_id, student_list[i].student_id); } fclose(fp); printf("同学录调入成功!\n"); } int main() { int choice; while (1) { show_menu(); printf("请输入选项:"); scanf("%d", &choice); switch (choice) { case 1: show_class_list(); break; case 2: add_class(); break; case 3: delete_class(); break; case 4: add_student(); break; case 5: delete_student(); break; case 6: show_student_list(); break; case 7: save_student_list(); break; case 8: load_student_list(); break; case 9: printf("谢谢使用!\n"); return 0; default: printf("无效选项!\n"); break; } } } ``` 代码中使用了结构体来表示班级和同学,使用数组来存储所有班级和同学的信息。每个功能都有对应的函数来实现,函数内部根据用户的输入来进行相应的操作。同时,使用文件来保存和读取同学录信息,保证了数据的持久化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值