欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語(yǔ)言實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)(鏈表)

 更新時(shí)間:2022年06月20日 11:07:48   作者:Demo龍  
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)學(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(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í)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C程序和C++程序之間的互相調(diào)用圖文教程

    C程序和C++程序之間的互相調(diào)用圖文教程

    這篇文章主要給大家介紹了關(guān)于C程序和C++程序之間互相調(diào)用的相關(guān)資料,我們平常在刷題的時(shí)候,難免遇到實(shí)現(xiàn)多組輸入這樣的問(wèn)題,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • C++開(kāi)發(fā)截屏小程序功能

    C++開(kāi)發(fā)截屏小程序功能

    這篇文章主要介紹了C++開(kāi)發(fā)截屏小程序功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • C/C++惡意代碼盤(pán)點(diǎn)之文件自動(dòng)刪除

    C/C++惡意代碼盤(pán)點(diǎn)之文件自動(dòng)刪除

    惡意代碼的分類包括計(jì)算機(jī)病毒、蠕蟲(chóng)、木馬等,有些技術(shù)經(jīng)常用到,有的也是必然用到。今天我們就分享一下文件自動(dòng)刪除,感興趣的可以了解一下
    2022-09-09
  • C語(yǔ)言平衡二叉樹(shù)詳解

    C語(yǔ)言平衡二叉樹(shù)詳解

    這篇文章主要介紹了C語(yǔ)言平衡二叉樹(shù)的相關(guān)資料,需要的朋友可以參考下,小編覺(jué)得這篇文章寫(xiě)的還不錯(cuò),希望能夠給你帶來(lái)幫助
    2021-11-11
  • C語(yǔ)言數(shù)獨(dú)游戲的求解方法

    C語(yǔ)言數(shù)獨(dú)游戲的求解方法

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言數(shù)獨(dú)游戲的求解方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • c++中引用作為形參的使用方法以及作用

    c++中引用作為形參的使用方法以及作用

    這篇文章主要給大家介紹了關(guān)于c++中引用作為形參的使用方法以及作用的相關(guān)資料,引用是地址傳值,作為引用的形參數(shù)值被修改的同時(shí),也修改了對(duì)應(yīng)實(shí)參的值,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • C++11顯示類型轉(zhuǎn)換的優(yōu)點(diǎn)

    C++11顯示類型轉(zhuǎn)換的優(yōu)點(diǎn)

    這篇文章主要介紹了C++11顯示類型轉(zhuǎn)換的優(yōu)點(diǎn),幫助大家更好的理解和學(xué)習(xí)c++,感興趣的朋友可以了解下
    2020-08-08
  • C++中事件機(jī)制的簡(jiǎn)潔實(shí)現(xiàn)及需要放棄的特性

    C++中事件機(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)

    詳解C語(yǔ)言快速排序三種方法的單趟實(shí)現(xiàn)

    本文將通過(guò)圖片重點(diǎn)為大家介紹一下C語(yǔ)言中快速排序三種方法的單趟實(shí)現(xiàn):分別是hoare法、挖坑法、雙指針?lè)ǎ闹惺纠a講解詳細(xì),感興趣的可以了解一下
    2022-06-06
  • C++實(shí)現(xiàn)教職工管理系統(tǒng)課程設(shè)計(jì)

    C++實(shí)現(xiàn)教職工管理系統(tǒng)課程設(shè)計(jì)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)教職工管理系統(tǒng)課程設(shè)計(jì),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03

最新評(píng)論