欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

c语言学生信息管理系统

程序员文章站 2022-05-06 09:09:31
...

超简单的学生信息管理系统
使用顺序表实现~~适合入门,新手学习使用

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#define N 20
int count=0;

typedef struct{
	int score;//成绩 
	char name[12];//姓名 
	char number[20]; //学号
	int grade; //年级 
}student; 

typedef struct{
	student list[N];
	int last;
}Sqlist;

void create(Sqlist &stu){			//录入学生数据 
	char flag;//接收信号是否停止录入 
	int i=0;
	do{
		system("cls");
		printf("请输入第%d个学生的学号:",count+1);
		scanf("%s",&stu.list[count].number);
		
		for(i=0;i<count;i++){ //判断是否有输入错误 
			if(strcmp(stu.list[count].number,stu.list[i].number)==0){
				printf("学号已存在,检查是否输出错误,目前该学号为:%s",stu.list[count].number);
				return;
			}
		}
		
		printf("\n请输入该学生年级:");
		scanf("%d",&stu.list[count].grade);
		printf("\n请输入该学生姓名:");
		scanf("%s",&stu.list[count].name);
		printf("\n请输入该学生成绩:");
		scanf("%d",&stu.list[count].score);
		count++;
		
		printf("\n录入成功");
		printf("\n是否继续录入?(y/n)");
		fflush(stdin);
		scanf("%c",&flag);
	}while(flag=='y'||flag=='Y');
	
}

void browse(Sqlist &stu){			//浏览学生数据	
	int i=0;
	system("cls");
	printf("\n\t学号\t\t年级\t\t姓名\t\t成绩");
	while(i<count){
		if(strlen(stu.list[i].number)>=8)
		printf("\n%s\t\t%d\t\t%s\t\t%d",stu.list[i].number,stu.list[i].grade,stu.list[i].name,stu.list[i].score);
		else
		printf("\n\t%s\t\t%d\t\t%s\t\t%d",stu.list[i].number,stu.list[i].grade,stu.list[i].name,stu.list[i].score);
		i++;
	}
	printf("\n\n");
	printf("\n\n\n\n\n按任意键继续!");
	getch();
}

void find(Sqlist &stu){			//查找学生数据 
	char findNumber[20];
	int i;
	system("cls");
	printf("请输入需要查找学生的学号:\n");
	scanf("%s",&findNumber);
	
	for(i=0;i<count;i++){
		
		if(strcmp(findNumber,stu.list[i].number)==1){
			printf("\n\t 学号:%s",stu.list[i].number);
			printf("\n\t 年级:%d",stu.list[i].grade);
			printf("\n\t 姓名:%s",stu.list[i].name);
			printf("\n\t 成绩:%d",stu.list[i].score);
			break;
		}
	}
	
	if(i>=count){
		printf("\n查询不到该学号,请重新核实!");
		printf("\n任意键返回!");
		getch();
	}else{
		printf("\n任意键返回!");
		getch();
		
	}
}

void del(Sqlist &stu){				//删除学生数据 
	char delNumber[10];
	char c;
	int i;
	int flag=0;
	system("cls");
	printf("请输入要删除学生数据的学号:\n");
	scanf("%s",&delNumber);
	
	for(i=0;i<count;i++){
		if(strcmp(delNumber,stu.list[i].number)==1)
		flag=1;
		break;
	}
	if(flag==1){
		system("cls");
		printf("\n学号为:%s",stu.list[i].number);
		printf("\n年级为:%d",stu.list[i].grade);
		printf("\n姓名为:%s",stu.list[i].name);
		printf("\n成绩为:%d",stu.list[i].score);
		printf("\n是否确认删除(y/n)?");
		fflush(stdin);
		c=getch();
		if(c=='y'||'Y'){
			for(int j=i;j<count-1;j++)
			stu.list[j]=stu.list[j+1];
			printf("\n删除成功!");
			count--;
		}
	}else{
		printf("\n并无此学生,重新核实!");
	}
	printf("\n按任意键继续!");
	getch();
	 
}

void quit(){
	printf("\n\n谢谢使用!");
	exit(0);
}

int menu(){
	int flag;
	system("cls");
	printf("\n\n\t欢迎使用学生信息管理系统!");
	printf("\n**********目前共有%d个学生信息***********",count);
	printf("\n\t 按[1]录入学生数据"); 
	printf("\n\t 按[2]浏览学生数据"); 
	printf("\n\t 按[3]查找学生数据"); 
	printf("\n\t 按[4]删除学生数据"); 
	printf("\n\t 按[5]退出系统");
	printf("\n*****************************************");
	do{
		printf("\n\t 请输入(1~5)!\n");
		scanf("%d",&flag);
	}while(flag<1||flag>5);
	return flag;
}

void create(Sqlist &stu);
void browse(Sqlist &stu);
void find(Sqlist &stu);
void del(Sqlist &stu);
void quit();
int menu();

int main(){
	Sqlist stu;
	while(1){
		switch(menu()){
			
			case 1:	create(stu); break;
			
			case 2: browse(stu); break;
			
			case 3: find(stu); break;
			
			case 4: del(stu); break;
			
			case 5:	quit();	break;
			
		}
	}
	getch();
}

c语言学生信息管理系统
c语言学生信息管理系统
c语言学生信息管理系统