C语言学生管理系统(链表实现)

这篇具有很好参考价值的文章主要介绍了C语言学生管理系统(链表实现)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

C语言学生管理系统主要是由链表实现的学生信息增,删,改,查等功能,我的管理系统由于为用到文件相关知识,感兴趣的同学们可以去学习添加文件保存等功能。

目录

我们首先需要用一个结构体来储存我们每一个学生的信息,以结构体为链表的数据域是不是要好理解一些呢(@@)

接下来就是各种功能的实现,这里我们就要用到函数。

 1.菜单,即主页面(这里大家就可以随意发挥了)

 2. 添加

 3.查找 

 4.删除

 5.修改

 6.排序

 7.显示 

 8.退出

完整代码 


我们首先需要用一个结构体来储存我们每一个学生的信息,以结构体为链表的数据域是不是要好理解一些呢(@@)

typedef struct score{
	int chinese;
	int math;
	int english;
}score;

typedef struct stu{
	char name[20];
	char num[20];
	char sex[10];
	int age;
	int total;
	score s;
}stu;//当然在这里我用了结构体的嵌套,其实没太大关系,大家可以稍作修改。

typedef struct linklist{
	stu date;
	struct linklist *next; 
}linklist;

接下来就是各种功能的实现,这里我们就要用到函数。

 1.菜单,即主页面(这里大家就可以随意发挥了)

void menu(){
	system("cls");
	printf("\t\t\t\t***************************************************\n");
	printf("\t\t\t\t*\t\t学生管理系统   1.0                *\n");
	printf("\t\t\t\t***************************************************\n");
	printf("\t\t\t\t*                                                 *\n");
	printf("\t\t\t\t*1.添加学生信息   2.查找学生信息  3.删除学生信息  *\n");
	printf("\t\t\t\t*                                                 *\n");
	printf("\t\t\t\t*4.修改学生信息 5.按成绩排序(total)6.显示所以信息 *\n");
	printf("\t\t\t\t*                                                 *\n");	
	printf("\t\t\t\t*7.退出程序                                       *\n");
	printf("\t\t\t\t*                                                 *\n");
	printf("\t\t\t\t***************************************************\n");
}

 效果如下

C语言学生管理系统(链表实现)

2. 添加

void add(linklist *head){
	printf("\t\t\t\t欢迎来到添加界面,请按要求完成操作|(@@)|\n");
	linklist *q=(linklist*)malloc(sizeof(linklist));
	q->next=NULL;
	linklist *p;
	p=head;
	char nam[20];
	printf("请输入姓名:");
	scanf("%s",nam);
	printf("\n请输入学号:");
	char num[20];
	scanf("%s",num);
	while(p->next!=NULL){
		if(strcmp(p->date.num,num)==0&&strcmp(p->date.name,nam)==0){
			printf("该学生已存在\n");
			break;
		}
		p=p->next;	
	}
	if(p->next==NULL){
		strcpy(q->date.num,num);
		strcpy(q->date.name,nam);
		printf("\n性别:");
		scanf("%s",q->date.sex);
		printf("\n请输入年龄:");
		scanf("%d",&q->date.age); 
		printf("\n请输入语文成绩:");
		scanf("%d",&q->date.s.chinese);
		printf("\n请输入数学成绩:");
		scanf("%d",&q->date.s.math);
		printf("\n请输入英语成绩:");
		scanf("%d",&q->date.s.english);
		q->date.total=q->date.s.chinese+q->date.s.english+q->date.s.math;
		p->next=q;
		p=q;
	}		
}

3.查找 

void seek( linklist *head) { 
	int k=0;
	char name3[20];
	printf("请输入学生姓名:\n");
	scanf("%s",name3);
	linklist *p;
	p=(linklist*)malloc(sizeof(linklist));
	p=head->next;
	if(p==NULL){
		printf("\t\t\t\t\t@还未录入信息!!!\n");
	}
	while(p!=NULL){
		if(strcmp(name3,p->date.name)==0) {
			k=k+1;
			printf("\n姓名\t\t年龄\t\t性别\t\t学号\t\t语文\t\t数学\t\t英语\t\t总分\n");
			printf("%s",p->date.name);
			printf("\t\t%3d",p->date.age);
			printf("\t\t"); 
			printf("%s",p->date.sex);
			printf("\t\t");
			printf("%s",p->date.num);
			printf("\t\t%3d",p->date.s.chinese);
			printf("\t\t%3d",p->date.s.math);
			printf("\t\t%3d",p->date.s.english);
			printf("\t\t%3d",p->date.total);
		//	printf("\n%s\t\t%3d\t\t%s\t\t%s\t\t%3d\t\t%3d\t\t%3d",p->date.name,p->date.age,p->date.sex,p->date.num,p->date.s.chinese,p->date.s.math,p->date.s.english);
			
		}
		if(k==0) {
			printf("查无此人");
		}
		p=p->next;
	}
}

 4.删除

void delet(linklist *head) { 

	linklist *p,*q;
	p=(linklist*)malloc(sizeof(linklist));
	q=(linklist*)malloc(sizeof(linklist));
	p=head;
	q=p->next;
	char name3[20];
	if(p==NULL) {
		printf("此时无数据");
		return;
	} 
	else {
		printf("请输入你想删除的学生的名字");
		scanf("%s",name3);
		while(q!=NULL) {
			if(strcmp(q->date.name,name3)==0){
				p->next=q->next;
				free(q);
				printf("\t\t\t\t******************************\n");
				printf("\t\t\t\t******************************\n"); 
				printf("\t\t\t\t*** @恭喜您!删除成功!!!***\n");
				printf("\t\t\t\t******************************\n");
				printf("\t\t\t\t******************************\n\n\n");
			}
			p=q;
			q=q->next;
		}
		
	}
}

 5.修改

void change(linklist *head){
	printf("\t\t\t\t欢迎来到修改界面,请按要求完成操作|(@@)|\n");
	char name4[20];
	printf("请输入学生姓名:\n");
	scanf("%s",name4);
	int k=0; 
	linklist *p;
	p=(linklist*)malloc(sizeof(linklist));
	p=head->next;
	while(p!=NULL){
		if(strcmp(name4,p->date.name)==0) {
			k=1;
			printf("%s",p->date.num);
			printf("\n姓名\t\t年龄\t\t性别\t\t学号\t\t语文\t\t数学\t\t英语\t\t总分\n");
			printf("%s",p->date.name);
			printf("\t\t%3d",p->date.age);
			printf("\t\t"); 
			printf("%s",p->date.sex);
			printf("\t\t");
			printf("%s",p->date.num);
			printf("\t\t%3d",p->date.s.chinese);
			printf("\t\t%3d",p->date.s.math);
			printf("\t\t%3d",p->date.s.english);
			p->date.total=p->date.s.chinese+p->date.s.english+p->date.s.math;
		}
		if(k==0) {
			printf("查无此人");
		}
		p=p->next;
	}
	printf("\t\t\t\t************************************************\n");
	printf("\t\t\t\t************************************************\n");
	printf("\t\t\t\t*1.学号  \t2.性别  \t3.年龄   *\n");
	printf("\t\t\t\t*                                              *\n");
	printf("\t\t\t\t*4.语文成绩\t5.数学成绩\t6.英语成绩             *\n");
	printf("\t\t\t\t************************************************\n");
	int sel4;
	printf("\n请按要求输入要修改信息的编号:");
	scanf(" %d",&sel4);
	p=head->next;
	while(p!=NULL){
		if(strcmp(name4,p->date.name)==0){
			switch(sel4){
				case 1:
					char s1[20]; 
					printf("\n请输入修改后的学号:");
					scanf("%s",s1);
					strcpy(p->date.num,s1);
					break;
				case 2:
					char s2[20];
					printf("\n请输入修改后的性别:");
					scanf("%s",s2);
					strcpy(p->date.sex,s2);
					break;
				case 3:
					int s3;
					printf("\n请输入修改后的年龄:");
					scanf("%d",&s3);
					
					p->date.age=s3;
					break;
				case 4:
					int s4;
					printf("\n请输入修改后的语文成绩:");
					scanf("%d",&s4);
		
					p->date.s.chinese=s4;
					break;
				case 5:
					int s5;
					printf("\n请输入修改后的英语成绩:");
					scanf("%d",&s5);
			
					p->date.s.english=s5;
					break;
				case 6:
					int s6;
					printf("\n请输入修改后的数学成绩:"); 
				 	scanf("%d",&s6);
				
				 	p->date.s.math=s6;
					break; 	
			}
		}
		p=p->next;
	} 
}

 6.排序

void sort(linklist *head) {  
	int b=1;
	if(head->next==NULL) {
		b=0;
	}
	if(b==0) {
		printf("当前无数据/n");
	}
	if(b==1) {
		linklist *p,*q;
		p=(linklist*)malloc(sizeof(linklist));
		q=(linklist*)malloc(sizeof(linklist));
		
		/*char name1[20];
		char sex1[6];
		char num1[20];
		int age1;
		int chinese1;
		int math1;
		int english1;
		int total1;*/
		printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
		printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
		printf("@@@       接下来请选择排序方式(|$@$|)      @@@\n");
		printf("@@@@@@@1.按年龄排序                       @@@@@@\n");
		printf("@@@@@@@2.按语文成绩排序                   @@@@@@\n");
		printf("@@@@@@@3.按英语成绩排序                   @@@@@@\n");
		printf("@@@@@@@4.按数学成绩排序                   @@@@@@\n");
		printf("@@@@@@@5.按总成绩排序                    @@@@@@\n");
		printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
		printf("你的选择是:");
		int flag;
		scanf("%d",&flag);
		for(p=head; p!=NULL; p=p->next) {
			for(q=p->next; q!=NULL; q=q->next) {
				switch(flag){
					case 1:
						if(p->date.age < q->date.age) {
							linklist *x;
							x=(linklist*)malloc(sizeof(linklist));
							x->date=p->date;
							p->date=q->date;
							q->date=x->date;
							free(x);
							
						}
						break;
					case 2:
						if(p->date.s.chinese < q->date.s.chinese) {
							linklist *x;
							x=(linklist*)malloc(sizeof(linklist));
							x->date=p->date;
							p->date=q->date;
							q->date=x->date;
							free(x);
							
						}
						break;
					case 3:
						if(p->date.s.english < q->date.s.english) {
							linklist *x;
							x=(linklist*)malloc(sizeof(linklist));
							x->date=p->date;
							p->date=q->date;
							q->date=x->date;
							free(x);
							
						}
						break;
					case 4:
						if(p->date.s.math < q->date.s.math) {
							linklist *x;
							x=(linklist*)malloc(sizeof(linklist));
							x->date=p->date;
							p->date=q->date;
							q->date=x->date;
							free(x);
							
						}
						break;
						
					case 5:
						if(p->date.total< q->date.total) {
							linklist *x;
							x=(linklist*)malloc(sizeof(linklist));
							x->date=p->date;
							p->date=q->date;
							q->date=x->date;
							free(x);
							
						}
						break;
				}
				} 
			}
			}
		
	
}

效果如下

C语言学生管理系统(链表实现)

7.显示 

void print(linklist *head){
	linklist *p;
	p=(linklist*)malloc(sizeof(linklist));
	p=head->next;
	printf("\n姓名\t\t年龄\t\t性别\t\t学号\t\t语文\t\t数学\t\t英语\t\t总分\n");
	
	while(p!=NULL){
		
		printf("%s",p->date.name);
		printf("\t\t%3d",p->date.age);
		printf("\t\t"); 
		printf("%s",p->date.sex);
		printf("\t\t");
		printf("%s",p->date.num);
		printf("\t\t%3d",p->date.s.chinese);
		printf("\t\t%3d",p->date.s.math);
		printf("\t\t%3d",p->date.s.english);
		printf("\t\t%3d\n",p->date.total);
		p=p->next;
	}
	
}

 效果如下

C语言学生管理系统(链表实现)

 8.退出

C语言学生管理系统(链表实现)

完整代码 

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct score{
	int chinese;
	int math;
	int english;
}score;

typedef struct stu{
	char name[20];
	char num[20];
	char sex[10];
	int age;
	int total;
	score s;
}stu;

typedef struct linklist{
	stu date;
	struct linklist *next; 
}linklist;

struct linklist* head=NULL;
struct linklist* tail=NULL;
 
void menu(){
	system("cls");
	printf("\t\t\t\t***************************************************\n");
	printf("\t\t\t\t*\t\t学生管理系统   1.0                *\n");
	printf("\t\t\t\t***************************************************\n");
	printf("\t\t\t\t*                                                 *\n");
	printf("\t\t\t\t*1.添加学生信息   2.查找学生信息  3.删除学生信息  *\n");
	printf("\t\t\t\t*                                                 *\n");
	printf("\t\t\t\t*4.修改学生信息   5.排序(total)    6.显示所以信息 *\n");
	printf("\t\t\t\t*                                                 *\n");	
	printf("\t\t\t\t*7.退出程序                                       *\n");
	printf("\t\t\t\t*                                                 *\n");
	printf("\t\t\t\t***************************************************\n");
}

void add(linklist *head){
	printf("\t\t\t\t欢迎来到删除界面,请按要求完成操作|(@@)|\n");
	linklist *q=(linklist*)malloc(sizeof(linklist));
	q->next=NULL;
	linklist *p;
	p=head;
	char nam[20];
	printf("请输入姓名:");
	scanf("%s",nam);
	printf("\n请输入学号:");
	char num[20];
	scanf("%s",num);
	while(p->next!=NULL){
		if(strcmp(p->date.num,num)==0&&strcmp(p->date.name,nam)==0){
			printf("该学生已存在\n");
			break;
		}
		p=p->next;	
	}
	if(p->next==NULL){
		strcpy(q->date.num,num);
		strcpy(q->date.name,nam);
		printf("\n性别:");
		scanf("%s",q->date.sex);
		printf("\n请输入年龄:");
		scanf("%d",&q->date.age); 
		printf("\n请输入语文成绩:");
		scanf("%d",&q->date.s.chinese);
		printf("\n请输入数学成绩:");
		scanf("%d",&q->date.s.math);
		printf("\n请输入英语成绩:");
		scanf("%d",&q->date.s.english);
		q->date.total=q->date.s.chinese+q->date.s.english+q->date.s.math;
		p->next=q;
		p=q;
	}		
}

void delet(linklist *head) { 

	linklist *p,*q;
	p=(linklist*)malloc(sizeof(linklist));
	q=(linklist*)malloc(sizeof(linklist));
	p=head;
	q=p->next;
	char name3[20];
	if(p==NULL) {
		printf("此时无数据");
		return;
	} 
	else {
		printf("请输入你想删除的学生的名字");
		scanf("%s",name3);
		while(q!=NULL) {
			if(strcmp(q->date.name,name3)==0){
				p->next=q->next;
				free(q);
				printf("\t\t\t\t******************************\n");
				printf("\t\t\t\t******************************\n"); 
				printf("\t\t\t\t*** @恭喜您!删除成功!!!***\n");
				printf("\t\t\t\t******************************\n");
				printf("\t\t\t\t******************************\n\n\n");
			}
			p=q;
			q=q->next;
		}
		
	}
}

void seek( linklist *head) { 
	int k=0;
	char name3[20];
	printf("请输入学生姓名:\n");
	scanf("%s",name3);
	linklist *p;
	p=(linklist*)malloc(sizeof(linklist));
	p=head->next;
	if(p==NULL){
		printf("\t\t\t\t\t@还未录入信息!!!\n");
	}
	while(p!=NULL){
		if(strcmp(name3,p->date.name)==0) {
			k=k+1;
			printf("\n姓名\t\t年龄\t\t性别\t\t学号\t\t语文\t\t数学\t\t英语\t\t总分\n");
			printf("%s",p->date.name);
			printf("\t\t%3d",p->date.age);
			printf("\t\t"); 
			printf("%s",p->date.sex);
			printf("\t\t");
			printf("%s",p->date.num);
			printf("\t\t%3d",p->date.s.chinese);
			printf("\t\t%3d",p->date.s.math);
			printf("\t\t%3d",p->date.s.english);
			printf("\t\t%3d",p->date.total);
		//	printf("\n%s\t\t%3d\t\t%s\t\t%s\t\t%3d\t\t%3d\t\t%3d",p->date.name,p->date.age,p->date.sex,p->date.num,p->date.s.chinese,p->date.s.math,p->date.s.english);
			
		}
		p=p->next;
	}
	if(k==0){
		printf("查无此人");
	}
}

void change(linklist *head){
	printf("\t\t\t\t欢迎来到修改界面,请按要求完成操作|(@@)|\n");
	char name4[20];
	printf("请输入学生姓名:\n");
	scanf("%s",name4);
	int k=0; 
	linklist *p;
	p=(linklist*)malloc(sizeof(linklist));
	p=head->next;
	while(p!=NULL){
		if(strcmp(name4,p->date.name)==0) {
			k=1;
			printf("%s",p->date.num);
			printf("\n姓名\t\t年龄\t\t性别\t\t学号\t\t语文\t\t数学\t\t英语\t\t总分\n");
			printf("%s",p->date.name);
			printf("\t\t%3d",p->date.age);
			printf("\t\t"); 
			printf("%s",p->date.sex);
			printf("\t\t");
			printf("%s",p->date.num);
			printf("\t\t%3d",p->date.s.chinese);
			printf("\t\t%3d",p->date.s.math);
			printf("\t\t%3d",p->date.s.english);
			p->date.total=p->date.s.chinese+p->date.s.english+p->date.s.math;
			printf("\t\t%3d\n",p->date.total);
		}
		
		p=p->next;
	}
	if(k==0){
		printf("查无此人\n");
	}
	printf("\n\t\t\t\t************************************************\n");
	printf("\t\t\t\t************************************************\n");
	printf("\t\t\t\t*1.学号  \t2.性别  \t3.年龄         *\n");
	printf("\t\t\t\t*                                              *\n");
	printf("\t\t\t\t*4.语文成绩\t5.英语成绩\t6.数学成绩     *\n");
	printf("\t\t\t\t************************************************\n");
	int sel4;
	printf("\n请按要求输入要修改信息的编号:");
	scanf("%d",&sel4);
	p=head->next;
	while(p!=NULL){
		if(strcmp(name4,p->date.name)==0){
			switch(sel4){
				case 1:
					char s1[20]; 
					printf("\n请输入修改后的学号:");
					scanf("%s",s1);
					strcpy(p->date.num,s1);
					break;
				case 2:
					char s2[20];
					printf("\n请输入修改后的性别:");
					scanf("%s",s2);
					strcpy(p->date.sex,s2);
					break;
				case 3:
					int s3;
					printf("\n请输入修改后的年龄:");
					scanf("%d",&s3);
					
					p->date.age=s3;
					break;
				case 4:
					int s4;
					printf("\n请输入修改后的语文成绩:");
					scanf("%d",&s4);
		
					p->date.s.chinese=s4;
					break;
				case 5:
					int s5;
					printf("\n请输入修改后的英语成绩:");
					scanf("%d",&s5);
			
					p->date.s.english=s5;
					break;
				case 6:
					int s6;
					printf("\n请输入修改后的数学成绩:"); 
				 	scanf("%d",&s6);
				
				 	p->date.s.math=s6;
					break; 	
			}
		}
		p=p->next;
	} 
}

void print(linklist *head){
	linklist *p;
	p=(linklist*)malloc(sizeof(linklist));
	p=head->next;
	printf("\n姓名\t\t年龄\t\t性别\t\t学号\t\t语文\t\t数学\t\t英语\t\t总分\n");
	while(p!=NULL){
		
		printf("%s",p->date.name);
		printf("\t\t%3d",p->date.age);
		printf("\t\t"); 
		printf("%s",p->date.sex);
		printf("\t\t");
		printf("%s",p->date.num);
		printf("\t\t%3d",p->date.s.chinese);
		printf("\t\t%3d",p->date.s.math);
		printf("\t\t%3d",p->date.s.english);
		printf("\t\t%3d\n",p->date.total);
		p=p->next;
	}
	
}

void sort(linklist *head) {  
	int b=1;
	if(head->next==NULL) {
		b=0;
	}
	if(b==0) {
		printf("当前无数据/n");
	}
	if(b==1) {
		linklist *p,*q;
		p=(linklist*)malloc(sizeof(linklist));
		q=(linklist*)malloc(sizeof(linklist));
		printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
		printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
		printf("@@@       接下来请选择排序方式(|$@$|)      @@@\n");
		printf("@@@@@@@1.按年龄排序                       @@@@@@\n");
		printf("@@@@@@@2.按语文成绩排序                   @@@@@@\n");
		printf("@@@@@@@3.按英语成绩排序                   @@@@@@\n");
		printf("@@@@@@@4.按数学成绩排序                   @@@@@@\n");
		printf("@@@@@@@5.按总成绩排序                    @@@@@@\n");
		printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
		printf("你的选择是:");
		int flag;
		scanf("%d",&flag);
		for(p=head; p!=NULL; p=p->next) {
			for(q=p->next; q!=NULL; q=q->next) {
				switch(flag){
					case 1:
						if(p->date.age < q->date.age) {
							linklist *x;
							x=(linklist*)malloc(sizeof(linklist));
							x->date=p->date;
							p->date=q->date;
							q->date=x->date;
							free(x);	
						}
						break;
					case 2:
						if(p->date.s.chinese < q->date.s.chinese) {
							linklist *x;
							x=(linklist*)malloc(sizeof(linklist));
							x->date=p->date;
							p->date=q->date;
							q->date=x->date;
							free(x);
							
						}
						break;
					case 3:
						if(p->date.s.english < q->date.s.english) {
							linklist *x;
							x=(linklist*)malloc(sizeof(linklist));
							x->date=p->date;
							p->date=q->date;
							q->date=x->date;
							free(x);
							
						}
						break;
					case 4:
						if(p->date.s.math < q->date.s.math) {
							linklist *x;
							x=(linklist*)malloc(sizeof(linklist));
							x->date=p->date;
							p->date=q->date;
							q->date=x->date;
							free(x);
							
						}
						break;
						
					case 5:
						if(p->date.total< q->date.total) {
							linklist *x;
							x=(linklist*)malloc(sizeof(linklist));
							x->date=p->date;
							p->date=q->date;
							q->date=x->date;
							free(x);
							
						}
						break;
				}
				} 
			}
			}
		
	
}

/*void save(linklist *head)
{
	system("cls");
    fflush(stdin);	
	FILE *fp;
	linklist *p;
	fp=fopen("stu.db","wb");

	for(p=head;p!=NULL;p=p->next)
	{
		fwrite(p,LEN,1,fp);
	}
	fclose(fp);
	printf("♂♂♂♂保存完毕♂♂♂♂♂\n"); 
	system("pause");
	system("cls");
    fflush(stdin); 	
}*/


int main()
{
	int choose;
	head=(linklist*)malloc(sizeof(linklist));
	head->next=NULL; 
	while(1){
		menu();
		scanf("%d",&choose);
		switch(choose){
			case 1:
				
				do{
					system("cls");
					add(head);
					char sel[5];
					printf("\t\t\t\t\t\t是否继续添加(yes or no): ");
					scanf("%s",sel);
					if(strcmp(sel,"yes")==0) continue;
					else break;
				}while(1);
				break;
			case 2:
				
				do{
					printf("\t\t\t\t欢迎来到查找界面,请按要求完成操作|(@@)|\n");
					seek(head);
					printf("\n\n\t\t\t\t\t\t是否继续查找(yes or no):");
					char sel2[5];
					scanf("%s",sel2);
					if(strcmp(sel2,"yes")==0) continue;
					else break;
				}while(1);
				break;
			case 3:	
				do{
					
					delet(head);
					char sel3[5];
					printf("\t\t\t\t是否继续删除(yes or no): ");
					scanf("%s",sel3);
					if(strcmp(sel3,"yes")==0) continue;
					else break;
				}while(1);
				break;
			case 4:
				change(head);
				break;
			case 5:
				printf("\t\t\t\t欢迎来到排序界面,请按要求完成操作|(@@)|\n");
				printf("原顺序:\n");
				print(head);
				do{
					int flag;
					printf("如需进行下一步选择1,退出选择0:"); 
					scanf("%d",&flag); 
					if(flag==1){
						sort(head);
						print(head);
						continue; 
					}
					if(flag==0) break;
					
				}while(1);
				break;
			case 6:
				system("cls");
				printf("\t\t\t\t欢迎来输出到界面,请按要求完成操作|(@@)|\n\n\n");
				print(head);
				printf("退出请输入0:");
				int sel6;
				scanf("%d",&sel6);
				if(sel6==0) break;
		/*	case 7:
				remember(head);
				break; */
			default:
				printf("\n感谢使用!\n");
				printf("\n                                                     *\n");
			    printf("                                                *  ***  ****\n");
			    printf("                                              *** **** ****\n");
			    printf("                                             **** **** **** ****\n");
			    printf("                                             **** **** **** ****\n");
			    printf("                                             **** **** **** ****\n");
			    printf("                                             **** **** **** ****\n");
			    printf("                                             **** **** **** ****\n");
			    printf("                                              **** ******* ****\n");
			    printf("                                                *************\n");
			    printf("                                                    *****\n");
				system("pause");
				return 0;
		}
	}
	return 0;
}

这就是一个简单管理系统仅供大家参考,欢迎大家修改完善使用文章来源地址https://www.toymoban.com/news/detail-503212.html

到了这里,关于C语言学生管理系统(链表实现)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言学习之main函数两个参数的应用

    main函数的两个参数: 参数argc: 表示在执行程序时,在终端所输入参数的个数, 包括可执行文件的名称 ; 参数argv: 1.本质上是一个 字符型指针数组 ; 2.用于获取指针数组中每个成员所指向的字符串; 3.存储时,参数argv指向所传递的 字符串的首地址 ; 伪代码表示: 测试代

    2024年02月11日
    浏览(55)
  • C语言学习之统计英文字符串中26个字母大小写出现的次数

    实例要求: 编写C语言代码,统计出英文字符串中26个字母大写和小写 出现的次数 ; 输入输出如下所示: 实例分析: 1.对字符串用 while循环或者for循环 进行遍历,找到 26个英文字母大小写 ; 2.将所有英文字母大写或者小写都转换成 ASCII值 ,进行运算; 3.封装相应的功能函数

    2024年02月10日
    浏览(65)
  • C语言用链表实现通讯录管理系统

    目录 总体思路 具体代码 编译通过 总体代码 一、创建一个结构体保存通讯录信息。 二、构建链表,并存于文件中。 三、实现链表结点的增加、删除、查询、输出。 一、创建一个结构体,保存信息。 二、用尾插法创建一个链表,并让用户选择是否输入数据。 三、将链表数据

    2024年02月02日
    浏览(52)
  • 【C语言链表实现】学生成绩管理系统(功能全面,通俗易懂)

    题目 :学生成绩管理程序 要求 :本程序用于教学单位(院/系)的学生成绩管理。要求程序能够实现学生信息录入(可以实现增加、删除、修改学生的基本信息)、单科学习成绩的录入;班级内单科成绩排名;成绩查询:查询某个学生的各科成绩、统计所有不及格科目超过

    2024年02月09日
    浏览(53)
  • C语言搭建项目-学生管理系统(非链表)

    、 目录 搭建offer.h文件 搭建offer.c中的main函数 密码登入系统 搭建my_oferr.c中的接口函数  使用帮助菜单接口函数 增加学生信息接口函数  查询学生信息接口函数 删除学生信息接口函数  保存学生信息接口  打开文件fopen 关闭文件fclose  判断是否保存文件fwrite 退出执行文件

    2024年02月03日
    浏览(39)
  • 图书管理系统——链表实现

    实验要求: 定义一个包含图书信息(书号、书名、价格)的顺序表或者链表。要求实现下面功能: 读入相应的图书数据来完成图书信息表的创建。然后,输出图书表中的图书个数,同时逐行输出每本图书的信息。 由于某种原因物价上涨,书店计划提高图书价格,要求计算所有

    2024年02月07日
    浏览(41)
  • 链表实现学生管理系统

    这次我们运用链表的基础知识,增删改查,实现对学生系统进行管理,采用的多文件编程模式,接下来介绍一下什么叫做多文件编程。 程序一般分三类文件: 头文件( .h ) 。放置各种 声明 ,用于被文件包含。(头文件的存在是为了联系多个源文件,是源文件之间的接口。)

    2024年04月11日
    浏览(34)
  • 【C语言课设计划】个人通讯录管理系统(C语言大作业 链表 结构体 运行截图 完整代码)

    hello 大家好呀 这里是布丁学姐~ 今天给大家带来的是《C语言课设计划》的第一篇,个人通讯录管理系统 通讯录是当前社会每个人不可缺少的信息系统,利用C语言和Dve c++制作个人通讯录管理系统,从根本上改变纸质通讯录难以长久保存、容易丢失的弊端,从而提高信息管理和

    2024年02月02日
    浏览(105)
  • 在c语言中使用链表完成学生成绩管理系统(密码登录系统的采纳,加入了隐藏与删除功能,添加了指针域与数据域两种不同的排序)

    #二、每个函数的简绍与思路 ##1:密码登录的验证思路: (1)在主函数main里定义一个标志 flat2=0;如果flat2!=0,就代表密码登录成功,可以进入系统! (2)在具体函数mima()之中,使用了控制台函数_getch();其头文件为#includeconio.h,该函数可以隐藏输出,注意:_getch()是隐藏单

    2024年04月23日
    浏览(40)
  • 图书管理系统(C语言实现)

    设计并实现一个简单的图书管理系统 本次实训内容主要在于训练学生的C语言的基本编程能力,通过C语言输入输出、循环语句、子函数设计、数组、结构体等知识点,完成一个简单图书管理系统的设计开发。实现录入图书、删除指定图书、修改指定图书和查询指定图书的基本

    2024年02月12日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包