//54,89,13,09,79,88,32,70,44,07
typedef char datype;
typedef struct
{
int num; //学号
char lesson[20];//课程名
char teacher[20];//教师
int score; //成绩
}ElemType;
typedef struct Node
{
ElemType data;
struct Node next;
}Node,LinkList;
using namespace std;
void InitList(LinkList L)//初始化
{
datype i;
Node s,r;
L=(Node)malloc(sizeof(Node));
r=L;
while(i!=‘$‘)
{
system("cls"),s=(Node*)malloc(sizeof(Node));
printf("请输入要插入的数据学号;\n");
scanf("%d",&s->data.num);
printf("请输入要插入的数据(课程名);\n");
fflush(stdin),scanf("%s",&s->data.lesson);
printf("请输入要插入的数据(教师);\n");
fflush(stdin),scanf("%s",&s->data.teacher);
printf("请输入要插入的数据(成绩);\n");
fflush(stdin),scanf("%d",&s->data.score);
printf("请输入$退出;\n");
fflush(stdin),i=getchar(),r->next=s,r=s;
}r->next=NULL;
}
void show(LinkList L)//显示
{
Node *p;
p=L->next,
printf("-----------------------------------------------------\n");
printf(" 学号 课程名 教师 成绩 \n");
printf("-----------------------------------------------------\n");
while(p!=NULL)
{
printf(" %-9d%-11s%-12s%d\n",p->data.num,p->data.lesson,p->data.teacher,p->data.score);
p=p->next;
}
printf("-----------------------------------------------------\n");
}
int Add(LinkList L)//插入
{
datype i,k;
Node s,r;
k=0;
printf("请输入位置;");
scanf("%d",&i);
r=L;
while(r->next!=NULL && k<i-1)
{
r=r->next;
k++;
}
if (!r){
printf("位置有误!\n");
return ERROR;
}
while(i!=‘$‘)
{
system("cls"),s=(Node*)malloc(sizeof(Node)),s->next=r->next,r->next=s;
printf("请输入要插入的数据学号;\n");
scanf("%d",&s->data.num);
printf("请输入要插入的数据(课程名);\n");
fflush(stdin),scanf("%s",&s->data.lesson);
printf("请输入要插入的数据(教师);\n");
fflush(stdin),scanf("%s",&s->data.teacher);
printf("请输入要插入的数据(成绩);\n");
fflush(stdin),scanf("%d",&s->data.score);
printf("请输入$退出;\n");
fflush(stdin),i=getchar(),r->next=s,r=s;
}
show(L);
return 0;
}
int main( )
{
LinkList L;
InitList(&L);
int ch;
while(1)
{
printf(" 0---退出系统\n");
printf(" 1---插入\n");
printf(" 9---链表显示\n");
scanf("%d",&ch);
switch(ch)
{
case 0:;printf("感谢使用! ");printf("退出系统!\n");exit(0);
case 1:Add(L);break;
case 9:show(L);break;
default:printf("菜单选择错误!\n");
}
}
return 0;
}
原文:https://www.cnblogs.com/joniky/p/13140051.html