数据结构--学生个人信息管理

这是一个使用数据结构实现的学生个人信息管理程序,包括录入、查询、排序、插入、浏览、修改、删除和保存等功能。用户可以通过菜单选择相应操作,实现对学生信息的全方位管理。
摘要由CSDN通过智能技术生成

问题描述及代码:

/**********************************************  
*  
*文件名称:学生信息管理系统  
*文件标识:无  
*内容摘要:123.h  123.cpp  main.cpp  
*其他内容:无  
*当前版本:v1.0 
*作者:张雯婧
*完成日期:2016.12.27  

(1).123.h的代码

#include <stdio.h>
struct STUDENT
{
    char Num[30];/*学生学号*/
    char Name[30];/*学生姓名*/
    char className[30];/*班级名称*/
    char telNumber[30];/*学生手机号*/
    char email[30];/*学生邮箱*/
    char course[30];/*课程信息*/
    int score;/*加权成绩*/
};
typedef struct LNode
{
struct STUDENT data;
struct LNode* next;
}LNode,*Linklist;
int  Initlist(Linklist *L);//初始化单链表
int  Creatlist(Linklist L);//头插法生成单链表
void Display(Linklist L);//显示学生信息
int  SearchNum(Linklist L,char Num[30]);//学号查询
int  SearchName(Linklist L,char Name[30]);//姓名查询
void SortNum(Linklist L);//编号排序
void SortName(Linklist L);//姓名排序
void SortScore(Linklist L);//成绩排序
int  Insert(Linklist L,char Num[30]);//插入信息
int Del(Linklist L,char Num[30]);//按学号删除
int Alter(Linklist L,char Num[30]);//更改信息
void Save(Linklist L);//保存到文件
void Read(Linklist L);//读文件

(2)123.cpp的代码

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <string.h>
#include "123.h"
int Initlist(Linklist *L)//初始化线性表
{
	(*L)=(Linklist)malloc(sizeof(LNode));
    if(!(*L))
    return (0);
    (*L)->next=NULL;
    return true;
}
/*************************************************************************************** 
*功能描述:运用头插法建立单链表
*输入参数:无
*输出参数:学生的个人信息 
*返回值:无
*其他说明:消息字段之间用分号(;)隔离  
***************************************************************************************/  
int Creatlist(Linklist L)//头插法生成单链表
{
	        Linklist s,r;
		s=(Linklist )malloc(sizeof(LNode));
		memset(s,0,sizeof(LNode));
		if(!s)
		{
			return 0;
		}
		else
		{
            printf("请输入学生的个人信息\n");
			printf("学号:   \n");
			scanf("      %s",s->data.Num);
            printf("姓名:   \n");
			scanf("      %s",s->data.Name);
		    printf("班级:   \n");
			scanf("      %s",s->data.className);
	     	printf("手机号: \n");
			scanf("      %s",s->data.telNumber);
	    	printf("邮箱:   \n");
			scanf("      %s",s->data.email);
			printf("专业课程:   \n");
			scanf("      %s",s->data.course);
			printf("加权成绩:   \n");
			scanf("      %c",s->data.score);		  
		}
	    s->next=L->next;
		L->next=s;
	    return true;
}
/*************************************************************************************** 
*功能描述:显示学生的信息
*输入参数:无
*输出参数:无  
*返回值:无
*其他说明:消息字段之间用分号(;)隔离  
***************************************************************************************/  
void Display(Linklist L)//显示学生信息
{
	Linklist p;
	char flat=0;
	while(p)
	{
		printf("学号\t姓名\t班级\t手机号\t邮箱\t专业课程\t加权成绩\n");
	for(p=L->next;p;p=p->next)
	{
    printf("%s\t%s\t%s\t%s\t\t%s\t %s\t%s\n",p->data.Num,p->data.Name,p->data.className,p->data.telNumber,p->data.email,p->data.course,p->data.score);
	flat=1;
	} 
	}
	if(!flat)
	{
		printf("无法显示学生的信息,请进入其他功能区 \n");
	}
}
/*************************************************************************************** 
*功能描述:按学号进行查询
*输入参数:学号
*输出参数:无  
*返回值:无
*其他说明:消息字段之间用分号(;)隔离  
***************************************************************************************/  
int SearchNum(Linklist L,char Num[20])//学号查询
{
	LNode *p;
	char flat=0;
	p=L;
	while(p)
	{
		if(p!=NULL)
		{
		if(strcmp(p->data.Num,Num)==0)
		  {
			printf("学号:     %s\n",p->data.Num);
            printf("姓名:     %s\n",p->data.Name);
		    printf("班级:     %s\n",p->data.className);
		    printf("手机号:   %s\n",p->data.telNumber);
		    printf("邮箱:     %s\n",p->data.email);
			printf("专业课程: %s\n",p-&g
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值