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

C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易學(xué)生管理系統(tǒng)

 更新時(shí)間:2022年06月15日 11:38:18   作者:Hubert★  
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易學(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

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

首先我們?cè)谧鲆粋€(gè)管理系統(tǒng)之前要了解這個(gè)學(xué)生管理系統(tǒng)需要哪些功能,如:簡(jiǎn)單的增,刪,改,查,即:錄入成績(jī),查詢成績(jī),刪除成績(jī),修改成績(jī),插入成績(jī),這幾個(gè)是基本要包括的,當(dāng)然我們也可以加上排序,統(tǒng)計(jì)學(xué)生人數(shù),這些功能。

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

效果圖如下:

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

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

定義整型變量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)計(jì)?
? ? ? ? ?default:printf("\n輸入錯(cuò)誤,請(qǐng)輸入0---7\n\n");system("pause");system("cls");break;
?? ?
?? ? }

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

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.錄入成績(jī)\t\t\t\n");
? ? ? printf("\t\t\t2.查詢成績(jī)\t\t\t\n");?
? ? ? printf("\t\t\t3.刪除成績(jī)\t\t\t\n");
? ? ? printf("\t\t\t4.修改成績(jī)\t\t\t\n");
? ? ? printf("\t\t\t5.插入成績(jī)\t\t\t\n");
? ? ? printf("\t\t\t6.排序\t\t\t\n");
? ? ? printf("\t\t\t7.統(tǒng)計(jì)學(xué)生人數(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)計(jì)?
? ? ? ? ?default:printf("\n輸入錯(cuò)誤,請(qǐng)輸入0---7\n\n");system("pause");system("cls");break;
?? ?
?? ? }
? }
}

寫完菜單之后我們就要對(duì)“學(xué)生”這個(gè)數(shù)據(jù)進(jìn)行分析

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

struct student
{
? ?char num[20];//學(xué)號(hào)?
? ?char name[20];//姓名?
? ?float elec;//選修課?
? ?float expe;//實(shí)驗(yàn)課?
? float requ;//必修課?
? ?float sum;//總成績(jī) '
? ?float ave;//平均成績(jī)?
}student[N];

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

第一個(gè)就是成績(jī)的錄入

void in()//錄入信息?
?? ?{
?? ?void save() ;
?? ??? ?int i,n;
?? ??? ?printf("輸入錄取學(xué)生的數(shù)量\n");
?? ??? ?scanf("%d", &n);
?? ??? ?for (i=1 ; i<=n; i++)
?? ??? ?{ ? printf("請(qǐng)輸入第%d位學(xué)生學(xué)號(hào):\n",i);
?? ??? ? ? ?scanf("%s",student[i].num);
?? ??? ??? ?printf("請(qǐng)輸入第%d位學(xué)生姓名:\n", i );
? ? ? ? ? ? scanf("%s",student[i].name);
? ? ? ? ? ? printf("請(qǐng)輸入第%d位學(xué)生選修課成績(jī):\n", i );
? ? ? ? ? ? scanf("%f",&student[i].elec);
? ? ? ? ? ? printf("請(qǐng)輸入第%d位學(xué)生實(shí)驗(yàn)成績(jī):\n", i );
? ? ? ? ? ? scanf("%f", &student[i].expe);
? ? ? ? ? ? printf("請(qǐng)輸入第%d位學(xué)生必修課成績(jī):\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");
?? ?
?? ?}

第二個(gè)就是成績(jī)的查詢

?void show() //查詢?
? ? {
? ? ?? ?
? ? ?? ?int i;
?? ??? ?char xh[20];?
? ? ?? ?printf("請(qǐng)輸入要查詢的學(xué)生學(xué)號(hào):\n");
? ? ?? ?getchar();
? ? ? ? gets(xh);
? ? ?? ?for (i=0;i<N;i++)?
? ? ?? ?{
? ? ?? ??? ?if(strcmp(student[i].num,xh)==0)//對(duì)比兩個(gè)字符串如果兩者一樣則進(jìn)行if下面的的語(yǔ)句否則繼續(xù)循環(huán)
? ? ?? ??? ?printf("\n學(xué)號(hào):%-5s ?姓名:%-5s ?選修課成績(jī):%-5.1f ?實(shí)驗(yàn)課成績(jī):%-5.1f ?必修課成績(jī):%-5.1f ?總分:%-5.1f ?平均分:%-5.1f\n",
?? ??? ? ? ?student[i].num,student[i].name,student[i].elec,student[i].expe,student[i].requ,student[i].sum,student[i].ave);
?? ??? ?}
?? ?}

第三個(gè)就是成績(jī)的刪除

void del()//刪除?
{
?? ?void save() ? ;
?? ?int j,a=0,k=count;
?? ?char xh[25];
?? ?printf("所要?jiǎng)h除的學(xué)生學(xué)號(hào)為:\n");
?? ?scanf("%s",xh);
? ? flush(stdin);//緩沖區(qū)
?? ?for (j=0;j<count;j++)
?? ?{
?? ??? ?if (strcmp(student[j].num,xh)==0)
?? ??? ?{
?? ??? ??? ?for (j=a;j<count;j++)
?? ??? ??? ?student[j]=student[j+1];
?? ??? ??? ?count--;
?? ??? ??? ?if (count<k)
?? ??? ??? ?printf("刪除成功\n");
?? ??? ?}
?? ??? ?a++;
?? ?}
?? ??? ?if (j==count-1)
?? ??? ?printf("沒(méi)有你所要?jiǎng)h除的學(xué)生的信息\n");
?
}

第四項(xiàng),成績(jī)的修改

步驟 1.先找到要修改的學(xué)生

        2.選擇修改的項(xiàng)目

        3.更改總成績(jī)和平均分

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

void modify()//修改?
?? ?{ ? void save() ? ;
?? ? ? ?int i,j,h;
?? ??? ?float score;
?? ??? ?char xh[20]; ?? ?
?? ? ? ?printf ("01.輸入修改的學(xué)生的學(xué)號(hào):\n") ;
?? ? ? scanf("%s",xh);
?? ? ? ?for(i=1;i<N;i++)
?? ??? ?if (strcmp(student[i].num,xh)==0)
?? ??? ? ? j=i;
?? ??? ?printf("請(qǐng)選擇修改內(nèi)容\n");
?? ??? ?printf("1.修改該學(xué)生的選修課成績(jī)\n");
?? ??? ?printf("2.修改該學(xué)生的實(shí)驗(yàn)課成績(jī)\n");
?? ??? ?printf("3.修改該學(xué)生的必修課成績(jī)\n");
?? ??? ?scanf("%d",&h);
?? ??? ?switch (h)?
?? ??? ?{
?? ??? ??? ?case 1:printf("請(qǐng)輸入該學(xué)生的選修課成績(jī)\n");scanf("%f",&score);student[j].elec=score; break;
?? ??? ? ? ?case 2:printf("請(qǐng)輸入該學(xué)生的實(shí)驗(yàn)課成績(jī)\n");scanf("%f",&score);student[j].expe=score;break;
?? ??? ? ? ?case 3:printf("請(qǐng)輸入該學(xué)生的必修課成績(jī)\n");scanf("%f",&score);student[j].requ=score;break;
?? ??? ? ? ?default :printf("\n輸入錯(cuò)誤,請(qǐng)輸入1---3\n\n"); break;
? ? ? ? }?
?? ? ? ?student[j].sum = student[j].elec+student[j].expe + student[j].requ;
?? ??? ?printf("修改后為:\n");
?? ??? ?printf("\n學(xué)號(hào):%-5s ?姓名:%-5s ?選修課成績(jī):%-5.1f ?實(shí)驗(yàn)課成績(jī):%-5.1f ?必修課成績(jī):%-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);
? ?printf("\n");
?? ??? ?printf("修改成功\n") ;
?? ?
? ?}

第五項(xiàng),成績(jī)的插入

?void insert ()//插入?
{void save();
? ? int m, flag, i = count, j,k;
? ? printf("請(qǐng)輸入待添加的學(xué)生人數(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("請(qǐng)輸入第%d位學(xué)生的學(xué)號(hào):\n", i);
? ? ? ? ? ? ? ? getchar();
? ? ? ? ? ? ? ? gets(student[i].num);
? ? ? ? ? ? ? ? for (j = 0; j < i; j++)
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? if (strcmp(student[i].num, student[j].num) == 0)
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? printf("該學(xué)號(hào)已存在,請(qǐng)重新輸入!\n");
? ? ? ? ? ? ? ? ? ? ? ? flag = 1;
? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? printf("請(qǐng)輸入第%d位學(xué)生姓名:\n", i );
? ? ? ? ? ? gets(student[i].name);
? ? ? ? ? ? printf("請(qǐng)輸入第%d位學(xué)生選修課成績(jī):\n", i );
? ? ? ? ? ? scanf("%f",&student[i].elec);
? ? ? ? ? ? printf("請(qǐng)輸入第%d位學(xué)生實(shí)驗(yàn)成績(jī):\n", i );
? ? ? ? ? ? scanf("%f", &student[i].expe);
? ? ? ? ? ? printf("請(qǐng)輸入第%d位學(xué)生必修課成績(jī):\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");
??
? ? }
}

第六項(xiàng),排序

?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學(xué)號(hào):%-5s ?姓名:%-5s ?選修課成績(jī):%-5.1f ?實(shí)驗(yàn)課成績(jī):%-5.1f ?必修課成績(jī):%-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);
? } ? ? ? ? ? ? ? ??
?}?

第七項(xiàng),統(tǒng)計(jì)學(xué)生人數(shù)

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

完整的代碼

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define N 100
struct student
{
? ?char num[20];//學(xué)號(hào)?
? ?char name[20];//姓名?
? ?float elec;//選修課?
? ?float expe;//實(shí)驗(yàn)課?
? float requ;//必修課?
? ?float sum;//總成績(jī) '
? ?float ave;//平均成績(jī)?
}student[N];
?
void Menu(); // 菜單?
void in();//錄入?
void show() ;//查找?
void order();//排序?
void del(); //刪除?
void modify();//修改?
void total ();//統(tǒng)計(jì)?
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.錄入成績(jī)\t\t\t\n");
? ? ? printf("\t\t\t2.查詢成績(jī)\t\t\t\n");?
? ? ? printf("\t\t\t3.刪除成績(jī)\t\t\t\n");
? ? ? printf("\t\t\t4.修改成績(jī)\t\t\t\n");
? ? ? printf("\t\t\t5.插入成績(jī)\t\t\t\n");
? ? ? printf("\t\t\t6.排序\t\t\t\n");
? ? ? printf("\t\t\t7.統(tǒng)計(jì)學(xué)生人數(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)計(jì)?
? ? ? ? ?default:printf("\n輸入錯(cuò)誤,請(qǐng)輸入0---7\n\n");system("pause");system("cls");break;
?? ?
?? ? }
? }
}
?
void save() ?//保存?
{
? ? FILE* fp;
? ? char filename[100];
? ? int i;
? ? printf("請(qǐng)輸入要保存的文件名:\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("輸入錄取學(xué)生的數(shù)量\n");
?? ??? ?scanf("%d", &n);
?? ??? ?for (i=1 ; i<=n; i++)
?? ??? ?{ ? printf("請(qǐng)輸入第%d位學(xué)生學(xué)號(hào):\n",i);
?? ??? ? ? ?scanf("%s",student[i].num);
?? ??? ??? ?printf("請(qǐng)輸入第%d位學(xué)生姓名:\n", i );
? ? ? ? ? ? scanf("%s",student[i].name);
? ? ? ? ? ? printf("請(qǐng)輸入第%d位學(xué)生選修課成績(jī):\n", i );
? ? ? ? ? ? scanf("%f",&student[i].elec);
? ? ? ? ? ? printf("請(qǐng)輸入第%d位學(xué)生實(shí)驗(yàn)成績(jī):\n", i );
? ? ? ? ? ? scanf("%f", &student[i].expe);
? ? ? ? ? ? printf("請(qǐng)輸入第%d位學(xué)生必修課成績(jī):\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.輸入修改的學(xué)生的學(xué)號(hào):\n") ;
?? ? ? scanf("%s",xh);
?? ? ? ?for(i=1;i<N;i++)
?? ??? ?if (strcmp(student[i].num,xh)==0)
?? ??? ? ? j=i;
?? ??? ?printf("請(qǐng)選擇修改內(nèi)容\n");
?? ??? ?printf("1.修改該學(xué)生的選修課成績(jī)\n");
?? ??? ?printf("2.修改該學(xué)生的實(shí)驗(yàn)課成績(jī)\n");
?? ??? ?printf("3.修改該學(xué)生的必修課成績(jī)\n");
?? ??? ?scanf("%d",&h);
?? ??? ?switch (h)?
?? ??? ?{
?? ??? ??? ?case 1:printf("請(qǐng)輸入該學(xué)生的選修課成績(jī)\n");scanf("%f",&score);student[j].elec=score; break;
?? ??? ? ? ?case 2:printf("請(qǐng)輸入該學(xué)生的實(shí)驗(yàn)課成績(jī)\n");scanf("%f",&score);student[j].expe=score;break;
?? ??? ? ? ?case 3:printf("請(qǐng)輸入該學(xué)生的必修課成績(jī)\n");scanf("%f",&score);student[j].requ=score;break;
?? ??? ? ? ?default :printf("\n輸入錯(cuò)誤,請(qǐng)輸入1---3\n\n"); break;
? ? ? ? }?
?? ? ? ?student[j].sum = student[j].elec+student[j].expe + student[j].requ;
?? ??? ?printf("修改后為:\n");
?? ??? ?printf("\n學(xué)號(hào):%-5s ?姓名:%-5s ?選修課成績(jī):%-5.1f ?實(shí)驗(yàn)課成績(jī):%-5.1f ?必修課成績(jī):%-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);
? ?printf("\n");
?? ??? ?printf("修改成功\n") ;
?? ?
? ?}
?
? ? ? void show() //查詢?
? ? {
? ? ?? ?
? ? ?? ?int i;
?? ??? ?char xh[20];?
? ? ?? ?printf("請(qǐng)輸入要查詢的學(xué)生學(xué)號(hào):\n");
? ? ?? ?getchar();
? ? ? ? gets(xh);
? ? ?? ?for (i=0;i<N;i++)?
? ? ?? ?{
? ? ?? ??? ?if(strcmp(student[i].num,xh)==0)
? ? ?? ??? ?printf("\n學(xué)號(hào):%-5s ?姓名:%-5s ?選修課成績(jī):%-5.1f ?實(shí)驗(yàn)課成績(jī):%-5.1f ?必修課成績(jī):%-5.1f ?總分:%-5.1f ?平均分:%-5.1f\n",
?? ??? ? ? ?student[i].num,student[i].name,student[i].elec,student[i].expe,student[i].requ,student[i].sum,student[i].ave);
?? ??? ?}
?? ?}
?? ??
?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學(xué)號(hào):%-5s ?姓名:%-5s ?選修課成績(jī):%-5.1f ?實(shí)驗(yàn)課成績(jī):%-5.1f ?必修課成績(jī):%-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);
? } ? ? ? ? ? ? ? ??
?}?
?
void del()//刪除?
{
?? ?void save() ? ;
?? ?int j,a=0,k=count;
?? ?char xh[25];
?? ?printf("所要?jiǎng)h除的學(xué)生學(xué)號(hào)為:\n");
?? ?scanf("%s",xh);
? ? flush(stdin);
?? ?for (j=0;j<count;j++)
?? ?{
?? ??? ?if (strcmp(student[j].num,xh)==0)
?? ??? ?{
?? ??? ??? ?for (j=a;j<count;j++)
?? ??? ??? ?student[j]=student[j+1];
?? ??? ??? ?count--;
?? ??? ??? ?if (count<k)
?? ??? ??? ?printf("刪除成功\n");
?? ??? ?}
?? ??? ?a++;
?? ?}
?? ??? ?if (j==count-1)
?? ??? ?printf("沒(méi)有你所要?jiǎng)h除的學(xué)生的信息\n");
?
}
?
? ?void insert ()//插入?
{void save();
? ? int m, flag, i = count, j,k;
? ? printf("請(qǐng)輸入待添加的學(xué)生人數(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("請(qǐng)輸入第%d位學(xué)生的學(xué)號(hào):\n", i);
? ? ? ? ? ? ? ? getchar();
? ? ? ? ? ? ? ? gets(student[i].num);
? ? ? ? ? ? ? ? for (j = 0; j < i; j++)
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? if (strcmp(student[i].num, student[j].num) == 0)
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? printf("該學(xué)號(hào)已存在,請(qǐng)重新輸入!\n");
? ? ? ? ? ? ? ? ? ? ? ? flag = 1;
? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? printf("請(qǐng)輸入第%d位學(xué)生姓名:\n", i );
? ? ? ? ? ? gets(student[i].name);
? ? ? ? ? ? printf("請(qǐng)輸入第%d位學(xué)生選修課成績(jī):\n", i );
? ? ? ? ? ? scanf("%f",&student[i].elec);
? ? ? ? ? ? printf("請(qǐng)輸入第%d位學(xué)生實(shí)驗(yàn)成績(jī):\n", i );
? ? ? ? ? ? scanf("%f", &student[i].expe);
? ? ? ? ? ? printf("請(qǐng)輸入第%d位學(xué)生必修課成績(jī):\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)計(jì)?
{
?? ?printf("學(xué)生人數(shù)%d\n",count);
}

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

相關(guān)文章

  • C語(yǔ)言中棧和隊(duì)列實(shí)現(xiàn)表達(dá)式求值的實(shí)例

    C語(yǔ)言中棧和隊(duì)列實(shí)現(xiàn)表達(dá)式求值的實(shí)例

    這篇文章主要介紹了C語(yǔ)言中棧和隊(duì)列實(shí)現(xiàn)表達(dá)式求值的實(shí)例的相關(guān)資料,這里主要是對(duì)數(shù)據(jù)結(jié)構(gòu)中棧和隊(duì)列的理解和應(yīng)用,需要的朋友可以參考下
    2017-08-08
  • 詳解C++中String類模擬實(shí)現(xiàn)以及深拷貝淺拷貝

    詳解C++中String類模擬實(shí)現(xiàn)以及深拷貝淺拷貝

    這篇文章主要介紹了詳解C++中String類模擬實(shí)現(xiàn)以及深拷貝淺拷貝的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家實(shí)現(xiàn)這樣的方法,需要的朋友可以參考下
    2017-10-10
  • C語(yǔ)言中的二叉樹和堆詳解

    C語(yǔ)言中的二叉樹和堆詳解

    這篇文章主要介紹了C語(yǔ)言中的二叉樹和堆詳解,樹是一種非線性的數(shù)據(jù)結(jié)構(gòu),它是由n(n>=0)個(gè)有限結(jié)點(diǎn)組成一個(gè)具有層次關(guān)系的集合,把它叫做樹是因?yàn)樗雌饋?lái)像一棵倒掛的樹,也就是說(shuō)它是根朝上,而葉朝下的,需要的朋友可以參考下
    2023-07-07
  • C語(yǔ)言用函數(shù)實(shí)現(xiàn)電話簿管理系統(tǒng)

    C語(yǔ)言用函數(shù)實(shí)現(xiàn)電話簿管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言用函數(shù)實(shí)現(xiàn)電話簿管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之判斷循環(huán)鏈表空與滿

    C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之判斷循環(huán)鏈表空與滿

    這篇文章主要介紹了C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之判斷循環(huán)鏈表空與滿的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家掌握這部分內(nèi)容,需要的朋友可以參考下
    2017-10-10
  • C++統(tǒng)計(jì)中英文大小寫字母、數(shù)字、空格及其他字符個(gè)數(shù)的方法

    C++統(tǒng)計(jì)中英文大小寫字母、數(shù)字、空格及其他字符個(gè)數(shù)的方法

    這篇文章主要介紹了C++統(tǒng)計(jì)中英文大小寫字母、數(shù)字、空格及其他字符個(gè)數(shù)的方法,涉及C++字符串的遍歷與簡(jiǎn)單判定技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2016-05-05
  • vs2019 MFC實(shí)現(xiàn)office界面的畫圖小項(xiàng)目

    vs2019 MFC實(shí)現(xiàn)office界面的畫圖小項(xiàng)目

    本文主要介紹了vs2019 MFC實(shí)現(xiàn)office界面的畫圖小項(xiàng)目,對(duì)大家入門有一定的幫助,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-06-06
  • Qt使用QWT繪制柱狀圖詳解

    Qt使用QWT繪制柱狀圖詳解

    QT中提供了一個(gè)叫做QWT的庫(kù)。QWT,全稱是Qt?Widgets?for?Technical?Applications,是一個(gè)基于LGPL版權(quán)協(xié)議的開源項(xiàng)目,可生成各種統(tǒng)計(jì)圖。本文將通過(guò)它繪制柱狀圖,需要的可以參考一下
    2022-01-01
  • c++報(bào)錯(cuò)問(wèn)題解決方案lvalue required as left operand of assignment

    c++報(bào)錯(cuò)問(wèn)題解決方案lvalue required as left opera

    這篇文章主要介紹了c++報(bào)錯(cuò):lvalue required as left operand of assignment,出現(xiàn)此錯(cuò)誤原因,是因?yàn)?,等?hào)左邊是不可被修改的表達(dá)式或常量,而表達(dá)式或常量不能作為左值,需要的朋友可以參考下
    2023-01-01
  • C語(yǔ)言與C++中內(nèi)存管理詳解

    C語(yǔ)言與C++中內(nèi)存管理詳解

    本章主要介紹C語(yǔ)言與C++的內(nèi)存管理,以C++的內(nèi)存分布作為引入,介紹C++不同于C語(yǔ)言的內(nèi)存管理方式(new?delete對(duì)比?malloc?free),感興趣的朋友來(lái)看看吧
    2022-04-04

最新評(píng)論

汨罗市| 巴中市| 邯郸县| 林口县| 宽甸| 黔江区| 定州市| 仙桃市| 府谷县| 海安县| 封开县| 南木林县| 谢通门县| 上栗县| 洛川县| 辽阳县| 崇义县| 合阳县| 乐亭县| 积石山| 平泉县| 青海省| 海兴县| 鄯善县| 自贡市| 潢川县| 牡丹江市| 民县| 屏南县| 二手房| 平南县| 保康县| 库伦旗| 景谷| 常宁市| 文安县| 成都市| 屏山县| 闸北区| 武定县| 郑州市|