溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C語言中怎么利用鏈表實現(xiàn)一個學(xué)生管理系統(tǒng)

發(fā)布時間:2021-08-09 16:52:48 來源:億速云 閱讀:194 作者:Leah 欄目:編程語言

這篇文章將為大家詳細講解有關(guān)C語言中怎么利用鏈表實現(xiàn)一個學(xué)生管理系統(tǒng),文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

具體內(nèi)容如下

#include<stdio.h>#include<ctype.h>#include<fstream>#include<stdlib.h>#include<string.h>#include<iostream>using 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;};/********創(chuàng)建學(xué)生信息**********/ Student * insert(Student * head){  Student * s,*r;  head=(Student *)malloc(sizeof(Student)); printf("請輸入學(xué)生的個數(shù):");  int n;  scanf("%d",&n);  r=head;  printf("按照“學(xué)號 姓名 性別(M or G) 手機號”的形式輸入每個學(xué)生的信息\n");  for(int i=0;i<n;i++){  s=(Student *)malloc(sizeof(Student));  /*scanf("%s",s->data.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;}/********增加學(xué)生************/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("輸入新學(xué)生的信息:\n"); scanf("%s%s%s%s",ad->data.id,ad->data.name,ad->data.sex,ad->data.num); printf("添加成功\n"); return ;}/*************修改學(xué)生信息********************/ void change(Student * head){ printf("輸入1,按學(xué)號搜索學(xué)生,并修改改學(xué)生的信息\n"); printf("輸入2,按姓名搜索學(xué)生,并修改改學(xué)生的信息\n"); Student * s; int n; scanf("%d",&n); switch(n){ case 1:{ printf("請輸入學(xué)號:"); 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 ;}/**********刪除學(xué)生信息******************/void del(Student * head){ printf("輸入1,按學(xué)號搜索學(xué)生,并刪除該學(xué)生的信息\n"); printf("輸入2,按姓名搜索學(xué)生,并刪除該學(xué)生的信息\n"); Student * s,*r; int n; scanf("%d",&n); switch(n){ case 1:{ printf("請輸入學(xué)號:"); 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 ;}/**********查詢學(xué)生的信息**********************/void check(Student * head){ printf("輸入1,按學(xué)號搜索學(xué)生,并展示該學(xué)生的信息\n"); printf("輸入2,按姓名搜索學(xué)生,并展示該學(xué)生的信息\n"); Student * s,r; int n; scanf("%d",&n); switch(n){ case 1:{ printf("請輸入學(xué)號:"); 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("該學(xué)生不存在\n"); return ;} int main(){ Student *head=NULL; Student *a; printf("***歡迎進入學(xué)生管理系統(tǒng)***\n"); printf("***1:請錄入學(xué)生信息***\n"); printf("***2:請修改學(xué)生信息***\n"); printf("***3:請刪除學(xué)生信息***\n"); printf("***4:請查詢學(xué)生信息***\n"); printf("***5:請?zhí)砑有聦W(xué)生信息**\n"); printf("***6: 退出管理系統(tǒng) ***\n"); printf("*************************\n"); printf("請輸入命令:"); int n; while(scanf("%d",&n)&&n!=6){ switch(n){ case 1:{ printf("請錄入學(xué)生信息:\n"); head=insert(a); break; } case 2:{ printf("請改學(xué)生信息:\n"); change(head); break; } case 3:{ cout<<"請刪除學(xué)生信息:"<<endl; del(head); break; } case 4:{ cout<<"請查詢學(xué)生信息:"<<endl; check(head);  break; } case 5:{ cout<<"請?zhí)砑有聦W(xué)生信息:"<<endl; add(head); break; }  default : break; } printf("請繼續(xù)輸入命令:");  } Student *s,*r; s=head->next; while(s!=NULL){ r=s->next; free(s); s=r; } free(head); return 0;}

關(guān)于C語言中怎么利用鏈表實現(xiàn)一個學(xué)生管理系統(tǒng)就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI