学生信息管理系统(静态版)

系统的主界面 系统的操作指令 结构体的创建

目录

1、学生信息的输入

2、学生信息的添加

3、学生信息的删除

4、学生信息的查找,找到并显示

*判断查找函数3和4和5共用

5、学生信息的修改

6、显示学生的信息

7、学生成绩的排序,并打印(代码中有快排和冒泡都行)

综合代码


1、学生信息的输入2、学生信息的添加3、学生信息的删除 4、学生信息的查找

5、学生信息的修改6、显示学生的信息7、学生成绩的排序 0、退出系统

结构体学生的信息和信息系统结构体(1000个空间),静态内存

cpp 复制代码
//结构体:学生的信息
typedef struct Student
{
	char name[20];//名字
	int num;           //学号
	int score[3];         //成绩//语数英
}Stu;


//信息系统结构体(1000个空间),静态
typedef struct System
{
	Stu data[100];//一共的空间
	int ren;           //人数
}Sy

系统的主界面 系统的操作指令 菜单

cpp 复制代码
//菜单,系统主界面
void menu()
{
	printf("                            \n"); 
	printf("*********学生管理系统********\n");
	printf("****************************\n");
	printf("***1:信息输入   2:信息删除***\n");
	printf("***3:信息查找   4:信息修改***\n");
	printf("***5:显示信息   6:信息排序***\n");
	printf("***7:添加信息   0:退出系统***\n");
	printf("****************************\n");
}

main函数

cpp 复制代码
int main()
{
	//定义管理系统
	Sy con;
	//初始化
	InitSy(&con);//初始化管理系统
	int input = 0;//
	do
	{
		menu();//菜单,系统主界面
		scanf("%d", &input);//输入
		switch (input)
		{
		case 1://1、学生信息的输入
			Stuxinxi(&con);
			break;
		case 2://2、学生信息的添加
			AddSy(&con);
			break;
		case 3://3、学生信息的删除 
			DelSy(&con);
			break;
		case 4://4、学生信息的查找
			SeekSy(&con);
			break;
		case 5://5、学生信息的修改
			ModifySy(&con);
			break;
		case 6://6、显示学生的信息
			ShowSy(&con);
			break;
		case 7://7、学生成绩的排序
			SortSy(&con);
			break;
		case 0:
			printf("退出学生信息管理系统\n");
			break;
		default:
			printf("选择错误,重新选择\n");
				break;
		}
	} while (input);
	return 0;
}

初始化管理系统函数

cpp 复制代码
/初始化管理系统函数
void InitSy(Sy* pc)
{
	pc->ren = 0;
	memset(pc->data, 0, sizeof(pc->data));//单位字节,因为传的地址是整个数组的地址所以可以直接用sizeof。
}

1、学生信息的输入

cpp 复制代码
//1、学生信息的输入
void Stuxinxi(Sy* pc)
{
	int n = 0;
	printf("输入相输入成绩的人数->");
	scanf("%d", &n);

	for (int i = 0; i < n; i++)
	{
		printf("请输入第%d名学生姓名>>", i + 1);
		scanf("%s", pc->data[i].name);
		printf("请输入第%d名学生学号>>", i + 1);
		scanf("%d", &pc->data[i].num);
		printf("请输入第%d名学生语文成绩>>", i + 1);
		scanf("%d", &pc->data[i].score[0]);
		printf("请输入第%d名学生数学成绩>>", i + 1);
		scanf("%d", &pc->data[i].score[1]);
		printf("请输入第%d名学生英语成绩>>", i + 1);
		scanf("%d", &pc->data[i].score[2]);
		printf("\n");
	}
	
	pc->ren = n;
}

2、学生信息的添加

cpp 复制代码
//2、学生信息的添加
void AddSy(Sy*pc)
{
	if (pc->ren == 1000)
	{
		printf("成员已满,无法录入新的信息\n");
		return;
	}
	printf("请输入学生姓名>>");
	scanf("%s", pc->data[pc->ren].name);

	printf("请输入学生学号>>");
	scanf("%d", &pc->data[pc->ren].num);

	printf("请输入学生语文成绩>>");
	scanf("%d", &pc->data[pc->ren].score[0]);

	printf("请输入学生数学成绩>>");
	scanf("%d", &pc->data[pc->ren].score[1]);

	printf("请输入学生英语成绩>>");
	scanf("%d", &pc->data[pc->ren].score[2]);
    printf("添加成功\n");

	pc->ren++;//人数加一
}

3、学生信息的删除

cpp 复制代码
//查找函数通过名字,要用在删除,和修改上面
int  FindByname(Sy*pc,char*name)
{
	for (int i = 0; i < pc->ren; i++)
	{
		if (strcmp(name, pc->data[i].name) == 0)//字符比较函数
		{
			return i;//直接返回下标为了让其后面的信息更好覆盖
		}
	}
	//没找到
	return -1;
}

//3、学生信息的删除(用名字删除)
void DelSy(Sy* pc)
{
	//要想删除信息,必须要找到那个人的信息
	//找
	char name[20];
	printf("输入你想删除学生信息的姓名>>");
	scanf("%s", name);
	int n = FindByname(pc, name);//要删除人的下标
	if (n == -1)
	{
		printf("查无此人\n");
		return;
	}

	//不等于-1,也就是找到了
	//找到后直接覆盖

	memmove(pc->data + n, pc->data + n + 1, sizeof(int) * (pc->ren - n));//要传指针!!!!!!!data[n]不是指针
	//for (int j = n; j < pc->ren - 1; j++)//人-1,为了防止空间溢出
	//{
	//	pc->data[j] = pc->data[j + 1];
	//}
	
	pc->ren--;//删除后人数减一
	printf("删除成功\n");
}

4、学生信息的查找,找到并显示

cpp 复制代码
//查找函数通过名字,要用在删除,和修改上面
int  FindByname(Sy*pc,char*name)
{
	for (int i = 0; i < pc->ren; i++)
	{
		if (strcmp(name, pc->data[i].name) == 0)//字符比较函数
		{
			return i;//直接返回下标为了让其后面的信息更好覆盖
		}
	}
	//没找到
	return -1;
}

//4、学生信息的查找,找到并显示
void SeekSy(Sy* pc)
{
	char name[20];
	printf("请输入你想查找学生的姓名>>");
	scanf("%s", name);
	
	int i = FindByname(pc, name);//不等于-1,就是找到了
	if (i == -1)
	{
		printf("没找到\n");
		return;
	}

	//找到了,打印
	printf("%-10s%-15s%-10s%-10s%-10s%-10s\n", "姓名", "学号", "语文成绩", "数学成绩", "英语成绩", "总成绩");
	int k = pc->data[i].score[0] + pc->data[i].score[1] + pc->data[i].score[2];//总成绩
	printf("%-10s%-15d%-10d%-10d%-10d%-10d\n", pc->data[i].name, pc->data[i].num, pc->data[i].score[0], pc->data[i].score[1], pc->data[i].score[2], k);
}

简便::4学生信息的查找和3学生信息的删除(用名字删除)共用的查找函数(判断字符串相不相等函数)

//查找函数通过名字,要用在删除,和修改上面,因为查找和修改和删除都需要先找到这个人

*判断查找函数3和4和5共用

cpp 复制代码
//3和4和5共用

//查找函数通过名字,要用在删除,和修改上面(判断字符串相不相等函数)
int  FindByname(Sy*pc,char*name)
{
	for (int i = 0; i < pc->ren; i++)
	{
		if (strcmp(name, pc->data[i].name) == 0)//字符比较函数
		{
			return i;//直接返回下标为了让其后面的信息更好覆盖
		}
	}
	//没找到
	return -1;
}

5、学生信息的修改

cpp 复制代码
//查找函数通过名字,要用在删除,和修改上面,因为修改和删除都需要先找到这个人(判断字符串相不相等函数)
int  FindByname(Sy*pc,char*name)
{
	for (int i = 0; i < pc->ren; i++)
	{
		if (strcmp(name, pc->data[i].name) == 0)//字符比较函数
		{
			return i;//直接返回下标为了让其后面的信息更好覆盖
		}
	}
	//没找到
	return -1;
}

void ModifySy(Sy*pc)
{
	char name[20];
	printf("输入你想修改学生信息的名字>>");
	scanf("%s", name);
	int n = FindByname(pc, name);//n为-1,就是没是找到
	if (n == -1)
	{
		printf("没找到\n");
		return;
	}
	//找到了
	printf("请重新输入学生姓名>>");
	scanf("%s", pc->data[n].name);

	printf("请重新输入学生学号>>");
	scanf("%d", &pc->data[n].num);

	printf("请重新输入学生语文成绩>>");
	scanf("%d", &pc->data[n].score[0]);

	printf("请重新输入学生数学成绩>>");
	scanf("%d", &pc->data[n].score[1]);

	printf("请重新输入学生英语成绩>>");
	scanf("%d", &pc->data[n].score[2]);



	printf("修改成功\n");
}

6、显示学生的信息

cpp 复制代码
//6、显示学生的信息
void ShowSy(Sy* pc)
{
	printf("%-10s%-15s%-10s%-10s%-10s%-10s\n", "姓名","学号","语文成绩","数学成绩","英语成绩","总成绩");
	for (int i = 0; i < pc->ren; i++)
	{
		int k = pc->data[i].score[0] + pc->data[i].score[1] + pc->data[i].score[2];//总成绩
		printf("%-10s%-15d%-10d%-10d%-10d%-10d\n", pc->data[i].name, pc->data[i].num, pc->data[i].score[0], pc->data[i].score[1],pc->data[i].score[2], k);
	}
}

7、学生成绩的排序,并打印(代码中有快排和冒泡都行)

cpp 复制代码
//7、学生成绩的排序,并打印
void SortSy(Sy* pc)
{
	printf("                               \n");
	printf("*********1:语文成绩排序********\n");
	printf("*********2:数学成绩排序********\n");
	printf("*********3:英语成绩排序********\n");
	printf("*********4:总成绩排序 ********\n");
	int w = 0;
	scanf("%d", &w);
	if (w == 1)
	{
		qsort(pc->data, pc->ren, sizeof(pc->data[0]), paixu1);
		printf("语文成绩排序\n");
		printf("%-10s%-15s%-10s%-10s%-10s%-10s\n", "姓名", "学号", "语文成绩", "数学成绩", "英语成绩", "总成绩");
		for (int i = 0; i < pc->ren; i++)
		{
			int k = pc->data[i].score[0] + pc->data[i].score[1] + pc->data[i].score[2];//总成绩
			printf("%-10s%-15d%-10d%-10d%-10d%-10d\n", pc->data[i].name, pc->data[i].num, pc->data[i].score[0], pc->data[i].score[1], pc->data[i].score[2], k);
		}
	}

	if (w == 2)
	{
		qsort(pc->data, pc->ren, sizeof(pc->data[0]), paixu2);
		printf("数学成绩排序\n");
		printf("%-10s%-15s%-10s%-10s%-10s%-10s\n", "姓名", "学号", "语文成绩", "数学成绩", "英语成绩", "总成绩");
		for (int i = 0; i < pc->ren; i++)
		{
			int k = pc->data[i].score[0] + pc->data[i].score[1] + pc->data[i].score[2];//总成绩
			printf("%-10s%-15d%-10d%-10d%-10d%-10d\n", pc->data[i].name, pc->data[i].num, pc->data[i].score[0], pc->data[i].score[1], pc->data[i].score[2], k);
		}
	}
	if (w == 3)
	{
		qsort(pc->data, pc->ren, sizeof(pc->data[0]), paixu3);
		printf("英语成绩排序\n");
		printf("%-10s%-15s%-10s%-10s%-10s%-10s\n", "姓名", "学号", "语文成绩", "数学成绩", "英语成绩", "总成绩");
		for (int i = 0; i < pc->ren; i++)
		{
			int k = pc->data[i].score[0] + pc->data[i].score[1] + pc->data[i].score[2];//总成绩
			printf("%-10s%-15d%-10d%-10d%-10d%-10d\n", pc->data[i].name, pc->data[i].num, pc->data[i].score[0], pc->data[i].score[1], pc->data[i].score[2], k);
		}
	}

	//冒泡
	if (w == 4)
	{
		printf("总成绩成绩排序\n");
		printf("%-10s%-15s%-10s%-10s%-10s%-10s\n", "姓名", "学号", "语文成绩", "数学成绩", "英语成绩", "总成绩");
		for (int p = 0; p < pc->ren - 1; p++)
		{
			for (int j = 0; j < pc->ren - 1 - p; j++)
			{
				int t1 = pc->data[j].score[0] + pc->data[j].score[1] + pc->data[j].score[2];
				int t2 = pc->data[j+1].score[0] + pc->data[j+1].score[1] + pc->data[j+1].score[2];
				if (t1 < t2)
				{
					Stu tmp = pc->data[j];
					pc->data[j] = pc->data[j + 1];
					pc->data[j + 1] = tmp;
				}
			}
		}
		//打印
		for (int i = 0; i < pc->ren; i++)
		{
			int k = pc->data[i].score[0] + pc->data[i].score[1] + pc->data[i].score[2];//总成绩
			printf("%-10s%-15d%-10d%-10d%-10d%-10d\n", pc->data[i].name, pc->data[i].num, pc->data[i].score[0], pc->data[i].score[1], pc->data[i].score[2], k);
		}
	}
}

综合代码

cpp 复制代码
#include<stdio.h>
#include<string.h>
#include<stdlib.h>//qsort的头文件 
/*
系统的主界面     系统的操作指令

1、学生信息的录入

2、学生信息的添加

3、学生信息的删除 

4、学生信息的查找

5、学生信息的修改

6、显示学生的信息

7、学生成绩的排序学生成绩的排序
*/

//结构体:学生的信息
typedef struct Student
{
	char name[20];//名字
	int num;           //学号
	int score[3];         //成绩//语数英
}Stu;

//信息系统结构体(1000个空间),静态
typedef struct System
{
	Stu data[1000];//一共的空间
	int ren;           //人数
}Sy;

//初始化管理系统函数
void InitSy(Sy* pc)
{
	pc->ren = 0;
	memset(pc->data, 0, sizeof(pc->data));//单位字节,因为传的地址是整个数组的地址所以可以直接用sizeof。
}

//菜单,系统主界面
void menu()
{
	printf("                                                   \n"); 
	printf("*************学生管理系统****************\n");
	printf("*****************************************\n");
	printf("***1:学生信息的输入   2:学生信息的添加***\n");
	printf("***3:学生信息的删除   4:学生信息的查找***\n");
	printf("***5:学生信息的修改   6:显示学生的信息***\n");
	printf("***7:学生成绩的排序   0:退出系统      ***\n");
	printf("*****************************************\n");
}

//2、学生信息的添加
void AddSy(Sy*pc)
{
	if (pc->ren == 1000)
	{
		printf("成员已满,无法录入新的信息\n");
		return;
	}
	printf("请输入学生姓名>>");
	scanf("%s", pc->data[pc->ren].name);

	printf("请输入学生学号>>");
	scanf("%d", &pc->data[pc->ren].num);

	printf("请输入学生语文成绩>>");
	scanf("%d", &pc->data[pc->ren].score[0]);

	printf("请输入学生数学成绩>>");
	scanf("%d", &pc->data[pc->ren].score[1]);

	printf("请输入学生英语成绩>>");
	scanf("%d", &pc->data[pc->ren].score[2]);

	printf("添加成功\n");
	pc->ren++;//人数+1
}

//6、显示学生的信息
void ShowSy(Sy* pc)
{
	printf("%-10s%-15s%-10s%-10s%-10s%-10s\n", "姓名","学号","语文成绩","数学成绩","英语成绩","总成绩");
	for (int i = 0; i < pc->ren; i++)
	{
		int k = pc->data[i].score[0] + pc->data[i].score[1] + pc->data[i].score[2];//总成绩
		printf("%-10s%-15d%-10d%-10d%-10d%-10d\n", pc->data[i].name, pc->data[i].num, pc->data[i].score[0], pc->data[i].score[1],pc->data[i].score[2], k);
	}
}


//查找函数通过名字,要用在删除,和修改上面,因为修改和删除都需要先找到这个人(判断字符串相不相等函数)
//3和4和5共用
int  FindByname(Sy*pc,char*name)
{
	for (int i = 0; i < pc->ren; i++)
	{
		if (strcmp(name, pc->data[i].name) == 0)//字符比较函数
		{
			return i;//直接返回下标为了让其后面的信息更好覆盖
		}
	}
	//没找到
	return -1;
}

//3、学生信息的删除(用名字删除)
void DelSy(Sy* pc)
{
	//要想删除信息,必须要找到那个人的信息
	//找
	char name[20];
	printf("输入你想删除学生信息的姓名>>");
	scanf("%s", name);
	int n = FindByname(pc, name);//要删除人的下标
	if (n == -1)
	{
		printf("查无此人\n");
		return;
	}

	//不等于-1,也就是找到了
	//找到后直接覆盖

	memmove(pc->data + n, pc->data + n + 1, sizeof(int) * (pc->ren - n));//要传指针!!!!!!!data[n]不是指针
	//for (int j = n; j < pc->ren - 1; j++)//人-1,为了防止空间溢出
	//{
	//	pc->data[j] = pc->data[j + 1];
	//}
	
	pc->ren--;//删除后人数减一
	printf("删除成功\n");
}


//4、学生信息的查找,找到并显示
void SeekSy(Sy* pc)
{
	char name[20];
	printf("请输入你想查找学生的姓名>>");
	scanf("%s", name);
	
	int i = FindByname(pc, name);//不等于-1,就是找到了
	if (i == -1)
	{
		printf("没找到\n");
		return;
	}

	//找到了,打印
	printf("%-10s%-15s%-10s%-10s%-10s%-10s\n", "姓名", "学号", "语文成绩", "数学成绩", "英语成绩", "总成绩");
	int k = pc->data[i].score[0] + pc->data[i].score[1] + pc->data[i].score[2];//总成绩
	printf("%-10s%-15d%-10d%-10d%-10d%-10d\n", pc->data[i].name, pc->data[i].num, pc->data[i].score[0], pc->data[i].score[1], pc->data[i].score[2], k);
}


//5、学生信息的修改
void ModifySy(Sy*pc)
{
	char name[20];
	printf("输入你想修改学生信息的名字>>");
	scanf("%s", name);
	int n = FindByname(pc, name);//n为-1,就是没是找到
	if (n == -1)
	{
		printf("没找到\n");
		return;
	}

	//找到了
	printf("请重新输入学生姓名>>");
	scanf("%s", pc->data[n].name);

	printf("请重新输入学生学号>>");
	scanf("%d", &pc->data[n].num);

	printf("请重新输入学生语文成绩>>");
	scanf("%d", &pc->data[n].score[0]);

	printf("请重新输入学生数学成绩>>");
	scanf("%d", &pc->data[n].score[1]);

	printf("请重新输入学生英语成绩>>");
	scanf("%d", &pc->data[n].score[2]);



	printf("修改成功\n");
}


//放在快排的排序函数
//语文成绩排序
int paixu1(const void* p1, const void* p2)
{
	return ((Sy*)p2)->data->score[0] - ((Sy*)p1)->data->score[0];//->的优先级大于*,所以要加个括号
}
//数学成绩排序
int paixu2(const void* p1, const void* p2)
{
	return ((Sy*)p2)->data->score[1] - ((Sy*)p1)->data->score[1];//->的优先级大于*,所以要加个括号
}
//英语成绩排序
int paixu3(const void* p1, const void* p2)
{
	return ((Sy*)p2)->data->score[2] - ((Sy*)p1)->data->score[2];//->的优先级大于*,所以要加个括号
}

//7、学生成绩的排序,并打印
void SortSy(Sy* pc)
{
	printf("                                                   \n");
	printf("*********1:语文成绩排序********\n");
	printf("*********2:数学成绩排序********\n");
	printf("*********3:英语成绩排序********\n");
	printf("*********4:总成绩排序 ********\n");
	int w = 0;
	scanf("%d", &w);
	if (w == 1)
	{
		qsort(pc->data, pc->ren, sizeof(pc->data[0]), paixu1);
		printf("语文成绩排序\n");
		printf("%-10s%-15s%-10s%-10s%-10s%-10s\n", "姓名", "学号", "语文成绩", "数学成绩", "英语成绩", "总成绩");
		for (int i = 0; i < pc->ren; i++)
		{
			int k = pc->data[i].score[0] + pc->data[i].score[1] + pc->data[i].score[2];//总成绩
			printf("%-10s%-15d%-10d%-10d%-10d%-10d\n", pc->data[i].name, pc->data[i].num, pc->data[i].score[0], pc->data[i].score[1], pc->data[i].score[2], k);
		}
	}

	if (w == 2)
	{
		qsort(pc->data, pc->ren, sizeof(pc->data[0]), paixu2);
		printf("数学成绩排序\n");
		printf("%-10s%-15s%-10s%-10s%-10s%-10s\n", "姓名", "学号", "语文成绩", "数学成绩", "英语成绩", "总成绩");
		for (int i = 0; i < pc->ren; i++)
		{
			int k = pc->data[i].score[0] + pc->data[i].score[1] + pc->data[i].score[2];//总成绩
			printf("%-10s%-15d%-10d%-10d%-10d%-10d\n", pc->data[i].name, pc->data[i].num, pc->data[i].score[0], pc->data[i].score[1], pc->data[i].score[2], k);
		}
	}
	if (w == 3)
	{
		qsort(pc->data, pc->ren, sizeof(pc->data[0]), paixu3);
		printf("英语成绩排序\n");
		printf("%-10s%-15s%-10s%-10s%-10s%-10s\n", "姓名", "学号", "语文成绩", "数学成绩", "英语成绩", "总成绩");
		for (int i = 0; i < pc->ren; i++)
		{
			int k = pc->data[i].score[0] + pc->data[i].score[1] + pc->data[i].score[2];//总成绩
			printf("%-10s%-15d%-10d%-10d%-10d%-10d\n", pc->data[i].name, pc->data[i].num, pc->data[i].score[0], pc->data[i].score[1], pc->data[i].score[2], k);
		}
	}

	//冒泡
	if (w == 4)
	{
		printf("总成绩成绩排序\n");
		printf("%-10s%-15s%-10s%-10s%-10s%-10s\n", "姓名", "学号", "语文成绩", "数学成绩", "英语成绩", "总成绩");
		for (int p = 0; p < pc->ren - 1; p++)
		{
			for (int j = 0; j < pc->ren - 1 - p; j++)
			{
				int t1 = pc->data[j].score[0] + pc->data[j].score[1] + pc->data[j].score[2];
				int t2 = pc->data[j+1].score[0] + pc->data[j+1].score[1] + pc->data[j+1].score[2];
				if (t1 < t2)
				{
					Stu tmp = pc->data[j];
					pc->data[j] = pc->data[j + 1];
					pc->data[j + 1] = tmp;
				}
			}
		}
		//打印
		for (int i = 0; i < pc->ren; i++)
		{
			int k = pc->data[i].score[0] + pc->data[i].score[1] + pc->data[i].score[2];//总成绩
			printf("%-10s%-15d%-10d%-10d%-10d%-10d\n", pc->data[i].name, pc->data[i].num, pc->data[i].score[0], pc->data[i].score[1], pc->data[i].score[2], k);
		}
	}
}


//1、学生信息的输入
void Stuxinxi(Sy* pc)
{
	int n = 0;
	printf("输入相输入成绩的人数->");
	scanf("%d", &n);

	for (int i = 0; i < n; i++)
	{
		printf("请输入第%d名学生姓名>>", i + 1);
		scanf("%s", pc->data[i].name);
		printf("请输入第%d名学生学号>>", i + 1);
		scanf("%d", &pc->data[i].num);
		printf("请输入第%d名学生语文成绩>>", i + 1);
		scanf("%d", &pc->data[i].score[0]);
		printf("请输入第%d名学生数学成绩>>", i + 1);
		scanf("%d", &pc->data[i].score[1]);
		printf("请输入第%d名学生英语成绩>>", i + 1);
		scanf("%d", &pc->data[i].score[2]);
		printf("\n");
	}
	
	pc->ren = n;
}

int main()
{
	//定义管理系统
	Sy con;
	//初始化
	InitSy(&con);//初始化管理系统
	int input = 0;//
	do
	{
		menu();//菜单,系统主界面
		scanf("%d", &input);//输入
		switch (input)
		{
		case 1://1、学生信息的输入
			Stuxinxi(&con);
			break;
		case 2://2、学生信息的添加
			AddSy(&con);
			break;
		case 3://3、学生信息的删除 
			DelSy(&con);
			break;
		case 4://4、学生信息的查找
			SeekSy(&con);
			break;
		case 5://5、学生信息的修改
			ModifySy(&con);
			break;
		case 6://6、显示学生的信息
			ShowSy(&con);
			break;
		case 7://7、学生成绩的排序
			SortSy(&con);
			break;
		case 0:
			printf("退出学生信息管理系统\n");
			break;
		default:
			printf("选择错误,重新选择\n");
				break;
		}
	} while (input);
	return 0;
}
相关推荐
TDengine (老段)43 分钟前
TDengine 时间函数 WEEK 用户手册
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
小白程序员成长日记1 小时前
2025.11.29 力扣每日一题
数据结构·算法·leetcode
还是鼠鼠1 小时前
Redisson实现的分布式锁能解决主从一致性的问题吗?
java·数据库·redis·分布式·缓存·面试·redisson
DingYuan1011 小时前
MySql分类
数据库·mysql
在黎明的反思2 小时前
进程通信之消息队列(IPC)
算法
杨云龙UP2 小时前
SQL Server 备份异地同步 + 清理脚本
运维·服务器·数据库·sql·mysql·sqlserver
O***Z6162 小时前
Redis——Windows安装
数据库·windows·redis
老鱼说AI2 小时前
算法基础教学第一步:数据结构
数据结构·python·算法
0***h9422 小时前
MySQL 启动失败 (code=exited, status=1FAILURE) 异常解决方案
数据库·mysql
极地星光2 小时前
C++链式调用设计:打造优雅流式API
服务器·网络·c++