創(chuàng)建一個(gè)學(xué)生信息管理系統(tǒng)

學(xué)生信息管理系統(tǒng)的建立

目的

  • 熟悉C語言程序的編輯、編譯鏈接和運(yùn)行的過程,至少能夠用一種編譯器較熟練地編輯、編譯及調(diào)試程序。
  • 掌握結(jié)構(gòu)體類型變量、數(shù)組的定義和使用
  • 掌握文件和文件指針的概念以及文件的定義方法,認(rèn)識(shí)文件打開、關(guān)閉、讀、寫等文件基本操作函數(shù)
  • 能用c語言中靈活運(yùn)用鏈表

技術(shù)

要懂得如何用c語言創(chuàng)建一個(gè)文件,代碼引用
FILE *fp=fopen("C:/Users/lenovo/Desktop/hml.txt","w");
fputs("abc",fp);
//struct student{
//char name[10];
//int age;
// };
//struct student xw1={"xiaowang",20};
//fwrite(&xw1,sizeof(struct student),1,fp);
類似于這種,首先要在電腦中輸入cmd打開命令提升符,然后復(fù)制粘貼一個(gè)文件路徑放到c語言中就可以了,類似上面那樣的,要知道‘w“”r““a”等是什么意思,w就是只能寫,r是只讀,a是從末尾開始寫
鏈表的建立,特別是在結(jié)構(gòu)體當(dāng)中的使用

具體的實(shí)現(xiàn)

首先要建立一個(gè)結(jié)構(gòu)體,

typedef struct Node{
    char name[10];
    int _id;
    float score;
    struct Node *next;
} Student;

然后初始化一個(gè)頭結(jié)點(diǎn),并且要進(jìn)行動(dòng)態(tài)分配內(nèi)存。

void inttHeader(student **pHeader){
        student *pTemp=malloc(1*sizeof(student));
        pTemp->next=NUll;
        *pHeader=pTemp;
    }

要有一個(gè)進(jìn)入選擇的界面,并進(jìn)行選擇,而且要有一個(gè)退出的界面。

void showMenu(void){
    printf("************\n");
    printf("1.查詢\n");
    printf("2.刪除\n");
    printf("3.更改\n");
    printf("4.插入\n");
    printf("5.退出\n");
    printf("************\n");
}
int getChoice(void){
    int c;
    printf("請(qǐng)選擇操作:");
    scanf("%d", &c);
    
    return c;
}
oid MyExit(int status){
    printf("**************\n");
    printf("感謝你的使用再見\n");
    printf("**************\n");
    

要準(zhǔn)備一個(gè)結(jié)構(gòu)體保存數(shù)據(jù),首先我們要插入學(xué)生的各種信息

void save(student *pTemp){
    }
    void insert(student *pTemp){
        student *pstu=malloc(1*sizeof(student));
        pstu->next=Null;
        printf("請(qǐng)輸入姓名:");
        scanf("%s",pstu->name);
        printf("請(qǐng)輸入成績(jī):");
        scanf("%f",&(pstu->next));
        int count=0;
        while(pTemp->next!=Null){
            pTemp=pTemp->next;
            count++;
        }
        pstu->_id=count+1;
        pTemp->next=pstu;
    }

然后我們就是要查詢了

void querry(student *pTemp){
        pTemp=ptemp->next;
        while(pTemp!=Null){
            printf("id:%id\n",pTemp->_id);
            printf("name:%s\n",pTemp->name);
            printf("score:%.1f\n",pTemp->score);
            printf("\n");
            pTemp=pTemp->next;
        }
}

刪除和更改也類似,創(chuàng)立兩個(gè)函數(shù),然后在main函數(shù)當(dāng)中使用就行了

Student *pHeader = NULL;
    
    initHeader(&pHeader);
    
    int choice = 0;
    while(1){
        showMenu();
        
        choice = getChoice();
        
        switch (choice) {
            case 1:
                querry(pHeader);
                break;
            case 2:
                delete(pHeader)
                break;
            case 3:
                change(pHeader)
                break;
            case 4:
                insert(pHeader);
                printf("插入成功!!!\n");
                break;
            default:
                MyExit(EXIT_SUCCESS);
                break;
        }
        
    }
    return 0;
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容