C语言利用链表实现学生成绩管理系统

链表是一种常见的基础数据结构,结构体指针在这里得到了充分的利用。

链表可以动态的进行存储分配,也就是说,链表是一个功能极为强大的数组,他可以在节点中定义多种数据类型,还可以根据需要随意增添,删除,插入节点。

链表都有一个头指针,一般以head来表示,存放的是一个地址。链表中的节点分为两类,头结点和一般节点,头结点是没有数据域的。链表中每个节点都分为两部分,一个数据域,一个是指针域。

说到这里你应该就明白了,链表就如同车链子一样,head指向第一个元素:第一个元素又指向第二个元素;……,直到最后一个元素,该元素不再指向其它元素,它称为“表尾”,它的地址部分放一个“NULL”(表示“空地址”),链表到此结束。

作为有强大功能的链表,对他的操作当然有许多,比如:链表的创建,修改,删除,插入,输出,排序,反序,清空链表的元素,求链表的长度等等。

本文就将利用C语言中的链表实现一个简单的学生成绩管理系统

示例代码

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<iostream>
int choice = 0;
int mima=123456;
int zhanghao=123456;
int summ=0;//学生总数
int i=0,j=0,k=0;//数学英语树脂不及格的人数
using namespace std;
typedef struct STUDENT
{
	int num;				//学号
	char name[15];			//姓名
	char major[15];			//专业
	double math;			//数学成绩
	double english;			//英语成绩
	double shuzhi;			//IKUN树脂分
	double average;			//平均分
	double sum;				//总分
}student;
typedef struct Node
{
 	student  data;
	struct Node *next;
}Node,*LinkList;
void CreateList(LinkList &l);                     //创建链表
void ZenjaiNode(LinkList &l, student e);   	 	  //增加节点
int  ShanchuNode(LinkList &l, int num);    		  //删除节点
int  XuigaiNode(LinkList &l, int num, student e); //修改节点
int  Chazhao(LinkList l, int num, student &e); 	  //查找节点
void ZenjiaStudent(LinkList &l);      		      //增加学生
void ShanchuStudent(LinkList &l);     			  //删除学生
void XuigaiStudent(LinkList &l);     			  //修改学生
void ChazhaoStudent(LinkList l);      			  //查找学生
void XianshiStudent(LinkList l);     			  //显示学生
void menu();                                      //主菜单
void math();
void english();
void shuzhi();
void mathmax();
void englishmax();
void shuzhimax();
void CreateList(LinkList &l)//创建链表,头节点
{
	l=(LinkList)malloc(sizeof(Node));
	l->next=NULL;
}
void ZenjiaNode(LinkList &l, student e)//尾插节点
{
	Node*q=(LinkList)malloc(sizeof(Node));
	q->data=e;
	q->next=NULL;
	Node*p=l;
	while(p->next)
	p=p->next;
	p->next=q;

}
int ShanchuNode(LinkList &l, int num)//删除节点
{
	Node *p,*q;
	p=l;
	while(p->next)
	{
		q=p->next;
		if(num==(q->data).num)
		{
			if((q->data).math<60)
			i--;
			if((q->data).english<60)
			j--;
			if((q->data).shuzhi<60)
			k--;
			p->next=q->next;
			free(q);
			return 0;//删除完成
		}
		p=p->next;
	}
	return 1;//未找到
 }
 int XuigaiNode(LinkList &l, int num, student e)//修改节点
 {
 	Node *p,*q;
 	p=l;
 	while(p->next)
 	{
 		q=p->next;
 		if(num==(q->data).num)
 		{
 			q->data=e;
 			return 0;//修改完成
		 }
		 p=p->next;
	}

	return 1;//修改失败
 }
 int ChazhaoNode(LinkList l, int num,student &e)//查找节点
 {
 	Node *p,*q;
 	p=l;
	while(p->next)
	{
		q=p->next;
		if(num==(q->data).num)
		{
			e=q->data;
			return 0;//查找完成
		}
		p=p->next;

 	}
 	return 1;//查找失败
}
void ZenjiaStudent(LinkList &l)     				 //增加学生
{
	summ++;
	student e;
	printf("小黑子请输入你想录入IKUN的成绩吧!\n")	;
	printf("学号\n");
	scanf("%d",&e.num);
	//getchar();
	printf("姓名\n");
	scanf("%s",e.name);
	//getchar();
	printf("专业\n");
	scanf("%s",e.major);
	//getchar();
	printf("数学成绩\n");
	scanf("%lf",&e.math);
	printf("英语成绩\n");
	scanf("%lf",&e.english);
	printf("IKUN树脂分\n");
	scanf("%lf",&e.shuzhi);
	e.average=(e.math+e.english+e.shuzhi)/3;
	e.sum=e.math+e.english+e.shuzhi;
	ZenjiaNode(l, e);
	system("pause");

}
void ShanchuStudent(LinkList &l)    			 //删除学生
{
	summ--;
	int num;
	printf("请输入要删除的IKUN的学号\n");
	scanf("%d",&num);
	if(ShanchuNode( l, num)==1)
		printf("查找失败哎呦,你个黑子冒充IKUN,香翅捞饭食不食\n");
	else
	{
		printf("删除成功了,奖励一个蛋\n");
	}
	system("pause");
}
void XuigaiStudent(LinkList &l)     			 //修改学生信息
{
	student e;
	int num;
	char x;
	printf("请输入要修改IKUN的学号\n");
	scanf("%d",&num);

			printf("请重新输入信息吧\n");
			printf("请输入学号\n");
			scanf("%d",&e.num);
			printf("请输入姓名\n");
			scanf("%s",e.name);
			printf("请输入专业\n");
			scanf("%s",e.major);
			printf("请输入数学成绩\n");
			scanf("%lf",&e.math);
			printf("请输入英语成绩\n");
			scanf("%lf",&e.english);
			printf("请输入树脂分\n");
			scanf("%lf",&e.shuzhi);
			e.average=(e.math+e.english+e.shuzhi)/3;
			e.sum=e.math+e.english+e.shuzhi;

	if( XuigaiNode(l,num,e)==1)
	printf("未找到该IKUN\n");
	else
	printf("修改完成\n");

	system("pause");
}
void ChazhaoStudent(LinkList l)      			 //查找学生
{
	student e;
	int num;
	printf("请输入要查找的IKUN学号\n");
	scanf("%d",&num);
	if(ChazhaoNode( l, num,e)==1)
		printf("没有找到哦\n");
		else
		{
			printf("学号    姓名    专业    数学成绩   英语成绩   树脂分    平均分    总分\n");
			printf("%-8d%-8s%-8s%-11.2f%-11.2f%-10.2f%-10.2f%-10.2f\n",e.num,e.name,e.major,e.math,e.english,e.shuzhi,e.average,e.sum);
		system("pause");
		}
}
void XianshiStudent(LinkList l)    			 //显示学生
{

	printf("学号    姓名    专业    数学成绩   英语成绩   树脂分    平均分    总分\n");
	Node *p=l;
	student e;
	while(p->next)
	{
		e=(p->next)->data;
		printf("%-8d%-8s%-8s%-11.2f%-11.2f%-10.2f%-10.2f%-10.2f\n",e.num,e.name,e.major,e.math,e.english,e.shuzhi,e.average,e.sum);
		p=p->next;
	}system("pause");
}

void paixu(LinkList l)//总分排序
{
	student e;

	Node *p,*q;
	p=l->next;
	if(p->next==NULL)
	printf("请输入IKUN之后再来吧\n");
	else
	{
		while(p->next!=NULL)
		{
			q=p->next;
			while(q!=NULL)
			{
				if(p->data.average<q->data.average)
				{
					e=p->data;
					p->data=q->data;
					q->data=e;
				}
				q=q->next;
			}
			p=p->next;
		}
		printf("排序成功\n");
	}
	system("pause");
}
void math(LinkList l)//数学不及格
{

	Node *p;
	student e;
	p=l;
	while(p->next!=NULL)
	{
		e=(p->next)->data;
		if(e.math<60)
		{
		printf("数学不及格学员如下:\n");
		printf("姓名:%s   成绩:%.2f\n",e.name,e.math);
		}
		p=p->next;
		i++;
	}
	if(i==0&&summ!=0)
	{
		printf("所有人都及格了呢\n");
	}
	else
	if(summ==0)
	printf("系统人数为0,请添加信息后再试\n");
	system("pause");
}
void english(LinkList l)//英语不及格
{

	Node *p;
	student e;
	p=l;
	while(p->next!=NULL)
	{
		e=(p->next)->data;
		if(e.english<60)
		{
			printf("英语不及格学员如下:\n");
			printf("姓名:%s   成绩:%.2f\n",e.name,e.english);
			j++;
		}
		p=p->next;
	}
	if(j==0&&summ!=0)
	{
		printf("所有人都及格了呢\n");
	}
	else
		if(summ==0)
		printf("系统人数为0,请添加信息后再试\n");
	system("pause");
}
void shuzhi(LinkList l)//树脂不及格
{

	Node *p;
	student e;
	p=l;
	while(p->next!=NULL)
	{
		e=(p->next)->data;
		if(e.shuzhi<60)
		{
		printf("树脂不及格学员如下:\n");
		printf("姓名:%s   成绩:%.2f\n",e.name,e.shuzhi);
		k++;
		}
		p=p->next;
	}

	if(k==0&&summ!=0)
	{
		printf("所有人都及格了呢\n");
	}
	else
	if(summ==0)
	printf("系统人数为0,请添加信息后再试\n");

	system("pause");
}
void mathmax(LinkList l)
{
	Node *p,*q;
	double max;
	student e,f;
	p=l;
	q=p->next;
	e=(p->next)->data;
	max=e.math;
	while(q->next!=NULL)
	{

		f=(q->next)->data;

		if(f.math>max)
		max=f.math;

		q=q->next;

	}
	p=l;
	q=l->next;
	printf("数学最高分为:\n");
	while(p->next!=NULL)
	{
	f=(p->next)->data;
		if(f.math==max)
		printf("学生:%s   成绩:%lf\n",f.name,f.math);
		p=p->next;
	}
	if(summ==0)
	printf("系统人数为0,请添加信息后再试\n");
	system("pause");

}
void englishmax(LinkList l)
{
	Node *p,*q;
	double max;
	student e,f;
	p=l;
	q=p->next;
	e=(p->next)->data;
	max=e.english;
	while(q->next!=NULL)
	{

		f=(q->next)->data;

		if(f.english>max)
		max=f.english;

		q=q->next;

	}
	p=l;
	q=l->next;
	printf("英语最高分为:\n");
	while(p->next!=NULL)
	{
		f=(p->next)->data;
		if(f.english==max)
		printf("学生:%s   成绩:%lf\n",f.name,f.english);
		p=p->next;
	}
	if(summ==0)
	printf("系统人数为0,请添加信息后再试\n");
	system("pause");

}
void shuzhimax(LinkList l)
{
	Node *p,*q;
	double max;
	student e,f;
	p=l;
	q=p->next;
	e=(p->next)->data;
	max=e.shuzhi;
	while(q->next!=NULL)
	{

		f=(q->next)->data;

		if(f.shuzhi>max)
		max=f.shuzhi;

		q=q->next;

	}
	p=l;
	q=l->next;
	printf("树脂最高分为:\n");
	while(p->next!=NULL)
	{
		f=(p->next)->data;
		if(f.shuzhi==max)
		printf("学生:%s   成绩:%lf\n",f.name,f.shuzhi);
		p=p->next;
	}
	if(summ==0)
	printf("系统人数为0,请添加信息后再试\n");
	system("pause");

}
void menu()
{
	system("cls");
	printf("		***************IKUN成绩管理系统***************\n");
	printf("        \t**                                          **\n");
	printf("        \t**       author:南工第一IKUN                **\n");
	printf("        \t**                                          **\n");
	printf("		**      1.录入新的IKUN的成绩                **\n");
	printf("		**      2.按学号删除IKUN的成绩              **\n");
	printf("		**      3.按学号修改IKUN的成绩              **\n");
	printf("		**      4.查找IKUN的成绩                    **\n");
	printf("		**      5.显示IKUN们的成绩                  **\n");
	printf("        \t**      6.根据总分排序                      **\n");
	printf("        \t**      7.显示数学不及格的IKUN              **\n");
	printf("        \t**      8.显示英语不及格的IKUN              **\n");
	printf("        \t**      9.显示树脂不及格的小黑子            **\n");
	printf("        \t**      10.查看数学最高分                   **\n");
	printf("        \t**      11.查看英语最高分                   **\n");
	printf("        \t**      12.查看树脂最高分                   **\n");
	//printf("		**      13.退出登录                         **\n");
	printf("        \t**      13.保存数据到文件                   **\n");
	printf("        \t**      14.从文件中读取数据                 **\n");
	printf("        \t**      15.插入一个新学生                   **\n");
	printf("		**      16.退出登录                         **\n");
	printf("		**      0.退出成绩管理系统                  **\n");
	printf("		**********************************************\n");
	printf("  	   请输入你想进行的操作:0-13                       \n");

}
void xuigai2()//找回密码之后登录
{
	int mi=0;
	int caozuo=0;
	int zhang=0;
	int anns=0;
	while(1)
		{

			printf("请输入你的账号\n");
			scanf("%d",&zhang);
			printf("请输入你的密码\n");
			scanf("%d",&mi);
			if(mi==mima&&zhang==zhanghao)
			{
				choice = 1;
				printf("登录成功!\n");
				system("pause");
				system("cls");
				break;
			}

			else
			{
				system("cls");
				anns++;
				if(anns<5)
					printf("账号或密码有误,请重新输入\n");
				if(anns==5)
					printf("你干嘛哎呦,都错五次了,好好想想再来吧!\n");

			}
			if(anns==5)break;
		}
}
void zhaohui()//找回密码
{
	int guodu;
	int guodu2;
	int zhang;//输入要找回密码的账号
	while(1)
	{

		printf("请输入要找回密码的账号\n");
		scanf("%d",&zhang);
		if(zhang==123456)
		{
			printf("请输入更改后的密码:");
			scanf("%d",&guodu);

			printf("请再次输入更改后的密码:");
			scanf("%d",&guodu2);
			if(guodu==guodu2)
			{
				mima=guodu2;
				printf("修改成功,请登陆吧\n");
				system("pause");
				xuigai2();
				break;

			}
			else
			{
				system("cls");
				printf("两次输入不同,修改失败,请重新输入账号\n");
			}
		}
		else 

		{
			system("cls");
			printf("该账号不存在,请重新输入账号\n");

		}
	}
}

void charu(LinkList l)
{

	Node *p,*y;
	int num2;
	printf("请输入要插入的位置(谁之后)\n");
	scanf("%d",&num2);
	p=l->next;

	while(p!=NULL)
	{
		if(num2==p->data.num)
		{
			y=p->next;
			summ++;
			student e;
			printf("小黑子请输入你想录入IKUN的成绩吧!\n")	;
			printf("学号\n");
			scanf("%d",&e.num);
			printf("姓名\n");
			scanf("%s",e.name);
			printf("专业\n");
			scanf("%s",e.major);
			printf("数学成绩\n");
			scanf("%lf",&e.math);
			printf("英语成绩\n");
			scanf("%lf",&e.english);
			printf("IKUN树脂分\n");
			scanf("%lf",&e.shuzhi);
			e.average=(e.math+e.english+e.shuzhi)/3;
			e.sum=e.math+e.english+e.shuzhi;
			Node*q=(LinkList)malloc(sizeof(Node));
			q->data=e;
			q->next=y;

			p->next=q;
			printf("插入成功\n");
			break;

		}
		else
		p=p->next;
	}

	if(p==NULL)
	printf("插入失败\n");

	system("pause");
}
void guanli()//登录界面
{

	int mi=0;
	int caozuo=0;
	int zhang=0;
	int anns=0;
	/*printf("             **********登录界面**********\n");
	printf("             **       账号:           **\n");
	printf("             **       密码:           **\n");
	printf("             **       输入0找回密码    **\n");
	printf("             ****************************\n");*/
	printf("             **********登录界面**********\n");
	printf("             **      1管理员登录1      **\n");
	printf("             **          ovo           **\n");
	printf("             **       0找回密码0       **\n");
	printf("             ****************************\n");
	printf("请输入想进行的操作:0-1\n");
	scanf("%d",&caozuo);
	if(caozuo==1)
	{

		while(1)
		{

			printf("请输入你的账号\n");
			scanf("%d",&zhang);
			printf("请输入你的密码\n");
			scanf("%d",&mi);
			if(mi==mima&&zhang==zhanghao)
			{
				choice = 1;
				printf("登录成功!\n");
				system("pause");
				system("cls");
				break;
			}

			else
			{
				system("cls");
				anns++;
				if(anns<5)
					printf("账号或密码有误,请重新输入\n");
				if(anns==5)
					printf("你干嘛哎呦,都错五次了,好好想想再来吧!\n");

			}
			if(anns==5)break;
		}
	}
	else if(caozuo==0)
	{
		zhaohui();
	}

}
void ReadFile(LinkList &l)//从文件中读取数据
{
	FILE *fp;
	fp=fopen("D:/b.txt","r");
	if(fp==NULL)
	{
		printf("Can not open the file\n");
		exit(1);
	}
	else
	{
		CreateList(l);
		student e;
		while(fscanf(fp,"%d %s %s %lf %lf %lf %lf %lf\n",&e.num,e.name,e.major,&e.math,&e.english,&e.shuzhi,&e.average,&e.sum)!=EOF)
		{
			ZenjiaNode(l,e);
		}
		printf("已成功读取数据\n");
	}
	system("pause");
	fclose(fp);
}
void WriteFile(LinkList &l)//保存数据到文件
{
	FILE *fp ;
	fp = fopen("D:/b.txt", "w");
	if(fp == NULL)
	{
        printf("Can not open the file\n");
        exit(1);
    }
    Node *p = l->next;
    student e;
    while(p!=NULL )
	{

    	fprintf(fp,"%-8d ",p->data.num);
    	fprintf(fp,"%-8s ",p->data.name);
    	fprintf(fp,"%-8s ",p->data.major);
    	fprintf(fp,"%-16lf ",p->data.math);
    	fprintf(fp,"%-16lf ",p->data.english);
    	fprintf(fp,"%-16lf ",p->data.shuzhi);
    	fprintf(fp,"%-16lf ",p->data.average);
    	fprintf(fp,"%-16lf ",p->data.sum);
    	fprintf(fp,"\n");
    	p = p -> next;
	}
	printf("保存成功\n");
	fclose(fp);
	system("pause");
}
int main()
{
	int x;
 	LinkList l;
 	CreateList(l);
 	guanli();
 	while(choice)
 	{

 	 	menu();
  		scanf("%d", &choice);
  		switch(choice)
  		{
   			case 1: ZenjiaStudent(l);//增加学生
			   		 break;
   			case 2: ShanchuStudent(l); //删除学生
			   		break;
   			case 3: XuigaiStudent(l);//修改学生
			   		 break;
   			case 4: ChazhaoStudent(l);//查找学生
			   		 break;
   			case 5: XianshiStudent(l); //显示所有学生
			   		break;
   			case 6:	paixu(l);//排序
			   		break;
   			case 7:math(l);//数学不及格
			   		break;
   			case 8:english(l);//英语不及格
			   		break;
   			case 9:shuzhi(l);//树脂不及格
			   		break;
   			case 10:mathmax(l);
			   		break;
		    case 11:englishmax(l);
					break;
		    case 12:shuzhimax(l);
					break;

			case 13:WriteFile(l);
					break;
			case 14:ReadFile(l);
					break;
			case 15:charu(l);
					break;
			case 16:system("cls");
					guanli();
					break;
			default:printf("谢谢您的使用\n");
					break;

  		}
 	}

 	return 0;

}

以上就是C语言利用链表实现学生成绩管理系统的详细内容,更多关于C语言学生成绩管理系统的资料请关注我们其它相关文章!

(0)

相关推荐

  • C语言单链表实现学生管理系统

    本文实例为大家分享了C语言单链表实现学生管理系统的具体代码,供大家参考,具体内容如下 代码: #include<stdio.h> #include<stdlib.h> #include <string.h> #include <malloc.h> struct Student { int num;//学号 char name[20];//名字 char sex[2]; int age; struct Student *next; }; void insert

  • C语言链表实现学生成绩管理系统

    目录 一.课程设计题目及内容 二.主要设计思路 三.程序源码及具体注释 (1)预处理指令 (2)类型定义 (3)函数原型 (4)main函数定义 (5)其他函数定义 四.运行示例 五.注意事项 本文实例为大家分享了C语言基于链表实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 一.课程设计题目及内容 程序名称:学生成绩管理系统 功能要求:录入学生成绩,修改学生成绩,统计每个学生的总分及平均分并能根据学生的平均成绩排序,查询学生成绩,输出学生成绩单.能够保存学生成绩,实现文件的读写.界面简

  • C语言嵌套链表实现学生成绩管理系统

    C语言嵌套链表实现学生成绩管理系统,供大家参考,具体内容如下 链表A,每个节点存放一个新的链表B1,B2,B3,B4,B5的头结点. 场景: 一个年级,相当链表A 该年级5个班,每个班5个人,相当于链表B1--B5 做一个学生成绩管理系统 学生成绩有语文 数学 英语 功能: 录入成绩 找三科总分的最高分 最低分 算出平均分 前言 链表是一种常见的基础数据结构,结构体指针在这里得到了充分的利用. 链表可以动态的进行存储分配,也就是说,链表是一个功能极为强大的数组,他可以在节点中定义多种数据类型,还

  • C语言使用单链表实现学生信息管理系统

    本文实例为大家分享了C语言使用单链表实现学生信息管理系统,供大家参考,具体内容如下 初学数据结构,记录一下学习过程. 运行结果如图: 1.运行界面 2.录入学生信息 3.按照总分进行排序 代码如下: #define ERROR 0 #define OK 1 #define OVERFLOW -1; typedef int ElemType; typedef int Status; #include<stdio.h> #include<stdlib.h> #include<ma

  • C语言动态链表实现学生学籍管理系统

    本文实例为大家分享了C语言利用动态链表实现学生学籍管理系统的具体代码,供大家参考,具体内容如下 /* * C语言学生信息管理系统(动态链表版) * 作者:cbc * 时间:2018年6月7日 * 功能:增添新键数据.修改删除数据.查询统计数据 * 平台:windows */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <windows.h> # define LEN

  • C语言单链表实现图书管理系统

    本文实例为大家分享了C语言单链表实现图书管理系统的具体代码,供大家参考,具体内容如下 单链表实现的图书管理系统相比于结构体实现的管理系统,可以随时开辟新的空间,可以增加书的信息 单链表的实现 首先肯定还是打印单链表的常规操作,创建表头,创建节点,表头法插入,特定位置删除,打印链表 struct book {     char name[20];     float price;     int num;          //书的数量 }; //3 数据容器--链表 struct Node {

  • C语言利用链表实现学生成绩管理系统

    链表是一种常见的基础数据结构,结构体指针在这里得到了充分的利用. 链表可以动态的进行存储分配,也就是说,链表是一个功能极为强大的数组,他可以在节点中定义多种数据类型,还可以根据需要随意增添,删除,插入节点. 链表都有一个头指针,一般以head来表示,存放的是一个地址.链表中的节点分为两类,头结点和一般节点,头结点是没有数据域的.链表中每个节点都分为两部分,一个数据域,一个是指针域. 说到这里你应该就明白了,链表就如同车链子一样,head指向第一个元素:第一个元素又指向第二个元素:……,直到最后一

  • C语言使用链表实现学生籍贯管理系统

    本文实例为大家分享了C语言用链表实现学生籍贯管理系统的具体代码,供大家参考,具体内容如下 源码 #include<stdio.h> #include<stdlib.h> #include<string.h> //定义一个学生结构体 typedef struct student {     char no[12];            //学号     char name[40];          //姓名     char tele[20];          //

  • C语言单链表版学生信息管理系统

    本文实例为大家分享了C语言学生信息管理系统的具体代码,供大家参考,具体内容如下 代码: //以单链表作为存储结构,设计和实现课程成绩管理的完整程序. //程序包括如下功能. //1.建立学生成绩表,包含学生的学号.姓名和成绩. //2.可以显示所有学生成绩. //3.可以计算学生的总数. //4.可以按学号和序号查找学生. //5.可以在指定位置插入学生成绩数据. //6.可以删除指定位置的学生数据. //7.可以把学生成绩按从高到低的顺序排序. //作者: yinlinqvan //操作系统:

  • C++基于单链表实现学生成绩管理系统

    本文实例为大家分享了C++实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 /*程序说明:     程序是由单链表实现的学生成绩管理系统,主要功能有输入/查找/删除/修改/排序/显示学生成绩;     输入功能由带头结点的单链表实现,并且使用前插法输入学生信息;     输入功能可以实现插入学生信息的功能,所以无需再专门写一个插入的函数;     删除/修改学生信息要用到查找功能,所以将查找与删除/修改功能写到一起;     查找功能使用顺序查找遍历整个单链表;     使用直接插入法对

  • C语言结构体版学生成绩管理系统

    本文实例为大家分享了C语言实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 结构体版的学生成绩管理系统 主要功能有 按1 输入学生信息 按2 输出学生信息 按3 查询学生信息 按4 修改学生信息 按5 删除学生信息 按6 插入学生信息 按7 排序总成绩信息 学生信息主要有姓名,班级,学号,C语言成绩,高数成绩,大学英语成绩,控制台界面输出格式有点不美观. #include<stdio.h> #include<string.h> struct student { char n

  • C语言使用链表实现学生信息管理系统

    本文实例为大家分享了C语言实现学生信息管理系统的具体代码,供大家参考,具体内容如下 代码实现的功能: 1.插入学生信息 2.显示学生信息 3.删除学生信息 4.在指定位置插入学生信息 5.查找学生信息 代码内容: #include <stdio.h> #include <stdlib.h> #include <string.h> #define Max_Student_Num 10 #define Max_Str_len 20 typedef struct T_stud

  • C语言版学生成绩管理系统

    本文实例为大家分享了C语言版学生成绩管理系统的具体代码,供大家参考,具体内容如下 #include<stdio.h> #include<stdlib.h> #include<time.h> #include<conio.h> #include<string.h> #include<algorithm> char buf[255]; char c=14; char path[]="D:\\data"; char tm

随机推荐