C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易學(xué)生管理系統(tǒng)
本文實(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),而不是用一次就沒了。
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("沒有你所要?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("沒有你所要?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í)有所幫助,也希望大家多多支持腳本之家。
- C語(yǔ)言結(jié)構(gòu)體鏈表和指針實(shí)現(xiàn)學(xué)生管理系統(tǒng)
- 基于C語(yǔ)言實(shí)現(xiàn)學(xué)生管理系統(tǒng)
- c語(yǔ)言實(shí)現(xiàn)學(xué)生管理系統(tǒng)詳解
- C語(yǔ)言實(shí)現(xiàn)班級(jí)學(xué)生管理系統(tǒng)
- C語(yǔ)言不用鏈表完成學(xué)生管理系統(tǒng)(完整代碼)
- C語(yǔ)言單鏈表實(shí)現(xiàn)學(xué)生管理系統(tǒng)
- C語(yǔ)言實(shí)現(xiàn)學(xué)生管理系統(tǒng)
- C語(yǔ)言鏈表實(shí)現(xiàn)學(xué)生管理系統(tǒng)
- C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單學(xué)生管理系統(tǒng)
- C語(yǔ)言學(xué)生管理系統(tǒng)源碼分享
相關(guān)文章
從頭學(xué)習(xí)C語(yǔ)言之指針和數(shù)組
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言之指針和數(shù)組,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-01-01C++中重載、重寫(覆蓋)和隱藏的區(qū)別實(shí)例分析
這篇文章主要介紹了C++中重載、重寫(覆蓋)和隱藏的區(qū)別,是C++面向?qū)ο蟪绦蛟O(shè)計(jì)非常重要的概念,需要的朋友可以參考下2014-08-08C語(yǔ)言函數(shù)之memcpy函數(shù)用法實(shí)例
memcpy函數(shù)用于把資源內(nèi)存(src所指向的內(nèi)存區(qū)域)拷貝到目標(biāo)內(nèi)存(dest所指向的內(nèi)存區(qū)域),下面這篇文章主要給大家介紹了關(guān)于C語(yǔ)言函數(shù)之memcpy函數(shù)用法的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08c++實(shí)現(xiàn)跳躍表(Skip List)的方法示例
跳表(skiplist)是一個(gè)非常優(yōu)秀的數(shù)據(jù)結(jié)構(gòu),實(shí)現(xiàn)簡(jiǎn)單,插入、刪除、查找的復(fù)雜度均為O(logN),下面這篇文章主要介紹了c++實(shí)現(xiàn)跳躍表(Skip List)的相關(guān)資料,需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-09-09C++實(shí)現(xiàn)簡(jiǎn)易的彈球小游戲
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)簡(jiǎn)易的彈球小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10C++ Boost shared_ptr共享指針詳細(xì)講解
shared_ptr是一個(gè)標(biāo)準(zhǔn)的共享所有權(quán)的智能指針,允許多個(gè)指針指向同一個(gè)對(duì)象,定義在memory文件中,命名空間為std,這篇文章主要介紹了C++ shared_ptr使用,需要的朋友可以參考下2022-11-11C++實(shí)現(xiàn)LeetCode(149.共線點(diǎn)個(gè)數(shù))
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(149.共線點(diǎn)個(gè)數(shù)),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07