中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

學習學生信息管理系統心得

發布時間:2020-06-19 19:02:20 來源:網絡 閱讀:1223 作者:大炮想飛 欄目:編程語言

C語言將計算機的輸入輸出設備都看作是文件

那么,如果寫一個字符串到一個文件中,是什么方式呢?顯示到屏幕上是默認的輸出文件,如果是硬盤中的一個文件,首先要打開一個文件,然后才能往里寫,那么就要告訴程序這個文件在什么地方,按照什么樣的方式打開(讀、寫、讀和寫、添加、覆蓋等),然后打開后要給這個打開的文件一個符號(指針變量),表示后續的讀和寫都是針對這個文件的,而不是到屏幕的,這個指針變量以后就代表了文件自身了。


例如學生信息管理系統中,需要同時保存一個學生的姓名,性別,年齡等信息,那么設置變量保存很多同學的這些信息就有點不太方便。類似一個登記本,每一頁只能寫名字,如果你要登記其他的信息,又要添加一個登記本,只能寫性別,如果登記年齡,又要添加一個登記本,只能寫年齡,….,多么的不方便,還容易混亂。解決的方法你一定想,多么簡單,一個登記本一頁中,同時寫姓名,性別,年齡不就行了嗎?C語言也是這樣,如果定義一種形式,一個變量同時記錄很多的信息,這樣在管理系統中,就方便很多了。這就是結構體。


結構體首先要定義,因為每個程序用到的組合在一起的信息不一樣,例如學生信息管理系統中,可能要將學號、姓名、性別、年齡、班級組合到一起,所以 第一行用struct告訴程序,下面是一個結構體,后面的stu是這個結構體的類型,類似整數用int表示,這個stu是你自己起的名字。



如果沒有班級的話,咱們全校學生在一個班里面,可以想象管理會多么混亂。咱們想了一個辦法,把同學按照專業分到不用的班級中,這樣管理起來就方便多了,系里發通知等,只發到班長就行了,由班長向下傳達,班級內部更改活動內容,也跟其他班級沒有關系,自己關起門來修改就可以了。所以程序也是這樣,如果是把所有的代碼都放到一起,那跟全校所有的同學都在一個班級一樣,互相之間相互聯系,程序代碼短還沒有什么問題,程序代碼量一多了,將非常難管理。所以按照功能,將不同的代碼放到一起,用大括號括起來,然后給這段代碼起個名字表示,類似咱們班級的名字,然后還要設置上參數,一遍使用這個函數的時候向里傳遞實際的值,類似一個加法的函數,完成兩個數的相加,我們可以寫成

myadd(int a, int b)

{

   intc;

  c=a+b;

  return c;

}

myadd就是我們給這個函數起的名字,以便使用,ab的作用接收調用者傳遞過來的數,然后把接收的兩個數相加后返回,這個函數的值在調用后就是返回的值c,所以如果我們想算99+23等于多少,只要調用我們寫好的函數

myadd(99,23),這個時候函數的值就是99+23了,如果把結果保存在變量d中,可以寫成

d=myadd(99,23);

有了函數,我們就可以把不同功能的代碼組織到一起,不僅自己方便,而且程序特別簡單明了,便于修改,其他人寫的函數我們還可以直接拿來用。

所以我們的這個學生信息管理系統形式就非常簡單了,一共用到了三個函數

int main()

  inti,sum;

 pagedis();

 check();

 menu();  

}

第一個是顯示歡迎頁面,第二個是驗證用戶名和口令,第三個是顯示菜單,并根據用戶的輸入選擇執行相應的操作。

還有一些其他的函數,分別是menu()菜單函數調用的子函數。

結構話程序后大概的形式就是這樣

 

#include<stdio.h>

void pagedis();

void check();

void menu();

int main()

{

 pagedis();

 check();

 menu(); 

}

void pagedis(){

        printf("。。 \n");

}

void check(){

        printf("。。 \n");

}

void menu(){

        printf(" 。。\n");

}

 

這就是結構化程序設計,把功能放到函數中,下一步就可以集中精力,完善函數中的內容。



學生成績管理系統:

#include<stdio.h>


#include<stdlib.h>


#include<string.h>


#define SIZE 3 /*定義常量SIZE便于以后的修改*/


struct student /*定義一個結構體數組存放學生的信息*/


{


    int number; /*學號*/


    char name[20];/*名字*/


    char xueyuan[20];/*學院*/


    int cla;/*班級*/


    int score[3];/*分數*/


    int sum;/*總分*/


    int average;/*平均分*/


}stu[SIZE];


 


void menu();/*調用菜單函數*/


void write();/*讀入信息*/


void save(int x);/*保存stud.dat文件函數*/


void SaveOneStudent(int i);/*保存一個學生信息*/


void SaveAllStudent(int n);/*保存全部學生信息*/


void inturn (struct student c[]);/*用于對學生的信息按學號排序的函數*/


void save2();/*將排序后的信息存入student.dat文件中*/


int AddStudent(int n);/*增加學生信息*/


void InputOnestudent(int i);/*輸入一個同學信息*/


int DelStudent(int n);/*刪除學生信息*/


void ModifyStudent(int n);/*修改學生信息*/


void OutputOneStudent(int i);/*查詢一個學生信息*/


void SearchMenu(int n);/*查詢學生信息操作*/


void SearchNumber(int n);/*按學號查詢學生信息*/


void SearchName(int n);/*按姓名查詢學生信息*/


void SearchXueyuan(int n);/*按所在學院查詢學生信息*/


void SearchCla(int n);/*按所在班級查詢學生信息*/


void tongji();/*學生信息統計操作*/


void tongji2();/*統計不及格率操作*/


void zfsc();/*總分排序操作*/


void avecz();/*按平均分統計人數操作*/


void avecz();/*按平均分統計人數操作*/


void search();/*查找最高成績操作*/


void tongji2();/*統計不及格率操作*/


void read();/*讀取student.dat文件文件中學生的信息*/


 


/*主函數************************************************************************************/


void main()


{


    int n=SIZE;


    int choice;/*用戶選擇變量*/


    printf("*******************************************************************************\n");


    printf("*                                                                             *\n");


    printf("*          Hwadee            &學生成績文件管理&          Hwadee               *\n");


    printf("*                                                                             *\n");


    printf("*******************************************************************************\n\n\n");


    printf("******************************●●歡迎使用●●*********************************");


    while (1)


    {


         menu();/*調用菜單函數形成操作界面*/


         printf("請選擇:");


         scanf("%d", &choice);


         if ( choice==0 )


         {


              printf("\t\t\t\t謝謝使用!!!");


              break;


          }


       switch(choice) /*多重選擇實現功能不同的功能*/


       {  


            case 1:


                write();


              inturn(stu);


              save(SIZE);


                break;


            case 2:


              AddStudent(n);


                break;


           case 3:


              DelStudent(n);


              break;


           case 4:


                ModifyStudent(n);


              break;


           case 5:


              SearchMenu(n);


              break;


           case 6:


              tongji();


              break;


           case 0:


              printf("\n謝謝使用!再見!\n");


           default:


              printf("\n按鍵錯誤!請重新選擇!\n");


       }/*結束switch*/


    }/*結束while*/


}


 

部分程序清單


/*菜單函數*************************************************************************************/


void menu()


{


    printf("************請輸入所需操作***********\n");/*選擇功能菜單*/


    printf("*************************************\n");


    printf("1.學生成績寫入及排序\n");


    printf("2.增加學生信息\n");


    printf("3.刪除學生信息\n");


    printf("4.修改學生信息\n");                             


    printf("5.查詢學生信息\n");


    printf("6.學生成績統計操作\n");


    printf("0.退出系統\n");


    printf("**************************************\n");


}


 


/*寫入函數*************************************************************************************/


void write()


{


    int i;/*計數變量*/


    for(i=0;i<SIZE;i++)


    {


        printf("學號:");


        scanf("%d",&stu[i].number);


        printf("姓名:");


        scanf("%s",&stu[i].number);


        printf("學院:");


        scanf("%s",&stu[i].xueyuan);


        printf("班級:");


        scanf("%d",&stu[i].cla);


        printf("高數:");


        scanf("%d",&stu[i].score[0]);


        printf("英語:");


        scanf("%d",&stu[i].score[1]);


        printf("C語言:");


        scanf("%d",&stu[i].score[2]);


        stu[i].sum=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2]);/*計算總成績*/


        printf("總成績:%d",stu[i].sum);


        stu[i].average=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3;/*計算平均成績*/


        printf("平均成績:%d\n",stu[i].average);


    }


}


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

房山区| 友谊县| 梅州市| 台安县| 永和县| 松溪县| 呼图壁县| 固原市| 江油市| 恩平市| 麻江县| 高要市| 宜兰市| 绍兴市| 沾化县| 沁源县| 神池县| 晴隆县| 呈贡县| 丹东市| 德惠市| 绥棱县| 新建县| 海丰县| 防城港市| 土默特右旗| 沙坪坝区| 彰化县| 古蔺县| 全椒县| 东辽县| 绍兴市| 鹿泉市| 玉田县| 合山市| 江达县| 琼海市| 西贡区| 奉化市| 喜德县| 临安市|