女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

C語言-學生管理系統(結構體+數組實現)

DS小龍哥-嵌入式技術 ? 來源:DS小龍哥-嵌入式技術 ? 作者:DS小龍哥-嵌入式技 ? 2022-08-14 10:07 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1. 學生管理系統功能介紹

前面文章里介紹了結構體類型,知道結構體類型里可以存放不同的數據類型,屬于一個有序的集合。

這篇文章就使用結構體知識點完成一個小練習,使用結構體+數組設計一個簡單的學生管理系統,作為結構體知識點的鞏固練習。

功能如下:

(1). 歡迎界面提示

(2). 輸入密碼登錄

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

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

2. 框架設計

#include 
#include 

void  Display_info(void);

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

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

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

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

3. 完整代碼

#include 
#include 

struct STU
{
    char name[100]; //姓名
    int age; //年齡
    char number[100]; //學號
    float grade;//成績
};

//全局變量定義區域
char buff_user[50];
char buff_password[50];
struct STU stu_info[100];
int stu_cnt=0;  //存放學生總人數

//函數聲明區域
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. 登錄系統
    if(SystemLogin())
    {
        printf("系統安全退出.\n");
        exit(0);
    }

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

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

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

/*
函數功能: 錄入學生信息
int flag :1表示連續增加學生信息  0表示增加單個學生信息
*/
void add_info(struct STU *stu,int flag)
{
    int i;
    int tmp;
    int addr=stu_cnt; //學生總人數
    if(flag)
    {
        for(i=addr;i(stu_info)>
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7631

    瀏覽量

    141384
  • 數組
    +關注

    關注

    1

    文章

    420

    瀏覽量

    26505
  • 結構體
    +關注

    關注

    1

    文章

    130

    瀏覽量

    11096
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    源碼|學生信息管理系統C語言單鏈表實現

    源碼|學生信息管理系統C語言單鏈表實現
    發表于 11-03 10:24 ?631次閱讀

    C語言數組結構的內存表示和布局

    C語言中,數組結構都可以代表一塊內存,但為什么結構
    發表于 08-28 10:54 ?2131次閱讀

    嵌入式中C語言結構基本實現

    C語言中的數組只能允許程序員定義存儲相同類型數據。但是結構C語言編程中允許您存儲不同數據類型的
    的頭像 發表于 05-11 08:49 ?1809次閱讀
    嵌入式中<b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>結構</b><b class='flag-5'>體</b>基本<b class='flag-5'>實現</b>

    C語言教程之使用數組統計學生成績

    C語言教程之使用數組統計學生成績,很好的C語言資料,快來學習吧。
    發表于 04-25 15:13 ?0次下載

    為什么C語言函數不能返回數組

    C語言函數可以返回指針、結構,為什么不能返回數組? 下面一步一步來分析: 1 函數不能返回數組
    的頭像 發表于 03-29 11:18 ?2261次閱讀

    Keil使用結構數組的奇怪問題

    今天用keil的時候發現一個很奇怪的點,是關于結構數組的。首先說明我的keil版本是:V5.28.0.0問題是這樣的:我在a.h文件定義了一個結構
    發表于 11-21 16:36 ?3次下載
    Keil使用<b class='flag-5'>結構</b><b class='flag-5'>體</b><b class='flag-5'>數組</b>的奇怪問題

    C語言_結構體總結

    當前文章介紹動態堆空間內存分配與釋放,C語言結構定義、初始化、賦值、結構
    的頭像 發表于 08-14 09:52 ?1406次閱讀

    C程序設計基礎-數組結構

    數組結構和指針是C語言里面最難的部分,如果在編程中可以熟練的運用這三樣工具,會大大地提高開發效率,簡化程序
    的頭像 發表于 03-02 10:10 ?1437次閱讀
    <b class='flag-5'>C</b>程序設計基礎-<b class='flag-5'>數組</b>與<b class='flag-5'>結構</b><b class='flag-5'>體</b>

    C程序設計入門筆記之數組結構

    數組結構和指針是C語言里面最難的部分,如果在編程中可以熟練的運用這三樣工具,會大大地提高開發效率,簡化程序
    的頭像 發表于 03-02 10:13 ?966次閱讀
    <b class='flag-5'>C</b>程序設計入門筆記之<b class='flag-5'>數組</b>與<b class='flag-5'>結構</b><b class='flag-5'>體</b>

    C語言使用結構數組注意事項

    一個結構變量中可以存放一組有關聯的數據,如一個學生的學號、姓名、成績等數據,如果有10個學生的數據需要參加運算,顯然應該用數組,這就是
    的頭像 發表于 03-10 15:37 ?1038次閱讀

    C語言入門之結構指針

    C語言中,指向結構對象的指針變量既可以指向結構變量,也可指向
    的頭像 發表于 03-24 14:59 ?1366次閱讀

    C語言程序設計--通訊錄系統

    本題目設計目的是訓練學生的基本編程能力,了解通訊錄系統的開發流程,熟悉C語言數組和函數的各種基本操作。本程序中涉及
    發表于 04-10 09:17 ?8次下載

    C語言程序設計--學生信息管理系統

    C語言程序設計--學生信息管理系統
    的頭像 發表于 08-01 00:38 ?3236次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>程序設計--<b class='flag-5'>學生</b>信息<b class='flag-5'>管理</b><b class='flag-5'>系統</b>

    C語言如何創建數組

    用法和注意事項。 要創建一個數組,首先需要確定數組的數據類型和大小。C語言中的數據類型包括基本數據類型(如整數、浮點數、字符等)以及派生數據類型(如
    的頭像 發表于 11-24 10:08 ?2538次閱讀

    嵌入式系統C語言結構的基礎實現與應用

    C語言中的數組只能允許程序員定義存儲相同類型數據。但是結構C語言編程中允許您存儲不同數據類型的
    發表于 03-12 14:29 ?862次閱讀
    嵌入式<b class='flag-5'>系統</b>中<b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>結構</b><b class='flag-5'>體</b>的基礎<b class='flag-5'>實現</b>與應用