簡易學生管理系統(tǒng)(C語言)-創(chuàng)新互聯(lián)

首先我們在做一個管理系統(tǒng)之前要了解這個學生管理系統(tǒng)需要哪些功能,如:簡單的增,刪,改,查,即:錄入成績,查詢成績,刪除成績,修改成績,插入成績,這幾個是基本要包括的,當然我們也可以加上排序,統(tǒng)計學生人數(shù),這些功能。

創(chuàng)新互聯(lián)-專業(yè)網站定制、快速模板網站建設、高性價比玉龍網站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式玉龍網站制作公司更省心,省錢,快速模板網站建設找我們,業(yè)務覆蓋玉龍地區(qū)。費用合理售后完善,十載實體公司更值得信賴。

當清楚需要哪些功能之后我們就可以寫系統(tǒng)的界面了。

效果圖如下:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASHViZXJ04piF,size_17,color_FFFFFF,t_70,g_se,x_16

printf("\t\t\t---------------STUDENT---------------\t\t\t\n");
      printf("\t\t\t0.退出\t\t\t\n");
      printf("\t\t\t1.錄入成績\t\t\t\n");
      printf("\t\t\t2.查詢成績\t\t\t\n"); 
      printf("\t\t\t3.刪除成績\t\t\t\n");
      printf("\t\t\t4.修改成績\t\t\t\n");
      printf("\t\t\t5.插入成績\t\t\t\n");
      printf("\t\t\t6.排序\t\t\t\n");
      printf("\t\t\t7.統(tǒng)計學生人數(shù)\t\t\t\n");
      printf("\t\t\t-------------------------------------\t\t\t\n"); 
      printf("\t\t\t選擇(0---7)\t\t\t");

接著我們就可以加入switch函數(shù)進行功能選擇

定義整型變量choice?

int  choice ;
       scanf("%d",&choice );
	 switch(choice )
     {
         case 0:exit(0); break;
	     case 1: in();save();system("pause");system("cls");break;//錄入 
	     case 2: show();system("pause");system("cls");break;//查詢 
	     case 3: del();save();system("pause");system("cls");break;//刪除 
	     case 4: modify();system("pause");system("cls");break;//修改 
	     case 5: insert();save();system("pause");system("cls");break;//插入 
	     case 6: order();system("pause");system("cls");break;//排序 
	     case 7: total();system("pause");system("cls");break;//統(tǒng)計 
         default:printf("\n輸入錯誤,請輸入0---7\n\n");system("pause");system("cls");break;
	
	 }

定義一個Menu函數(shù)把上面兩個結合起來,我們加一個while循環(huán)讓這個這個菜單一直循環(huán)出現(xiàn),而不是用一次就沒了。

void Menu()//菜單

{   while(1)
    {
	  printf("\t\t\t---------------STUDENT---------------\t\t\t\n");
      printf("\t\t\t0.退出\t\t\t\n");
      printf("\t\t\t1.錄入成績\t\t\t\n");
      printf("\t\t\t2.查詢成績\t\t\t\n"); 
      printf("\t\t\t3.刪除成績\t\t\t\n");
      printf("\t\t\t4.修改成績\t\t\t\n");
      printf("\t\t\t5.插入成績\t\t\t\n");
      printf("\t\t\t6.排序\t\t\t\n");
      printf("\t\t\t7.統(tǒng)計學生人數(shù)\t\t\t\n");
      printf("\t\t\t-------------------------------------\t\t\t\n"); 
      printf("\t\t\t選擇(0---7)\t\t\t"); 
       int  chioce;
       scanf("%d",&chioce);
	 switch(chioce)
     {
         case 0:exit(0); break;
	     case 1: in();save();system("pause");system("cls");break;//錄入 
	     case 2: show();system("pause");system("cls");break;//查詢 
	     case 3: del();save();system("pause");system("cls");break;//刪除 
	     case 4: modify();system("pause");system("cls");break;//修改 
	     case 5: insert();save();system("pause");system("cls");break;//插入 
	     case 6: order();system("pause");system("cls");break;//排序 
	     case 7: total();system("pause");system("cls");break;//統(tǒng)計 
         default:printf("\n輸入錯誤,請輸入0---7\n\n");system("pause");system("cls");break;
	
	 }
  }
}

寫完菜單之后我們就要對“學生”這個數(shù)據進行分析

在這個系統(tǒng)中學生的信息要包含那些東西,舉個例子:學號,姓名,選修課成績,實驗課成績,必修課成績,總成績,平均成績。然后根據這些寫一個結構體(我寫的是數(shù)組類型的結構體)

struct student
{
   char num[20];//學號 
   char name[20];//姓名 
   float elec;//選修課 
   float expe;//實驗課 
  float requ;//必修課 
   float sum;//總成績 '
   float ave;//平均成績 
}student[N];

接著我們開始寫實現(xiàn)這個系統(tǒng)功能的函數(shù)

第一個就是成績的錄入

void in()//錄入信息 
	{
	void save() ;
		int i,n;
		printf("輸入錄取學生的數(shù)量\n");
		scanf("%d", &n);
		for (i=1 ; i<=n; i++)
		{   printf("請輸入第%d位學生學號:\n",i);
		    scanf("%s",student[i].num);
			printf("請輸入第%d位學生姓名:\n", i );
            scanf("%s",student[i].name);
            printf("請輸入第%d位學生選修課成績:\n", i );
            scanf("%f",&student[i].elec);
            printf("請輸入第%d位學生實驗成績:\n", i );
            scanf("%f", &student[i].expe);
            printf("請輸入第%d位學生必修課成績:\n", i );
            scanf("%f", &student[i].requ);
            student[i].sum=student[i].elec+student[i].expe+student[i].requ;
			 student[i].ave=student[i].sum /3;
		  count++;
		} 
		printf("錄入成功\n");
	
	}

第二個就是成績的查詢

void show() //查詢 
    {
    	
    	int i;
		char xh[20]; 
    	printf("請輸入要查詢的學生學號:\n");
    	getchar();
        gets(xh);
    	for (i=0;i

第三個就是成績的刪除

void del()//刪除 
{
	void save()   ;
	int j,a=0,k=count;
	char xh[25];
	printf("所要刪除的學生學號為:\n");
	scanf("%s",xh);
    flush(stdin);//緩沖區(qū)
	for (j=0;j

第四項,成績的修改

步驟 1.先找到要修改的學生

2.選擇修改的項目

? 3.更改總成績和平均分

? 4.顯示修改后的學生數(shù)據

void modify()//修改 
	{   void save()   ;
	    int i,j,h;
		float score;
		char xh[20]; 	
	    printf ("01.輸入修改的學生的學號:\n") ;
	   scanf("%s",xh);
	    for(i=1;i

第五項,成績的插入

void insert ()//插入 
{void save();
    int m, flag, i = count, j,k;
    printf("請輸入待添加的學生人數(shù):\n");
    scanf("%d", &m);
    if (m >0)
    {
    	k=count+1;
    for(i=k;i<=count+m;i++)	
        {
            flag = 1;
            while (flag!= 0)
            {
                flag = 0;
                printf("請輸入第%d位學生的學號:\n", i);
                getchar();
                gets(student[i].num);
                for (j = 0; j< i; j++)
                {
                    if (strcmp(student[i].num, student[j].num) == 0)
                    {
                        printf("該學號已存在,請重新輸入!\n");
                        flag = 1;
                        break;
                    }
                }
            }
            printf("請輸入第%d位學生姓名:\n", i );
            gets(student[i].name);
            printf("請輸入第%d位學生選修課成績:\n", i );
            scanf("%f",&student[i].elec);
            printf("請輸入第%d位學生實驗成績:\n", i );
            scanf("%f", &student[i].expe);
            printf("請輸入第%d位學生必修課成績:\n", i );
            scanf("%f", &student[i].requ);
            student[i].sum=student[i].elec+student[i].expe+student[i].requ;
            student[i].ave=student[i].sum /3;
      }
        count+= m;
        printf("添加完成!\n");
        system("pause");
  
    }
}

第六項,排序

void order()//排序 
	 {	
	    int i,j,m;
	    for(j=1;j<=count-1;j++)
	{	m=j;
		for(i=j+1;i<=count;i++)
		{
		if(student[i].sum< student[m].sum)
		{
		 student[0]=student[i];
 	     student[i]=student[m];
	     student[m]=student[0];
	   }
       }
	}
	for(j=1;j<=count;j++)
	{
      	printf("\n學號:%-5s  姓名:%-5s  選修課成績:%-5.1f  實驗課成績:%-5.1f  必修課成績:%-5.1f  總分:%-5.1f  平均分:%-5.1f\n",
		    student[j].num,student[j].name,student[j].elec,student[j].expe,student[j].requ,student[j].sum,student[j].ave);
  }                 
 }

第七項,統(tǒng)計學生人數(shù)

void total ()//統(tǒng)計 
{
	printf("學生人數(shù)%d\n",count);
}

完整的代碼

#include#include#include#define N 100
struct student
{
   char num[20];//學號 
   char name[20];//姓名 
   float elec;//選修課 
   float expe;//實驗課 
  float requ;//必修課 
   float sum;//總成績 '
   float ave;//平均成績 
}student[N];

void Menu(); // 菜單 
void in();//錄入 
void show() ;//查找 
void order();//排序 
void del(); //刪除 
void modify();//修改 
void total ();//統(tǒng)計 
void insert ();//插入 
int count=0;//人數(shù) 
void save();//保存 
int main() 
{
	Menu();
	
	return 0; 
}

void Menu()//菜單

{   while(1)
    {
	  printf("\t\t\t---------------STUDENT---------------\t\t\t\n");
      printf("\t\t\t0.退出\t\t\t\n");
      printf("\t\t\t1.錄入成績\t\t\t\n");
      printf("\t\t\t2.查詢成績\t\t\t\n"); 
      printf("\t\t\t3.刪除成績\t\t\t\n");
      printf("\t\t\t4.修改成績\t\t\t\n");
      printf("\t\t\t5.插入成績\t\t\t\n");
      printf("\t\t\t6.排序\t\t\t\n");
      printf("\t\t\t7.統(tǒng)計學生人數(shù)\t\t\t\n");
      printf("\t\t\t-------------------------------------\t\t\t\n"); 
      printf("\t\t\t選擇(0---7)\t\t\t"); 
       int  chioce;
       scanf("%d",&chioce);
	 switch(chioce)
     {
         case 0:exit(0); break;
	     case 1: in();save();system("pause");system("cls");break;//錄入 
	     case 2: show();system("pause");system("cls");break;//查詢 
	     case 3: del();save();system("pause");system("cls");break;//刪除 
	     case 4: modify();system("pause");system("cls");break;//修改 
	     case 5: insert();save();system("pause");system("cls");break;//插入 
	     case 6: order();system("pause");system("cls");break;//排序 
	     case 7: total();system("pause");system("cls");break;//統(tǒng)計 
         default:printf("\n輸入錯誤,請輸入0---7\n\n");system("pause");system("cls");break;
	
	 }
  }
}

void save()  //保存 
{
    FILE* fp;
    char filename[100];
    int i;
    printf("請輸入要保存的文件名:\n");
    scanf("%s", filename);
    if ((fp = fopen(filename, "w")) == NULL)
    {
        printf("打開文件失?。n");
        exit(0);
    }
    for (i = 1; i<=count; i++)
    {
        if (fwrite(&student[i], sizeof(struct student), 1, fp) != 1)
            printf("保存失?。n");
    }
    printf("保存成功!\n");
    fclose(fp);
}




     void in()//錄入信息 
	{
	void save() ;
		int i,n;
		printf("輸入錄取學生的數(shù)量\n");
		scanf("%d", &n);
		for (i=1 ; i<=n; i++)
		{   printf("請輸入第%d位學生學號:\n",i);
		    scanf("%s",student[i].num);
			printf("請輸入第%d位學生姓名:\n", i );
            scanf("%s",student[i].name);
            printf("請輸入第%d位學生選修課成績:\n", i );
            scanf("%f",&student[i].elec);
            printf("請輸入第%d位學生實驗成績:\n", i );
            scanf("%f", &student[i].expe);
            printf("請輸入第%d位學生必修課成績:\n", i );
            scanf("%f", &student[i].requ);
            student[i].sum=student[i].elec+student[i].expe+student[i].requ;
			 student[i].ave=student[i].sum /3;
		  count++;
		} 
		printf("錄入成功\n");
	
	}
	
	

void modify()//修改 
	{   void save()   ;
	    int i,j,h;
		float score;
		char xh[20]; 	
	    printf ("01.輸入修改的學生的學號:\n") ;
	   scanf("%s",xh);
	    for(i=1;i0)
    {
    	k=count+1;
    for(i=k;i<=count+m;i++)	
        {
            flag = 1;
            while (flag!= 0)
            {
                flag = 0;
                printf("請輸入第%d位學生的學號:\n", i);
                getchar();
                gets(student[i].num);
                for (j = 0; j< i; j++)
                {
                    if (strcmp(student[i].num, student[j].num) == 0)
                    {
                        printf("該學號已存在,請重新輸入!\n");
                        flag = 1;
                        break;
                    }
                }
            }
            printf("請輸入第%d位學生姓名:\n", i );
            gets(student[i].name);
            printf("請輸入第%d位學生選修課成績:\n", i );
            scanf("%f",&student[i].elec);
            printf("請輸入第%d位學生實驗成績:\n", i );
            scanf("%f", &student[i].expe);
            printf("請輸入第%d位學生必修課成績:\n", i );
            scanf("%f", &student[i].requ);
            student[i].sum=student[i].elec+student[i].expe+student[i].requ;
            student[i].ave=student[i].sum /3;
      }
        count+= m;
        printf("添加完成!\n");
        system("pause");
  
    }
}
void total ()//統(tǒng)計 
{
	printf("學生人數(shù)%d\n",count);
}

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧

新聞標題:簡易學生管理系統(tǒng)(C語言)-創(chuàng)新互聯(lián)
分享網址:http://muchs.cn/article32/pcppc.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化網站收錄、電子商務做網站、定制開發(fā)、用戶體驗

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)