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

📄 student.cpp

📁 学生信息录入系统 是用c语言编的很简单的
💻 CPP
字号:
#include <stdio.h> 
#include <stdlib.h> 
#include <conio.h> 
#include <string.h> 
#define MAX_NUM 45 

struct studenter { 
	int ID; 
	char Name[10]; 
	int Age; 
	char Sex[2]; 
	int Birthday; 
	char Adress[15]; 
	char TelNum[12]; 
	char Email[10]; 
}; 

typedef struct studenter STUDENT; 

void input(STUDENT stu[],int Max,int cn); 
int findStudentID(STUDENT stu[],int findID,int Max); 
void DisplayInfor(STUDENT stu[],int Max); 
void DispMainMenu(); 
void DispQueryMenu(); 
char choice(); 
int InforInput(STUDENT stu[],int cn); 
void QueryInfor(STUDENT stu[],int Max); 
void EditInfor(STUDENT stu[],int Max); 
void SortInfor(STUDENT stu[],int Max,char i);

void DispMainMenu() 
{ 
	printf("**************学生信息管理系统1.0**************\n"); 
	printf("\t1--学生信息录入 \t2--学生信息修改\n"); 
	printf("\t3--学生信息查询 \t4--学生信息删除\n"); 
	printf("\t5--学生信息排序 \t0--退出\n"); 
	printf("************************************************\n"); 
	printf("请选择(0--5):"); 
} 

void DispQueryMenu() 
{ 
	printf("*****************请选择查询方式*****************\n");
	printf("\t1--按学号查询; \t2--按姓名查询\n"); 
	printf("************************************************\n"); 
	printf("请选择(1--2):"); 
} 

char choice() 
{ 
	char select; 
	select=getche(); 
	getch(); 
	return (select);
	
} 

void DisplayInfor(STUDENT stu[],int Max) 
{ 
	int i; 
	printf("\n 学号 姓名 年龄 性别 出生年月\t 地址\t 电话\t E-mail\n"); 
	for(i=0;i<Max;i++) 
		printf("%8d %10s %2d %2s %8d %15s %12s %10s",stu[i].ID,stu[i].Name,stu[i].Age,stu[i].Sex,stu[i].Birthday,stu[i].Adress,stu[i].TelNum,stu[i].Email); 
	printf("\n"); 
} 

void input(STUDENT stu[],int Max,int cn) 
{ 
	int i;
	for(i=cn;i<Max+cn;i++) 
	{ 
		printf("\n请输入第%d个学生的学号 (8个字符以内):",i+1); 
		scanf("%d",&stu[i].ID); 
		printf("\n\t\t姓名(10个字符以内):"); 
		scanf("%s",stu[i].Name); 
		printf("\n\t\t\t 年龄:"); 
		scanf("%d",&stu[i].Age); 
		printf("\n\t\t\t性别(m或w):"); 
		scanf("%s",&stu[i].Sex); 
		printf("\n\t\t 出生年月(8位):"); 
		scanf("%d",&stu[i].Birthday);
		printf("\n\t\t\t 地址:"); 
		scanf("%s",&stu[i].Adress); 
		printf("\n\t\t\t 电话:"); 
		scanf("%s",&stu[i].TelNum);
		printf("\n\t\t\t E-mail:"); 
		scanf("%s",&stu[i].Email); 
		
	} 
	printf("\n您的输入信息是:\n"); 
	DisplayInfor(stu,Max+cn); 
} 

int findStudentID(STUDENT stu[],int findID,int Max) 
{ 
	int i; 
	for(i=0;i<Max;i++) 
	{ 
		if(stu[i].ID==findID)
			break; 
	} 
	if(i<Max) 
		return i; 
	else 
		return -1;
} 


int findStudentNAME(STUDENT stu[],char findNAME[10],int Max) 
{ 
	int i; 
	for(i=0;i<Max;i++) 
	{ 
		if(!strcmp(stu[i].Name,findNAME)) 
			break; 
	} 
	if(i<Max) 
		return i; 
	else 
		return -1; 
} 



int InforInput(STUDENT stu[],int cn) 
{ 
	int number; 

	printf("\n请输入本次录入的学生人数: "); 
	scanf("%d",&number); 
	if(number>MAX_NUM) 
	{ 
		printf("您输入的人数太多,大于%d人!\n",MAX_NUM); 
		return (0); 
	} 
	input(stu,number,cn) ; 
	return (number+cn); 
} 

void QueryInfor(STUDENT stu[],int Max) 
{ 
	char select; 
	int i; 
	int findID; 
	char findNAME[10]; 
	DispQueryMenu(); 
	select=choice(); 
	switch (select) 
	{ 
	case '1':
		printf("\n按学号查询\n请输入学生的学号: "); 
		scanf("%d",&findID); 
		if ((i=findStudentID(stu,findID,Max))!=-1) 
		{ 
			printf("查找结果如下:\n");
			printf(" 学号 姓名 年龄 性别 出生年月\t 地址\t 电话\t E-mail"); 
			printf("%8d %10s %2d %2s %8d %15s %12s %10s",stu[i].ID,stu[i].Name,stu[i].Age,stu[i].Sex,stu[i].Birthday,stu[i].Adress,stu[i].TelNum,stu[i].Email); 
		} 
		else 
			printf("您输入的学号不存在!\n");
		break; 
	case '2': 
		printf("\n按姓名查询\n请输入学生的姓名: "); 
		scanf("%s",&findNAME); 
		if ((i=findStudentNAME(stu,findNAME,Max))!=-1)
		{ 
			printf("查找结果如下:\n"); 
			printf(" 学号 姓名 年龄 性别 出生年月\t 地址\t 电话\t E-mail");
			printf("%8d %10s %2d %2s %8d %15s %12s %10s",stu[i].ID,stu[i].Name,stu[i].Age,stu[i].Sex,stu[i].Birthday,stu[i].Adress,stu[i].TelNum,stu[i].Email); 
		} 
		else 
			printf("您输入的姓名不存在!\n"); 
		break; 
	default : 
		printf("选择错误!\n"); 
	} 
} 


void EditInfor(STUDENT stu[],int Max) 
{ 
	int i; 
	int findID; 
	printf("\n请输入学生的学号: "); 
	scanf("%d",&findID); 
	if ((i=findStudentID(stu,findID,Max))!=-1)
	{ 
		printf("姓 名: %s\n",stu[i].Name); 
		printf("原信息:%8d %2d %2s %8d %15s %12s %10s",stu[i].ID,stu[i].Age,stu[i].Sex,stu[i].Birthday,stu[i].Adress,stu[i].TelNum,stu[i].Email); 
		printf("\n 请输入新的学号 (8个字符以内):",i+1); 
		scanf("%d",&stu[i].ID); 
		printf("\n\t\t姓名(10个字符以内):"); 
		scanf("%s",stu[i].Name); 
		printf("\n\t\t\t 年龄:"); 
		scanf("%d",&stu[i].Age); 
		printf("\n\t\t\t性别(m或w):"); 
		scanf("%s",&stu[i].Sex); 
		printf("\n\t\t 出生年月(8位):"); 
		scanf("%d",&stu[i].Birthday); 
		printf("\n\t\t\t 地址:"); 
		scanf("%s",&stu[i].Adress); 
		printf("\n\t\t\t 电话:"); 
		scanf("%s",&stu[i].TelNum); 
		printf("\n\t\t\t E-mail:"); 
		scanf("%s",&stu[i].Email); 
	} 
	else 
		printf("您输入的学号不存在!\n"); 
} 


DEL(STUDENT stu[],int Max,int i) 
{ 
	for(;i<Max;i++) 
	{ 
		stu[i-1].ID=stu[i].ID; 
		strcpy(stu[i-1].Name,stu[i].Name); 
		stu[i-1].Age=stu[i].Age; 
		strcpy(stu[i-1].Sex,stu[i].Sex); 
		stu[i-1].Birthday=stu[i].Birthday; 
		strcpy(stu[i-1].Adress,stu[i].Adress); 
		strcpy(stu[i-1].TelNum,stu[i].TelNum); 
		strcpy(stu[i-1].Email,stu[i].Email); 
	} 
	return(--Max); 
} 



void DelInfor(STUDENT stu[],int Max) 
{ 
	int findID,i; 
	char findNAME[10],select; 
	printf("*****************请选择删除方式*****************\n"); 
	printf("\t1--按学号删除; \t2--按姓名删除\n"); 
	printf("************************************************\n"); 
	printf("请选择(1--2):"); 
	select=choice(); 
	switch (select) 
	{ 
	case '1': 
		printf("\n按学号删除\n请输入学生的学号: "); 
		scanf("%d",&findID); 
		if ((i=findStudentID(stu,findID,Max))!=-1) 
			DEL(stu,Max,i); 
		else 
			printf("您输入的学号不存在!\n"); 
		break; 
	case '2': 
		printf("\n按姓名删除\n请输入学生的姓名: "); 
		scanf("%s",&findNAME); 
		if ((i=findStudentNAME(stu,findNAME,Max))!=-1) 
			DEL(stu,Max,i); 
		else 
			printf("您输入的姓名不存在!\n"); 
		break; 
	default : 
		printf("选择错误!\n"); 
	} 
} 

void SortInforMenu(STUDENT stu[],int Max) 
{ 
	char select; 
	printf("*****************请选择排序方式*****************\n"); 
	printf("\t1--按学号排序; \t2--按姓名排序\n"); 
	printf("************************************************\n"); 
	printf("请选择(1--2):"); 
	select=choice(); 
	if (select=='1'||select=='2') 
		SortInfor(stu,Max,select); 
	else 
		printf("选择错误!\n"); 
} 






void SortInfor(STUDENT stu[],int Max,char i) 
{ 
	STUDENT student; 
	int j=0,k,l=0; 
	if(i=='1') 
	{ 
		for(k=0;j<Max;j++) 
			for(;k<Max-j-1;k++) 
			{ 
				if(stu[k].ID>stu[k+1].ID) 
				{ 
					student.ID=stu[k+1].ID; 
					strcpy(student.Name,stu[k+1].Name); 
					student.Age=stu[k+1].Age; 
					strcpy(student.Sex,stu[k+1].Sex); 
					student.Birthday=stu[k+1].Birthday; 
					strcpy(student.Adress,stu[k+1].Adress); 
					strcpy(student.TelNum,stu[k+1].TelNum); 
					strcpy(student.Email,stu[k+1].Email); 
					stu[k+1].ID=stu[k].ID; 
					strcpy(stu[k+1].Name,stu[k].Name); 
					stu[k+1].Age=stu[k].Age; 
					strcpy(stu[k+1].Sex,stu[k].Sex); 
					stu[k+1].Birthday=stu[k].Birthday; 
					strcpy(stu[k+1].Adress,stu[k].Adress); 
					strcpy(stu[k+1].TelNum,stu[k].TelNum); 
					strcpy(stu[k+1].Email,stu[k].Email); 
					stu[k].ID=student.ID; 
					strcpy(stu[k].Name,student.Name); 
					stu[k].Age=student.Age; 
					strcpy(stu[k].Sex,student.Sex); 
					stu[k].Birthday=student.Birthday; 
					strcpy(stu[k].Adress,student.Adress); 
					strcpy(stu[k].TelNum,student.TelNum); 
					strcpy(stu[k].Email,student.Email); 
				} 
				printf("\n 学号 姓名 年龄 性别 出生年月\t 地址\t 电话\t E-mail\n"); 
				for(i=0;i<Max;i++) 
					printf("%8d %10s %2d %2s %8d %15s %12s %10s",stu[i].ID,stu[i].Name,stu[i].Age,stu[i].Sex,stu[i].Birthday,stu[i].Adress,stu[i].TelNum,stu[i].Email); 
				printf("\n"); 
			} 
	} 
	else if(i=='2') 
	{ 
		for(k=0;j<Max;j++) 
			for(;k<Max-j-1;k++) 
			{ 
				if(strcmp(stu[k].Name,stu[k+1].Name)>0) 
				{ 
					student.ID=stu[k+1].ID; 
					strcpy(student.Name,stu[k+1].Name); 
					student.Age=stu[k+1].Age; 
					strcpy(student.Sex,stu[k+1].Sex); 
					student.Birthday=stu[k+1].Birthday; 
					strcpy(student.Adress,stu[k+1].Adress); 
					strcpy(student.TelNum,stu[k+1].TelNum); 
					strcpy(student.Email,stu[k+1].Email); 
					stu[k+1].ID=stu[k].ID; 
					strcpy(stu[k+1].Name,stu[k].Name); 
					stu[k+1].Age=stu[k].Age; 
					strcpy(stu[k+1].Sex,stu[k].Sex); 
					stu[k+1].Birthday=stu[k].Birthday; 
					strcpy(stu[k+1].Adress,stu[k].Adress); 
					strcpy(stu[k+1].TelNum,stu[k].TelNum); 
					strcpy(stu[k+1].Email,stu[k].Email); 
					stu[k].ID=student.ID; 
					strcpy(stu[k].Name,student.Name); 
					stu[k].Age=student.Age; 
					strcpy(stu[k].Sex,student.Sex); 
					stu[k].Birthday=student.Birthday; 
					strcpy(stu[k].Adress,student.Adress); 
					strcpy(stu[k].TelNum,student.TelNum); 
					strcpy(stu[k].Email,student.Email); 
				} 
			} 
			
			printf("\n 姓名 学号 年龄 性别 出生年月\t 地址\t 电话\t E-mail\n"); 
			for(;l<Max;l++) 
				printf("%10s %8d %2d %2s %8d %15s %12s %10s",stu[l].Name,stu[l].ID,stu[l].Age,stu[l].Sex,stu[l].Birthday,stu[l].Adress,stu[l].TelNum,stu[l].Email); 
			printf("\n"); 
	} 
} 



Save(STUDENT stu[],int Max)
{ 
	int i=0 ; 
	FILE *fp; 
	if((fp=fopen("stu.txt","w+"))==NULL) 
	{ 
		printf("ERROR!"); 
		exit(0); 
	} 
	for(;i<Max;i++) 
	{ 
		fprintf(fp,"%d ",stu[i].ID); 
		fprintf(fp,"%s ",stu[i].Name); 
		fprintf(fp,"%d ",stu[i].Age); 
		fprintf(fp,"%s ",stu[i].Sex); 
		fprintf(fp,"%d ",stu[i].Birthday); 
		fprintf(fp,"%s ",stu[i].Adress); 
		fprintf(fp,"%s ",stu[i].TelNum); 
		fprintf(fp,"%s ",stu[i].Email); 
	} 
	fclose(fp); 
	printf("OK!"); 
} 




int main(int argc, char *argv[]) 
{ 
	char select; 
	STUDENT stu[MAX_NUM]; 
	int current_number=0; 
	select=0; 
	while(select!='0') 
	{ 
		system("cls"); 

		DispMainMenu(); 
		select=choice(); 

		switch(select) 
		{ 
		case '0': 
			printf("\n您选择的是退出测试!\n"); 
			_beep(300,400); 
			continue; 
		case '1': 
			printf("\n您选择的是信息录入!\n"); 
			current_number=InforInput(stu,current_number); 
			break; 
		case '2': 
			printf("\n您选择的是信息修改!\n"); 
			EditInfor(stu,current_number); 
			break; 
		case '3': 
			printf("\n您选择的是信息查询!\n"); 
			QueryInfor(stu,current_number); 
			break; 
		case '4': 
			printf("\n您选择的是删除信息!\n"); 
			DelInfor(stu,current_number); 
			break; 
		case '5': 
			printf("\n您选择的是排序信息!\n"); 
			SortInforMenu(stu,current_number); 
			break; 
		default: 
			printf("\n选择错误!请重新选择!\n"); 
		} 
		system("PAUSE"); 
	} 
	return (0); 
	Save(stu,current_number); 
}

⌨️ 快捷键说明

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