#include<stdio.h>
#include<windows.h>
#include<stdlib.h>
typedef struct
{
char sno[20];
char sname[8];
char sex[2];
int score;
}student;
typedef student ElemType;
//单链表类型定义
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
//单链表初始化
LinkList Init_LinkList(LinkList L)
{
L=(LNode*)malloc(sizeof(LNode));
if(!L) return 0;
L->next=NULL;
return L;
}
//浏览
void PrintList(LinkList L)
{
LNode *p;
p=L->next;
if(p==NULL)
printf("当前表为空表!\n");
else
{
printf("*****显示所有学生信息*******\n");
printf("学号\t\t\t姓名\t\t\t性别\t\t\t成绩\n");
while(p!=NULL)
{
printf("%s\t\t%s\t\t%s\t\t%d\n",p->data.sno,p->data.sname,p->data.sex,p->data.score);
p=p->next;
}
}
}
//插入
int Insert_LinkList(LinkList L,int i,ElemType e)
{
LNode *p,*s;
int j;
p=L;j=-1;
while(p&&j<-1)
{
p=p->next;j++;
}
if(!p||j>i-1) return 0;
s=(LNode *)malloc(sizeof(LNode));
s->data=e;
s->next=p->next;
p->next=s;
return 1;
}
//删除
int Delete_LinkList(LinkList L,int i,ElemType *e)
{
LNode *p,*q;
int j;
p=L;j=0;
while(p->next&&j<i-1)
{
p=p->next;j++;
}
if(!(p->next)||j>i-1)
return 0;
q=p->next;
*e=q->data;
p->next=q->next;free(q);
return 1;
}
//查找
LinkList Locate_LinkElem(LinkList L, char key[8])
{
LNode *p;
p=L;
while(p!=NULL&&strcmp(p->data.sname,key)!=0) { p=p->next; }
if(strcmp(p->data.sname,key)!=0) return NULL;
else return p;
}
//界面函数
void menu_select()
{
system("cls");
system("color 0B");
printf("\n\t**************学生信息管理系统******************\n");
printf("\n\t&\t\t1.浏览学生信息\t\t\t&\t\n");
printf("\n\t&\t\t2.插入学生信息\t\t\t&\t\n");
printf("\n\t&\t\t3.删除学生信息\t\t\t&\t\n");
printf("\n\t&\t\t4.查找学生信息\t\t\t&\t\n");
printf("\n\t&\t\t5.修改学生信息\t\t\t&\t\n");
printf("\n\t&\t\t6.学生信息排序\t\t\t&\t\n");
printf("\n\t&\t\t0.退出系统\t\t\t&\t\t\t\t\t\n");
printf("\n\t***********************************************\n");
printf("\n\t\t请选择您要运行的功能选项(0—6): ");
}
/*定义主函数*/
int main()
{ int ch;
LinkList LL;
LL=Init_LinkList(LL);
int p,i;
student x;
char key[8];
LinkList m;
while(1)
{ menu_select();
scanf("%d",&ch);
switch(ch)
{case 1:printf("\n此功能可以浏览学生信息\n\n");
PrintList(LL);
system("pause");break;
case 2:printf("\n此功能可以插入学生信息\n\n");
system("pause");break;
case 3:printf("\n此功能可以删除学生信息\n\n");
system("pause");break;
case 4:printf("\n此功能可以查找学生信息\n\n");
system("pause");break;
case 5:printf("\n此功能可以修改学生信息\n\n");
system("pause");break;
case 0:printf("\n\t\t谢谢使用本系统,再见!!^_^\n\n");system("pause");exit(0);
default:printf("\n\t\t无效输入,请重新选择\n\n"); system("pause"); break;
}
}
}
链接:https://pan.baidu.com/s/1og9xAZlBhrVmBSn7_lawlQ?pwd=hp8v
提取码:hp8v