[C] 纯文本查看 复制代码 #include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#include<string.h> //strcmp char[20]字符串对比 strcmp(L->data.cName,p->data.cName)
//#define OK 1
//#define ERROR 0
//#define VOERFLOW -2
typedef int Status;
void menu(); //菜单
void menus(); //菜单基础上一堆操作
void charu(); //1 插入
void shanchu(); //2 删除
void put(); //3 输出指定元素
void puts(); // 4 输出所有
void chazhao(); //5 查找
typedef struct _Student{ //数据域
int nNum;
// char cName[20];
int nAge;
}Student;
typedef struct _LNode{ //节点
Student data;
struct _LNode *next;
}LNode,*LinkList;
LinkList head=NULL;
LinkList s1;
int a=1;
int main(){
menus();
return 0;
}
void menu(){
printf("\t\t\t单链表学生管理系统\n");
printf("\t\t1.插入一个元素\n");
printf("\t\t2.删除一个元素\n");
printf("\t\t3.输出单个元素\n");
printf("\t\t4.输出所有元素\n");
printf("\t\t5.查找一个元素\n");
printf("\t\t请输入:");
}
void menus(){
while(a){
menu();
scanf("%d",&a);
if(a==1||a==2||a==3||a==4||a==5){
switch(a){
case 1: charu();break;
case 2: break;
case 3: break;
case 4: puts(); break;
case 5: break;
}
printf("1.返回菜单\n0.退出系统\n");
printf("请输入:");
scanf("%d",&a);
if(a==0) break;
}
else { printf("输入错误,请重新输入\n");
}
}
printf("退出系统成功,欢迎下次试用\n");
}
void charu(){ //1.插入元素
LinkList NewNode =(LinkList)malloc(sizeof(LNode));
printf("请输入学生学号\n");
scanf("%d",&NewNode->data.nNum);
// printf("请输入学生姓名\n"); //报错 原因未知
// scanf("%d",&NewNode->data.cName);
printf("请输入学生年龄\n");
scanf("%d",&NewNode->data.nAge);
if(head==NULL){
head= NewNode;
NewNode->next=NULL;
printf("执行了插入if\n");
}
else{
s1=head;
// if(s1->next!=NULL) s1=s1->next;试一下把这个if 改成while
while(s1->next!=NULL) s1=s1->next;
s1->next= NewNode;
NewNode->next=NULL;
printf("执行了插入else\n");
}
s1=head;
while(s1!=NULL){
printf("%d %d \n",s1->data.nAge,s1->data.nNum);
s1=s1->next;
}
}
void shanchu(){ //2.删除元素
}
void put(){ //3.输出单个元素
}
void puts(){ //4.输出所有元素
s1=head;
while(s1!=NULL){
printf("nNum=%d, nAge=%d\n",s1->data.nNum,s1->data.nAge);
s1=s1->next;
printf("输出\n");
}
}
void chazhao(){ //5.查找一个元素
} |