最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語(yǔ)言實(shí)現(xiàn)學(xué)生考勤系統(tǒng)

 更新時(shí)間:2022年03月16日 09:49:58   作者:rds.  
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)學(xué)生考勤系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C語(yǔ)言實(shí)現(xiàn)學(xué)生考勤系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

項(xiàng)目要求:

學(xué)生考勤系統(tǒng)

功能:學(xué)生考勤系統(tǒng)應(yīng)包含各班學(xué)生的全部信息。每個(gè)學(xué)生是一條記錄,包括姓名、性別、學(xué)號(hào)、出勤情況等。本系統(tǒng)可模擬考勤過(guò)程,記錄考勤結(jié)果,并能夠在課程結(jié)束后按照設(shè)定的考勤評(píng)分標(biāo)準(zhǔn)自動(dòng)給出每個(gè)學(xué)生的考勤分?jǐn)?shù)。

分步實(shí)施:

(1)初步完成總體設(shè)計(jì),搭好框架,確定人機(jī)對(duì)話界面,確定函數(shù)個(gè)數(shù);
(2)最低要求:建立一個(gè)文件,包括同一個(gè)班的10個(gè)學(xué)生的必要信息,能對(duì)文件進(jìn) 行補(bǔ)充、修訂、刪除。

采用結(jié)構(gòu)體數(shù)組讀入讀出文件(二進(jìn)制形式寫(xiě)進(jìn)data.txt文件)

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

const int N = 1010;
const int LEN = 20;
const int CLAstunumber = 10;//每個(gè)班CLAstunumber人?

typedef struct
{
?? ?char attdate[LEN];//日期
?? ?int atts;//出勤情況 0缺勤 1出勤 ?
}attdent;


typedef struct
{
?? ?char stname[LEN];
?? ?char sex[LEN];
?? ?int stnumber;
?? ?int core;
?? ?attdent stattdent[N];//最多紀(jì)錄N個(gè)日期的考勤情況?? ?
}studentinf;
int cnt;//記錄日期數(shù)組用到哪里?

studentinf students[CLAstunumber];

void menu()
{
?? ?printf("========================================================\n");
?? ?printf("0.學(xué)生信息錄入\n");
?? ?printf("1.開(kāi)始考勤\n");
?? ?printf("2.修改學(xué)生考勤紀(jì)錄\n");
?? ?printf("3.生成并查看學(xué)生考勤分?jǐn)?shù)\n");
?? ?printf("4.讀取數(shù)據(jù)\n");
?? ?printf("5.保存數(shù)據(jù)\n");
?? ?printf("6.退出\n");
?? ?printf("========================================================\n");
}

void studentinput()
{
?? ?//錄入操作?
?? ?for(int i = 0 ; i < CLAstunumber; i ++)
?? ?{
?? ??? ?printf("----------------------------------------\n");
?? ??? ?printf("請(qǐng)輸入學(xué)生姓名: ? ? ? ? ? ? ? ? ? ? ? |\n");
?? ??? ?studentinf student1;
?? ??? ?scanf("%s",student1.stname);
?? ??? ?printf("請(qǐng)輸入學(xué)生性別: ? ? ? ? ? ? ? ? ? ? ? |\n");
?? ??? ?scanf("%s",student1.sex);
?? ??? ?printf("請(qǐng)輸入學(xué)生學(xué)號(hào): ? ? ? ? ? ? ? ? ? ? ? |\n");
?? ??? ?scanf("%d",&student1.stnumber);
?? ??? ?student1.core = 0;
?? ??? ?//(student1.stattdent[N]).attdate[LEN] = '0';
?? ??? ?students[i] = student1;
?? ??? ?printf("----------------------------------------\n");
?? ?}
}

void attcheck()
{
?? ?//考勤操作?
?? ?for(int i = 0;i < CLAstunumber ; i ++)
?? ?{
?? ??? ?students[i];
?? ??? ?printf("------------------------------\n");
?? ??? ?printf("姓名:%s\n",students[i].stname);
?? ??? ?printf("性別:%s\n",students[i].sex);
?? ??? ?printf("學(xué)號(hào):%d\n",students[i].stnumber);
?? ??? ?printf("請(qǐng)輸入時(shí)間:XXXX/XX/XX\n");
?? ??? ?scanf("%s",(students[i].stattdent[cnt]).attdate);
?? ??? ?printf("請(qǐng)輸入該學(xué)生出勤情況:(0表示缺勤,1表示出勤)\n");
?? ??? ?scanf("%d",&(students[i].stattdent[cnt]).atts);
?? ??? ?cnt ++;
?? ??? ?printf("------------------------------\n");
?? ??? ?
?? ?}
}

void changeinf()
{
?? ?//遍歷修改
?? ?char fname[LEN];
?? ?char fdate[LEN];
?? ?printf("----------------------------------\n");
?? ?printf("請(qǐng)輸入學(xué)生姓名:\n");
?? ?scanf("%s",fname);
?? ?int stand1;//退出第一層for標(biāo)準(zhǔn)?
?? ?for(int i = 0;i < CLAstunumber; i ++)?
?? ?{
?? ??? ?if(!strcmp(fname,students[i].stname))
?? ??? ?{
?? ??? ??? ?printf("學(xué)生姓名:%s\n",students[i].stname);
?? ??? ??? ?printf("請(qǐng)輸入時(shí)間:(XXXX/XX/XX)\n");
?? ??? ??? ?scanf("%s",fdate);
?? ??? ??? ?for(int j = 0;j < cnt ; j ++)
?? ??? ??? ?{
?? ??? ??? ??? ?if(!strcmp(fdate,(students[i].stattdent[j]).attdate))
?? ??? ??? ??? ?printf("學(xué)生:%s",fname);
?? ??? ??? ??? ?printf("考勤時(shí)間:%s\n",fdate);
?? ??? ??? ??? ?printf("出勤情況:%d\n",(students[i].stattdent[j]).atts);
?? ??? ??? ??? ?printf("請(qǐng)輸入修改后的出勤情況:\n");
?? ??? ??? ??? ?scanf("%d",&(students[i].stattdent[j]).atts);
?? ??? ??? ??? ?printf("修改成功!\n");
?? ??? ??? ??? ?stand1 = 1;
?? ??? ??? ??? ?break;
?? ??? ??? ?}
?? ??? ??? ?if(stand1 == 1) break;
?? ??? ?}
?? ?}
?? ?printf("----------------------------------\n");
}

void checkcore()
{
?? ?//生成考勤分?jǐn)?shù) = 出勤次數(shù)即分?jǐn)?shù)?
?? ?for(int i = 0;i < CLAstunumber; i++)
?? ?{
?? ??? ?printf("----------------------------\n");
?? ??? ?printf("學(xué)生姓名:%s\n",students[i].stname);
?? ??? ?printf("學(xué)生性別:%s\n",students[i].sex);
?? ??? ?printf("學(xué)生學(xué)號(hào):%d\n",students[i].stnumber);
?? ??? ?//計(jì)算分?jǐn)?shù)
?? ??? ?students[i].core = 0;
?? ??? ?for(int j = 0;j < cnt ; j ++)
?? ??? ?{
?? ??? ??? ?students[i].core += (students[i].stattdent[j]).atts;?? ?
?? ??? ?}?
?? ??? ?printf("考勤分?jǐn)?shù):%d\n",students[i].core);?? ?
?? ??? ?printf("----------------------------\n");
?? ?}
?? ?
}

void readdata()
{
?? ?FILE *fp = NULL;
?? ?fp = fopen("data.txt","rb");
?? ?
?? ?//讀出?
?? ?int i = 0;
?? ?while(!feof(fp))
?? ?{
?? ??? ?fread(&students[i],sizeof(studentinf),1,fp);
?? ??? ?i ++;
?? ?}
?? ?i --;
?? ?
?? ?cnt = i;
?? ?
?? ?fclose(fp); ??? ?
?? ?printf("讀取成功!\n");
}

void savedata()
{
?? ?FILE *fp = NULL;
?? ?fp = fopen("data.txt","wb");
?? ?//寫(xiě)入
?? ?for(int i = 0;i < CLAstunumber ?; i ++)
?? ?{
?? ??? ?fwrite(&students[i],sizeof(studentinf),1,fp);
?? ?}
?? ?
?? ?fclose(fp); ?
?? ?printf("保存成功!\n");?? ?
}

int main()
{
?? ?menu();
?? ?int op;
?? ?while(1)
?? ?{
?? ??? ?scanf("%d",&op);
?? ??? ?if(op == 0)
?? ??? ?{
?? ??? ??? ?system("cls");
?? ??? ??? ?studentinput();
?? ??? ??? ?menu();
?? ??? ?}
?? ??? ?else if(op == 1)
?? ??? ?{
?? ??? ??? ?system("cls");
?? ??? ??? ?attcheck();
?? ??? ??? ?menu();
?? ??? ?}?
?? ??? ?else if(op == 2)
?? ??? ?{
?? ??? ??? ?changeinf();
?? ??? ??? ?menu();
?? ??? ?}
?? ??? ?else if(op == 3)
?? ??? ?{
?? ??? ??? ?system("cls");
?? ??? ??? ?checkcore();
?? ??? ??? ?menu();
?? ??? ?}
?? ??? ?else if(op == 4)
?? ??? ?{
?? ??? ??? ?system("cls");
?? ??? ??? ?readdata();
?? ??? ??? ?menu();
?? ??? ?}
?? ??? ?else if(op == 5)
?? ??? ?{
?? ??? ??? ?system("cls");
?? ??? ??? ?savedata();
?? ??? ??? ?menu();
?? ??? ?}
?? ??? ?else if(op == 6)
?? ??? ?{
?? ??? ??? ?break;
?? ??? ?}
?? ??? ?else printf("input error!\n");
?? ?}
?? ??
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 一文掌握C++ const與constexpr及區(qū)別

    一文掌握C++ const與constexpr及區(qū)別

    C++ 11標(biāo)準(zhǔn)中,const 用于為修飾的變量添加“只讀”屬性而 constexpr關(guān)鍵字則用于指明其后是一個(gè)常量,編譯器在編譯程序時(shí)可以順帶將其結(jié)果計(jì)算出來(lái),而無(wú)需等到程序運(yùn)行階段,這樣的優(yōu)化極大地提高了程序的執(zhí)行效率,本文重點(diǎn)介紹C++ const與constexpr區(qū)別介紹,一起看看吧
    2024-02-02
  • C語(yǔ)言單鏈表實(shí)現(xiàn)學(xué)生管理系統(tǒng)

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

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言單鏈表實(shí)現(xiàn)學(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • 純c語(yǔ)言實(shí)現(xiàn)面向?qū)ο蠓治雠c示例分享

    純c語(yǔ)言實(shí)現(xiàn)面向?qū)ο蠓治雠c示例分享

    采用C語(yǔ)言實(shí)現(xiàn)的關(guān)鍵是如何運(yùn)用C語(yǔ)言本身的特性來(lái)實(shí)現(xiàn)多態(tài)、繼承面、封裝的面向?qū)ο蟮奶卣?最近給出了例子,大家可以參考使用
    2014-01-01
  • 利用C++實(shí)現(xiàn)?然連接操作算法

    利用C++實(shí)現(xiàn)?然連接操作算法

    這篇文章主要介紹了利用C++實(shí)現(xiàn)?然連接操作算法,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • 順序線性表的代碼實(shí)現(xiàn)方法

    順序線性表的代碼實(shí)現(xiàn)方法

    下面小編就為大家?guī)?lái)一篇順序線性表的代碼實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-04-04
  • 基于C語(yǔ)言模擬實(shí)現(xiàn)人生重開(kāi)模擬器游戲

    基于C語(yǔ)言模擬實(shí)現(xiàn)人生重開(kāi)模擬器游戲

    人生重開(kāi)模擬器是前段時(shí)間非?;鸬囊粋€(gè)小游戲,所以本文我們將一起學(xué)習(xí)使用c語(yǔ)言寫(xiě)一個(gè)簡(jiǎn)易版的人生重開(kāi)模擬器,感興趣的小伙伴可以了解下
    2024-02-02
  • C++調(diào)用matlab引擎實(shí)現(xiàn)三維圖的繪制

    C++調(diào)用matlab引擎實(shí)現(xiàn)三維圖的繪制

    這篇文章主要為大家詳細(xì)介紹了C++如何調(diào)用matlab引擎實(shí)現(xiàn)三維圖的繪制,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C++和Matlab有一定的幫助,需要的可以參考一下
    2022-12-12
  • C++指向函數(shù)的指針實(shí)例解析

    C++指向函數(shù)的指針實(shí)例解析

    這篇文章主要介紹了C++指向函數(shù)的指針,需要的朋友可以參考下
    2014-07-07
  • Qt音視頻開(kāi)發(fā)之通用監(jiān)控布局控件的實(shí)現(xiàn)

    Qt音視頻開(kāi)發(fā)之通用監(jiān)控布局控件的實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了如何利用Qt開(kāi)發(fā)一個(gè)通用的監(jiān)控布局控件,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Qt開(kāi)發(fā)有一定的幫助,需要的可以參考一下
    2023-01-01
  • C++回溯算法廣度優(yōu)先搜索舉例分析

    C++回溯算法廣度優(yōu)先搜索舉例分析

    回溯在迷宮搜索中使用很常見(jiàn),就是這條路走不通,然后返回前一個(gè)路口,繼續(xù)下一條路。回溯算法說(shuō)白了就是窮舉法,下面讓我們一起來(lái)看看吧
    2022-03-03

最新評(píng)論

广丰县| 阜南县| 睢宁县| 衡山县| 巩义市| 章丘市| 保山市| 彭阳县| 镇原县| 新化县| 罗城| 台中县| 喜德县| 水富县| 铁岭县| 攀枝花市| 临潭县| 濮阳县| 全州县| 武宣县| 沐川县| 馆陶县| 屏东市| 华坪县| 永兴县| 达孜县| 黑水县| 察隅县| 新河县| 西畴县| 西充县| 南雄市| 福海县| 潼关县| 磐石市| 眉山市| 行唐县| 甘孜| 太仓市| 三台县| 天津市|