C語(yǔ)言鏈表實(shí)現(xiàn)學(xué)生管理系統(tǒng)
更新時(shí)間:2020年12月10日 16:29:54 作者:搬磚的小孩有肉吃
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言鏈表實(shí)現(xiàn)學(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
本文實(shí)例為大家分享了C語(yǔ)言鏈表實(shí)現(xiàn)學(xué)生管理系統(tǒng)的具體代碼,供大家參考,具體內(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("請(qǐng)輸入學(xué)生的個(gè)數(shù):"); int n; scanf("%d",&n); r=head; printf("按照“學(xué)號(hào) 姓名 性別(M or G) 手機(jī)號(hào)”的形式輸入每個(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é)號(hào)搜索學(xué)生,并修改改學(xué)生的信息\n"); printf("輸入2,按姓名搜索學(xué)生,并修改改學(xué)生的信息\n"); Student * s; int n; scanf("%d",&n); switch(n){ case 1:{ printf("請(qǐng)輸入學(xué)號(hào):"); char number[10]; scanf("%s",number); s=head->next; while(s!=NULL){ if(strcmp(s->data.id,number)==0){ printf("請(qǐng)輸入要修改的信息:"); char phone[10]; scanf("%s",phone); strcpy(s->data.num,phone); printf("修改成功\n"); break; } s=s->next; } break; } case 2:{ printf("請(qǐng)輸入姓名:"); char nam[10]; scanf("%s",&nam); s=head->next; while(s!=NULL){ if(strcmp(s->data.name,nam)==0){ printf("請(qǐng)輸入要修改的信息:"); 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é)號(hào)搜索學(xué)生,并刪除該學(xué)生的信息\n"); printf("輸入2,按姓名搜索學(xué)生,并刪除該學(xué)生的信息\n"); Student * s,*r; int n; scanf("%d",&n); switch(n){ case 1:{ printf("請(qǐng)輸入學(xué)號(hào):"); 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("請(qǐng)輸入姓名:"); 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é)號(hào)搜索學(xué)生,并展示該學(xué)生的信息\n"); printf("輸入2,按姓名搜索學(xué)生,并展示該學(xué)生的信息\n"); Student * s,r; int n; scanf("%d",&n); switch(n){ case 1:{ printf("請(qǐng)輸入學(xué)號(hào):"); 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("請(qǐng)輸入姓名:"); 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("***歡迎進(jìn)入學(xué)生管理系統(tǒng)***\n"); printf("***1:請(qǐng)錄入學(xué)生信息***\n"); printf("***2:請(qǐng)修改學(xué)生信息***\n"); printf("***3:請(qǐng)刪除學(xué)生信息***\n"); printf("***4:請(qǐng)查詢學(xué)生信息***\n"); printf("***5:請(qǐng)?zhí)砑有聦W(xué)生信息**\n"); printf("***6: 退出管理系統(tǒng) ***\n"); printf("*************************\n"); printf("請(qǐng)輸入命令:"); int n; while(scanf("%d",&n)&&n!=6){ switch(n){ case 1:{ printf("請(qǐng)錄入學(xué)生信息:\n"); head=insert(a); break; } case 2:{ printf("請(qǐng)改學(xué)生信息:\n"); change(head); break; } case 3:{ cout<<"請(qǐng)刪除學(xué)生信息:"<<endl; del(head); break; } case 4:{ cout<<"請(qǐng)查詢學(xué)生信息:"<<endl; check(head); break; } case 5:{ cout<<"請(qǐng)?zhí)砑有聦W(xué)生信息:"<<endl; add(head); break; } default : break; } printf("請(qǐng)繼續(xù)輸入命令:"); } Student *s,*r; s=head->next; while(s!=NULL){ r=s->next; free(s); s=r; } free(head); return 0; }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- C語(yǔ)言結(jié)構(gòu)體鏈表和指針實(shí)現(xiàn)學(xué)生管理系統(tǒng)
- 基于C語(yǔ)言實(shí)現(xiàn)學(xué)生管理系統(tǒng)
- c語(yǔ)言實(shí)現(xiàn)學(xué)生管理系統(tǒng)詳解
- C語(yǔ)言實(shí)現(xiàn)班級(jí)學(xué)生管理系統(tǒng)
- C語(yǔ)言不用鏈表完成學(xué)生管理系統(tǒng)(完整代碼)
- C語(yǔ)言單鏈表實(shí)現(xiàn)學(xué)生管理系統(tǒng)
- C語(yǔ)言實(shí)現(xiàn)學(xué)生管理系統(tǒng)
- C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單學(xué)生管理系統(tǒng)
- C語(yǔ)言學(xué)生管理系統(tǒng)源碼分享
- C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易學(xué)生管理系統(tǒng)
相關(guān)文章
c++中為什么可以通過(guò)指針或引用實(shí)現(xiàn)多態(tài)詳解
這篇文章主要給大家介紹了關(guān)于c++中為何可以通過(guò)指針或引用實(shí)現(xiàn)多態(tài),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04C++實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)(完整版)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)學(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06C語(yǔ)言實(shí)現(xiàn)打飛機(jī)小游戲
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單的打飛機(jī)小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02QT5實(shí)現(xiàn)簡(jiǎn)單的TCP通信的實(shí)現(xiàn)
本文主要介紹了QT5實(shí)現(xiàn)簡(jiǎn)單的TCP通信的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05