数据结构算法之学生信息管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include
#include
#include
#include
struct student
{
char num[3]; //结构体
char name[9];
char sex;
float score;
};
typedef struct LinkList
{
struct student data;
struct LinkList *next;
}LinkList;
LinkList *student1;
int z=0;
void menu(void)
{
printf("\n 学生信息管理系统\n");
printf("=========================================\n"); printf(" 1.添加学生信息\n");
printf(" 2.查询学生信息\n");
printf(" 3.修改学生信息\n");
printf(" 4.删除学生信息\n");
printf(" 5.输出所有学生信息\n");
printf(" 6.查看平均成绩\n");
printf(" 0.退出管理系统\n");
printf("==========================================\n"); printf("请选择0-6:\n");
}
void Add(LinkList *student1)
{
LinkList *b,*r,*s;
char n[12];
char t;
char x;
int d=0,c=0;
r=student1;
while(r->next!=NULL)
r=r->next;
while(1)
{
d=0;
printf("请输入学生学号\n");
getchar();
scanf("%s",&n);
if(strcmp(n,"0")==0) break;
if(z>0)
{
s=student1->next;
t=strcmp(s->data.num,n);
for(;s!=NULL;)
{
t=strcmp(s->data.num,n);
if(t==0)
d++;
s=s->next;
}
if(d!=0)
{
printf("该学号重复\n");
fflush(stdin);
d=0;
continue;
}
}
z++;
b=(LinkList*)malloc(sizeof(LinkList));
strcpy(b->data.num,n);
printf("请输入学生姓名\n");
scanf("%s",&b->);
printf("请输入学生性别(男:M或m;女:W或w)\n");
scanf("%s",&x);
while(x!='M' && x!='m' && x!='W' && x!='w')
{
printf("输入有误,请重新输入性别\n");
scanf("%s",&x);
}
b->data.sex=x;
printf("请输入成绩\n");
scanf("%f",&b->data.score);
printf("成功添加\n");
b->next=NULL;
r->next=b;
r=b;
printf("\n按0返回菜单或\n");
}
}
void FindOut(LinkList *student1)
{
int j;
int name=0;
char i[12];
LinkList *L;
L=student1->next ;
printf("1:学号查找\n");
printf("2:姓名查找\n");
scanf("%d",&j);
if (j==1)
{
printf("请输入学号\n");
scanf("%s",&i);
for(;L!=NULL&&L->next!=NULL&&strcmp(L->data.num,i)!=0;L=L->next);
if(strcmp(L->data.num,i)==0)
{
printf("\n学号;%s\t姓名;%s\t性别;%c\t成绩:%f\n",L->data.num,L->,L->data.sex,L->data.score);
}
else
{
printf("\n抱歉,并未找到学生信息\n");
}
}
else if(j==2)
{
printf("\n请输入学生姓名\n");
scanf("%s",&i);
for(;L!=NULL;)
{
if(strcmp(L->,i)==0)
{
name++;
printf("\n学号;%s\t姓名;%s\t性别;%c\t成绩:%f\n",L->data.num,L->,L->data.sex,L->data.score);
}
L=L->next;
}
if(name==0)
printf("\n抱歉,并未找到学生信息\n");
}
}
void Alternum(LinkList *student1)
{
char n[12];
LinkList *L;
L=student1->next;
printf("\n请输入修改前的学号\n");
scanf("%s",&n);
for(;L!=NULL&&L->next!=NULL&&strcmp(L->data.num,n)!=0;L=L->next);
if(strcmp(L->data.num,n)==0)
{
printf("\n请输入修改后的学号\n");
scanf("%s",&L->data.num);