C语言中怎么利用链表实现一个学生管理系统
创始人
2024-12-21 16:41:44
0次

具体内容如下

#include#include#include#include#include#includeusing namespace std;typedef struct ndoe{ char id[10]; char name[10]; char sex[3]; char num[10];  struct node *next;}student;struct Student{ student data; struct Student *next;};/********创建学生信息**********/ Student * insert(Student * head){  Student * s,*r;  head=(Student *)malloc(sizeof(Student)); printf("请输入学生的个数:");  int n;  scanf("%d",&n);  r=head;  printf("按照“学号 姓名 性别(M or G) 手机号”的形式输入每个学生的信息\n");  for(int i=0;idata.id);  scanf("%s",s->data.name);  scanf("%s",s->data.sex);  scanf("%s",s->data.num);*/ scanf("%s%s%s%s",s->data.id,s->data.name,s->data.sex,s->data.num);  r->next=s;  r=s; } r->next=NULL; printf("录入成功\n");  return head;}/********增加学生************/void add(Student *head){ Student *s; s=head->next; while(s->next!=NULL) s=s->next; Student *ad=(Student *)malloc(sizeof(Student)); ad->next=NULL; s->next=ad; //printf("输入新学生的信息:\n"); scanf("%s%s%s%s",ad->data.id,ad->data.name,ad->data.sex,ad->data.num); printf("添加成功\n"); return ;}/*************修改学生信息********************/ void change(Student * head){ printf("输入1,按学号搜索学生,并修改改学生的信息\n"); printf("输入2,按姓名搜索学生,并修改改学生的信息\n"); Student * s; int n; scanf("%d",&n); switch(n){ case 1:{ printf("请输入学号:"); char number[10]; scanf("%s",number);  s=head->next; while(s!=NULL){ if(strcmp(s->data.id,number)==0){  printf("请输入要修改的信息:");  char phone[10];  scanf("%s",phone);  strcpy(s->data.num,phone);  printf("修改成功\n");  break; } s=s->next; }  break; } case 2:{ printf("请输入姓名:"); char nam[10]; scanf("%s",&nam);  s=head->next; while(s!=NULL){ if(strcmp(s->data.name,nam)==0){  printf("请输入要修改的信息:"); char phone[10];  scanf("%s",phone);  strcpy(s->data.num,phone);  printf("修改成功\n");  break; } s=s->next; }  break; } }  return ;}/**********删除学生信息******************/void del(Student * head){ printf("输入1,按学号搜索学生,并删除该学生的信息\n"); printf("输入2,按姓名搜索学生,并删除该学生的信息\n"); Student * s,*r; int n; scanf("%d",&n); switch(n){ case 1:{ printf("请输入学号:"); char number[10]; scanf("%s",number);  s=head->next;  r=head; while(s!=NULL){ if(strcmp(s->data.id,number)==0){  r->next=s->next;  free(s);  printf("删除成功\n");  break; } r=s; s=s->next; }  break; } case 2:{ printf("请输入姓名:"); char nam[10]; scanf("%s",&nam);  s=head->next;  r=head; while(s!=NULL){ if(strcmp(s->data.name,nam)==0){  r->next=s->next;  free(s);  printf("删除成功\n");  break; } r=s; s=s->next; }  break; } } return ;}/**********查询学生的信息**********************/void check(Student * head){ printf("输入1,按学号搜索学生,并展示该学生的信息\n"); printf("输入2,按姓名搜索学生,并展示该学生的信息\n"); Student * s,r; int n; scanf("%d",&n); switch(n){ case 1:{ printf("请输入学号:"); char number[10]; scanf("%s",number);  s=head->next; while(s!=NULL){ if(strcmp(s->data.id,number)==0){  printf("%s %s %s %s\n",s->data.id,s->data.name,s->data.sex,s->data.num);  break; } s=s->next; }  break; } case 2:{ printf("请输入姓名:"); char nam[10]; scanf("%s",&nam);  s=head->next; while(s!=NULL){ if(strcmp(s->data.name,nam)==0){  printf("%s %s %s %s\n",s->data.id,s->data.name,s->data.sex,s->data.num);  break; } s=s->next; }  break; } } if(s==NULL) printf("该学生不存在\n"); return ;} int main(){ Student *head=NULL; Student *a; printf("***欢迎进入学生管理系统***\n"); printf("***1:请录入学生信息***\n"); printf("***2:请修改学生信息***\n"); printf("***3:请删除学生信息***\n"); printf("***4:请查询学生信息***\n"); printf("***5:请添加新学生信息**\n"); printf("***6: 退出管理系统 ***\n"); printf("*************************\n"); printf("请输入命令:"); int n; while(scanf("%d",&n)&&n!=6){ switch(n){ case 1:{ printf("请录入学生信息:\n"); head=insert(a); break; } case 2:{ printf("请改学生信息:\n"); change(head); break; } case 3:{ cout<<"请删除学生信息:"<next; while(s!=NULL){ r=s->next; free(s); s=r; } free(head); return 0;}

相关内容

热门资讯

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