C语言中怎么利用链表实现一个学生信息管理系统
创始人
2024-12-24 17:41:47
0次

代码实现的功能:

1.插入学生信息 2.显示学生信息 3.删除学生信息 4.在指定位置插入学生信息 5.查找学生信息

代码内容:

#include #include #include #define Max_Student_Num 10#define Max_Str_len 20typedef struct T_student{ int number; char name [Max_Student_Num]; char phone[Max_Student_Num];};typedef struct T_Node{ struct T_student s; struct T_Node * next;};char command_str[]={"\n1 display all member;\n2 insert member;\n3 del member;\n4 exit\nCommand selection:"};struct T_student students[Max_Student_Num];struct T_Node * head = NULL;int main(int argc, char* argv[]){ int command, i; struct T_student student; struct T_Node * pStu =head; memset(&student,0,sizeof(student)); while(1){  printf("%s",command_str);  scanf("%d", &command);  switch(command)  {  case 1:   if(head==NULL){    printf("empty!!!!!!!!!!!!\n");    break;   }   if(head->next==head){    display_student(head);   }else{    pStu=head->next;    do    {     display_student(pStu);     pStu=pStu->next;    }while(pStu!= head->next);//   }   break;  case 2:   printf("enter new student number:");   scanf("%d", &student.number);   printf("enter new student name:");   scanf("%s", &student.name);   if(strlen(student.name) > Max_Str_len)   {    printf("name is too long!!\n");    continue;   }   printf("enter new student phone:");   scanf("%s", &student.phone);   if(strlen(student.phone) > Max_Str_len)   {    printf("phone is too long!!\n");    continue;   }   printf("\n");   if(student.number != 0)     insert_student(student);   break;  case 3:   printf("Inter deleted student number:");   scanf("%d", &student.number);   del_student(student);   break;  case 4:   return 0;  default:   printf("error command, try again\n");   break;  } }}void display_student( struct T_Node * pStu){ printf("number:%d name:%s phone:%s \n",pStu->s.number,pStu->s.name,pStu->s.phone);}void insert_student(struct T_student student){ struct T_Node* pNode ; struct T_Node* pStu =NULL; int size = sizeof(struct T_Node); pStu=(struct T_Node *)malloc (size); if(pStu == NULL){  return ; } memcpy(&pStu->s,&student,sizeof(student)); if(head==NULL){   pStu->next=head;   head=pStu;   head->next=head;   return ; } pStu->next = head->next; head->next=pStu;}void del_student(struct T_student student){ struct T_Node *pNode =NULL,*p=NULL; if(head->next==head && head->s.number==student.number){  pNode=head;  head=NULL;  free(pNode);  printf("success");  return; } for(pNode=head->next;pNode != head;pNode=pNode->next){  if( pNode->next->s.number == student.number){   p=pNode->next->next;   free(pNode->next);   pNode->next=p;   printf("Delete success!\n");   return;  } } printf("Not Found\n");}

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...