国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C語言——學(xué)生信息管理系統(tǒng)(數(shù)組)

這篇具有很好參考價值的文章主要介紹了C語言——學(xué)生信息管理系統(tǒng)(數(shù)組)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、前言

因為最近是在趕進度總結(jié),數(shù)組和指針的筆記已經(jīng)更新,但是數(shù)組、指針的習(xí)題還未總結(jié),數(shù)組的題已經(jīng)開始總結(jié),但是還沒總結(jié)完,所以還沒發(fā)出來,目前學(xué)習(xí)進度已經(jīng)到了學(xué)生管理系統(tǒng),趁熱打鐵將學(xué)生管理系統(tǒng)的數(shù)組篇更新,因為之后還有指針篇,怕到時候代碼搞混了,由于代碼注釋都比較清晰,所以不在一一贅述代碼含義,有疑問可以給老王留言~

二、目的

用C語言數(shù)組寫一個學(xué)生信息管理系統(tǒng),并實現(xiàn)以下功能
1.對學(xué)生信息實現(xiàn)增、刪、改、查;
2.對于增加學(xué)生信息可以判定內(nèi)存是否已滿、是否重復(fù)錄入(學(xué)號唯一性);
3.對于刪除學(xué)生信息判定是否有該生信息;
4.對于修改學(xué)生信息判定是否有該生信息;
5.對于查詢學(xué)生信息判定是否有該生信息、僅打印查詢信息;
6.排序功能——按照學(xué)號排序/按照成績排序
7.以管理員身份打印所有學(xué)生信息;
8.退出系統(tǒng)

三、框架

1.菜單

1.1主菜單

****** -學(xué)生管理系統(tǒng)******
1.添加學(xué)生信息
2.刪除學(xué)生信息
3.修改學(xué)生信息
4.查詢學(xué)生信息
5.學(xué)生信息排序
0.退出管理系統(tǒng)

1.2子菜單

**排序方式
1-按照學(xué)號排序
2-按照成績排序

2.流程圖

2.1總流程圖

C語言——學(xué)生信息管理系統(tǒng)(數(shù)組)
由于不太清楚,我把詳細的各部分列出來如下:

2.2開始流程圖

C語言——學(xué)生信息管理系統(tǒng)(數(shù)組)

2.3增加學(xué)生信息流程圖

C語言——學(xué)生信息管理系統(tǒng)(數(shù)組)

2.4.刪除學(xué)生信息流程圖

C語言——學(xué)生信息管理系統(tǒng)(數(shù)組)

2.5修改學(xué)生信息流程圖

C語言——學(xué)生信息管理系統(tǒng)(數(shù)組)

2.6查詢學(xué)生信息流程圖

C語言——學(xué)生信息管理系統(tǒng)(數(shù)組)

2.7對學(xué)生信息排序流程圖

C語言——學(xué)生信息管理系統(tǒng)(數(shù)組)

3.思路

1.構(gòu)建一個學(xué)生結(jié)構(gòu)體,里面包含學(xué)生學(xué)號、姓名、班級、成績;
2.該結(jié)構(gòu)體是一個數(shù)組型,用來存儲學(xué)生呢信息;
3.先寫主菜單和主菜單選項函數(shù)及四個相關(guān)函數(shù)——增刪改查;
4.寫方便驗證的函數(shù)——打印函數(shù);
5.寫排序方式的子菜單和獲取菜單選項的函數(shù);
6.寫排序方式——按照學(xué)號排序函數(shù)/按照成績排序函數(shù)
7.排序函數(shù)用的冒泡排序法(在數(shù)組的筆記那篇文章有講);

四、代碼

#include "stdio.h"
#define STUDENT_NUM 30

//創(chuàng)建一個學(xué)生結(jié)構(gòu)體,包含學(xué)號、姓名、班級、成績
struct Student
{
    int no;
    char name[64];
    int class;
    float score;
};
//初始化一個學(xué)生結(jié)構(gòu)體為數(shù)組
struct Student student[STUDENT_NUM] = {0};

void Student_Init(void);
int StudentMenu(void); //主菜單函數(shù)聲明
void Student_ADD();
void Student_Revise();
void Student_Del();
void Student_Find();
void Student_Sort();
int SortMenu();
void SortNo();
void SortScore();
void Student_Printf();



//初始化學(xué)生信息,將開辟STUDENT_NUM這么大的空間,并全部賦-1表示未錄入信息
void Student_Init(void)
{
    for (int i = 0;i < STUDENT_NUM;i++)
    {
        student[i].no = -1; //未錄入信息標(biāo)志
    }
}

int main()
{
    Student_Init();
    int num1;
    
    
    while (1)
    {
        num1=StudentMenu();
        switch (num1)
        {
            case 1:Student_ADD();break;
            case 2:Student_Del();break;
            case 3:Student_Revise();break;
            case 4:Student_Find();break;
            case 5:Student_Sort();break;
            case 111:Student_Printf();break;
            case 0:goto over;
        }
    }
over:
    printf("感謝使用學(xué)生管理系統(tǒng)!\n");
}

//主菜單
int StudentMenu(void)
{
    int num;
p1:
    printf("****** -學(xué)生管理系統(tǒng)******\n");
    printf("******1.添加學(xué)生信息******\n");
    printf("******2.刪除學(xué)生信息******\n");
    printf("******3.修改學(xué)生信息******\n");
    printf("******4.查詢學(xué)生信息******\n");
    printf("******5.學(xué)生信息排序******\n");
    printf("******0.退出管理系統(tǒng)******\n");
    printf("請輸入你要執(zhí)行操作的序號:\n");
        scanf("%d", &num);
    if ((num >= 0 && num <= 5) || (num == 111)) //111打印所有數(shù)據(jù)
    {
        return num;
    }
    else
    {
        printf("您輸入的菜單選項不正確,清重新輸入!\n");
        goto p1;
    }
}
//學(xué)生信息排序子菜單
int SortMenu()
{
    int num1;
p1:
    printf("*******排序方式*****\n");
    printf("***1-按照學(xué)號排序***\n");
    printf("***2-按照成績排序***\n");

    printf("請輸入排序方式:\n");
    scanf("%d",&num1);
    if (num1>=1&&num1<=2)
    {
        return num1;
    }else{
        printf("輸入錯誤選項,請重新選擇排序方式!\n");
        goto p1;
    }

}


//添加學(xué)生信息
void Student_ADD()
{
    int i;
    //遍歷學(xué)號數(shù)組,找到放數(shù)據(jù)的空間
    printf("正在執(zhí)行添加學(xué)生信息操作……\n");
    for (i = 0; i < STUDENT_NUM; i++)
    {
        if (student[i].no==-1)//有空間,跳出循環(huán),輸入數(shù)據(jù)
        {
            break;
        }
    }  
    if (i==STUDENT_NUM)
    {
        printf("空間已滿,禁止繼續(xù)錄入!\n");
    }
    //輸入信息,由于有判定學(xué)號唯一,用tem保存從屏幕上獲取的數(shù)據(jù)
    struct Student temp;
    printf("請輸入學(xué)號:\n");
    scanf("%d",&temp.no);   
    printf("請輸入姓名:\n");
    getchar();
    scanf("%s",temp.name);
    printf("請輸入班級:\n");
    getchar();
    scanf("%d",&temp.class);
    printf("請輸入成績:\n");
    scanf("%f",&temp.score);
    //因為學(xué)號是唯一的,判斷不能重復(fù)輸入
    for (int j = 0; j < STUDENT_NUM; j++)
    {
        if (student[j].no==temp.no)
        {
            printf("該學(xué)生已被錄入,請不要重復(fù)錄入!\n");

        }   
    }
    student[i]=temp;

}
//修改學(xué)生信息
void Student_Revise()
{
    int num_0=0;//設(shè)置查詢標(biāo)志位,沒找到0,找到1
    printf("正在執(zhí)行修改學(xué)生信息操作……\n");
p1:
    printf("請輸入您要修改的學(xué)號:\n");
    int num,i;
    scanf("%d",&num);
    for (i = 0; i < STUDENT_NUM; i++)   
    {
        if (num!=student[i].no)
        {
            num_0=0;
            continue;
        }else if(student[i].no==num)
        {
            num_0=1;
            break;
        }
    }
    if (num_0==0)
    {
        printf("查無此人,請重新輸入要修改的學(xué)號!\n");
        goto p1;
    }
    //從屏幕獲取新的數(shù)據(jù)
    printf("請輸入學(xué)號:\n");
    scanf("%d",&student[i].no);
    printf("請輸入姓名:\n");
    getchar();
    scanf("%s",student[i].name);
    getchar();
    printf("請輸入班級:\n");
    scanf("%d",&student[i].class);
    printf("請輸入成績:\n");
    scanf("%f",&student[i].score); 

    
    
}
//刪除學(xué)生信息
void Student_Del()
{
    int num,i;
    int num_0=0;//設(shè)置查詢標(biāo)志位,沒找到0,找到1
    printf("正在執(zhí)行刪除學(xué)生信息操作……\n");
p1:
    printf("請輸入您要刪除的學(xué)號:\n");
    scanf("%d",&num);
    for (i = 0; i < STUDENT_NUM; i++)
    {
        if (num!=student[i].no)//沒找到
        {
            continue;
            num_0=0;
        }else if (student[i].no==num)
        {
            num_0=1;
            student[i].no=-1;
            printf("刪除成功!\n");
        }
    }
    if (num_0==0)
    {
        printf("查無此人,請重新輸入要刪除的學(xué)號!\n");
        goto p1;
    }
}
//查詢學(xué)生信息
void Student_Find()
{
    int i,num;
    int num_0=0;//設(shè)置查詢標(biāo)志位,沒找到0,找到1
    printf("正在執(zhí)行查詢學(xué)生信息操作……\n");
p1:
    printf("請輸入您要查詢的學(xué)號:\n");
    scanf("%d",&num);
    for (i = 0; i < STUDENT_NUM; i++)
    {
        if (num!=student[i].no)
        {
            num_0=0;
            continue;
        }else if (student[i].no==num)
        {
            num_0=1;
            break;
        }
    }
    if (num_0==0)
    {
        printf("查無此人,請重新輸入要查詢的學(xué)號!\n");
        goto p1;
    }
    printf("學(xué)號\t姓名\t班級\t成績\n");
    printf("%d\t",student[i].no);
    printf("%s\t",student[i].name);
    printf("%d\t",student[i].class);
    printf("%.2f\n",student[i].score);
    
}
//對學(xué)生信息排序
void Student_Sort()
{
    int num2;
    num2=SortMenu();
    int num_0;
    //判斷是否有學(xué)生信息,有則打印,
    for (int i = 0; i <STUDENT_NUM; i++)
    {
        if (student[i].no==-1)
        {
            num_0=0;
            continue;

        }else{
            num_0=1;
            break;
        }
    }
    if (num_0==0)
    {
        printf("沒有學(xué)生信息,無法排序打印!\n");
    }
    
    //選擇排序方式
    if (num2==1)
    {
        SortNo();
    }else if (num2==2)
    {
        SortScore();
    }
}
//學(xué)生學(xué)號排序
void SortNo()
{
    int i,j;
    printf("正在按照學(xué)號排序\n");
    struct Student temp;
    for ( i = 0; i < STUDENT_NUM; i++)
    {
        for (j = 0; j <STUDENT_NUM-i-1; j++)
        {
            if (student[j].no>student[j+1].no)
            {
                temp=student[j];
                student[j]=student[j+1];
                student[j+1]=temp;
            }
        }
    }
    Student_Printf(); 
}
//學(xué)生成績排序
void SortScore()
{
    int i,j;
    printf("正在按照成績排序\n");
    struct Student temp;
    for ( i = 0; i < STUDENT_NUM; i++)
    {
        for (j = 0; j <STUDENT_NUM-i-1; j++)
        {
            if (student[j].score<student[j+1].score)
            {
                temp=student[j];
                student[j]=student[j+1];
                student[j+1]=temp;
            }
        }
    }
    Student_Printf(); 

}
//打印所有學(xué)生信息
void Student_Printf()
{
    printf("學(xué)號\t姓名\t班級\t成績\n");
    for (int i = 0; i < STUDENT_NUM; i++)
    {
        if (student[i].no!=-1)
        {
            printf("%d\t",student[i].no);
            printf("%s\t",student[i].name);
            printf("%d\t",student[i].class);
            printf("%.2f\n",student[i].score);
        }
    }
    
}

五、演示視頻

由于之前我不知道數(shù)字時鐘上傳后友友們下載是要vip的,所以為了方便友友們,我將實現(xiàn)視頻放在文章中如下:

數(shù)組學(xué)生管理系統(tǒng)文章來源地址http://www.zghlxwxcb.cn/news/detail-414415.html

到了這里,關(guān)于C語言——學(xué)生信息管理系統(tǒng)(數(shù)組)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 學(xué)生信息管理系統(tǒng)(c語言版)

    學(xué)生信息管理系統(tǒng)(c語言版)

    大一下C語言要交課程設(shè)計,于是就寫了一個學(xué)生信息管理系統(tǒng),僅供參考 學(xué)生信息包括姓名,學(xué)號,性別,年齡和各科成績,可根據(jù)需要自行修改添加 包括增、刪、改查、查看所有、保存、清空7個功能,每個功能都封裝成一個函數(shù) 保存功能是將所添加的信息保存到文件中

    2024年02月12日
    瀏覽(20)
  • 基于C語言的學(xué)生信息管理系統(tǒng)開發(fā)

    基于C語言的學(xué)生信息管理系統(tǒng)開發(fā)

    軟件功能描述 功能模塊圖 2.信息管理模塊 功能說明:輸入、增加、刪除、修改學(xué)生信息同時返回上一級 查詢模塊 功能說明:根據(jù)性別民族等查找學(xué)生人數(shù)、按照課程最高分查詢學(xué)生信息、按照課程統(tǒng)計學(xué)生的平均分?jǐn)?shù)同時返回上一級 成績排序模塊 功能說明:根據(jù)課程對學(xué)

    2024年02月04日
    瀏覽(26)
  • C語言版----學(xué)生信息管理系統(tǒng)(分析+代碼)

    C語言版----學(xué)生信息管理系統(tǒng)(分析+代碼)

    一、分析系統(tǒng)功能設(shè)計 1. 初始化學(xué)生列表、教師列表 ·typedef struct student 先對學(xué)生結(jié)構(gòu)體進行重定義,便于對相關(guān)數(shù)組取名 再初始化一個教室class,便于在后面的函數(shù)中調(diào)用學(xué)生信息 ·typedef struct teacher 先對教師結(jié)構(gòu)體進行重定義,便于對相關(guān)數(shù)組取名 ·void inputtStu() 初始化三

    2024年02月09日
    瀏覽(26)
  • C語言實現(xiàn)學(xué)生信息管理系統(tǒng)(附原碼)

    C語言實現(xiàn)學(xué)生信息管理系統(tǒng)(附原碼)

    本人的C語言學(xué)習(xí)完后,用所學(xué)的知識自己實現(xiàn)了一個學(xué)生管理系統(tǒng),新手一個,代碼還有待完善,歡迎大家在評論區(qū)指出錯誤! 一、流程圖 二、函數(shù)的目錄? 三、程序介紹? 1.主要功能: 添加學(xué)生信息、打印學(xué)生信息、查找學(xué)生信息、添加學(xué)生信息、修改學(xué)生信息、計算學(xué)

    2024年02月12日
    瀏覽(17)
  • C語言學(xué)生成績信息管理系統(tǒng)(超詳細版)

    C語言學(xué)生成績信息管理系統(tǒng)(超詳細版)

    主題:一個簡易成績管理系統(tǒng) 功能介紹: 1.以文本形式存儲學(xué)生信息 2.對以存信息進行? ?1. 插入 2. 修改3. 刪除? 4.查詢? 5.成績數(shù)字特征 目錄 一:分析 二:查詢? 三:菜單 四:初始化函數(shù) 五:插入函數(shù) 六:修改函數(shù) 七:刪除函數(shù) 八:數(shù)字特征 九:顯示函數(shù) 要進行 插入

    2024年02月12日
    瀏覽(27)
  • 【C語言基礎(chǔ)】學(xué)生信息管理系統(tǒng)-純結(jié)構(gòu)體實現(xiàn)

    【C語言基礎(chǔ)】學(xué)生信息管理系統(tǒng)-純結(jié)構(gòu)體實現(xiàn)

    ps.一定要先確實掌握結(jié)構(gòu)體,結(jié)構(gòu)體數(shù)組,函數(shù)中的傳參,全局變量作用域等知識 一.設(shè)計構(gòu)思和簡單的準(zhǔn)備工作 首先,要確定一個什么樣的結(jié)構(gòu)體,就需要看我需要什么功能。 于是,我寫下來一個 我想要的 , 能做xxx功能的 ,可能還 很美觀的 學(xué)生信息管理系統(tǒng)的目錄,既

    2024年02月03日
    瀏覽(22)
  • 學(xué)生信息管理系統(tǒng)——JAVA 語言版(主頁面+增+刪+改+查+退)

    學(xué)生信息管理系統(tǒng)——JAVA 語言版(主頁面+增+刪+改+查+退)

    學(xué)生管理系統(tǒng)要能夠?qū)崿F(xiàn)添加學(xué)生信息,刪除,修改以及查看學(xué)生信息的功能。 你是否嘗試過使用JAVA語言編寫一個代碼程序,使用該代碼實現(xiàn)學(xué)生信息管理呢? 如果你還沒有任何頭緒,接下來推薦你看一下我的做法,我使用的編程工具是IDEA,以下給出了學(xué)生信息管理系統(tǒng)的程

    2024年02月03日
    瀏覽(25)
  • C語言程序設(shè)計期末大作業(yè)(學(xué)生信息管理系統(tǒng))(可自取源碼)

    C語言程序設(shè)計期末大作業(yè)(學(xué)生信息管理系統(tǒng))(可自取源碼)

    高校學(xué)生信息管理系統(tǒng) (一)在高校學(xué)生管理系統(tǒng)中包含九個主要操作: 退出系統(tǒng); 學(xué)生信息的錄入; 學(xué)生信息的打??; 學(xué)生信息的保存; 學(xué)生信息的讀取; 學(xué)生人數(shù)的統(tǒng)計; 學(xué)生信息的查找; 學(xué)生信息的修改; 學(xué)生信息的刪除。 (二)設(shè)計流程 首先確認(rèn)用switch ca

    2024年02月10日
    瀏覽(22)
  • 趕緊進來看看---C語言實現(xiàn)學(xué)生信息管理系統(tǒng)(3.0文件存儲版)

    趕緊進來看看---C語言實現(xiàn)學(xué)生信息管理系統(tǒng)(3.0文件存儲版)

    本文主要介紹了將學(xué)生信息管理系統(tǒng)改造為文件存儲版本… 主要涉及文件操作函數(shù)–將學(xué)生信息導(dǎo)入文件和從文件讀取學(xué)生信息到程序中,從而達到數(shù)據(jù)持久化的效果 文章最后有源碼展示 學(xué)生信息管理系統(tǒng)1.0靜態(tài)版-學(xué)生信息管理系統(tǒng)2.0動態(tài)內(nèi)存增長版-學(xué)生信息管理系統(tǒng)3.0文

    2024年01月20日
    瀏覽(24)
  • C語言課程設(shè)計:學(xué)生成績信息管理系統(tǒng)(排序、平均分、總分)詳解

    C語言課程設(shè)計:學(xué)生成績信息管理系統(tǒng)(排序、平均分、總分)詳解

    1、需求分析 利用C語言編寫一個可以對學(xué)生成績信息進行管理的系統(tǒng) 0、退出系統(tǒng) 1、錄入學(xué)生信息和成績 2、打印學(xué)生信息 3、統(tǒng)計學(xué)生人數(shù) 4、查找學(xué)生信息 5、修改學(xué)生信息 6、刪除學(xué)生信息 7、排序?qū)W生成績 8、生成學(xué)生信息文件 9、讀取文件學(xué)生信息 10、輸出各科成績不

    2024年02月11日
    瀏覽(32)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包