1、顺序表实现学生管理系统(参照顺序表技能)写出菜单界面switch选择,功能1创建顺序表(堆区),2录入学生信息,3插入一个学生信息,4删除一个学生信息,5按照位置修改一个学生信息,6、按照姓名顺序

要求:

1、学生信息结构体姓名,分数,年龄,电话。  

2、其他功能函数自定义,分文件编译。 

#include"link.h"
int main(int argc, const char *argv[])
{
	/*
1.顺序表实现学生管理系统,写出菜单界面switch选择。
2.创建顺序表(堆区)
3.插入一ª学生信息
4.删除一个学生信息
5.按照位置修改一个学生信息
6.按照姓名顺序查找一个学生是否存在
7.对学生年龄直接插入排序*/
	Pnode L=my_head();
	int key==0;
	while(1)
	{
		if(key==0)
		{
   		printf("\n查看操作步骤请输入:0\n");
		printf("\n输入学生信息请输入:1\n");
		printf("\n插入学生信息请选择:2\n");
		printf("\n删除学生信息请选择:3\n");
		printf("\n按位置修改信息请选择:4\n");
		printf("\n按姓名查找请选择:5\n");
		printf("\n对年龄进行排序请选择:6\n");
		printf("\n输出信息请选择:7\n");
		printf("\n跳出操作请选择:8\n");
		}
         printf("选择要进行的操作:");
		 scanf("%d"&key);
		 switch(key)
		 {
		 	case 1:input_student(L);break;
		 	case 2:insert_student(L);break;
		 	case 3:dele_student(L);break;
		 	case 4:edit_student(L);break;
		 	case 5:search_stuname(L);break;
			case 6:sort_stuage(L);break;
		 	case 7:output_student(L);break;
			default:printf("无效,请重新输入:\n");break;
		 }
	}
	return 0;
}
#include "link.h"
Pnode my_head()
{
	Pnode p=malloc(sizeof(Node));
	if(p==NULL)
	{
		printf("创建失败\n");
		return NULL;
	}
	p->len=0;
	memset(p->students,0,sizeof(p->students));
	return p;
}
void input_student(Pnode L,int n)
{
	printf("请输入学生信息\n");
	int i;
	for(i=0;i<n;i++)
	{
		printf("请输入第%d个学生信息:",i+1);
		scanf("%s%d%d%d",L->data[i].name,&L->data[i].score,
				&L->data[i].age,&L->data[i].phone);
 
		L->len++;
	}
	printf("\n");
}
void output_student(Plist L)
{
	int i;
	for(i=0;i<L->len;i++)
	{
		printf("姓名:%s\t成绩:%d\t年龄:%d\t电话:%d\n",L->data[i].name,L->data[i].score,L->data[i].age,L->data[i].phone);
	}
	printf("\n");
}
void insert_student(Pnode L)
{
	int i,n;
	student t;
	printf("请输入插入学生位置:");
	scanf("%d",&n);
	printf("请输入要插入学生的信息:");
	scanf("%s%d%d%d",t.name,&t.age,&t.score,&t.phone);
	if(n<1 || n>L->len+1 || L->len==MAX || L==NULL)
	{
		printf("插入失败\n");
	}
	else
	{
		for(i=L->len-1;i>=n-1;i--)
		{
			L->data[i+1] = L->data[i];
		}
		L->data[n-1] = t;
		L->len++;
 
		printf("\n");
	}                   
void dele_student(Pnode L)
{
	int i,n;
	printf("请选择删除入学生位置:");
	scanf("%d",&n);
	if(n<1 || n>L->len || L->len==0 || L==NULL)
	{
		printf("删除失败\n");
	}
	else
	{
		for(i=n;i<L->len;i++)
		{
			L->data[i-1] = L->data[i];
		}
		L->len--;
 
		printf("\n");
	}
}
void edit_student(Pnode L)
{
	int i,n;
	student t;
	printf("请选择要修改学生位置:");
	scanf("%d",&n);	
	printf("请输入要修改的信息:");
	scanf("%s%d%d%d",t.name,&t.age,&t.score,&t.phone);
	if(n<1 || n>L->len || L->len==0 || L==NULL)
	{
		printf("修改失败\n");
	}
	else
	{
		L->data[n-1] = t;
 
		printf("\n");
	}
}
void search_stuname(Pnode L)
{

	int i,flag = 0;
	char n[20];
	printf("请选查找的学生姓名:");
	scanf("%s",n);
 
	for(i=0;i<L->len;i++)
	{
		if(strcmp(n,L->data[i].name)==0)
		{
			printf("查找成功该学生存在\n");
			flag = 1;
		}
	}
	if(flag == 0)
	{
		printf("查找失败,该学生不存在\n");
	}

} 
void sort_stuage(Pnode L)
{
	int i,j;
	student t;
	for(i=1;i<L->len;i++)
	{
		t = L->data[i];
		for(j=i-1;j>=0;j--)
		{
			if(L->data[j].age>t.age)
			{
				L->data[j+1] = L->data[j];
			}
			else
			{
				break;
			}
		}
		L->data[j+1] = t;
	}
	printf("\n");
}

#ifndef _LINK_H_
#define _LINK_H_
#define MAX 20
#include<myhead.h>
typedef struct student
{
	char name[MAX];
	int age;
	int score;
	int phonenum[MAX];
}student;
typedef struct
{
	int len;
	student data[MAX];
}Node,*Pnode;
Pnode my_head();
void input_student(Pnode L);
void insert_student(Pnode L);
void dele_student(Pnode L);
void edit_student(Pnode L);
void search_stuname(Pnode L);
void sort_stuage(Pnode L);
void output_student(Pnode L);

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,我无法查看或提供任何文档或文件。但是,我可以为您提供一些关于使用 C 语言实现顺序表的学生成绩管理系统的指导和建议。 首先,您需要确定您的系统需要支持哪些功能。例如,您的系统是否需要能够添加、删除修改和查询学生的成绩信息?还需要能够按照不同的条件(例如姓名、年龄、成绩等)对学生进行排序和统计吗?一旦您确定了您的需求,您就可以开始设计和实现您的顺序表学生成绩管理系统。 以下是一些您需要考虑的关键步骤: 1. 定义数据结构:您需要定义一个包含学生信息(例如姓名、年龄、成绩等)的结构体。然后,您需要使用数组来创建一个顺序表,每个元素都是这个结构体类型的变量。 2. 实现基本操作:您需要实现添加、删除修改和查询学生信息的函数。在添加学生信息时,您需要检查顺序表是否已满,如果已满,则需要扩展顺序表的大小。在删除学生信息时,您需要检查学生是否存在,如果不存在,则需要返回错误信息。在修改学生信息时,您需要输入学生的 ID 或姓名等唯一标识符,并验证学生是否存在。在查询学生信息时,您需要输入学生的 ID 或姓名等唯一标识符,并返回学生的信息。 3. 实现排序和统计功能:您需要实现按照不同条件对学生进行排序和统计的函数。例如,您可以根据学生的成绩进行排序,并返回排名靠前的学生。您还可以计算学生的平均分、最高分和最低分等统计信息。 4. 编写用户界面:最后,您需要编写一个用户界面,使用户能够通过命令行输入和输出与您的顺序表学生成绩管理系统进行交互。您可以使用 switch/case 语句来实现不同命令的处理,例如添加、删除修改和查询学生信息,以及排序和统计功能。 希望这些指导和建议能够帮助您开始设计和实现您的顺序表学生成绩管理系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值