1. 程式人生 > >小學期,學生信息管理系統

小學期,學生信息管理系統

c

#include <stdio.h>
#define M 10
void modify(struct student *stu, int st);//修改函數
void input(struct student *stu, int st);//輸入函數
void (display(struct student *stu, int N));//顯示函數
struct student{
    int number;     //學號
    char name[M];  //姓名
    char gender[M]; //性別
    char place[M]; //籍貫
    int grade;      //年級
    char major[5]; //專業
    int Class;      //班級
    char course[M];//課程
}stu[30];//構造一個名字為 Student 的結構體
int main()
{
    int i;
    int a;//添加的學生個數
    int ad;//添加的學生序號(第幾個學生)
    int op;//根據輸入的數字確定執行的運算
    int st;//修改的學生的序號
    int flag=0;//計數標誌
    struct student stu[30] = {
        {101, "aaa", "x", "shanghai", 15, "CS", 01, "chinese"},
        {102, "aab", "y", "beijing",  16, "DN", 02, "English"},
        {103, "aac", "x", "sichuan",  14, "CS", 03, "math"},
        {104, "aad", "x", "chengdu",  13, "CS", 04, "chinese"},
        {105, "aae", "y", "dandong",  13, "DN", 01, "English"},
        {106, "aaf", "x", "shanghai", 15, "CS", 01, "chinese"},
        {107, "aag", "y", "beijing",  16, "DN", 02, "English"},
        {108, "aah", "x", "sichuan",  14, "CS", 03, "math"},
        {109, "aai", "x", "chengdu",  13, "CS", 04, "chinese"},
        {110, "aaj", "y", "dandong",  13, "DN", 01, "English"}
    };
    do{
        printf("-1, 退出\n");
        printf("1, 輸入\n");
        printf("2, 修改\n");
        printf("3, 顯示\n");
        scanf("%d", &op);
        switch(op){      //根據輸入的數字確定執行的運算
        case -1:
            printf("您沒有進行任何操作!\n");
            flag=1;
        case 1:
            printf("(1-10)請輸入添加學生的個數:");
            scanf("%d", &a);
            for(i=0, ad=11; i<a; i++, ad++){
                printf("對第%d個學生進行添加操作:\n", ad);
                input(&stu[ad], ad);//調用輸入函數
            }
            break;
        case 2:
            printf("請輸入需要修改的學生的序號(1-10):");
            scanf("%d", &st);
            st = st-1;
            modify(&stu[st], st);//調用修改函數
            break;
        case 3:
            display(stu, M);//調用顯示函數
            break;
        default:
            printf("Unknown operator!\n");
        }
        if(flag)
            break;
    }while(op);
    return 0;
}
//修改函數
void modify(struct student *stu, int st)
{
    int att;
    printf("(1)number\n");
    printf("(2)name\n");
    printf("(3)gender\n");
    printf("(4)place\n");
    printf("(5)grade\n");
    printf("(6)major\n");
    printf("(7)Class\n");
    printf("(8)course\n");
    printf("請輸入需要修改的數據(1-8):");
    scanf("%d", &att);
    switch(att)
    {
    case 1:
        printf("student[%d] 原來的學號為%d\n", st, stu[st].number);
        printf("修改為:");
        scanf("%d", &stu[st].number);
        printf("student[%d] 修改後的學號為%d\n", st, stu[st].number);
        break;
    case 2:
        printf("student[%d] 原來的姓名為%s\n", st, stu[st].name);
        printf("修改為:");
        scanf("%s", &stu[st].name);
        printf("student[%d] 修改後的姓名為%s\n", st, stu[st].name);
        break;
    case 3:
        printf("student[%d] 原來的性別為%c\n", st, stu[st].gender);
        printf("修改為:");
        scanf("%c", &stu[st].gender);
        printf("student[%d] 修改後的性別為%c\n", st, stu[st].gender);
        break;
    case 4:
        printf("student[%d] 原來的籍貫為%s\n", st, stu[st].place);
        printf("修改為:");
        scanf("%s", &stu[st].place);
        printf("student[%d] 修改後的籍貫為%s\n", st, stu[st].place);
        break;
    case 5:
        printf("student[%d] 原來的年級為%d\n", st, stu[st].grade);
        printf("修改為:");
        scanf("%d", &stu[st].grade);
        printf("student[%d] 修改後的年級為%d\n", st, stu[st].grade);
        break;
    case 6:
        printf("student[%d] 原來的專業為%s\n", st, stu[st].major);
        printf("修改為:");
        scanf("%s", &stu[st].major);
        printf("student[%d] 修改後的專業為%s\n", st, stu[st].major);
        break;
    case 7:
        printf("student[%d] 原來的班級為%d\n", st, stu[st].Class);
        printf("修改為:");
        scanf("%d", &stu[st].Class);
        printf("student[%d] 修改後的班級為%d\n", st, stu[st].Class);
        break;
    case 8:
        printf("student[%d] 原來的課程為%s\n", st, stu[st].course);
        printf("修改為:");
        scanf("%s", &stu[st].course);
        printf("student[%d] 修改後的課程為%s\n", st, stu[st].course);
        break;
    default:
        printf("Unknown operator!\n");
    }
}
//輸入函數
void input(struct student *stu, int st)
{
    printf("請輸入添加學生的:\n");
    printf("學號:");
    scanf("%d", &stu[st].number);
    printf("姓名:");
    scanf("%s", &stu[st].name);
    printf("性別:");
    scanf("%s", &stu[st].gender);
    printf("籍貫:");
    scanf("%s", &stu[st].place);
    printf("年級:");
    scanf("%d", &stu[st].grade);
    printf("專業:");
    scanf("%s", &stu[st].major);
    printf("班級:");
    scanf("%d", &stu[st].Class);
    printf("學習課程:");
    scanf("%s", &stu[st].course);
    printf("|-----------------------------------------------------------------------------------------------------|\n");
    printf("|   number   |    name    |   gender   |    place    |   grade   |   major   |    Class |    course   |\n");
    printf("|------------|------------|------------|-------------|-----------|-----------|----------|-------------|\n");
    printf("| %d           %s           %s           %s          %d           %s          %d         %s            \n",
           stu[st].number, stu[st].name, stu[st].gender, stu[st].place,
           stu[st].grade, stu[st].major, stu[st].Class, stu[st].course);
    printf("|-----------------------------------------------------------------------------------------------------|\n");

}
//顯示函數
void display(struct student *stu, int N)
{
    int i;
    printf("+*****************************************************************************************************+\n");
    printf("|   number   |    name    |   gender   |    place    |   grade   |   major   |    Class |    course   |\n");
    for(i=0; i<N; i++){
    printf("|------------|------------|------------|-------------|-----------|-----------|----------|-------------|\n");
    printf("| %d           %s           %s           %s          %d           %s          %d         %s            \n",
           stu[i].number, stu[i].name, stu[i].gender, stu[i].place,
           stu[i].grade, stu[i].major, stu[i].Class, stu[i].course);
    }
    printf("+*****************************************************************************************************+\n");

}


本文出自 “12090619” 博客,請務必保留此出處http://12100619.blog.51cto.com/12090619/1944659

小學期,學生信息管理系統