C語言實(shí)現(xiàn)考試報(bào)名管理系統(tǒng)
本文實(shí)例為大家分享了C語言實(shí)現(xiàn)考試報(bào)名管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
源代碼:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>?
typedef struct node {
?? ?char name[40];
?? ?char id[20];
?? ?char gender[10];
?? ?char age[10];
?? ?char tele[20];
?? ?struct node *pNext;
} NODE , *PNODE;
void InputElement(PNODE);
PNODE CreatList(void);
void FindList(PNODE);
void AmendList(PNODE);
void DeleteList(PNODE);
void InsertList(PNODE);
int main() {
?? ?PNODE pHead = NULL;
?? ?int opt;
?? ?while(1) {
?? ??? ?system("cls");
?? ??? ?printf("-------考試報(bào)名管理系統(tǒng)-------\n");
?? ??? ?printf("1.錄入考生信息\n");
?? ??? ?printf("2.查找考生信息\n");
?? ??? ?printf("3.修改考生信息\n");
?? ??? ?printf("4.刪除考生信息\n");
?? ??? ?printf("5.插入考生信息\n");
?? ??? ?printf("0.退出系統(tǒng)\n");
?? ??? ?printf("請(qǐng)輸入您的操作命令:");
?? ??? ?scanf("%d" , &opt);
?? ??? ?switch(opt) {
?? ??? ??? ?case 1:
?? ??? ??? ??? ?pHead = CreatList();
?? ??? ??? ??? ?getchar();
?? ??? ??? ??? ?getchar();
?? ??? ??? ??? ?break;
?? ??? ??? ?case 2:
?? ??? ??? ??? ?FindList(pHead);
?? ??? ??? ??? ?getchar();
?? ??? ??? ??? ?getchar();
?? ??? ??? ??? ?break;
?? ??? ??? ?case 3:
?? ??? ??? ??? ?AmendList(pHead);
?? ??? ??? ??? ?getchar();
?? ??? ??? ??? ?getchar();
?? ??? ??? ??? ?break;
?? ??? ??? ?case 4:
?? ??? ??? ??? ?DeleteList(pHead);
?? ??? ??? ??? ?getchar();
?? ??? ??? ??? ?getchar();
?? ??? ??? ??? ?break;
?? ??? ??? ?case 5:
?? ??? ??? ??? ?InsertList(pHead);
?? ??? ??? ??? ?getchar();
?? ??? ??? ??? ?getchar();
?? ??? ??? ??? ?break;
?? ??? ??? ?case 0:
?? ??? ??? ??? ?printf("\n已退出系統(tǒng)!\n");
?? ??? ??? ??? ?exit(0);
?? ??? ??? ??? ?getchar();
?? ??? ??? ??? ?getchar();
?? ??? ??? ??? ?break;
?? ??? ?}?
?? ?}
?? ?return 0;
}
void InputElement(PNODE p) {
?? ?printf("姓名:");
?? ?scanf("%s" , p->name);
?? ?printf("身份證號(hào):");?
?? ?scanf("%s" , p->id);?
?? ?printf("性別:");?
?? ?scanf("%s" , p->gender);
?? ?printf("年齡:");?
?? ?scanf("%s" , p->age);
?? ?printf("電話號(hào)碼:");?
?? ?scanf("%s" , p->tele);?
}
PNODE CreatList(void) {
?? ?int i , len;
?? ?PNODE pHead = (PNODE)malloc(sizeof(NODE));?
?? ?PNODE pTail = pHead;
?? ?pTail->pNext = NULL;
?? ?printf("\n請(qǐng)輸入報(bào)考學(xué)生的總?cè)藬?shù):");
?? ?scanf("%d" , &len);?
?? ?for(i = 0; i < len ; i++) {?? ?
?? ??? ?printf("請(qǐng)輸入第 %d 位考生的相關(guān)信息\n" , i + 1);
?? ??? ?PNODE p = (PNODE)malloc(sizeof(NODE));
?? ??? ?InputElement(p);
?? ??? ?pTail->pNext = p;
?? ??? ?p->pNext = NULL;
?? ??? ?pTail = p;
?? ?}?
?? ?return pHead;
}
void FindList(PNODE pHead) {
?? ?char id[20];
?? ?PNODE p = pHead;
?? ?printf("\n請(qǐng)輸入你要查找的身份證號(hào)碼:");
?? ?scanf("%s" , id);
?? ?while(p != NULL) {
?? ??? ?if(strcmp(id , p->id) == 0) {
?? ??? ??? ?printf("%s 的信息如下:\n" , p->name);
?? ??? ??? ?printf("身份證號(hào):%s\n" , p->id);
?? ??? ??? ?printf("性別:%s\n" , p->gender);
?? ??? ??? ?printf("年齡:%s\n" , p->age);
?? ??? ??? ?printf("電話號(hào)碼:%s\n" , p->tele);
?? ??? ??? ?return;
?? ??? ?}else if(p->pNext == NULL) {
?? ??? ??? ?printf("未找到考生的相關(guān)信息!\n");
?? ??? ??? ?return;
?? ??? ?}?
?? ??? ?p = p->pNext;
?? ?}
?? ?return;?? ?
}
void AmendList(PNODE pHead) {
?? ?char name[40];
?? ?PNODE p = pHead;
?? ?printf("\n請(qǐng)輸入你要修改的考生姓名:");
?? ?scanf("%s" , name);
?? ?while(p != NULL) {
?? ??? ?if(strcmp(name , p->name) == 0) {
?? ??? ??? ?printf("%s 的信息如下:\n" , p->name);
?? ??? ??? ?printf("身份證號(hào):%s\n" , p->id);
?? ??? ??? ?printf("性別:%s\n" , p->gender);
?? ??? ??? ?printf("年齡:%s\n" , p->age);
?? ??? ??? ?printf("電話號(hào)碼:%s\n" , p->tele);
?? ??? ??? ?printf("請(qǐng)輸入修改后的考生信息:\n");
?? ??? ??? ?InputElement(p);
?? ??? ??? ?printf("修改成功!\n");?
?? ??? ??? ?return;
?? ??? ?}else if(p->pNext == NULL) {
?? ??? ??? ?printf("未找到考生的相關(guān)信息!\n");
?? ??? ??? ?return;
?? ??? ?}?
?? ??? ?p = p->pNext;
?? ?}
?? ?return;?? ?
}
void DeleteList(PNODE pHead) {
?? ?char name[40];
?? ?PNODE p = pHead;
?? ?PNODE q = p->pNext;
?? ?printf("\n請(qǐng)輸入要?jiǎng)h除的考生姓名:");
?? ?scanf("%s" , name);
?? ?while(strcmp(q->name , name) != 0) {
?? ??? ?p = q;
?? ??? ?q = p->pNext;
?? ??? ?if(q == NULL) {
?? ??? ??? ?printf("未找到考生的相關(guān)信息!\n");
?? ??? ??? ?return;
?? ??? ?}
?? ?}
?? ?p->pNext = q->pNext;
?? ?free(q);
?? ?q = NULL;
?? ?printf("刪除成功!");
?? ?return;
}
void InsertList(PNODE pHead) {
?? ?PNODE p = (PNODE)malloc(sizeof(NODE));
?? ?printf("\n請(qǐng)輸入要插入的考生信息\n");
?? ?InputElement(p);
?? ?p->pNext = pHead->pNext;
?? ?pHead->pNext = p;
?? ?printf("插入成功!\n");
?? ?return;?
}

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
解決Microsoft?Visual?C++?2010?Express?運(yùn)行及調(diào)試問題
這篇文章主要介紹了解決Microsoft?Visual?C++?2010?Express?運(yùn)行及調(diào)試問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-01-01
C++11中的智能指針shared_ptr、weak_ptr源碼解析
本文是基于gcc-4.9.0的源代碼進(jìn)行分析,shared_ptr和weak_ptr是C++11才加入標(biāo)準(zhǔn)的,僅對(duì)C++智能指針shared_ptr、weak_ptr源碼進(jìn)行解析,需要讀者有一定的C++基礎(chǔ)并且對(duì)智能指針有所了解2021-09-09
關(guān)于C++靜態(tài)數(shù)據(jù)成員的實(shí)現(xiàn)講解
今天小編就為大家分享一篇關(guān)于關(guān)于C++靜態(tài)數(shù)據(jù)成員的實(shí)現(xiàn)講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-12-12
C++中設(shè)計(jì)一個(gè)類時(shí)的注意事項(xiàng)分享
這篇文章主要來和大家分享一下C++中,設(shè)計(jì)一個(gè)類要注意哪些東西,這往往也是C++面試時(shí)會(huì)考到的問題,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-06-06
opencv?C++模板匹配的簡單實(shí)現(xiàn)
這篇文章主要介紹了opencv?C++模板匹配的簡單實(shí)現(xiàn),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-02-02
C++使用一個(gè)棧實(shí)現(xiàn)另一個(gè)棧的排序算法示例
這篇文章主要介紹了C++使用一個(gè)棧實(shí)現(xiàn)另一個(gè)棧的排序算法,結(jié)合實(shí)例形式分析了C++借助輔助棧實(shí)現(xiàn)棧排序算法的相關(guān)操作技巧,需要的朋友可以參考下2017-05-05
詳解C++?functional庫中的仿函數(shù)使用方法
仿函數(shù)(functor)又稱之為函數(shù)對(duì)象(function?object),實(shí)際上就是?重載了()操作符?的?struct或class。本文將詳細(xì)講解C++中仿函數(shù)的使用方法,需要的可以參考一下2022-04-04
Qt(C++)調(diào)用工業(yè)相機(jī)Basler的SDK使用示例
這篇文章主要介紹了Qt(C++)調(diào)用工業(yè)相機(jī)Basler的SDK使用示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
C++中給二維指針分配內(nèi)存(實(shí)現(xiàn)代碼)
我們都知道在 C++ 中分配動(dòng)態(tài)數(shù)組用的是 new , 撤銷動(dòng)態(tài)數(shù)組用的是 delete[ ] ,現(xiàn)在讓我們來看看怎么利用這兩個(gè)關(guān)鍵字給二維指針分配內(nèi)存2013-10-10
C++?opencv圖像處理實(shí)現(xiàn)圖片邊緣檢測(cè)示例
這篇文章主要為大家介紹了C++?opencv實(shí)現(xiàn)圖片邊緣檢測(cè)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05

