C语言实验四:综合程序设计-创新互联

题目要求:

10年积累的网站设计制作、成都网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先建设网站后付款的网站建设流程,更有尖扎免费网站建设让你可以放心的选择与我们合作。

按要求完成以下综合实验:

(1)设计一个表示学生信息的结构类型,包含学号、姓名、出生日期(包含年、月、日三部分信息)和3门课(语文、数学、英语)的成绩;

(2)编写实现从键盘读入n个学生信息的函数;

(3)编写输出所有学生信息的函数;

(4)编写利用指针实现按总成绩排序的函数;

(5)编写查询并输出学生相关信息的函数;

(6)编写插入学生信息的函数;

(7)编写删除学生信息的函数;

(5)编写修改指定学生相关信息的函数;

(8)在main中以菜单驱动的方式,根据用户选择,分别调用相关函数实现对应功能。

1、菜单函数:根据用户选择,分别调用相关函数实现对应功能。

int menu()
{
	printf("\n");

	printf("------------------------菜单------------------------\n");
	printf("*          1、输入n学生的信息                      *\n");
	printf("*          2、输出所有学生的信息                   *\n");
	printf("*          3、将学生信息按总分从大到小排序         *\n");
	printf("*          4、查询学生信息                         *\n");
	printf("*          5、插入学生的信息                       *\n");
	printf("*          6、删除一个学生的信息                   *\n");
	printf("*          7、修改学生的信息                       *\n");
	printf("*          8、退出                                 *\n");
	printf("----------------------------------------------------\n");
	printf("请选择菜单选项:\n");
	printf("\n");

	int choice;
	scanf("%d", &choice);

	return choice;

}

2、输入函数:编写实现从键盘读入n个学生信息的函数;

int scanf_students()
{
	printf("\n");

	int n;
	printf("请输入本次需要登记信息的人数:\n");
	scanf("%d", &n);
	if (n != 0)
	{
		for (int i = 0; i< n-1 ; i++)
		{
			printf("请输入第%d位学生姓名:\n", i+1);
			scanf("%s", &stu[i].name);
			printf("请输入该学生学号:\n");
			scanf("%s", &stu[i].id);
			printf("请输入该学生出生年份:\n");
			scanf("%4d", &stu[i].year);
			printf("请输入该学生出生月份:\n");
			scanf("%2d", &stu[i].month);
			printf("请输入该学生出生于几号:\n");
			scanf("%2d", &stu[i].day);
			printf("请输入该学生语文成绩:\n");
			scanf("%d", &stu[i].chinese);
			printf("请输入该学生数学成绩:\n");
			scanf("%d", &stu[i].math);
			printf("请输入该学生英语成绩:\n");
			scanf("%d", &stu[i].english);
			printf("已记录完成,即将开始下一位学生信息记录\n");
			stu[i].add = stu[i].chinese + stu[i].english + stu[i].math;
		}
		printf("请输入第%d位学生姓名:\n", n);
		scanf("%s", &stu[n-1].name);
		printf("请输入该学生学号:\n");
		scanf("%s", &stu[n-1].id);
		printf("请输入该学生出生年份:\n");
		scanf("%d", &stu[n-1].year);
		printf("请输入该学生出生月份:\n");
		scanf("%02d", &stu[n-1].month);
		printf("请输入该学生出生于几号:\n");
		scanf("%02d", &stu[n-1].day);
		printf("请输入该学生语文成绩:\n");
		scanf("%d", &stu[n-1].chinese);
		printf("请输入该学生数学成绩:\n");
		scanf("%d", &stu[n-1].math);
		printf("请输入该学生英语成绩:\n");
		scanf("%d", &stu[n-1].english);
		printf("已记录完成,即将返回菜单\n");
		stu[n-1].add = stu[n-1].chinese + stu[n-1].english + stu[n-1].math;
	}
	else {
		printf("无效输入,即将返回菜单\n");
	}
	printf("\n");

	
	return n;
}

3、输出函数:编写输出所有学生信息的函数;

void printf_students(int sum)
{
	printf("\n");

	if (sum >0)
	{
	printf("---------------------学生信息如下------------------------\n");
		for (int i = 0; i< sum - 1; i++)
		{
			printf("---------------------%s同学的信息如下------------------------\n",stu[i].name);

			printf("第%d位学生姓名为: \n%s\n",i+1, stu[i].name);

			printf("该学生学号为:\n%s\n", stu[i].id);

			printf(" % s学生出生于: \n%04d-%02d-%02d\n",stu[i].name, stu[i].year, stu[i].month, stu[i].day);

			printf("%s的语文成绩: \n%d分\n", stu[i].name, stu[i].chinese);

			printf("%s的数学成绩: \n%d分\n", stu[i].name, stu[i].math);

			printf("%s的英语成绩: \n%d分\n", stu[i].name, stu[i].english);


		}
		printf("---------------------%s同学的信息如下------------------------\n", stu[sum-1].name);
		printf("请输入第%d位学生姓名:\n %s\n",sum, stu[sum-1].name);

		printf("该学生学号为:\n%s\n", stu[sum-1].id);

		printf("该学生出生于:\n%d-%02d-%02d\n", stu[sum-1].year, stu[sum-1].month, stu[sum-1].day);

		printf("%s的语文成绩:\n%d分\n", stu[sum-1].name, stu[sum-1].chinese);

		printf("%s的数学成绩:\n%d分\n", stu[sum-1].name, stu[sum-1].math);

-		printf("%s的英语成绩:\n%d分\n", stu[sum-1].name, stu[sum-1].english);

		printf("全部信息已输出完成,即将返回菜单\n");
	printf("---------------------学生信息输出完成--------------------\n");
	}
	else
		printf("-------------------请先输入学生信息!---------------------\n");
	printf("\n");

}

4、排序函数:编写利用指针实现按总成绩排序的函数;(本人按总成绩从高到低)

void sort_students(int sum)
{
	printf("\n");

	max = stu;
	for (int i = 0; i< sum ; i++)
	{
		for (int j = 0; j< sum  - i-1; j++)
		{
			if ((max+j)->add<= (max+1+j)->add)
			{
				tem = *(max+j);
				*(max+j) = *(max+1+j);
				*(max+1+j) = tem;
				
			}
		}
	}
	printf("@@@@@@@@@@@@@@已按总成绩从高到低排序完成!@@@@@@@@@@@@@@@\n");
	printf("\n");

}

5、查询函数:编写查询并输出学生相关信息的函数;

void search_print_students(int sum)
{
	printf("\n");

	printf("-------------学生信息查询系统---------------\n");
	printf("-----------------1、姓名查询----------------\n");
	printf("-----------------2、学号查询----------------\n");
	printf("-----------------3、退出信息查询系统-----------\n");
	int flag = 0;
	int search_choice;
	char name1[20], id1[20];
	scanf("%d", &search_choice);
	switch (search_choice)
	{
	case 1:
		printf("请输入学生姓名:\n");
		scanf("%s", &name1);
		printf("\n");
		for (int i = 0; i< sum; i++)
		{
			if (strcmp(stu[i].name, name1) >= 0);
			{
				flag = 1;
				printf("---------------------%s同学的信息如下------------------------\n", stu[i].name);

			printf("第%d位学生姓名为: \n%s\n", i + 1, stu[i].name);

			printf("该学生学号为:\n%s\n", stu[i].id);

			printf(" % s学生出生于: \n%04d-%02d-%02d\n", stu[i].name, stu[i].year, stu[i].month, stu[i].day);

			printf("%s的语文成绩: \n%d分\n", stu[i].name, stu[i].chinese);

			printf("%s的数学成绩: \n%d分\n", stu[i].name, stu[i].math);

			printf("%s的英语成绩: \n%d分\n", stu[i].name, stu[i].english);
			
			printf("---------------------学生信息输出完成--------------------\n");

			}

		}
		break;
	case 2:
		printf("请输入学生学号:\n");
		scanf("%s", &id1);
		for (int i = 0; i< sum; i++)
		{
			if (strcmp(stu[i].id, id1) >= 0)
			{
				flag = 1;
				printf("---------------------%s同学的信息如下------------------------\n", stu[i].name);

				printf("第%d位学生姓名为: \n%s\n", i + 1, stu[i].name);

				printf("该学生学号为:\n%s\n", stu[i].id);

				printf(" % s学生出生于: \n%04d-%02d-%02d\n", stu[i].name, stu[i].year, stu[i].month, stu[i].day);

				printf("%s的语文成绩: \n%d分\n", stu[i].name, stu[i].chinese);

				printf("%s的数学成绩: \n%d分\n", stu[i].name, stu[i].math);

				printf("%s的英语成绩: \n%d分\n", stu[i].name, stu[i].english);

				printf("---------------------学生信息输出完成--------------------\n");

			}
		}
		break;
	case 3:return;
	default:printf("**************请在1-3之间输入!*****************\n");
		if (flag == 0)
		{
			printf("#################没有找到此学生,请检查是否录入该学生信息!############\n");
		}
	}
	printf("\n");

}

6、插入函数:编写插入学生信息的函数;

int insert_students(int sum)
{
	printf("\n");

	students* pa;
	int x;
	pa = &stu[sum - 1];
	printf("-----------请输入学生信息插入位置-----------\n");
	int site;
	scanf("%d", &site);
	printf("请输入需要插入学生信息的人数:\n");
	scanf("%d", &x);
	int count = 0;
	for (int i = 0; i<= x; i++)
	{
		*(pa + x - count) = *(pa - count);
		count++;
	}
	for (int i = 0; i< x; i++)
	{
		printf("请输入第%d位学生姓名:\n", i + 1);
		scanf("%s", &stu[site - 1].name);
		printf("请输入该学生学号:\n");
		scanf("%s", &stu[site - 1].id);
		printf("请输入该学生出生年份:\n");
		scanf("%4d", &stu[site - 1].year);
		printf("请输入该学生出生月份:\n");
		scanf("%2d", &stu[site - 1].month);
		printf("请输入该学生出生于几号:\n");
		scanf("%2d", &stu[site - 1].day);
		printf("请输入该学生语文成绩:\n");
		scanf("%d", &stu[site - 1].chinese);
		printf("请输入该学生数学成绩:\n");
		scanf("%d", &stu[site - 1].math);
		printf("请输入该学生英语成绩:\n");
		scanf("%d", &stu[site - 1].english);
		printf("已记录完成,即将开始下一位学生信息记录\n");
		site++;
	}
	printf("\n");

	return x;
}

7、删除函数:编写删除学生信息的函数;

int del_students(int sum)
{
	printf("\n");

	int flag = 1;
	int i;
	students* del;
	int count = sum;
	int count1 = 0;
	char del_name[20];
	printf("------------请输入要删除信息的同学姓名---------\n");
	scanf("%s", &del_name);
	for ( i = 0; i< sum; i++)
	{
		if (strcmp(stu[i].name, del_name) == 0)
		{
			break;
		}
	}
	del = &stu[i];
	for (; count - 1 >i; count--)
	{
		*(del + count1) = *(del + count1 + 1);
		count1++;
	}
	return flag;
	printf("\n");

}

8、修改函数:编写修改指定学生相关信息的函数;

void modify(int sum)
{
	printf("\n");

	int i;
	int flag = 0;
	printf("-----------------请输入修改学生的姓名---------------\n");
	char name1[20];
	scanf("%s", &name1);
	for (i = 0; i< sum; i++)
	{
		if (strcmp(stu[i].name, name1) == 0)
		{
			flag = 1;
			break;
		}
	}
	if (flag == 1)
	{
		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");

		int modify_choice;

		scanf("%d", &modify_choice);
		while (modify_choice != 9)
		{
			switch (modify_choice)
			{
			case 1:
				printf("***************请输入修改后的学生姓名:*********************\n");

				scanf("%s", &stu[i].name);
				break;
			case 2:
				printf("***************请输入修改后的学生学号:*********************\n");

				scanf("%s", &stu[i].id);
				break;

			case 3:
				printf("***************请输入修改后的出生年份:*********************\n");


				scanf("%d", &stu[i].year);
				break;

			case 4:
				printf("***************请输入修改后的出生月份:*********************\n");


				scanf("%d", &stu[i].month);
				break;

			case 5:
				printf("***************请输入修改后的出生天数:*********************\n");


				scanf("%d", &stu[i].day);
				break;

			case 6:
				printf("***************请输入修改后的语文成绩:*********************\n");


				scanf("%d", &stu[i].chinese);
				break;

			case 7:
				printf("***************请输入修改后的数学成绩:*********************\n");

				scanf("%d", &stu[i].math);
				break;

			case 8:
				printf("***************请输入修改后的英语成绩:*********************\n");

				scanf("%d", &stu[i].english);
				break;

			case 9:
				break;
			default:
				printf("请输入1-9中的数字");
				modify(sum);
			}
			printf("--------------------修改完成!--------------------\n");
			printf("\n");

			printf("**********************即将返回修改菜单***********************\n");
			printf("\n");
			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");
			scanf("%d", &modify_choice);

		}
	}
	else printf("!!!!!!!!!!!!!!!!!没有查找到此学生,请添加学生!!!!!!!!!!!!!!!\n");
	printf("\n");

}

总程序: 

#define _CRT_SECURE_NO_WARNINGS 1
#include#include#include#include#include#include "C_test_user.h"


typedef struct students
{
	char id[20];
	char name[20];
	int year;
	int month;
	int day;
	int chinese, math, english;
	int add;
};
#define N 10000
 students stu[N];
 students* max = NULL;
 students* min = NULL;
 students tem;

 
int menu();

int scanf_students();

void printf_students(int sum);

void sort_students(int sum);

void search_print_students(int sum);							//查询并输出学生相关信息			

int insert_students(int sum);

int del_students(int sum);

void modify(int sum);

int main()
{
	int sum = 0; int n;
	int choice = menu();
	while (choice != 8)
	{
		switch (choice)
		{
		case 1:
			n = scanf_students();			//输入学生信息
			sum += n;
			choice = menu();
			if (choice != 8)
				continue;
			else break;
		case 2:
			printf_students(sum);			//打印学生信息
			choice = menu();
			if (choice != 8)
				continue;
			else break;
		case 3:
			sort_students(sum);				//以总分形式对学生排序
			choice = menu();
			if (choice != 8)
				continue;
			else break;
		case 4:
			search_print_students(sum);							//查询并输出学生相关信息			
			choice = menu();
			if (choice != 8)
				continue;
			else break;
		case 5:
			sum += insert_students(sum);
			choice = menu();
			if (choice != 8)
				continue;
			else break;
		case 6:
			sum -= del_students(sum);
			choice = menu();
			if (choice != 8)
				continue;
			else break;
		case 7:
			modify(sum);
			choice = menu();
			if (choice != 8)
				continue;
			else break;
		case 8:
			printf("已退出");
			break;
		default:
		printf("*********请输入1-8中的数字!*********\n");
		choice = menu();
		if (choice != 8)
			continue;
		else break;
			
		
		}
	}
		return 0;
}
int menu()
{
	printf("\n");

	printf("------------------------菜单------------------------\n");
	printf("*          1、输入n学生的信息                      *\n");
	printf("*          2、输出所有学生的信息                   *\n");
	printf("*          3、将学生信息按总分从大到小排序         *\n");
	printf("*          4、查询学生信息                         *\n");
	printf("*          5、插入学生的信息                       *\n");
	printf("*          6、删除一个学生的信息                   *\n");
	printf("*          7、修改学生的信息                       *\n");
	printf("*          8、退出                                 *\n");
	printf("----------------------------------------------------\n");
	printf("请选择菜单选项:\n");
	printf("\n");

	int choice;
	scanf("%d", &choice);

	return choice;

}
int scanf_students()
{
	printf("\n");

	int n;
	printf("请输入本次需要登记信息的人数:\n");
	scanf("%d", &n);
	if (n != 0)
	{
		for (int i = 0; i< n-1 ; i++)
		{
			printf("请输入第%d位学生姓名:\n", i+1);
			scanf("%s", &stu[i].name);
			printf("请输入该学生学号:\n");
			scanf("%s", &stu[i].id);
			printf("请输入该学生出生年份:\n");
			scanf("%4d", &stu[i].year);
			printf("请输入该学生出生月份:\n");
			scanf("%2d", &stu[i].month);
			printf("请输入该学生出生于几号:\n");
			scanf("%2d", &stu[i].day);
			printf("请输入该学生语文成绩:\n");
			scanf("%d", &stu[i].chinese);
			printf("请输入该学生数学成绩:\n");
			scanf("%d", &stu[i].math);
			printf("请输入该学生英语成绩:\n");
			scanf("%d", &stu[i].english);
			printf("已记录完成,即将开始下一位学生信息记录\n");
			stu[i].add = stu[i].chinese + stu[i].english + stu[i].math;
		}
		printf("请输入第%d位学生姓名:\n", n);
		scanf("%s", &stu[n-1].name);
		printf("请输入该学生学号:\n");
		scanf("%s", &stu[n-1].id);
		printf("请输入该学生出生年份:\n");
		scanf("%d", &stu[n-1].year);
		printf("请输入该学生出生月份:\n");
		scanf("%02d", &stu[n-1].month);
		printf("请输入该学生出生于几号:\n");
		scanf("%02d", &stu[n-1].day);
		printf("请输入该学生语文成绩:\n");
		scanf("%d", &stu[n-1].chinese);
		printf("请输入该学生数学成绩:\n");
		scanf("%d", &stu[n-1].math);
		printf("请输入该学生英语成绩:\n");
		scanf("%d", &stu[n-1].english);
		printf("已记录完成,即将返回菜单\n");
		stu[n-1].add = stu[n-1].chinese + stu[n-1].english + stu[n-1].math;
	}
	else {
		printf("无效输入,即将返回菜单\n");
	}
	printf("\n");

	
	return n;
}
void printf_students(int sum)
{
	printf("\n");

	if (sum >0)
	{
	printf("---------------------学生信息如下------------------------\n");
		for (int i = 0; i< sum - 1; i++)
		{
			printf("---------------------%s同学的信息如下------------------------\n",stu[i].name);

			printf("第%d位学生姓名为: \n%s\n",i+1, stu[i].name);

			printf("该学生学号为:\n%s\n", stu[i].id);

			printf(" % s学生出生于: \n%04d-%02d-%02d\n",stu[i].name, stu[i].year, stu[i].month, stu[i].day);

			printf("%s的语文成绩: \n%d分\n", stu[i].name, stu[i].chinese);

			printf("%s的数学成绩: \n%d分\n", stu[i].name, stu[i].math);

			printf("%s的英语成绩: \n%d分\n", stu[i].name, stu[i].english);


		}
		printf("---------------------%s同学的信息如下------------------------\n", stu[sum-1].name);
		printf("请输入第%d位学生姓名:\n %s\n",sum, stu[sum-1].name);

		printf("该学生学号为:\n%s\n", stu[sum-1].id);

		printf("该学生出生于:\n%d-%02d-%02d\n", stu[sum-1].year, stu[sum-1].month, stu[sum-1].day);

		printf("%s的语文成绩:\n%d分\n", stu[sum-1].name, stu[sum-1].chinese);

		printf("%s的数学成绩:\n%d分\n", stu[sum-1].name, stu[sum-1].math);

-		printf("%s的英语成绩:\n%d分\n", stu[sum-1].name, stu[sum-1].english);

		printf("全部信息已输出完成,即将返回菜单\n");
	printf("---------------------学生信息输出完成--------------------\n");
	}
	else
		printf("-------------------请先输入学生信息!---------------------\n");
	printf("\n");

}
void sort_students(int sum)
{
	printf("\n");

	max = stu;
	for (int i = 0; i< sum ; i++)
	{
		for (int j = 0; j< sum  - i-1; j++)
		{
			if ((max+j)->add<= (max+1+j)->add)
			{
				tem = *(max+j);
				*(max+j) = *(max+1+j);
				*(max+1+j) = tem;
				
			}
		}
	}
	printf("@@@@@@@@@@@@@@已按总成绩从高到低排序完成!@@@@@@@@@@@@@@@\n");
	printf("\n");

}
void search_print_students(int sum)
{
	printf("\n");

	printf("-------------学生信息查询系统---------------\n");
	printf("-----------------1、姓名查询----------------\n");
	printf("-----------------2、学号查询----------------\n");
	printf("-----------------3、退出信息查询系统-----------\n");
	int flag = 0;
	int search_choice;
	char name1[20], id1[20];
	scanf("%d", &search_choice);
	switch (search_choice)
	{
	case 1:
		printf("请输入学生姓名:\n");
		scanf("%s", &name1);
		printf("\n");
		for (int i = 0; i< sum; i++)
		{
			if (strcmp(stu[i].name, name1) >= 0);
			{
				flag = 1;
				printf("---------------------%s同学的信息如下------------------------\n", stu[i].name);

			printf("第%d位学生姓名为: \n%s\n", i + 1, stu[i].name);

			printf("该学生学号为:\n%s\n", stu[i].id);

			printf(" % s学生出生于: \n%04d-%02d-%02d\n", stu[i].name, stu[i].year, stu[i].month, stu[i].day);

			printf("%s的语文成绩: \n%d分\n", stu[i].name, stu[i].chinese);

			printf("%s的数学成绩: \n%d分\n", stu[i].name, stu[i].math);

			printf("%s的英语成绩: \n%d分\n", stu[i].name, stu[i].english);
			
			printf("---------------------学生信息输出完成--------------------\n");

			}

		}
		break;
	case 2:
		printf("请输入学生学号:\n");
		scanf("%s", &id1);
		for (int i = 0; i< sum; i++)
		{
			if (strcmp(stu[i].id, id1) >= 0)
			{
				flag = 1;
				printf("---------------------%s同学的信息如下------------------------\n", stu[i].name);

				printf("第%d位学生姓名为: \n%s\n", i + 1, stu[i].name);

				printf("该学生学号为:\n%s\n", stu[i].id);

				printf(" % s学生出生于: \n%04d-%02d-%02d\n", stu[i].name, stu[i].year, stu[i].month, stu[i].day);

				printf("%s的语文成绩: \n%d分\n", stu[i].name, stu[i].chinese);

				printf("%s的数学成绩: \n%d分\n", stu[i].name, stu[i].math);

				printf("%s的英语成绩: \n%d分\n", stu[i].name, stu[i].english);

				printf("---------------------学生信息输出完成--------------------\n");

			}
		}
		break;
	case 3:return;
	default:printf("**************请在1-3之间输入!*****************\n");
		if (flag == 0)
		{
			printf("#################没有找到此学生,请检查是否录入该学生信息!############\n");
		}
	}
	printf("\n");

}
int insert_students(int sum)
{
	printf("\n");

	students* pa;
	int x;
	pa = &stu[sum - 1];
	printf("-----------请输入学生信息插入位置-----------\n");
	int site;
	scanf("%d", &site);
	printf("请输入需要插入学生信息的人数:\n");
	scanf("%d", &x);
	int count = 0;
	for (int i = 0; i<= x; i++)
	{
		*(pa + x - count) = *(pa - count);
		count++;
	}
	for (int i = 0; i< x; i++)
	{
		printf("请输入第%d位学生姓名:\n", i + 1);
		scanf("%s", &stu[site - 1].name);
		printf("请输入该学生学号:\n");
		scanf("%s", &stu[site - 1].id);
		printf("请输入该学生出生年份:\n");
		scanf("%4d", &stu[site - 1].year);
		printf("请输入该学生出生月份:\n");
		scanf("%2d", &stu[site - 1].month);
		printf("请输入该学生出生于几号:\n");
		scanf("%2d", &stu[site - 1].day);
		printf("请输入该学生语文成绩:\n");
		scanf("%d", &stu[site - 1].chinese);
		printf("请输入该学生数学成绩:\n");
		scanf("%d", &stu[site - 1].math);
		printf("请输入该学生英语成绩:\n");
		scanf("%d", &stu[site - 1].english);
		printf("已记录完成,即将开始下一位学生信息记录\n");
		site++;
	}
	printf("\n");

	return x;
}
int del_students(int sum)
{
	printf("\n");

	int flag = 1;
	int i;
	students* del;
	int count = sum;
	int count1 = 0;
	char del_name[20];
	printf("------------请输入要删除信息的同学姓名---------\n");
	scanf("%s", &del_name);
	for ( i = 0; i< sum; i++)
	{
		if (strcmp(stu[i].name, del_name) == 0)
		{
			break;
		}
	}
	del = &stu[i];
	for (; count - 1 >i; count--)
	{
		*(del + count1) = *(del + count1 + 1);
		count1++;
	}
	return flag;
	printf("\n");

}
void modify(int sum)
{
	printf("\n");

	int i;
	int flag = 0;
	printf("-----------------请输入修改学生的姓名---------------\n");
	char name1[20];
	scanf("%s", &name1);
	for (i = 0; i< sum; i++)
	{
		if (strcmp(stu[i].name, name1) == 0)
		{
			flag = 1;
			break;
		}
	}
	if (flag == 1)
	{
		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");

		int modify_choice;

		scanf("%d", &modify_choice);
		while (modify_choice != 9)
		{
			switch (modify_choice)
			{
			case 1:
				printf("***************请输入修改后的学生姓名:*********************\n");

				scanf("%s", &stu[i].name);
				break;
			case 2:
				printf("***************请输入修改后的学生学号:*********************\n");

				scanf("%s", &stu[i].id);
				break;

			case 3:
				printf("***************请输入修改后的出生年份:*********************\n");


				scanf("%d", &stu[i].year);
				break;

			case 4:
				printf("***************请输入修改后的出生月份:*********************\n");


				scanf("%d", &stu[i].month);
				break;

			case 5:
				printf("***************请输入修改后的出生天数:*********************\n");


				scanf("%d", &stu[i].day);
				break;

			case 6:
				printf("***************请输入修改后的语文成绩:*********************\n");


				scanf("%d", &stu[i].chinese);
				break;

			case 7:
				printf("***************请输入修改后的数学成绩:*********************\n");

				scanf("%d", &stu[i].math);
				break;

			case 8:
				printf("***************请输入修改后的英语成绩:*********************\n");

				scanf("%d", &stu[i].english);
				break;

			case 9:
				break;
			default:
				printf("请输入1-9中的数字");
				modify(sum);
			}
			printf("--------------------修改完成!--------------------\n");
			printf("\n");

			printf("**********************即将返回修改菜单***********************\n");
			printf("\n");
			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");
			scanf("%d", &modify_choice);

		}
	}
	else printf("!!!!!!!!!!!!!!!!!没有查找到此学生,请添加学生!!!!!!!!!!!!!!!\n");
	printf("\n");

}

以上为本人自己编写,仅供学习参考。

此外本人在编写过程中发现了一篇更详细的文章 ,其博主编写的程序拥有更多更复杂功能,若有小伙伴想学习进步可以阅览一下下面这篇文章。

看到这了,不如点个赞吧!

文章链接:https://blog.csdn.net/ouyang_na_na/article/details/112972605

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


文章标题:C语言实验四:综合程序设计-创新互联
网页地址:http://pwwzsj.com/article/dgopji.html