C語言使用順序表實現對學生信息的管理系統

C語言使用順序表實現對學生信息的管理系統

代碼功能

一、使用順序表實現學生名冊管理程序,名冊中的每條記錄包括學號、姓名、聯繫電話等項。
二、實現數字化菜單管理:學生名冊的創建、記錄的添加、查找、刪除和顯示等功能。例如:一、添加二、查找 三、刪除四、顯示 0、退出數組

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STR_LEN 20
#define MAX_STUDENT_NUM 10
/*定義Student結構體 參數: id:學號 name:姓名 phone:電話號碼 */
typedef struct student{
    int id;
    char name;
    int phone;
}STUDENT;
//插入學生信息//
int Insert(STUDENT student[],int num);
//打印學生信息
void PrintLine(STUDENT student[],int num);
//查詢學生信息
int Search(STUDENT student[],int student_id);
//刪除學生信息
int Delete(STUDENT student[],int student_id);
int main(){
    STUDENT a[MAX_STUDENT_NUM];
    STUDENT student;
    int res,num,student_id;
    int command;
    int  home="1.Insert student\n2.Del student\n3.Search student\n4.Display all student\n5.exit\n";

    while(1){
        printf("%s",home);
        scanf("%d",&command);
        fflush(stdin);
        switch(command){
            case 1:
                printf("input the number of student\n");
                scanf("%d",&num);
                fflush(stdin);
                if(num>MAX_STUDENT_NUM){
                    printf("Exceeds the maximum\n");
                    continue;
                }
                res=Insert(a,num);
                if(res==2){
                    printf("success!\n");
                }else{
                    printf("false!\n");
                }
                break;
            case 2:
                printf("input the student id you want to del:\n");
                scanf("%d",&student_id);
                fflush(stdin);
                res=Search(a,student_id);
                if(res==-1){
                    printf("the student is not exist\n");
                }else{
                    Delete(a,res);
                    num=num-1;
                }
                break;
            case 3:
                printf("input the student number you want to search\n");
                scanf("%d",&student_id);
                fflush(stdin);
                res=Search(a,student_id);
                if(res==-1){
                    printf("the student is not exist\n");
                }else{
                    printf("該學生位於:%d\n",res);
                }
                break;
            case 4:
                PrintLine(a,num);
                break;
            case 5:
                return 0;
            default :
                printf("input error!\n");
                break;
        }


    }



}
int Insert(STUDENT student[],int num){
    int i;
    int res;
    for(i=0;i<=num-1;i++){
        printf("input the student id:\n");
        res=scanf("%d",&student[i].id);
        fflush(stdin);
        if(res==0){
            printf("error!input again\n");
            res=scanf("%d",&student[i].id);
        }
        printf("input the student name:\n");
        scanf("%s",&student[i].name);
        printf("input the student number\n");
        scanf("%d",&student[i].phone);
        fflush(stdin);
        if(res==0){
            printf("error!input again\n");
            res=scanf("%d",&student[i].id);
        }

    }
    return 2;
}
void PrintLine(STUDENT student[],int num){
    int i;
    if(num==0){
        printf("the student array is null\n");
    }else{
        for(i=0;i<num;i++){

            printf("學號:%d,名字:%s,電話:%d",student[i].id,&student[i].name,student[i].phone);
            printf("\n");

        }


    }
}
int Search(STUDENT student[],int student_id){
    int i;
    for(i=0;i<=MAX_STUDENT_NUM;i++){
        if(student[i].id==student_id){
            return i+1;
        }
    }
    return -1;
}
int Delete(STUDENT student[],int student_id){
    int j;
    for(j=student_id;j<=MAX_STUDENT_NUM;j++){
            student[j-1].id=student[j].id;
            student[j-1].name=student[j].name;
            student[j-1].phone=student[j].phone;
        }
    printf("success!\n");
    return 1;

}

測試截圖:

1.Insert功能的檢驗(參數爲:學生人數,學生信息;返回插入結果:success/false)這裏寫圖片描述
2.Display功能的檢驗(無參數;返回結果:空數組/打印全部學生信息)
這裏寫圖片描述
3.Search功能的檢驗(參數:學生的學號;返回信息:不存在/位置)
這裏寫圖片描述
4.Del功能的檢驗(參數:學生的學號;返回信息:succes)
這裏寫圖片描述學習


這裏寫圖片描述
掃碼關注做者我的技術公衆號,有關技術問題後臺回覆便可,不按期將有學習資源分享
相關文章
相關標籤/搜索