在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C語(yǔ)言-學(xué)生管理系統(tǒng)(結(jié)構(gòu)體+數(shù)組實(shí)現(xiàn))

DS小龍哥-嵌入式技術(shù) ? 來(lái)源:DS小龍哥-嵌入式技術(shù) ? 作者:DS小龍哥-嵌入式技 ? 2022-08-14 10:07 ? 次閱讀

1. 學(xué)生管理系統(tǒng)功能介紹

前面文章里介紹了結(jié)構(gòu)體類型,知道結(jié)構(gòu)體類型里可以存放不同的數(shù)據(jù)類型,屬于一個(gè)有序的集合。

這篇文章就使用結(jié)構(gòu)體知識(shí)點(diǎn)完成一個(gè)小練習(xí),使用結(jié)構(gòu)體+數(shù)組設(shè)計(jì)一個(gè)簡(jiǎn)單的學(xué)生管理系統(tǒng),作為結(jié)構(gòu)體知識(shí)點(diǎn)的鞏固練習(xí)。

功能如下:

(1). 歡迎界面提示

(2). 輸入密碼登錄

(3). 功能: 錄入學(xué)生信息、按照學(xué)號(hào)排序、按照成績(jī)排序、輸出所有學(xué)生信息、輸出指定學(xué)生信息(學(xué)號(hào)、姓名、成績(jī))、計(jì)算成績(jī)平均值值輸出打印、刪除指定學(xué)生信息、增加新的學(xué)生信息。

(4). 功能模塊采用菜單方式選擇

2. 框架設(shè)計(jì)

#include 
#include 

void  Display_info(void);

char buff_user[50];
char buff_password[50];
int main()
{
    int a,i;
    printf("------歡迎使用xxxx學(xué)生管理系統(tǒng)------\n");

    for(i=1;i<=3;i++)
    {
        printf("請(qǐng)輸入用戶名:");
        scanf("%s",buff_user);
        printf("請(qǐng)輸入密碼:");
        system("stty -echo"); //系統(tǒng)函數(shù)---調(diào)用系統(tǒng)的命令 關(guān)閉回顯
        scanf("%s",buff_password);
        printf("\n");
        system("stty echo"); //系統(tǒng)函數(shù)---調(diào)用系統(tǒng)的命令 開(kāi)回顯
        //比較密碼是否正確
        if(strcmp(buff_user,"wbyq")!=0 || strcmp(buff_password,"123456")!=0)
        {
            printf("密碼或者用戶錯(cuò)誤.請(qǐng)重新輸入,剩余次數(shù):%d\n",3-i);
        }
        else break;
    }
    
    //比較密碼是否正確
    if(strcmp(buff_user,"wbyq")!=0 || strcmp(buff_password,"123456")!=0)
    {
        printf("系統(tǒng)安全退出.\n");
        return 0;  //exit();  //終止進(jìn)程
    }

/*
#include 
void exit(int status);   比如: exit(0);
*/
    while(1)
    {
        Display_info();
        scanf("%d",&a);
        switch (a)
        {
        case 1:
            printf("選擇錄取學(xué)生信息\n");
            break;
        case 2:
            printf("輸出學(xué)生信息\n");
            break;
         //............
        default:
            break;
        }
    }
    return 0;
}

//顯示提示信息
void  Display_info(void)
{
    printf("------歡迎使用xxxx學(xué)生管理系統(tǒng)------\n");
    printf("1. 錄取學(xué)生信息\n");
    printf("2. 輸出學(xué)生信息\n");
    printf("3. 打印成績(jī)平均值\n");
    printf("4. 增加學(xué)生信息\n");
    printf("5. 按照成績(jī)排序輸出學(xué)生信息.\n");
    printf("6. 刪除指定學(xué)生信息\n");
    printf("請(qǐng)選擇功能:\n");
}

3. 完整代碼

#include 
#include 

struct STU
{
    char name[100]; //姓名
    int age; //年齡
    char number[100]; //學(xué)號(hào)
    float grade;//成績(jī)
};

//全局變量定義區(qū)域
char buff_user[50];
char buff_password[50];
struct STU stu_info[100];
int stu_cnt=0;  //存放學(xué)生總?cè)藬?shù)

//函數(shù)聲明區(qū)域
void  Display_info(void);
int SystemLogin(void);
void add_info(struct STU *stu,int flag);
void grade_sort(struct STU *stu);
void del_info(struct STU *stu);
void print_info(struct STU *stu);

int main()
{
    int number;
    //1. 登錄系統(tǒng)
    if(SystemLogin())
    {
        printf("系統(tǒng)安全退出.\n");
        exit(0);
    }

    //2.執(zhí)行功能模塊 
    while(1)
    {
        Display_info();
        scanf("%d",&number);
        switch (number)
        {
        case 1: //錄入學(xué)生信息
            add_info(stu_info,1);
            break;
        case 2: //輸出學(xué)生信息
            print_info(stu_info);
            break;
        case 3: //打印成績(jī)平均值
            break;
        case 4: //增加學(xué)生信息
            add_info(stu_info,0);
            break;
        case 5: //按照成績(jī)排序輸出學(xué)生信息
            grade_sort(stu_info);
            break;
        case 6: //刪除指定學(xué)生信息
            del_info(stu_info);
            break;
        case 7: //退出系統(tǒng)
            printf("-----系統(tǒng)安全退出------\n");
            exit(0); //退出當(dāng)前進(jìn)程
        default:
            break;
        }
    }
    return 0;
}

//顯示提示信息
void  Display_info(void)
{
    printf("\n\n");
    printf("------歡迎使用xxxx學(xué)生管理系統(tǒng)------\n");
    printf("1. 錄入學(xué)生信息(按照要求錄入信息)\n");
    printf("2. 輸出學(xué)生信息\n");
    printf("3. 打印成績(jī)平均值\n");
    printf("4. 增加學(xué)生信息\n");
    printf("5. 按照成績(jī)排序輸出學(xué)生信息.\n");
    printf("6. 刪除指定學(xué)生信息\n");
    printf("7. 退出系統(tǒng)\n");
    printf("請(qǐng)選擇功能:");
}

/*
函數(shù)功能: 系統(tǒng)登錄
返回值:  0表示成功 1表示失敗 
*/
int SystemLogin(void)
{
    printf("------歡迎使用xxxx學(xué)生管理系統(tǒng)------\n");
    int i;
    for(i=1;i<=3;i++)
    {
        printf("請(qǐng)輸入用戶名:");
        scanf("%s",buff_user);
        printf("請(qǐng)輸入密碼:");
        system("stty -echo"); //系統(tǒng)函數(shù)---調(diào)用系統(tǒng)的命令 關(guān)閉回顯
        scanf("%s",buff_password);
        printf("\n");
        system("stty echo"); //系統(tǒng)函數(shù)---調(diào)用系統(tǒng)的命令 開(kāi)回顯
        //比較密碼是否正確
        if(strcmp(buff_user,"wbyq")!=0 || strcmp(buff_password,"123456")!=0)
        {
            printf("密碼或者用戶錯(cuò)誤.請(qǐng)重新輸入,剩余次數(shù):%d\n",3-i);
        }
        else break;
    }
    //比較密碼是否正確 
    if(strcmp(buff_user,"wbyq")!=0 || strcmp(buff_password,"123456")!=0)
    {
        return 1; 
    }
    return 0;
}

/*
函數(shù)功能: 錄入學(xué)生信息
int flag :1表示連續(xù)增加學(xué)生信息  0表示增加單個(gè)學(xué)生信息
*/
void add_info(struct STU *stu,int flag)
{
    int i;
    int tmp;
    int addr=stu_cnt; //學(xué)生總?cè)藬?shù)
    if(flag)
    {
        for(i=addr;i(stu_info)>
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7614

    瀏覽量

    137720
  • 數(shù)組
    +關(guān)注

    關(guān)注

    1

    文章

    417

    瀏覽量

    26028
  • 結(jié)構(gòu)體
    +關(guān)注

    關(guān)注

    1

    文章

    130

    瀏覽量

    10872
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

    源碼|學(xué)生信息管理系統(tǒng)C語(yǔ)言單鏈表實(shí)現(xiàn)
    發(fā)表于 11-03 10:24 ?551次閱讀

    C語(yǔ)言數(shù)組結(jié)構(gòu)的內(nèi)存表示和布局

    C語(yǔ)言中,數(shù)組結(jié)構(gòu)都可以代表一塊內(nèi)存,但為什么結(jié)構(gòu)
    發(fā)表于 08-28 10:54 ?1722次閱讀

    嵌入式中C語(yǔ)言結(jié)構(gòu)基本實(shí)現(xiàn)

    C語(yǔ)言中的數(shù)組只能允許程序員定義存儲(chǔ)相同類型數(shù)據(jù)。但是結(jié)構(gòu)C語(yǔ)言編程中允許您存儲(chǔ)不同數(shù)據(jù)類型的
    的頭像 發(fā)表于 05-11 08:49 ?1129次閱讀
    嵌入式中<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b><b class='flag-5'>結(jié)構(gòu)</b><b class='flag-5'>體</b>基本<b class='flag-5'>實(shí)現(xiàn)</b>

    C語(yǔ)言教程之使用數(shù)組統(tǒng)計(jì)學(xué)生成績(jī)

    C語(yǔ)言教程之使用數(shù)組統(tǒng)計(jì)學(xué)生成績(jī),很好的C語(yǔ)言資料,快來(lái)學(xué)習(xí)吧。
    發(fā)表于 04-25 15:13 ?0次下載

    為什么C語(yǔ)言函數(shù)不能返回數(shù)組

    C語(yǔ)言函數(shù)可以返回指針、結(jié)構(gòu),為什么不能返回數(shù)組? 下面一步一步來(lái)分析: 1 函數(shù)不能返回數(shù)組
    的頭像 發(fā)表于 03-29 11:18 ?2050次閱讀

    Keil使用結(jié)構(gòu)數(shù)組的奇怪問(wèn)題

    今天用keil的時(shí)候發(fā)現(xiàn)一個(gè)很奇怪的點(diǎn),是關(guān)于結(jié)構(gòu)數(shù)組的。首先說(shuō)明我的keil版本是:V5.28.0.0問(wèn)題是這樣的:我在a.h文件定義了一個(gè)結(jié)構(gòu)
    發(fā)表于 11-21 16:36 ?3次下載
    Keil使用<b class='flag-5'>結(jié)構(gòu)</b><b class='flag-5'>體</b><b class='flag-5'>數(shù)組</b>的奇怪問(wèn)題

    C語(yǔ)言_結(jié)構(gòu)體總結(jié)

    當(dāng)前文章介紹動(dòng)態(tài)堆空間內(nèi)存分配與釋放,C語(yǔ)言結(jié)構(gòu)定義、初始化、賦值、結(jié)構(gòu)
    的頭像 發(fā)表于 08-14 09:52 ?1170次閱讀

    C程序設(shè)計(jì)基礎(chǔ)-數(shù)組結(jié)構(gòu)

    數(shù)組結(jié)構(gòu)和指針是C語(yǔ)言里面最難的部分,如果在編程中可以熟練的運(yùn)用這三樣工具,會(huì)大大地提高開(kāi)發(fā)效率,簡(jiǎn)化程序
    的頭像 發(fā)表于 03-02 10:10 ?1116次閱讀
    <b class='flag-5'>C</b>程序設(shè)計(jì)基礎(chǔ)-<b class='flag-5'>數(shù)組</b>與<b class='flag-5'>結(jié)構(gòu)</b><b class='flag-5'>體</b>

    C程序設(shè)計(jì)入門筆記之數(shù)組結(jié)構(gòu)

    數(shù)組結(jié)構(gòu)和指針是C語(yǔ)言里面最難的部分,如果在編程中可以熟練的運(yùn)用這三樣工具,會(huì)大大地提高開(kāi)發(fā)效率,簡(jiǎn)化程序
    的頭像 發(fā)表于 03-02 10:13 ?716次閱讀
    <b class='flag-5'>C</b>程序設(shè)計(jì)入門筆記之<b class='flag-5'>數(shù)組</b>與<b class='flag-5'>結(jié)構(gòu)</b><b class='flag-5'>體</b>

    C語(yǔ)言使用結(jié)構(gòu)數(shù)組注意事項(xiàng)

    一個(gè)結(jié)構(gòu)變量中可以存放一組有關(guān)聯(lián)的數(shù)據(jù),如一個(gè)學(xué)生的學(xué)號(hào)、姓名、成績(jī)等數(shù)據(jù),如果有10個(gè)學(xué)生的數(shù)據(jù)需要參加運(yùn)算,顯然應(yīng)該用數(shù)組,這就是
    的頭像 發(fā)表于 03-10 15:37 ?829次閱讀

    C語(yǔ)言入門之結(jié)構(gòu)指針

    C語(yǔ)言中,指向結(jié)構(gòu)對(duì)象的指針變量既可以指向結(jié)構(gòu)變量,也可指向
    的頭像 發(fā)表于 03-24 14:59 ?1110次閱讀

    C語(yǔ)言程序設(shè)計(jì)--通訊錄系統(tǒng)

    本題目設(shè)計(jì)目的是訓(xùn)練學(xué)生的基本編程能力,了解通訊錄系統(tǒng)的開(kāi)發(fā)流程,熟悉C語(yǔ)言數(shù)組和函數(shù)的各種基本操作。本程序中涉及
    發(fā)表于 04-10 09:17 ?8次下載

    C語(yǔ)言程序設(shè)計(jì)--學(xué)生信息管理系統(tǒng)

    C語(yǔ)言程序設(shè)計(jì)--學(xué)生信息管理系統(tǒng)
    的頭像 發(fā)表于 08-01 00:38 ?2597次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>程序設(shè)計(jì)--<b class='flag-5'>學(xué)生</b>信息<b class='flag-5'>管理</b><b class='flag-5'>系統(tǒng)</b>

    C語(yǔ)言如何創(chuàng)建數(shù)組

    用法和注意事項(xiàng)。 要?jiǎng)?chuàng)建一個(gè)數(shù)組,首先需要確定數(shù)組的數(shù)據(jù)類型和大小。C語(yǔ)言中的數(shù)據(jù)類型包括基本數(shù)據(jù)類型(如整數(shù)、浮點(diǎn)數(shù)、字符等)以及派生數(shù)據(jù)類型(如
    的頭像 發(fā)表于 11-24 10:08 ?2022次閱讀

    嵌入式系統(tǒng)C語(yǔ)言結(jié)構(gòu)的基礎(chǔ)實(shí)現(xiàn)與應(yīng)用

    C語(yǔ)言中的數(shù)組只能允許程序員定義存儲(chǔ)相同類型數(shù)據(jù)。但是結(jié)構(gòu)C語(yǔ)言編程中允許您存儲(chǔ)不同數(shù)據(jù)類型的
    發(fā)表于 03-12 14:29 ?560次閱讀
    嵌入式<b class='flag-5'>系統(tǒng)</b>中<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b><b class='flag-5'>結(jié)構(gòu)</b><b class='flag-5'>體</b>的基礎(chǔ)<b class='flag-5'>實(shí)現(xiàn)</b>與應(yīng)用
    主站蜘蛛池模板: 狠狠五月天 | 国产又粗又大又爽又免费 | 国内一级特黄女人精品片 | 免费在线观看理论片 | 永久免费看毛片 | 免费 视频 1级 | 国产一级一级片 | 99久久伊人 | 337p亚洲精品色噜噜狠狠 | 高h污快穿文汁水四溅 | 中国一级特黄特级毛片 | 在线视免费频观看韩国aaa | 国产午夜视频在永久在线观看 | 日韩精品一级a毛片 | 成人影院在线观看 | 欧美色视频日本片高清在线观看 | 成年人毛片网站 | 992tv国产精品福利在线 | 在线麻豆国产传媒60在线观看 | 性做久久久久久免费观看 | www.黄视频| 亚1洲二区三区四区免费 | 亚欧色 | 亚洲人成影院在线高清 | 视频黄色免费 | sihu免费观看在线高清 | 伦理片日本韩国电影三级在线观看 | 国产农村妇女毛片精品久久 | 亚洲插| 被公侵犯肉体中文字幕一区二区 | 久久精品国产6699国产精 | 五月婷婷在线观看视频 | 国产精品嫩草影院一二三区 | 午夜视频在线观看免费高清 | 成人a一级毛片免费看 | 国产伦一区二区三区免费 | 国产又色又爽又黄的网站在线一级 | 又黄又湿又爽 | 老色鬼久久综合第一 | 一级做a爰片久久毛片免费看 | 波多野结衣在线免费视频 |