C語(yǔ)言實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)(鏈表)
本文實(shí)例為大家分享了C語(yǔ)言實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
1.頭文件和預(yù)處理
#include <stdio.h> #include<string.h> #include<malloc.h> #include<stdlib.h> #include<stdbool.h> #include<iostream> using namespace std; #define NO_LENGTH ?20 #define NAME_LENGTH 11
2.定義學(xué)生結(jié)構(gòu)體的數(shù)據(jù)結(jié)構(gòu)
typedef struct Student{ ?? ?char studentNo[NO_LENGTH]; ?? ?char studentName[NAME_LENGTH]; ?? ?int score; }st;
3.定義每條記錄或節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)
/* 定義每條記錄或節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu) */ typedef struct node { ?? ?struct Student data; //數(shù)據(jù)域 ?? ?struct node *next; //指針域 }Node,*Link; ?//Node為node類型的別名,Link為node類型的指針別名
4.函數(shù)接口代碼.
1).定義提示菜單
//定義提示菜單 void myMenu(){ ?? ?printf("*****************************菜單*****************************\n");? ?? ?printf("***********************1 增加學(xué)生記錄*************************\n");? ?? ?printf("***********************2 刪除學(xué)生記錄*************************\n");? ?? ?printf("***********************3 查找學(xué)生記錄*************************\n");? ?? ?printf("***********************4 修改學(xué)生記錄*************************\n");? ?? ?printf("***********************5 統(tǒng)計(jì)學(xué)生人數(shù) ************************\n");? ?? ?printf("***********************6 顯示學(xué)生記錄*************************\n");? ?? ?printf("***********************7 退出系統(tǒng) ****************************\n");? ?? ? }
2).增加學(xué)生記錄
void inputStudent(Link l){ ?? ? printf("請(qǐng)輸入學(xué)生學(xué)號(hào):"); ?? ? scanf("%s",l->data.studentNo); ?? ? printf("請(qǐng)輸入學(xué)生的姓名:"); ?? ? scanf("%s",l->data.studentName); ?? ?printf("請(qǐng)輸入學(xué)生的成績(jī):"); ?? ? scanf("%s",&(l->data.score)); ?? ? //每個(gè)新創(chuàng)建的節(jié)點(diǎn)的next域都初始化為NULL ?? ? l->next = NULL; ?? ? system("cls"); }
3).輸入學(xué)號(hào)接口·
void inputStudentNo(char s[],char no[]){ ?? ?printf("請(qǐng)輸入要%s的學(xué)生學(xué)號(hào):",s); ?? ?scanf("%s",no); }
4).遍歷表中學(xué)生
//遍歷表中學(xué)生? void displayNode(Link head){ ?? ?if(head==NULL) ?? ?{ ?? ??? ?printf("學(xué)生為空\(chéng)n"); ?? ??? ?return;? ?? ?} ?? ?else ?? ?{ ?? ??? ?Link p=head->next; ?? ??? ?while(p) ?? ??? ?{ ?? ??? ??? ?cout<<"姓名:"<<p->data.studentName<<" ? ?學(xué)號(hào)"<<p->data.studentNo<<" ?成績(jī):"<<p->data.score<<endl;? ?? ??? ??? ?p=p->next; ?? ??? ?} ?? ??? ? ?? ?} ? ?// 填寫(xiě)代碼,根據(jù)傳入的鏈表head頭指針,掃描鏈表顯示所有節(jié)點(diǎn)的信息 ? ?system("pause"); ? ?system("cls"); }
5).增加學(xué)生記錄
/* 增加學(xué)生記錄 */ bool addNode(Link head){ ?? ? Link p,q; ? //p,q兩個(gè)節(jié)點(diǎn)一前一后 ?? ? Link node; ?//node指針指向新創(chuàng)建的節(jié)點(diǎn) ?? ? node=(Link)malloc(sizeof(Node)); ?? ? inputStudent(node); ?? ? q = head; ?? ? p = head->next; ?//q指向head后面的第一個(gè)有效節(jié)點(diǎn) ?? ? if(head->next==NULL) ?? ??? ? //鏈表為空時(shí) ?? ??? ?head->next = node; ?? ? else { ?? ??? ? //循環(huán)訪問(wèn)鏈表中的所有節(jié)點(diǎn) ?? ??? ?while(p != NULL){ ?? ??? ??? ?if (node->data.studentNo < p->data.studentNo){ ?? ??? ??? ??? ?//如果node節(jié)點(diǎn)的學(xué)號(hào)比p節(jié)點(diǎn)的學(xué)號(hào)小,則插在p的前面,完成插入后,提前退出子程序 ?? ??? ??? ??? ?q->next = node; ?? ??? ??? ??? ?node->next = p; ?? ??? ??? ??? ?return true; ?? ??? ??? ?} ?? ??? ??? ?else{ ?? ??? ??? ??? ?//如果node節(jié)點(diǎn)的學(xué)號(hào)比p節(jié)點(diǎn)的學(xué)號(hào)大,繼續(xù)向后移動(dòng)指針(依然保持pq一前一后) ?? ??? ??? ??? ?q = p; ?? ??? ??? ??? ?p = p->next; ?? ??? ??? ?} ?? ??? ?} ?? ??? ?//如果沒(méi)能提前退出循環(huán),則說(shuō)明之前沒(méi)有插入,那么當(dāng)前node節(jié)點(diǎn)的學(xué)號(hào)是最大值,此時(shí)插在鏈表的最后面 ?? ??? ?q->next = node; ?? ?} ?? ? return true; ?? ? system("pause"); ? ?system("cls"); }
6).刪除學(xué)生信息
//刪除學(xué)生信息 bool deleteNode(Link head){ ? ? // 按照給定的學(xué)號(hào)刪除學(xué)生記錄,如果刪除成功返回true,如果沒(méi)找到學(xué)號(hào)返回false ? ? //輸入要處理的學(xué)號(hào) ? ? ?? ?char no[NO_LENGTH]; ?? ?inputStudentNo("刪除",no); ?? ??? ?Link p=head->next; ?? ?Link q=head; ?? ?while(p) ?? ?{ ?? ??? ?if(strcmp(p->data.studentNo,no)==0) ?? ??? ?{ ?? ??? ??? ?q->next=p->next; ?? ??? ??? ?free(p); ?? ??? ??? ?system("pause"); ? ?system("cls"); ?? ??? ??? ?return true; ?? ??? ?} ?? ??? ?else ?? ??? ?{ ?? ??? ??? ?q=p; ?? ??? ??? ?p=p->next; ?? ??? ?} ?? ?} system("pause"); ? ?system("cls"); ?? ?return false; }
7).查找學(xué)生信息
//查找學(xué)生信息? bool queryNode(Link head){ ? ? // 按照給定的學(xué)號(hào)查詢學(xué)生記錄,如果查找成功返回true,如果沒(méi)找到學(xué)號(hào)返回false ? ? //輸入要處理的學(xué)號(hào) ?? ?char no[NO_LENGTH]; ?? ?inputStudentNo("查找",no); ?? ??? ?Link p=head->next; ?? ?while(p) ?? ?{ ?? ??? ?if(strcmp(p->data.studentNo,no)==0) ?? ??? ?{ ?? ??? ??? ? ? ??? ??? ??? ?system("cls"); ? ??? ??? ??? ?cout<<"姓名:"<<p->data.studentName<<" ? ?學(xué)號(hào)"<<p->data.studentNo<<" ?成績(jī):"<<p->data.score<<endl;? ?? ??? ??? ?return true; ?? ??? ?} ?? ??? ?else ?? ??? ?{ ?? ??? ??? ?p=p->next; ?? ??? ?} ?? ?} ? ?system("cls"); ?? ?return false; }
8).修改學(xué)生信息
//修改學(xué)生信息? bool modifyNode(Link head){ ? ? // 按照給定的學(xué)號(hào)找到學(xué)生記錄節(jié)點(diǎn),如果修改成功返回true,如果沒(méi)找到學(xué)號(hào)返回false ?? ? ? ? //輸入要處理的學(xué)號(hào) ?? ?char no[NO_LENGTH]; ?? ?inputStudentNo("修改",no); ?? ?Link p=head->next; ?? ?while(p) ?? ?{ ?? ??? ?if(strcmp(p->data.studentNo,no)==0) ?? ??? ?{ ?? ??? ??? ?cout<<"請(qǐng)輸入修改后的姓名"<<endl;? ?? ??? ??? ?cin>>p->data.studentName; ?? ??? ??? ?cout<<"請(qǐng)輸入修改后的學(xué)號(hào)"<<endl;? ?? ??? ??? ?cin>>p->data.studentNo; ?? ??? ??? ?cout<<"請(qǐng)輸入修改后的成績(jī)"<<endl;? ?? ??? ??? ?cin>>p->data.score; ?? ??? ??? ?system("cls"); ?? ??? ??? ?return true; ?? ??? ?} ?? ??? ?else ?? ??? ?{ ?? ??? ??? ?p=p->next; ?? ??? ?} ?? ?} ?? ?system("cls"); ?? ?return false; }
9).統(tǒng)計(jì)學(xué)生人數(shù)
//統(tǒng)計(jì)學(xué)生人數(shù) int countNode(Link head){ ?? ?//統(tǒng)計(jì)學(xué)生人數(shù),掃描鏈表統(tǒng)計(jì)節(jié)點(diǎn)個(gè)數(shù),返回節(jié)點(diǎn)數(shù) ?? ?Link p; ?? ?int count = 0; ?? ?p = head->next; ?? ?while(p) ?? ?{ ?? ??? ?p=p->next; ?? ??? ?count++; ?? ?} ?? ?//填充代碼 ?? ?system("cls"); ?? ?return count; }
10).清空鏈表
//清空鏈表? void clearLink(Link head){ ?? ?Link q,p; ?? ?p=head->next; ?? ?q=head; ?? ?while(p) ?? ?{ ?? ??? ?q->next=p->next; ?? ??? ?free(p); ?? ??? ?p=q->next; ?? ?} ? ? ? ? //遍歷鏈表,用free語(yǔ)句刪除鏈表中用malloc建立起的所有的節(jié)點(diǎn) }
5.main函數(shù)
int main() { ?? ?int select; ? ? ?? ?int count; ?? ?Link head; ?// 定義鏈表 ?? ?//建立head頭結(jié)點(diǎn),在這個(gè)程序中head指向頭結(jié)點(diǎn),頭結(jié)點(diǎn)data部分沒(méi)有內(nèi)容,其后續(xù)節(jié)點(diǎn)才有真正的數(shù)據(jù) ?? ?head = (Link)malloc(sizeof(Node)); ?? ?head->next = NULL; ?? ?while(1) ?? ?{ ?? ??? ?myMenu(); ?? ??? ?printf("\n請(qǐng)輸入你的選擇(0-7):"); ?//顯示提示信息 ?? ??? ?scanf("%d",&select); ?? ??? ?switch(select) ?? ??? ?{ ?? ??? ?case 1: ?? ??? ??? ?//增加學(xué)生記錄 ?? ??? ??? ?if(addNode(head)) ?? ??? ??? ??? ?printf("成功插入一個(gè)學(xué)生記錄。\n\n"); ?? ??? ??? ?break; ?? ??? ?case 2: ?? ??? ??? ?//刪除學(xué)生記錄 ?? ??? ??? ?if(deleteNode(head)) ?? ??? ??? ??? ?printf("成功刪除一個(gè)學(xué)生記錄。\n\n"); ?? ??? ??? ?else ?? ??? ??? ??? ?printf("沒(méi)有找到要?jiǎng)h除的學(xué)生節(jié)點(diǎn)。\n\n"); ?? ??? ??? ?break; ?? ??? ?case 3: ?? ??? ??? ?//查詢學(xué)生記錄 ?? ??? ??? ?if(queryNode(head)) ?? ??? ??? ??? ?printf("成功找到學(xué)生記錄。\n\n"); ?? ??? ??? ?else ?? ??? ??? ??? ?printf("沒(méi)有找到要查詢的學(xué)生節(jié)點(diǎn)。\n\n"); ?? ??? ??? ?break; ?? ??? ?case 4: ?? ??? ??? ?//修改學(xué)生記錄 ?? ??? ??? ?if(modifyNode(head)) ?? ??? ??? ??? ?printf("成功修改一個(gè)學(xué)生記錄。\n\n"); ?? ??? ??? ?else ?? ??? ??? ??? ?printf("沒(méi)有找到要修改的學(xué)生節(jié)點(diǎn)。\n\n"); ?? ??? ??? ?break; ?? ??? ?case 5: ?? ??? ??? ?//統(tǒng)計(jì)學(xué)生人數(shù) ?? ??? ??? ?count = countNode(head); ?? ??? ??? ?printf("學(xué)生人數(shù)為:%d\n\n",count); ?? ??? ??? ?break; ?? ??? ?case 6: ?? ??? ??? ?//顯示學(xué)生記錄 ?? ??? ??? ?displayNode(head); ?? ??? ??? ?break; ?? ??? ?case 7: ?? ??? ??? ?//退出前清除鏈表中的所有結(jié)點(diǎn) ? ? ? ? ? ? clearLink(head); ?? ??? ??? ?return 0; ?? ??? ?default: ?? ??? ??? ?printf("輸入不正確,應(yīng)該輸入0-7之間的數(shù)。\n\n"); ?? ??? ??? ?system("cls");? ?? ??? ??? ?break; ?? ??? ?} ?? ?} ?? ?return 0; }
6.總源碼(可直接復(fù)制運(yùn)行)
#include <stdio.h> #include<string.h> #include<malloc.h> #include<stdlib.h> #include<stdbool.h> #include<iostream> using namespace std; #define NO_LENGTH ?20 #define NAME_LENGTH 11 /* 定義學(xué)生結(jié)構(gòu)體的數(shù)據(jù)結(jié)構(gòu) */ typedef struct Student{ ?? ?char studentNo[NO_LENGTH]; ?? ?char studentName[NAME_LENGTH]; ?? ?int score; }st; /* 定義每條記錄或節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu) */ typedef struct node { ?? ?struct Student data; //數(shù)據(jù)域 ?? ?struct node *next; //指針域 }Node,*Link; ?//Node為node類型的別名,Link為node類型的指針別名 //定義提示菜單 void myMenu(){ ?? ?printf("*****************************菜單*****************************\n");? ?? ?printf("***********************1 增加學(xué)生記錄*************************\n");? ?? ?printf("***********************2 刪除學(xué)生記錄*************************\n");? ?? ?printf("***********************3 查找學(xué)生記錄*************************\n");? ?? ?printf("***********************4 修改學(xué)生記錄*************************\n");? ?? ?printf("***********************5 統(tǒng)計(jì)學(xué)生人數(shù) ************************\n");? ?? ?printf("***********************6 顯示學(xué)生記錄*************************\n");? ?? ?printf("***********************7 退出系統(tǒng) ****************************\n");? ?? ? } void inputStudent(Link l){ ?? ? printf("請(qǐng)輸入學(xué)生學(xué)號(hào):"); ?? ? scanf("%s",l->data.studentNo); ?? ? printf("請(qǐng)輸入學(xué)生的姓名:"); ?? ? scanf("%s",l->data.studentName); ?? ?printf("請(qǐng)輸入學(xué)生的成績(jī):"); ?? ? scanf("%d",&(l->data.score)); ?? ? //每個(gè)新創(chuàng)建的節(jié)點(diǎn)的next域都初始化為NULL ?? ? l->next = NULL; ?? ? system("cls"); } void inputStudentNo(char s[],char no[]){ ?? ?printf("請(qǐng)輸入要%s的學(xué)生學(xué)號(hào):",s); ?? ?scanf("%s",no); } //遍歷表中學(xué)生? void displayNode(Link head){ ?? ?if(head==NULL) ?? ?{ ?? ??? ?printf("學(xué)生為空\(chéng)n"); ?? ??? ?return;? ?? ?} ?? ?else ?? ?{ ?? ??? ?Link p=head->next; ?? ??? ?while(p) ?? ??? ?{ ?? ??? ??? ?cout<<"姓名:"<<p->data.studentName<<" ? ?學(xué)號(hào)"<<p->data.studentNo<<" ?成績(jī):"<<p->data.score<<endl;? ?? ??? ??? ?p=p->next; ?? ??? ?} ?? ??? ? ?? ?} ? ?// 填寫(xiě)代碼,根據(jù)傳入的鏈表head頭指針,掃描鏈表顯示所有節(jié)點(diǎn)的信息 ? ?system("pause"); ? ?system("cls"); } /* 增加學(xué)生記錄 */ bool addNode(Link head){ ?? ? Link p,q; ? //p,q兩個(gè)節(jié)點(diǎn)一前一后 ?? ? Link node; ?//node指針指向新創(chuàng)建的節(jié)點(diǎn) ?? ? node=(Link)malloc(sizeof(Node)); ?? ? inputStudent(node); ?? ? q = head; ?? ? p = head->next; ?//q指向head后面的第一個(gè)有效節(jié)點(diǎn) ?? ? if(head->next==NULL) ?? ??? ? //鏈表為空時(shí) ?? ??? ?head->next = node; ?? ? else { ?? ??? ? //循環(huán)訪問(wèn)鏈表中的所有節(jié)點(diǎn) ?? ??? ?while(p != NULL){ ?? ??? ??? ?if (node->data.studentNo < p->data.studentNo){ ?? ??? ??? ??? ?//如果node節(jié)點(diǎn)的學(xué)號(hào)比p節(jié)點(diǎn)的學(xué)號(hào)小,則插在p的前面,完成插入后,提前退出子程序 ?? ??? ??? ??? ?q->next = node; ?? ??? ??? ??? ?node->next = p; ?? ??? ??? ??? ?return true; ?? ??? ??? ?} ?? ??? ??? ?else{ ?? ??? ??? ??? ?//如果node節(jié)點(diǎn)的學(xué)號(hào)比p節(jié)點(diǎn)的學(xué)號(hào)大,繼續(xù)向后移動(dòng)指針(依然保持pq一前一后) ?? ??? ??? ??? ?q = p; ?? ??? ??? ??? ?p = p->next; ?? ??? ??? ?} ?? ??? ?} ?? ??? ?//如果沒(méi)能提前退出循環(huán),則說(shuō)明之前沒(méi)有插入,那么當(dāng)前node節(jié)點(diǎn)的學(xué)號(hào)是最大值,此時(shí)插在鏈表的最后面 ?? ??? ?q->next = node; ?? ?} ?? ? return true; ?? ? system("pause"); ? ?system("cls"); } bool deleteNode(Link head){ ? ? // 按照給定的學(xué)號(hào)刪除學(xué)生記錄,如果刪除成功返回true,如果沒(méi)找到學(xué)號(hào)返回false ? ? //輸入要處理的學(xué)號(hào) ? ? ?? ?char no[NO_LENGTH]; ?? ?inputStudentNo("刪除",no); ?? ??? ?Link p=head->next; ?? ?Link q=head; ?? ?while(p) ?? ?{ ?? ??? ?if(strcmp(p->data.studentNo,no)==0) ?? ??? ?{ ?? ??? ??? ?q->next=p->next; ?? ??? ??? ?free(p); ?? ??? ??? ?system("pause"); ? ?system("cls"); ?? ??? ??? ?return true; ?? ??? ?} ?? ??? ?else ?? ??? ?{ ?? ??? ??? ?q=p; ?? ??? ??? ?p=p->next; ?? ??? ?} ?? ?} system("pause"); ? ?system("cls"); ?? ?return false; } //查找學(xué)生信息? bool queryNode(Link head){ ? ? // 按照給定的學(xué)號(hào)查詢學(xué)生記錄,如果查找成功返回true,如果沒(méi)找到學(xué)號(hào)返回false ? ? //輸入要處理的學(xué)號(hào) ?? ?char no[NO_LENGTH]; ?? ?inputStudentNo("查找",no); ?? ??? ?Link p=head->next; ?? ?while(p) ?? ?{ ?? ??? ?if(strcmp(p->data.studentNo,no)==0) ?? ??? ?{ ?? ??? ??? ? ? ??? ??? ??? ?system("cls"); ? ??? ??? ??? ?cout<<"姓名:"<<p->data.studentName<<" ? ?學(xué)號(hào)"<<p->data.studentNo<<" ?成績(jī):"<<p->data.score<<endl;? ?? ??? ??? ?return true; ?? ??? ?} ?? ??? ?else ?? ??? ?{ ?? ??? ??? ?p=p->next; ?? ??? ?} ?? ?} ? ?system("cls"); ?? ?return false; } //修改學(xué)生信息? bool modifyNode(Link head){ ? ? // 按照給定的學(xué)號(hào)找到學(xué)生記錄節(jié)點(diǎn),如果修改成功返回true,如果沒(méi)找到學(xué)號(hào)返回false ?? ? ? ? //輸入要處理的學(xué)號(hào) ?? ?char no[NO_LENGTH]; ?? ?inputStudentNo("修改",no); ?? ?Link p=head->next; ?? ?while(p) ?? ?{ ?? ??? ?if(strcmp(p->data.studentNo,no)==0) ?? ??? ?{ ?? ??? ??? ?cout<<"請(qǐng)輸入修改后的姓名"<<endl;? ?? ??? ??? ?cin>>p->data.studentName; ?? ??? ??? ?cout<<"請(qǐng)輸入修改后的學(xué)號(hào)"<<endl;? ?? ??? ??? ?cin>>p->data.studentNo; ?? ??? ??? ?cout<<"請(qǐng)輸入修改后的成績(jī)"<<endl;? ?? ??? ??? ?cin>>p->data.score; ?? ??? ??? ?system("cls"); ?? ??? ??? ?return true; ?? ??? ?} ?? ??? ?else ?? ??? ?{ ?? ??? ??? ?p=p->next; ?? ??? ?} ?? ?} ?? ?system("cls"); ?? ?return false; } //統(tǒng)計(jì)學(xué)生人數(shù) int countNode(Link head){ ?? ?//統(tǒng)計(jì)學(xué)生人數(shù),掃描鏈表統(tǒng)計(jì)節(jié)點(diǎn)個(gè)數(shù),返回節(jié)點(diǎn)數(shù) ?? ?Link p; ?? ?int count = 0; ?? ?p = head->next; ?? ?while(p) ?? ?{ ?? ??? ?p=p->next; ?? ??? ?count++; ?? ?} ?? ?//填充代碼 ?? ?system("cls"); ?? ?return count; } //清空鏈表? void clearLink(Link head){ ?? ?Link q,p; ?? ?p=head->next; ?? ?q=head; ?? ?while(p) ?? ?{ ?? ??? ?q->next=p->next; ?? ??? ?free(p); ?? ??? ?p=q->next; ?? ?} ? ? ? ? //遍歷鏈表,用free語(yǔ)句刪除鏈表中用malloc建立起的所有的節(jié)點(diǎn) } int main() { ?? ?int select; ? ? ?? ?int count; ?? ?Link head; ?// 定義鏈表 ?? ?//建立head頭結(jié)點(diǎn),在這個(gè)程序中head指向頭結(jié)點(diǎn),頭結(jié)點(diǎn)data部分沒(méi)有內(nèi)容,其后續(xù)節(jié)點(diǎn)才有真正的數(shù)據(jù) ?? ?head = (Link)malloc(sizeof(Node)); ?? ?head->next = NULL; ?? ?while(1) ?? ?{ ?? ??? ?myMenu(); ?? ??? ?printf("\n請(qǐng)輸入你的選擇(0-7):"); ?//顯示提示信息 ?? ??? ?scanf("%d",&select); ?? ??? ?switch(select) ?? ??? ?{ ?? ??? ?case 1: ?? ??? ??? ?//增加學(xué)生記錄 ?? ??? ??? ?if(addNode(head)) ?? ??? ??? ??? ?printf("成功插入一個(gè)學(xué)生記錄。\n\n"); ?? ??? ??? ?break; ?? ??? ?case 2: ?? ??? ??? ?//刪除學(xué)生記錄 ?? ??? ??? ?if(deleteNode(head)) ?? ??? ??? ??? ?printf("成功刪除一個(gè)學(xué)生記錄。\n\n"); ?? ??? ??? ?else ?? ??? ??? ??? ?printf("沒(méi)有找到要?jiǎng)h除的學(xué)生節(jié)點(diǎn)。\n\n"); ?? ??? ??? ?break; ?? ??? ?case 3: ?? ??? ??? ?//查詢學(xué)生記錄 ?? ??? ??? ?if(queryNode(head)) ?? ??? ??? ??? ?printf("成功找到學(xué)生記錄。\n\n"); ?? ??? ??? ?else ?? ??? ??? ??? ?printf("沒(méi)有找到要查詢的學(xué)生節(jié)點(diǎn)。\n\n"); ?? ??? ??? ?break; ?? ??? ?case 4: ?? ??? ??? ?//修改學(xué)生記錄 ?? ??? ??? ?if(modifyNode(head)) ?? ??? ??? ??? ?printf("成功修改一個(gè)學(xué)生記錄。\n\n"); ?? ??? ??? ?else ?? ??? ??? ??? ?printf("沒(méi)有找到要修改的學(xué)生節(jié)點(diǎn)。\n\n"); ?? ??? ??? ?break; ?? ??? ?case 5: ?? ??? ??? ?//統(tǒng)計(jì)學(xué)生人數(shù) ?? ??? ??? ?count = countNode(head); ?? ??? ??? ?printf("學(xué)生人數(shù)為:%d\n\n",count); ?? ??? ??? ?break; ?? ??? ?case 6: ?? ??? ??? ?//顯示學(xué)生記錄 ?? ??? ??? ?displayNode(head); ?? ??? ??? ?break; ?? ??? ?case 7: ?? ??? ??? ?//退出前清除鏈表中的所有結(jié)點(diǎn) ? ? ? ? ? ? clearLink(head); ?? ??? ??? ?return 0; ?? ??? ?default: ?? ??? ??? ?printf("輸入不正確,應(yīng)該輸入0-7之間的數(shù)。\n\n"); ?? ??? ??? ?system("cls");? ?? ??? ??? ?break; ?? ??? ?} ?? ?} ?? ?return 0; }
7.測(cè)試結(jié)果
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 學(xué)生信息管理系統(tǒng)C語(yǔ)言版
- C語(yǔ)言職工信息管理系統(tǒng)源碼
- C語(yǔ)言實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)(單鏈表)
- C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)
- C語(yǔ)言實(shí)現(xiàn)歌曲信息管理系統(tǒng)
- C語(yǔ)言單鏈表版學(xué)生信息管理系統(tǒng)
- C語(yǔ)言學(xué)生信息管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- C語(yǔ)言學(xué)生信息管理系統(tǒng)小項(xiàng)目
- C語(yǔ)言版學(xué)生信息管理系統(tǒng)
- C語(yǔ)言數(shù)組實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)設(shè)計(jì)
相關(guān)文章
C/C++惡意代碼盤(pán)點(diǎn)之文件自動(dòng)刪除
惡意代碼的分類包括計(jì)算機(jī)病毒、蠕蟲(chóng)、木馬等,有些技術(shù)經(jīng)常用到,有的也是必然用到。今天我們就分享一下文件自動(dòng)刪除,感興趣的可以了解一下2022-09-09C++11顯示類型轉(zhuǎn)換的優(yōu)點(diǎn)
這篇文章主要介紹了C++11顯示類型轉(zhuǎn)換的優(yōu)點(diǎn),幫助大家更好的理解和學(xué)習(xí)c++,感興趣的朋友可以了解下2020-08-08C++中事件機(jī)制的簡(jiǎn)潔實(shí)現(xiàn)及需要放棄的特性
事件模型是被廣泛使用的好東西,但是C++標(biāo)準(zhǔn)庫(kù)里沒(méi)有現(xiàn)成的,現(xiàn)在VC11可以用在XP下了,那么就痛快的拿起C++11提供的先進(jìn)設(shè)施組合出一個(gè)輕便的實(shí)現(xiàn)吧感興趣的朋友可以了解下,或許對(duì)你有所幫助2013-02-02詳解C語(yǔ)言快速排序三種方法的單趟實(shí)現(xiàn)
本文將通過(guò)圖片重點(diǎn)為大家介紹一下C語(yǔ)言中快速排序三種方法的單趟實(shí)現(xiàn):分別是hoare法、挖坑法、雙指針?lè)ǎ闹惺纠a講解詳細(xì),感興趣的可以了解一下2022-06-06C++實(shí)現(xiàn)教職工管理系統(tǒng)課程設(shè)計(jì)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)教職工管理系統(tǒng)課程設(shè)計(jì),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03