#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#define LEN sizeof(struct xueshen)
struct xueshen
{
int num; //学号
char ming[50]; //姓名
int shu; //数学
int nu; //语文
struct xueshen *next;
};
struct xueshen *scan(); //新建学生管理A
void print(struct xueshen *head); //输出学生信息
int n; //全局变量
void main()
{
struct xueshen *jigou;
char select; //选择变量
jigou=NULL;
while(1)
{
printf("欢迎进入学生管理系统。\n");
printf("A(新建学生信息) D(删除) I(插入) M(修改) Q(查询) P(全部名单) E(退出)\n");
scanf("%c",&select);
switch(select)
{
getchar();
getchar();
getchar();
case 'a':
case 'A':jigou=scan(); break; //新建学生信息a
case 'd':
// case 'D':jigou=del(jigou); break; //删除学生信息d
case 'm':
// case 'M':jigou=modify(jigou); break; //修改学生信息m
case 'q':
// case 'Q':query(jigou); break; //查询学生信息q
case 'i':
// case 'I':jigou=insert(jigou);break; //插入学生信息i
case 'p':
case 'P':print(jigou);break; //打印全部学生信息p
case 'e':
case 'E':exit(0); break;
default:printf("选择错误,重新选择。\n"); //break;
}
printf("\n");
}
system("pause");
}
struct xueshen *scan() //创建函数
{
struct xueshen *head;
struct xueshen *p1,*p2;
p1=p2=(struct xueshen *)malloc(LEN); //创建第一个结构点
head=p1;
printf("学号:");
scanf("%d",&p1->num);
printf("姓名:");
scanf("%s",&p1->ming);
printf("数学成绩:");
scanf("%d",&p1->shu);
printf("语文成绩:");
scanf("%d",&p1->nu);
head=NULL;
while(p1->num)
{
n++;
if(n==1)
{
head=p1;
}
else
{
p2->next=p1;
}
p2=p1;
p1=(struct xueshen *)malloc(LEN); //创建新结点给p1
printf("学号:");
scanf("%d",&p1->num);
printf("姓名:");
scanf("%s",&p1->ming);
printf("数学成绩:");
scanf("%d",&p1->shu);
printf("语文成绩:");
scanf("%d",&p1->nu);
// printf("\n学号%d\n姓名%s\n数学成绩%d\n语文成绩%d\n",*p1->num,p1->ming,p1->shu,p1->nu);
}
p2->next=NULL;
return head;
}
void print(struct xueshen *head) //打印函数
{
struct xueshen *p1;
p1=head;
printf("\n共有%d位学生名单。\n",n);
while(p1)
{
printf("\n学号%d\n姓名%s\n数学成绩%d\n语文成绩%d\n",p1->num,p1->ming,p1->shu,p1->nu);
p1=p1->next; //赋下一个地址
};
}
|