【C語言期末實訓】學生學籍管理系統


目錄:

一,設計要求

1,總體要求:

2,具體功能:

二,設計框架

三,程序代碼

1,聲明函數和頭文件

2,聲明結構體

3,聲明全局變量

4,主體啟動函數

5,主菜單函數

6,創建學生檔案函數

7,編輯學生檔案函數

8,查詢學生檔案函數

9,輸出籍貫與專業函數

10,查詢學籍變化函數

11,刪除學生信息函數

四,測試代碼

1,運行界面

2,創建學生檔案

3,修改學生檔案信息

4,查詢學生檔案信息

5,查詢學生籍貫和專業信息

6,查詢學生學籍變化

7,刪除學生信息

五,設計的總結和感想

給讀者的話:由於期末作業簡單,而且沒有要求用到文件的知識,畢竟都還沒怎么上過結構體,所以這個系統的代碼也略顯簡單,希望以后回過頭來再看這些代碼,有更好的見解和領悟。如果你也是為了完成實訓或者交作業而看到這篇文章,請不要直接抄襲,注釋我寫得非常清楚,希望能夠真正地幫助到你。

 

 

 設計要求:

1,總體要求

用數據文件存放學生的學籍,可對學生學籍進行注冊,登錄,修改,刪除,查找,統計,學籍變化等操作。

2,具體功能:

1,系統以菜單方式工作。

2,登記學生的學號,姓名,性別,年齡,籍貫,系別,專業,班級;修改已知學號的學生信息;

3,刪除已知學號的學生信息;

4,查找已知學號的學生信息;

5,按學號,專業輸出學生籍貫表。

6,查詢學生學籍變化,比如入學,轉專業,退學,降級,休學,畢業。

程序代碼:

1,         聲明函數和頭文件

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <conio.h>

#define N 100

 

void menu();

void Student_Create();

void Student_Edit();

void Student_find();

void Student_native();

void Student_changes();

void Student_pop();

 

 

2,         聲明結構體

struct Studen_book 

{

       int num;

       char name[20];

       char sex;

       int age;

       char native[80]; //籍貫

       char depart[20]; //系別

       char majoy[20];  //專業

       char clas[20];  //班級

       char native_changes[30]; //學籍

}stu[N];

 

 

3,         聲明全局變量

static int i=0;

 

4,         主體啟動函數

int main()         //啟動程序

{

       menu();

       return 0;

}

 

 

5,         主菜單函數

void menu()        //主菜單

{

        char sel='a';

        while(sel!='0')

       {

        system("cls");//清屏函數

        printf("|-----------------------------------------------|\n");

        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");

        printf("請輸入選項編號(0-6):");

        sel = getch();  //無需回車

        switch(sel)

        {

            case '1':

                Student_Create();

                break;

            case '2':

                Student_Edit();

                break;

            case '3':

                Student_pop();

                break;

            case '4':

                Student_find();

                break;

            case '5':

                Student_native();

                break;

            case '6':

                   Student_changes();

                   break;

            case '0':

                break; 

         }

         if(sel=='0')

         printf("\n Thanks for your used!");

     }   }

 

 

6,         創建學生檔案函數

void Student_Create() //創建學生檔案

{

         char choose;

         Add:

         system("cls");

         printf("請輸入學生學號:\n");

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

         printf("請輸入學生姓名:\n");

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

         getchar();

         printf("請輸入學生性別(M或F):\n");

         scanf("%c",&stu[i].sex);

         printf("請輸入學生年齡:\n");

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

         printf("請輸入學生籍貫:\n");

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

         printf("請輸入學生系別:\n");

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

         printf("請輸入學生專業:\n");

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

         printf("請輸入學生班級:\n");

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

         printf("請輸入學生學籍變化:\n");

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

         i++;                           //輸完一項++,方便下一項輸入 ,同時計輸入的學生總數

         getchar();                 //回車繼續

         printf("是否繼續添加('Y'or'N')?");

         choose=getchar();

         if(choose=='Y'||choose=='y')

                  goto Add;        

}

 

 

7,         編輯學生檔案函數

void Student_Edit()  //根據學號查找學生信息並編輯

{

int t,number,n;

       char x;

       printf("\n輸入學號:");

       scanf("%d",&number);

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

       {

                if(stu[t].num==number)

                n=t;

       }

       printf("\n學生的信息如下:\n");

       printf("1—學號:%d\n",stu[n].num);

       printf("2—姓名:%s\n",stu[n].name);

       printf("3—性別:%c\n",stu[n].sex);

       printf("4—年齡:%d\n",stu[n].age);

       printf("5—籍貫:%s\n",stu[n].native);

       printf("6—系別:%s\n",stu[n].depart);

       printf("7—專業:%s\n",stu[n].majoy);

       printf("8—班級:%s\n",stu[n].clas);

       printf("9—學籍變化:%s\n",stu[n].native_changes);

       printf("0—退出編輯\n");

       printf("請輸入要編輯的選項(0-9):");

       x=getch();

       switch(x)

       {

                case '1':

                        scanf("%d",&stu[n].num);

                        break;

                case '2':

                         scanf("%s",&stu[n].name);

                        break;

                case '3':

                        scanf("%c",&stu[n].sex);

                        break;

                case '4':

                        scanf("%d",&stu[n].age);

                        break;

                case '5':

                        scanf("%s",&stu[n].native);

                        break;

                case '6':

                        scanf("%s",&stu[n].depart);

                        break;

                case '7':

                         scanf("%s",&stu[n].majoy);

                        break;

                case '8':

                        scanf("%s",&stu[n].clas);

                        break;

                case '9':

                        scanf("%s",&stu[n].native_changes);

                        break;                                                                  

                case '0':

                        return;  }   

}

 

 

8,         查詢學生檔案函數

void Student_find() //根據學號查找學生信息

{

       char choose;

       int t,n,number;

       Find:

       int s=0;

       printf("\n請輸入要查詢的學號:");

       scanf("%d",&number);

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

       if(stu[t].num==number)

       {n=t;

       printf("\n【%d號】學生的信息如下:\n",number);

       printf("1—學號:%d\n",stu[n].num);

       printf("2—姓名:%s\n",stu[n].name);

       printf("3—性別:%c\n",stu[n].sex);

       printf("4—年齡:%d\n",stu[n].age);

       printf("5—籍貫:%s\n",stu[n].native);

       printf("6—系別:%s\n",stu[n].depart);

       printf("7—專業:%s\n",stu[n].majoy);

       printf("8—班級:%s\n",stu[n].clas);

       printf("9—學籍變化:%s\n",stu[n].native_changes);

       s=1;

       }

       if(s==0)

       printf("無此學生信息");

       getchar();

       printf("是否繼續(Y/N)?:");

    choose=getchar();

       getchar();

    if(choose=='y'||choose=='Y')

                goto Find;   

 

 

9,         輸出籍貫與專業函數

void Student_native() //按學號,專業輸出學生籍貫表

{    

       char choose;

       int number=0;

       int t;

       Native:

       int s=0;

       printf("\n輸入查詢的學號:");

       scanf("%d",&number);

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

       if(stu[t].num==number)

       {

       printf("【%d號】學生的信息如下:\n",number);

       printf("學號:%d\n",stu[t].num);

       printf("籍貫:%s\n",stu[t].native);

       printf("專業:%s\n",stu[t].majoy);

       s=1;

       }

       if(s==0)

       printf("暫無該學生信息");

       getchar();

       printf("是否繼續(Y/N)?:");

    choose=getchar();

       getchar();

    if(choose=='y'||choose=='Y')

                goto Native;

}

 

 

             

10,查詢學籍變化函數

void Student_changes() //查詢學生的學籍變化

{    

       int t;

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

       {

       printf("\n%s的學籍情況如下:\n",stu[t].name);

       printf("%s",stu[t].native_changes);

       }

       getchar();

} 

 

 

11,刪除學生信息函數

void Student_pop()   //刪除學生信息

{

       int  k=0,number,t;

       char choose;

       Del:

       system("cls");  /*清屏*/

       printf("\n請輸入要刪除的學號:");

       scanf("%d",&number);

       getchar();

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

       {

                if(number==stu[t].num)

                { k=1;break;} 

       }    

       if(k==1)                                

       {

                for(k=t;k<i-1;k++)

    {

                        stu[k]=stu[k+1];

    }

     i--; //刪除一項 總數對應減少

        printf("已刪除\n\n");

  }

  else

     {

       printf("找不到要刪除的記錄!\n");

       printf("按回車鍵返回:");

       getchar();

     }

  printf("是否繼續(Y/N)?:");

  choose=getchar(); getchar();

  if(choose=='y'||choose=='Y')

                goto Del;    

}

 主菜單界面:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM