⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 学生信息.c

📁 数据结构课老师让我们写的一个简单的学生信息小程序
💻 C
字号:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
#define Maxsize 40
typedef struct
{
	char stuno[10];
	char name[10];
	char sex[8];
	int age;
	int score;
} elemType;
struct List
{
	elemType *elem;
	int length;
	int listsize;
};

void initlist(struct List *L,int maxsize)
{
	if(maxsize<=0)
	{
		printf("Maxsize非法!\n");
		exit (1);
	}
	else
	{
		L->listsize=maxsize;
		L->length=0;
		L->elem=malloc(maxsize*sizeof(elemType));
	}
	if(!L->elem)
	{
		printf("内存分配失败!\n");
		exit (1);
	}
	else
	{
		printf("内存分配成功!\n");
	}
	printf("\n");
}
void initiallist(struct List *L,elemType elem)
{
	void straverselist(struct List *L);
	strcpy(L->elem[L->length].stuno,elem.stuno);
	strcpy(L->elem[L->length].name,elem.name);
	strcpy(L->elem[L->length].sex,elem.sex);
	L->elem[L->length].age=elem.age;
	L->elem[L->length].score=elem.score;
	L->length++;
	if(L->length!=0)
	printf("初始化成功!\n");
	straverselist(L);	
}
void setnull(struct List *L)
{
	L->length=0;
	if(L->length==0)
	{
		printf("表已被成功置空!\n");
		printf("\n");
	}
	else
	{
		printf("表置空失败!\n");
		printf("\n");
	}
}

void insertlist(struct List *L,elemType elem)
{
	if(L->length>=Maxsize)
	{
		printf("表已经满了!\n");
		printf("\n");
		exit (1);
	}
	else
	{
		strcpy(L->elem[L->length].stuno,elem.stuno);
		strcpy(L->elem[L->length].name,elem.name);
		strcpy(L->elem[L->length].sex,elem.sex);
		L->elem[L->length].age=elem.age;
		L->elem[L->length].score=elem.score;
		L->length++;
		printf("学号:%-10s  ",L->elem[L->length-1].stuno);
		printf("姓名:%-5s  ",L->elem[L->length-1].name);
		printf("性别:%-2s  ",L->elem[L->length-1].sex);
		printf("年龄:%-2d  ",L->elem[L->length-1].age);
		printf("成绩:%-2d  ",L->elem[L->length-1].score);
		printf("\n该生的资料被成功插入!\n");
	}
	printf("\n");
}
void findlist(struct List *L,char stn[10])
{
	int i;
	for(i=0;i<L->length;i++)
	{
		if(strcmp(L->elem[i].stuno,stn)==0)
		{
			printf("您要查找的学号%s学生资料是:\n",stn);
			printf("学号:%-10s  ",L->elem[i].stuno);
		    printf("姓名:%-5s  ",L->elem[i].name);
		    printf("性别:%-2s  ",L->elem[i].sex);
		    printf("年龄:%-2d  ",L->elem[i].age);
		    printf("成绩:%-2d  ",L->elem[i].score);
		    printf("  \n");
		}
		printf("  \n");
	}
	if(i>L->length)
	{
		printf("没有该生的资料!\n");
		printf("\n");
		exit (0);
	}
}
void clearlist(struct List *L,char stn[10])
{
	int i,j;
	for(i=0;i<L->length;i++)
	{
		if(strcmp(L->elem[i].stuno,stn)==0)
		{
			break;
		}
		
	}
	if(i==L->length)
	{
		printf("您要删除的学生不存在!\n");
		printf("\n");
		exit (0);
	}
	else
	{
		printf("学号:%-10s  ",L->elem[i].stuno);
	    printf("姓名:%-5s  ",L->elem[i].name);
	    printf("性别:%-2s  ",L->elem[i].sex);
	    printf("年龄:%-2d  ",L->elem[i].age);
	    printf("成绩:%-2d  ",L->elem[i].score);
	    printf("\n该生的资料被成功删除!\n");
	    printf("\n");
	}
	for(j=i+1;j<L->length;j++)
	{
		strcpy(L->elem[j-1].stuno,L->elem[j].stuno);
		strcpy(L->elem[j-1].name,L->elem[j].name);
		strcpy(L->elem[j-1].sex,L->elem[j].sex);
		L->elem[j-1].age=L->elem[j].age;
		L->elem[j-1].score=L->elem[j].score;
	}
	L->length--;
	
}
void straverselist(struct List *L)
{
	int i;
	if(L->length<=0)
	{
		printf("表是空的!\n");
		printf("\n");
	}
	else 
	{
		printf("遍历结果是:\n");
		for(i=0;i<L->length;i++)
	    {
		    printf("学号:%-10s  ",L->elem[i].stuno);
		    printf("姓名:%-5s  ",L->elem[i].name);
		    printf("性别:%-2s  ",L->elem[i].sex);
		    printf("年龄:%-2d  ",L->elem[i].age);
		    printf("成绩:%-2d  ",L->elem[i].score);
		    printf("  \n");
	    }
	    printf("\n");
	}
}
void main()
{
	elemType a1={"072121531","张远浩","男",20,90};
	elemType a2={"072121532","聂丽燕","女",20,90};
	elemType a3={"072121533","李绍辉","男",20,80};
	struct List L;
	char stn[10]={"072121532"};
	char c;
	initlist(&L,10);
	initiallist(&L,a1);
	straverselist(&L);
	insertlist(&L,a2);
	findlist(&L,stn);
	straverselist(&L);
	clearlist(&L,stn);
	straverselist(&L);
	setnull(&L);
	straverselist(&L);
	insertlist(&L,a3);
	straverselist(&L);
	printf("键入任意键退出!\n");
	c=getch();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -