亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C語言實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)開發(fā)

 更新時間:2022年08月05日 15:14:29   作者:D@@  
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)開發(fā),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

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

程序介紹

運(yùn)行程序時,首先進(jìn)入到菜單部分,菜單部分提供了菜單顯示和輸入功能部分。其運(yùn)行效果如圖所示。在主界面上輸入0——8內(nèi)的數(shù)字,實(shí)現(xiàn)相應(yīng)的功能。

主界面輸入1時,進(jìn)入錄入學(xué)生信息的界面,當(dāng)沒有存儲記錄時,根據(jù)提示對學(xué)生的信息進(jìn)行輸入,運(yùn)行效果如圖所示。

在存在學(xué)生信息的情況下繼續(xù)添加學(xué)生信息時,會首先顯示存在的學(xué)生信息,運(yùn)行效果如圖所示。

主界面輸入2時,進(jìn)入查詢學(xué)生信息模塊,根據(jù)學(xué)生學(xué)號,對學(xué)生信息進(jìn)行查詢。運(yùn)行效果如圖所示。

在主界面輸入3時,進(jìn)入到刪除學(xué)生信息模塊,輸入需要刪除的學(xué)生學(xué)號,即可在文件中將該學(xué)號的所有信息刪除,運(yùn)行效果如圖所示。

當(dāng)在主界面輸入4時,系統(tǒng)進(jìn)入到修改學(xué)生信息模塊,首先會顯示出所有學(xué)生的信息,輸入要修改的學(xué)生學(xué)號,系統(tǒng)會對輸入的學(xué)號進(jìn)行匹配,若在顯示出來的學(xué)生信息中存在,則會提示輸入修改的內(nèi)容。運(yùn)行效果如圖所示。

在主界面輸入5時,可以插入學(xué)生信息,根據(jù)提示輸入想要插入的位置,以及插入的學(xué)號等信息。運(yùn)行效果如圖所示。

在主界面輸入6時,可以根據(jù)學(xué)生的總成績從高到低進(jìn)行排序。排序完成后,將排序結(jié)果保存,但是排序后的結(jié)果并不現(xiàn)實(shí)在該界面。運(yùn)行效果如圖所示。

當(dāng)在主界面輸入7時,可以對學(xué)生的人數(shù)進(jìn)行統(tǒng)計(jì),顯示出統(tǒng)計(jì)的人數(shù)。運(yùn)行效果如圖所示。

當(dāng)在主界面輸入8時,可以對學(xué)生的信息進(jìn)行顯示,運(yùn)行效果如圖所示。該圖為對成績進(jìn)行排序后的顯示結(jié)果。

代碼

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<dos.h>
#include<string.h>
#define LEN sizeof(struct student)
#define FORMAT "%-8d%-15s%-12.1lf%-12.1lf%-12.1lf%-12.1lf\n"
#define DATA stu[i].num,stu[i].name,stu[i].elec,stu[i].expe,stu[i].requ,stu[i].sum
/**
* ?結(jié) 構(gòu) 體
*/
struct student/*定義學(xué)生成績結(jié)構(gòu)體*/
{?
?? ?int num;?? ??? ?/*學(xué)號*/
? ?? ?char name[15];?? ?/*姓名*/
? ?? ?double elec;?? ?/*選修課*/
? ?? ?double expe;?? ?/*實(shí)驗(yàn)課*/
? ?? ?double requ;?? ?/*必修課*/
? ?? ?double sum;?? ??? ?/*總分*/
};
/**
* ?函數(shù)聲明
*/
struct student stu[50];?? ?/*定義結(jié)構(gòu)體數(shù)組*/
void in();?? ??? ??? ??? ?/*錄入學(xué)生成績信息*/
void show();?? ??? ??? ?/*顯示學(xué)生信息*/
void order();?? ??? ??? ?/*按總分排序*/
void del();?? ??? ??? ??? ?/*刪除學(xué)生成績信息*/
void modify();?? ??? ??? ?/*修改學(xué)生成績信息*/
void menu();?? ??? ??? ?/*主菜單*/
void insert();?? ??? ??? ?/*插入學(xué)生信息*/
void total();?? ??? ??? ?/*計(jì)算總?cè)藬?shù)*/
void search();?? ??? ??? ?/*查找學(xué)生信息*/

void main()?? ??? ??? ??? ?/*主函數(shù)*/
{?
?? ?system("color f0\n");?? ?//白底黑字
?? ?int n;
? ?? ?menu();
? ?? ?scanf("%d",&n);/*輸入選擇功能的編號*/
? ?? ?while(n)
? ?? ?{?
?? ? ??? ?switch(n)
? ? ??? ?{?
?? ??? ? ?? ?case 1: in();break;
? ? ? ??? ??? ?case 2: search();break;
? ? ? ??? ??? ?case 3: del();break;
? ? ? ??? ??? ?case 4: modify();break;
? ? ? ??? ??? ?case 5: insert();break;
? ? ? ??? ??? ?case 6: order();break;
? ? ? ??? ??? ?case 7: total();break;
?? ? ? ?? ??? ?case 8: show();break;
? ? ? ??? ??? ?default:break;
? ? ??? ?}
? ? getch();
? ? menu();/*執(zhí)行完功能再次顯示菜單界面*/
? ? scanf("%d",&n);
? ?? ?}
}

void in()/*錄入學(xué)生信息*/
{?
?? ?int i,m=0;/*m是記錄的條數(shù)*/
? ?? ?char ch[2];
? ?? ?FILE *fp;/*定義文件指針*/
? ?? ?if((fp=fopen("data.txt","a+"))==NULL)/*打開指定文件*/
? ?? ?{?
?? ? ??? ?printf("文件不存在!\n");
?? ? ??? ?return;//直接返回,不在執(zhí)行
? ?? ?}
? ?? ?while(!feof(fp))//判斷是否指向結(jié)束符
? ? {
?? ? ??? ?if(fread(&stu[m] ,LEN,1,fp)==1)
? ? ? ? {
?? ??? ? ??? ?m++;/*統(tǒng)計(jì)當(dāng)前記錄條數(shù)*/
?? ??? ?}
? ?? ?}
? ?? ?fclose(fp);
? ?? ?if(m==0)
? ?? ?{
?? ? ??? ?printf("文件中沒有記錄!\n");
?? ?}
? ?? ?else
? ?? ?{?? ? ??? ?
? ? ? ? show();/*調(diào)用show函數(shù),顯示原有信息*/
? ?? ?}
? ?? ?if((fp=fopen("data.txt","wb"))==NULL)
? ?? ?{
?? ? ??? ?printf("文件不存在!\n");
?? ? ??? ?return;
??? ? }


? ?? ?printf("輸入學(xué)生信息(y/n):");
? ?? ?scanf("%s",ch);
?? ?while(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)/*判斷是否要錄入新信息*/
?? ?{
? ? ?? ?printf("number:");
?? ??? ?scanf("%d",&stu[m].num);/*輸入學(xué)生學(xué)號*/
? ? ?? ?for(i=0;i<m;i++)
?? ? ? ??? ?if(stu[i].num==stu[m].num)
?? ? ? ??? ?{
?? ? ? ?? ??? ??? ?printf("number已經(jīng)存在了,按任意鍵繼續(xù)!");
?? ? ? ??? ??? ?getch();
?? ? ? ??? ??? ?fclose(fp);
?? ? ? ??? ??? ?return;
?? ? ? ??? ?}
? ? ??? ?printf("name:");
?? ? ?? ?scanf("%s",stu[m].name);/*輸入學(xué)生姓名*/
? ? ??? ?printf("elective:");
? ? ?? ?scanf("%lf",&stu[m].elec);/*輸入選修課成績*/
? ? ??? ?printf("experiment:");
?? ? ?? ?scanf("%lf",&stu[m].expe);/*輸入實(shí)驗(yàn)課成績*/
? ? ??? ?printf("required course:");
?? ? ?? ?scanf("%lf",&stu[m].requ);/*輸入必修課成績*/
? ? ??? ?stu[m].sum=stu[m].elec+stu[m].expe+stu[m].requ;/*計(jì)算出總成績*/
? ? ??? ?if(fwrite(&stu[m],LEN,1,fp)!=1)/*將新錄入的信息寫入指定的磁盤文件*/
? ? ??? ?{
?? ??? ? ?? ?printf("不能保存!");
?? ??? ? ?? ?getch();
?? ? ?? ?}
? ? ??? ?else
?? ? ?? ?{
?? ??? ? ?? ?printf("%s 被保存!\n",stu[m].name);
?? ??? ? ?? ?m++;
?? ? ?? ?}
? ? ??? ?printf("繼續(xù)?(y/n):");/*詢問是否繼續(xù)*/
? ? ??? ?scanf("%s",ch);
? ?? ?}
? ?? ?fclose(fp);
? ?? ?printf("OK!\n");
}

void show()?? ??? ??? ??? ?//增加data.txt文件不存在或者文件內(nèi)容為空時的顯示?
?{?
?? ?FILE *fp;
? ?? ?int i,m=0;
? ?? ?fp=fopen("data.txt","rb");
? ?? ??
// ??? ?if((fp=fopen("data.txt","a+"))==NULL)/*打開指定文件*/
// ??? ?{?
//?? ? ??? ?printf("文件不存在!\n");
//?? ? ??? ?return;
// ??? ?}
// ??? ?fclose(fp);
// ??? ?if(m==0)
//?? ? ??? ?printf("文件中沒有記錄!\n");
//?? ??? ?return;?? ? ??? ?
? ?? ?while(!feof(fp))
? ?? ?{
? ?? ??? ?if(fread(&stu[m] ,LEN,1,fp)==1)?
? ??? ??? ?m++;
? ??? ?} ?
? ??? ?fclose(fp);
? ??? ?printf("number ?name ? ? ? ? ? elective ? ?experiment ?required ? ?sum\t\n");
? ??? ?for(i=0;i<m;i++)
? ? {?
?? ? ? printf(FORMAT,DATA);/*將信息按指定格式打印*/
? ? }
}
?
void menu()/*自定義函數(shù)實(shí)現(xiàn)菜單功能*/
{
? ?? ?system("cls");
? ?? ?printf("\n\n\n\n");
? ?? ?printf("\t\t|---------------學(xué)生信息管理系統(tǒng)---------------|\n");
? ?? ?printf("\t\t|\t\t\t\t\t ? ? ? |\n");
? ?? ?printf("\t\t|\t\t 1. 錄入學(xué)生信息\t ? ? ? |\n");
? ?? ?printf("\t\t|\t\t 2. 查找學(xué)生信息\t ? ? ? |\n");
? ?? ?printf("\t\t|\t\t 3. 刪除學(xué)生信息\t ? ? ? |\n");
? ?? ?printf("\t\t|\t\t 4. 修改學(xué)生信息\t ? ? ? |\n");
??? ?printf("\t\t|\t\t 5. 插入學(xué)生信息\t ? ? ? |\n");
??? ?printf("\t\t|\t\t 6. 排序\t\t ? ? ? |\n");
? ?? ?printf("\t\t|\t\t 7. 統(tǒng)計(jì)學(xué)生總數(shù)\t ? ? ? |\n");
? ?? ?printf("\t\t|\t\t 8. 顯示所有學(xué)生信息\t ? ? ? |\n");
? ? printf("\t\t|\t\t 0. 退出系統(tǒng)\t\t ? ? ? |\n");
? ? printf("\t\t|\t\t\t\t\t ? ? ? |\n");
? ?? ?printf("\t\t|----------------------------------------------|\n\n");
? ?? ?printf("\t\t\t請選擇(0-8):");
}

void order()/*自定義排序函數(shù)*/
{?
?? ?FILE *fp;
? ?? ?struct student t;
? ?? ?int i=0,j=0,m=0;
? ?? ?if((fp=fopen("data.txt","r+"))==NULL)
? ? {?
?? ??? ?printf("文件不存在!\n");
? ? ? ? return;
? ?? ?}
? ?? ?while(!feof(fp))?
??? ?if(fread(&stu[m] ,LEN,1,fp)==1)?
?? ? ??? ?m++;
? ?? ?fclose(fp);
? ?? ?if(m==0)?
? ?? ?{
?? ? ??? ?printf("文件中沒有記錄!\n");
?? ? ??? ?return;
? ?? ?}
? ?? ?if((fp=fopen("data.txt","wb"))==NULL)
? ? {
?? ? ??? ?printf("文件不存在!\n");
?? ? ??? ?return;
?? ?}
? ? for (i = 0; i < m - 1; i++)
? ? ? ? for (j = i + 1; j < m; j++)/*雙重循環(huán)實(shí)現(xiàn)成績比較并交換*/
? ? ? ? ? ? if (stu[i].sum < stu[j].sum) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?? ??? ? ??? ?t=stu[i];stu[i]=stu[j];stu[j]=t;
?? ??? ?}
?? ?if((fp=fopen("data.txt","wb"))==NULL)
? ? {?
?? ??? ?printf("文件不存在!\n");
?? ??? ?return;
?? ?}
? ?? ?for(i=0;i<m;i++)/*將重新排好序的內(nèi)容重新寫入指定的磁盤文件中*/
? ? ? ?? ?if(fwrite(&stu[i] ,LEN,1,fp)!=1)
? ? ? ??? ?{?
? ? ? ? ?? ?printf("%s 不能保存文件!\n");?
? ? ? ? ?? ?getch();
? ? ? ?? ?}
? ?? ?fclose(fp);
? ?? ?printf("保存成功\n");
}

void del()/*自定義刪除函數(shù)*/ ? /*邏輯:首先判斷data.txt文件是否存在,如果存在,繼續(xù)操作,判斷文件是否為空,不為空,則輸入要刪除的學(xué)生學(xué)號;如果文件不存在
?? ??? ??? ??? ??? ??? ??? ? ? ?返回“文件不存在”,文件內(nèi)容為空則返回“文件中沒有記錄”
?? ??? ??? ??? ??? ??? ??? ??? ?輸入學(xué)號----判斷是否有這個學(xué)號。有:詢問是否刪除,y刪除;n不刪除 ,“找到了記錄,選擇不刪除!”?
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?沒有:“沒有找到這名學(xué)生!”?
?? ??? ??? ??? ??? ??? ??? ??? ?*/?
{?? ?
?? ?FILE *fp;
? ?? ?int snum,i,j,m=0;
? ?? ?char ch[2];
? ?? ?if((fp=fopen("data.txt","r+"))==NULL)?? ??? ?//data.txt文件不存在?
? ? {?
?? ??? ?printf("文件不存在!\n");
?? ??? ?return;
?? ?}
? ?? ?while(!feof(fp)) ?if(fread(&stu[m],LEN,1,fp)==1) m++;
? ?? ?fclose(fp);
? ?? ?if(m==0)?
? ?? ?{
?? ? ??? ?printf("文件中沒有記錄!\n");?? ??? ??? ?//data.txt文件存在,但里面沒有內(nèi)容?
?? ? ??? ?return;
? ?? ?}
??
? ?? ?printf("請輸入學(xué)生學(xué)號");
? ?? ?scanf("%d",&snum);?
? ? for(i=0;i<m;i++) ? ? ? ??? ?
?? ? ?? ?if(snum==stu[i].num)
?? ? ? ?? ?{?? ??? ? ??
? ? ??? ??? ?printf("找到了這條記錄,是否刪除?(y/n)");
? ? ??? ??? ?scanf("%s",ch);
? ? ? ?? ??? ?if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)/*判斷是否要進(jìn)行刪除*/
? ? ? ?? ??? ?{
?? ? ??? ??? ??? ?for(j=i;j<m;j++)
?? ? ? ? ??? ??? ?stu[j]=stu[j+1];/*將后一個記錄移到前一個記錄的位置*/
?? ? ? ? ? ?? ??? ?m--;/*記錄的總個數(shù)減1*/
? ? ? ?? ??? ??? ?if((fp=fopen("data.txt","wb"))==NULL)
? ? ??? ??? ??? ?{?
?? ??? ??? ??? ? ?? ?printf("文件不存在\n");
?? ??? ??? ??? ??? ?return;
?? ??? ??? ??? ?}
? ?? ??? ??? ??? ?for(j=0;j<m;j++)/*將更改后的記錄重新寫入指定的磁盤文件中*/
? ? ? ?? ??? ??? ?if(fwrite(&stu[j] ,LEN,1,fp)!=1)
? ? ? ??? ??? ??? ?{?
?? ??? ??? ??? ? ? ?? ?printf("can not save!\n");
? ? ? ?? ??? ??? ??? ?getch();
?? ??? ??? ??? ?}
? ?? ??? ??? ??? ?fclose(fp);
? ?? ??? ??? ??? ?printf("刪除成功!\n");
? ? ? ?? ??? ?}else{
? ? ? ?? ??? ??? ?printf("找到了記錄,選擇不刪除!");?
?? ? ??? ??? ?}
? ?? ??? ??? ??? ?break;
? ?? ??? ?}
?? ??? ?else
?? ??? ?{
?? ??? ? ??? ?printf("沒有找到這名學(xué)生!\n");/*未找到要查找的信息*/ ?
?? ??? ?}
}

void search()/*自定義查找函數(shù)*/?? ??? ??? ?//新增:搜索文件中沒有的學(xué)號時的情況?
{?
?? ?FILE *fp;
? ?? ?int snum,i,m=0;
? ?? ?if((fp=fopen("data.txt","rb"))==NULL)
? ? ?{?
?? ? ?? ?printf("文件不存在!\n");
?? ??? ?return;
?? ?}
? ?? ?while(!feof(fp)) ?
?? ? ?if(fread(&stu[m],LEN,1,fp)==1)?
?? ? ?m++;
? ?? ?fclose(fp);
? ?? ?if(m==0)?
?? ?{
?? ? ??? ?printf("文件中沒有記錄!\n");
?? ? ??? ?return;
?? ?}
? ?? ?printf("請輸入number:");
? ?? ?scanf("%d",&snum);
? ?? ?for(i=0;i<m;i++)
? ? if(snum==stu[i].num)/*查找輸入的學(xué)號是否在記錄中*/
? ? {?
? ? ? ? ? printf("number ?name ? ? ? ? ? elective ? ?experiment ?required ? ?sum\t\n");
? ? ? ? ? printf(FORMAT,DATA);/*將查找出的結(jié)果按指定格式輸出*/
?? ? ?break;
? ? } ??
? ?? ?if(i==m) printf("沒有找到這名學(xué)生!\n");/*未找到要查找的信息*/
}

void modify()/*自定義修改函數(shù)*/?? ??? ??? ?//修正:要修改文件中沒有記錄的學(xué)號時,還是說“找到了。。。”?
{
? ?? ?FILE *fp;
? ?? ?struct student t;
? ?? ?int i=0,j=0,m=0,snum; ? ? ?? ?
? ?? ?if((fp=fopen("data.txt","r+"))==NULL)
? ? {?
?? ??? ?printf("文件不存在!\n");
? ? ? ? return;
? ?? ?}
? ?? ?while(!feof(fp))?
? ?? ??? ?if(fread(&stu[m] ,LEN,1,fp)==1)?
?? ??? ??? ?m++; ??? ?
? ?? ?if(m==0)?
? ?? ?{
?? ? ??? ?printf("文件中沒有記錄!\n");
?? ??? ?fclose(fp);
?? ? ??? ?return;
? ?? ?}
? ?? ?show();
? ?? ?printf("請輸入要修改的學(xué)生number: ");
? ?? ?scanf("%d",&snum);
? ?? ?for(i=0;i<m;i++)?? ??? ? ?
?? ? ??? ?if(snum==stu[i].num)/*檢索記錄中是否有要修改的信息*/
?? ??? ? ?{
?? ? ??? ??? ?printf("找到了這名學(xué)生,可以修改他的信息!\n");?? ??
?? ? ??? ??? ?printf("name:");
?? ? ??? ??? ?scanf("%s",stu[i].name);/*輸入名字*/
? ? ? ??? ? ? ?? ?printf("elective:");
?? ? ??? ??? ?scanf("%lf",&stu[i].elec);/*輸入選修課成績*/
? ? ? ?? ? ? ?printf("experiment:");
?? ? ??? ??? ?scanf("%lf",&stu[i].expe);/*輸入實(shí)驗(yàn)課成績*/
? ? ? ?? ? ? ?printf("required course:");
?? ? ??? ??? ?scanf("%lf",&stu[i].requ);/*輸入必修課成績*/
?? ? ??? ??? ?printf("修改成功!");
?? ? ??? ??? ?stu[i].sum=stu[i].elec+stu[i].expe+stu[i].requ;
?? ?
?? ??? ??? ?if((fp=fopen("data.txt","wb"))==NULL)
? ? ??? ??? ?{?
?? ??? ? ?? ??? ?printf("can not open\n");
?? ??? ??? ? ?? ?return;
?? ??? ??? ?}
?? ? ??? ??? ?for(j=0;j<m;j++)/*將新修改的信息寫入指定的磁盤文件中*/
?? ? ??? ??? ?if(fwrite(&stu[j] ,LEN,1,fp)!=1)
? ? ? ??? ??? ?{?
?? ??? ? ? ?? ??? ?printf("can not save!");?
?? ??? ? ? ?? ??? ?getch();?
?? ??? ??? ?}
?? ? ?? ??? ?fclose(fp); ?
?? ? ?? ??? ?break;
? ?? ??? ?}
? ?? ??? ?if(i==m) ?? ?
?? ??? ? ??? ?printf("沒有找到這名學(xué)生!\n");/*未找到要查找的信息*/?? ?
}

void insert()/*自定義插入函數(shù)*/
{?
?? ?FILE *fp;
? ?? ?int i,j,k,m=0,snum;
? ?? ?if((fp=fopen("data.txt","r+"))==NULL)
? ? {?
?? ??? ?printf("文件不存在!\n");
?? ??? ?return;
?? ?}
? ?? ?while(!feof(fp)) ?
??? ??? ?if(fread(&stu[m],LEN,1,fp)==1)?
?? ??? ? m++;
? ?? ?if(m==0)?
?? ?{
?? ? ??? ?printf("文件中沒有記錄!\n");
? ?? ??? ?fclose(fp);
? ?? ??? ?return;
? ?? ?}
? ?? ?printf("請輸入要插入的位置(number):\n");
? ?? ?scanf("%d",&snum);/*輸入要插入的位置*/
? ? for (i = 0; i < m; i++)//遍歷
? ? ? ? if (snum == stu[i].num)//判斷是否存在
? ? ? ? ? ? break; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?? ? ??? ?for(j=m-1;j>i;j--)//學(xué)號下面的內(nèi)容
? ? ? ? ? ??? ?stu[j+1]=stu[j];/*從最后一條記錄開始均向后移一位*/
?? ? ??? ?printf("現(xiàn)在請輸入要插入的學(xué)生信息.\n");
? ? ? ? ? ?? ?printf("number:");
?? ? ??? ?scanf("%d",&stu[i+1].num);
?? ? ??? ?for(k=0;k<m;k++)//判斷是否存在
?? ? ? ??? ?if(stu[k].num==stu[m].num)
?? ? ? ??? ?{
?? ? ? ??? ??? ?printf("number已經(jīng)存在,按任意鍵繼續(xù)!");
?? ? ? ??? ??? ?getch();
?? ? ? ??? ??? ?fclose(fp);
?? ? ? ??? ??? ?return;
?? ? ? ??? ?}
?? ? ??? ?printf("name:");
?? ? ??? ?scanf("%s",stu[i+1].name);
? ? ? ? ??? ? printf("elective:");
?? ? ??? ?scanf("%lf",&stu[i+1].elec);
? ? ? ? ? ?? ?printf("experiment:");
?? ? ??? ?scanf("%lf",&stu[i+1].expe);
? ? ? ? ? ?? ?printf("required course:");
?? ? ??? ?scanf("%lf",&stu[i+1].requ);
?? ? ?? ? stu[i+1].sum=stu[i+1].elec+stu[i+1].expe+stu[i+1].requ;
?? ? ?? ? printf("插入成功!按任意鍵返回主界面!");?
?? ? ?? ? if((fp=fopen("data.txt","wb"))==NULL)
? ? ?? ?{?
?? ? ?? ??? ?printf("不能打開!\n");
?? ??? ??? ? return;
?? ??? ?}
?? ? ??? ?for(k=0;k<=m;k++)
?? ? ??? ?if(fwrite(&stu[k] ,LEN,1,fp)!=1)/*將修改后的記錄寫入磁盤文件中*/
? ? ? ??? ?{?
?? ??? ? ? printf("不能保存!");?
?? ??? ? ? getch();?
?? ??? ?}
? ?? ?fclose(fp);
}

void total()
{?
?? ?FILE *fp;
? ?? ?int m=0;
? ?? ?if((fp=fopen("data.txt","r+"))==NULL)
? ? ?{?
?? ? ?? ?printf("文件不存在!\n");
?? ??? ? return;
?? ?}
? ?? ?while(!feof(fp)) ?
?? ? ??? ?if(fread(&stu[m],LEN,1,fp)==1)?
?? ??? ? ??? ?m++;?? ??? ??? ?/*統(tǒng)計(jì)記錄個數(shù)即學(xué)生個數(shù)*/
? ?? ?if(m==0) {printf("no record!\n");fclose(fp);return;}
? ?? ?printf("這個班級一共有 %d 名學(xué)生!\n",m);/*將統(tǒng)計(jì)的個數(shù)輸出*/
? ?? ?fclose(fp);
}

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

相關(guān)文章

  • C/C++ 公有繼承、保護(hù)繼承和私有繼承的對比詳解

    C/C++ 公有繼承、保護(hù)繼承和私有繼承的對比詳解

    這篇文章主要介紹了C/C++ 公有繼承、保護(hù)繼承和私有繼承的區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • Qt實(shí)現(xiàn)文本編輯器(二)

    Qt實(shí)現(xiàn)文本編輯器(二)

    這篇文章主要介紹了利用Qt實(shí)現(xiàn)的一個文本編輯器。本文將具體講解下是如何實(shí)現(xiàn)菜單欄以及工具欄上對應(yīng)的需求,感興趣的可以動手試一試
    2022-01-01
  • C語言自定義軍旗游戲源碼

    C語言自定義軍旗游戲源碼

    這篇文章主要為大家詳細(xì)介紹了C語言自定義軍旗游戲源碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • C語言中continue的用法詳解

    C語言中continue的用法詳解

    在C語言當(dāng)中的continue和break語句是有一些類似的,但是它并不是強(qiáng)制進(jìn)行終止的,下面這篇文章主要給大家介紹了關(guān)于C語言中continue用法的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • 溫故C語言內(nèi)存管理

    溫故C語言內(nèi)存管理

    這篇文章主要介紹了 C語言內(nèi)存管理的相關(guān)資料,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-05-05
  • QT編寫窗口插件實(shí)現(xiàn)調(diào)用窗口的自適應(yīng)

    QT編寫窗口插件實(shí)現(xiàn)調(diào)用窗口的自適應(yīng)

    這篇文章主要為大家詳細(xì)介紹了QT編寫窗口插件實(shí)現(xiàn)調(diào)用窗口的自適應(yīng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • Qt數(shù)據(jù)庫應(yīng)用之實(shí)現(xiàn)數(shù)據(jù)分組導(dǎo)出

    Qt數(shù)據(jù)庫應(yīng)用之實(shí)現(xiàn)數(shù)據(jù)分組導(dǎo)出

    這篇文章主要為大家詳細(xì)介紹了如何利用Qt實(shí)現(xiàn)數(shù)據(jù)庫數(shù)據(jù)分組導(dǎo)出,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)或工作有一定參考價值,需要的可以了解一下
    2022-06-06
  • C語言實(shí)現(xiàn)計(jì)算器的兩種方法

    C語言實(shí)現(xiàn)計(jì)算器的兩種方法

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)計(jì)算器的兩種方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • C++中Lambda表達(dá)式的語法與實(shí)例

    C++中Lambda表達(dá)式的語法與實(shí)例

    C++ 11 中的 Lambda 表達(dá)式用于定義并創(chuàng)建匿名的函數(shù)對象,以簡化編程工作,下面這篇文章主要給大家介紹了關(guān)于C++中Lambda表達(dá)式的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-10-10
  • C++生成key-value鍵值的三種方式總結(jié)

    C++生成key-value鍵值的三種方式總結(jié)

    這篇文章主要為大家詳細(xì)介紹了C++中生成key-value鍵值的三種方式,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以了解下
    2023-09-09

最新評論