国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【C語言】#文件操作#有5個(gè)學(xué)生,每個(gè)學(xué)生有3門課程的成績,從鍵盤輸入以上數(shù)據(jù)(包括學(xué)號、姓名、3門課成績),計(jì)算出平均成績,將原有數(shù)據(jù)和計(jì)算出的平均分?jǐn)?shù)存放在磁盤文件stud中。

這篇具有很好參考價(jià)值的文章主要介紹了【C語言】#文件操作#有5個(gè)學(xué)生,每個(gè)學(xué)生有3門課程的成績,從鍵盤輸入以上數(shù)據(jù)(包括學(xué)號、姓名、3門課成績),計(jì)算出平均成績,將原有數(shù)據(jù)和計(jì)算出的平均分?jǐn)?shù)存放在磁盤文件stud中。。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

題目:

(1)有5個(gè)學(xué)生,每個(gè)學(xué)生有3門課程的成績,從鍵盤輸入以上數(shù)據(jù)(包括學(xué)號、姓名、3門課成績),計(jì)算出平均成績,將原有數(shù)據(jù)和計(jì)算出的平均分?jǐn)?shù)存放在磁盤文件stud中。

設(shè)5名學(xué)生的學(xué)號、姓名和3門課成績?nèi)缦拢?/p>

【C語言】#文件操作#有5個(gè)學(xué)生,每個(gè)學(xué)生有3門課程的成績,從鍵盤輸入以上數(shù)據(jù)(包括學(xué)號、姓名、3門課成績),計(jì)算出平均成績,將原有數(shù)據(jù)和計(jì)算出的平均分?jǐn)?shù)存放在磁盤文件stud中。

在向文件stud寫入數(shù)據(jù)后,應(yīng)檢查驗(yàn)證stud文件中的內(nèi)容是否正確。

編寫程序:

#include<stdio.h>
#include<stdlib.h>
#define N 5
struct Student{		//定義結(jié)構(gòu)體 
	char id[10];		//學(xué)號 
	char name[10];		//姓名 
	float score[3];		//3科成績 
	float ave;			//平均分 
}stu[N];				//定義結(jié)構(gòu)體數(shù)組 
/*-----學(xué)生信息輸入函數(shù)------*/
void input(void){
	int i,j; 
	for(i=0;i<N;i++){
		printf("輸入第%d個(gè)學(xué)生信息:\n",i+1);
	scanf("%s %s %f %f %f",&stu[i].id,&stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);		//接收學(xué)生信息 
		stu[i].ave=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3;	//計(jì)算每個(gè)學(xué)生平均分 
	}
}
/*-----學(xué)生信息寫入文件函數(shù)----*/
void wri(void){
	FILE *fp;				//定義文件指針 
	int i;
	fp=fopen("stud","w");	//為了輸出數(shù)據(jù),打開一個(gè)文件,若么有該文件就新建一個(gè) 
	for(i=0;i<N;i++)
		if(fwrite(&stu[i],sizeof(struct Student),1,fp)!=1){	//寫入數(shù)據(jù)信息 
			printf("\n寫入錯(cuò)誤!?。n");
			exit(0);				 
		}
	fp=fopen("stud","r");		//打開剛才的文件 
	puts("----------------------------------------------");
	puts("學(xué)號\t姓名\t成績1\t成績2\t成績3\t平均分");		//表頭樣式 
	puts("----------------------------------------------");
	for(i=0;i<N;i++){
		fread(&stu[i],sizeof(struct Student),1,fp);	//每次讀取fp所指文件中的長度為sizeof所得字節(jié)數(shù)的數(shù)據(jù)項(xiàng) 
	printf("%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].id,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].ave); 		//輸出剛才寫入文件的信息	
	}
	fclose(fp);
}
int main(){
	input();		//調(diào)用學(xué)生信息輸入函數(shù) 
	wri();			//調(diào)用學(xué)生信息寫入文件函數(shù)
	return 0;
}

?程序運(yùn)行結(jié)果:程序運(yùn)行生成了一個(gè)名為stud( ???【C語言】#文件操作#有5個(gè)學(xué)生,每個(gè)學(xué)生有3門課程的成績,從鍵盤輸入以上數(shù)據(jù)(包括學(xué)號、姓名、3門課成績),計(jì)算出平均成績,將原有數(shù)據(jù)和計(jì)算出的平均分?jǐn)?shù)存放在磁盤文件stud中。????)的文件,并將輸入的

?信息寫入了這個(gè)文件。

【C語言】#文件操作#有5個(gè)學(xué)生,每個(gè)學(xué)生有3門課程的成績,從鍵盤輸入以上數(shù)據(jù)(包括學(xué)號、姓名、3門課成績),計(jì)算出平均成績,將原有數(shù)據(jù)和計(jì)算出的平均分?jǐn)?shù)存放在磁盤文件stud中。
(2)將上題stud文件中的學(xué)生數(shù)據(jù)按平均分進(jìn)行排序處理,將已排序的學(xué)生數(shù)據(jù)存入一個(gè)新文件stu_sort中。在向文件stu_sort寫入數(shù)據(jù)后,應(yīng)檢查驗(yàn)證stu_sort文件中的內(nèi)容是否正確。

?編寫程序

#include<stdio.h>
#include<stdlib.h>
#define N 5
struct Student{		//定義結(jié)構(gòu)體 
	char id[10];		//學(xué)號 
	char name[10];		//姓名 
	float score[3];		//3科成績 
	float ave;			//平均分 
}stu[N],temp;			//定義結(jié)構(gòu)體數(shù)組,和一個(gè)結(jié)構(gòu)體變量 
/*---對上次文件中的數(shù)據(jù)排序函數(shù)--*/
void stu_sort(){
	FILE *fp;					//定義文件指針 
	int i,j,count=0,max;		 
	fp=fopen("stud","r");		//以度的方式打開剛才的文件 
	puts("原來的:");
	puts("----------------------------------------------");
	puts("學(xué)號\t姓名\t成績1\t成績2\t成績3\t平均分");		//表頭樣式 
	puts("----------------------------------------------");
	for(i=0;i<N;i++){
		fread(&stu[i],sizeof(struct Student),1,fp);	//每次讀取fp所指文件中的長度為sizeof所得字節(jié)數(shù)的數(shù)據(jù)項(xiàng) 
	printf("%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].id,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].ave); //輸出所讀原來的內(nèi)容 
	}
	//冒泡排序 
	for(j=0;j<N;j++)
		for(i=0;i<N-j-1;i++)
			if(stu[i].ave<stu[i+1].ave){
				temp=stu[i+1];
				stu[i+1]=stu[i];
				stu[i]=temp;
			}
	fp=fopen("stu_sort","w");			//將排好序的結(jié)構(gòu)體數(shù)組寫入新的文件中 
	for(i=0;i<N;i++)	
		if(fwrite(&stu[i],sizeof(struct Student),1,fp)!=1){			//寫入數(shù)據(jù)信息 
			printf("\n寫入錯(cuò)誤?。?!\n");
			exit(0);				 
		}
	fp=fopen("stu_sort","r");		//再次打開需要將信息排序的的文件 
	puts("\n現(xiàn)在的:"); 
	puts("----------------------------------------------");
	puts("學(xué)號\t姓名\t成績1\t成績2\t成績3\t平均分");		//表頭樣式 
	puts("----------------------------------------------");
	for(i=0;i<N;i++){
		fread(&stu[i],sizeof(struct Student),1,fp);		//每次讀取fp所指文件中的長度為sizeof所得字節(jié)數(shù)的數(shù)據(jù)項(xiàng) 
	printf("%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].id,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].ave); //輸出排序好的數(shù)組	
	}
	fclose(fp);		//關(guān)閉文件 
}
int main() {
	stu_sort();		//調(diào)用文件內(nèi)容排序函數(shù) 
	return 0;
}

程序運(yùn)行結(jié)果:程序運(yùn)行生成了一個(gè)名為stu_sort( ???【C語言】#文件操作#有5個(gè)學(xué)生,每個(gè)學(xué)生有3門課程的成績,從鍵盤輸入以上數(shù)據(jù)(包括學(xué)號、姓名、3門課成績),計(jì)算出平均成績,將原有數(shù)據(jù)和計(jì)算出的平均分?jǐn)?shù)存放在磁盤文件stud中。???????)的文件,并將輸入的信息寫入了這個(gè)文件。

【C語言】#文件操作#有5個(gè)學(xué)生,每個(gè)學(xué)生有3門課程的成績,從鍵盤輸入以上數(shù)據(jù)(包括學(xué)號、姓名、3門課成績),計(jì)算出平均成績,將原有數(shù)據(jù)和計(jì)算出的平均分?jǐn)?shù)存放在磁盤文件stud中。

? (3)將上題已排序的學(xué)生成績文件進(jìn)行插入處理。插入一個(gè)學(xué)生的3門課成績。程序先計(jì)算新插入學(xué)生的平均成績,然后將它按成績高低順序插入,插入后建立一個(gè)新文件。?在向新文件stu_new寫入數(shù)據(jù)后,應(yīng)檢查驗(yàn)證stu_new文件中的內(nèi)容是否正確

要插入的學(xué)生數(shù)據(jù)為:

【C語言】#文件操作#有5個(gè)學(xué)生,每個(gè)學(xué)生有3門課程的成績,從鍵盤輸入以上數(shù)據(jù)(包括學(xué)號、姓名、3門課成績),計(jì)算出平均成績,將原有數(shù)據(jù)和計(jì)算出的平均分?jǐn)?shù)存放在磁盤文件stud中。

?編寫程序:

#include<stdio.h>
#include<stdlib.h>
#define N 6			//原來的5人再加1人 
struct Student{		//定義結(jié)構(gòu)體 
	char id[10];		//學(xué)號 
	char name[10];		//姓名 
	float score[3];		//3科成績 
	float ave;			//平均分 
}stu[N],temp;			//定義結(jié)構(gòu)體數(shù)組,和一個(gè)結(jié)構(gòu)體變量 
/*----插入排序隊(duì)列函數(shù)----*/
void stu_sort_new(struct Student stu0){
	FILE *fp;					//定義文件指針 
	int i,count; 
	fp=fopen("stu_sort","r");	//讀入剛才內(nèi)容排好序的文件 
	puts("原來的:");
	puts("----------------------------------------------");
	puts("學(xué)號\t姓名\t成績1\t成績2\t成績3\t平均分");		//表頭樣式 
	puts("----------------------------------------------");
	for(i=0;i<N-1;i++){				//因?yàn)樵瓉碇挥形迦耍赃@次只讀入N-1=5人 
		fread(&stu[i],sizeof(struct Student),1,fp);	//每次讀取fp所指文件中的長度為sizeof所得字節(jié)數(shù)的數(shù)據(jù)項(xiàng) 
	printf("%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].id,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].ave); 		//輸出所讀原來的內(nèi)容 
	}
	//將原來文件中的個(gè)數(shù)據(jù)項(xiàng)的平均分和傳入的數(shù)據(jù)的平均分項(xiàng)對比,找出應(yīng)該插入位置 
	for(i=0;i<N-1;i++)			//因?yàn)楝F(xiàn)在數(shù)組只有五個(gè)人的信息,所以不用檢查數(shù)組尾部了
		if(stu0.ave>stu[i].ave){
			count=i; 		//記錄插入位置 
			break;
		}
	for(i=N-1;i>=count;i--)
		stu[i]=stu[i-1];		//將插入位置及其后的數(shù)據(jù)向后挪 
	stu[count]=stu0;
	fp=fopen("stu_new","w");		//再次打開需要將信息排序的的文件 
	for(i=0;i<N;i++)	
		if(fwrite(&stu[i],sizeof(struct Student),1,fp)!=1){	  //寫入數(shù)據(jù)信息 
			printf("\n寫入錯(cuò)誤?。?!\n");
			exit(0);
		}
	fp=fopen("stu_new","r");		//再次打開需要將信息排序的的文件,檢查其中的內(nèi)容 
	puts("\n現(xiàn)在的:"); 
	puts("----------------------------------------------");
	puts("學(xué)號\t姓名\t成績1\t成績2\t成績3\t平均分");		//表頭樣式 
	puts("----------------------------------------------");
	for(i=0;i<N;i++){
		fread(&stu[i],sizeof(struct Student),1,fp);	//每次讀取fp所指文件中的長度為sizeof所得字節(jié)數(shù)的數(shù)據(jù)項(xiàng) 
	printf("%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].id,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].ave);			 //輸出內(nèi)容重新排序好的文件內(nèi)容 
	}
	fclose(fp);		//關(guān)閉文件 
} 
int main(){
	struct Student stu0;		//定義需要結(jié)構(gòu)體變量 
	printf("輸入要插入的學(xué)生信息:\n");
	scanf("%s %s %f %f %f",&stu0.id,&stu0.name,&stu0.score[0],&stu0.score[1],&stu0.score[2]);
	stu0.ave=(stu0.score[0]+stu0.score[1]+stu0.score[2])/3;		//計(jì)算平均分 
	stu_sort_new(stu0);			//調(diào)用插入排序隊(duì)列函數(shù) 
	return 0;	
}

程序運(yùn)行結(jié)果:程序運(yùn)行生成了一個(gè)名為stu_new(?【C語言】#文件操作#有5個(gè)學(xué)生,每個(gè)學(xué)生有3門課程的成績,從鍵盤輸入以上數(shù)據(jù)(包括學(xué)號、姓名、3門課成績),計(jì)算出平均成績,將原有數(shù)據(jù)和計(jì)算出的平均分?jǐn)?shù)存放在磁盤文件stud中。?)的文件,并將輸入的信息寫入了這個(gè)文件。

【C語言】#文件操作#有5個(gè)學(xué)生,每個(gè)學(xué)生有3門課程的成績,從鍵盤輸入以上數(shù)據(jù)(包括學(xué)號、姓名、3門課成績),計(jì)算出平均成績,將原有數(shù)據(jù)和計(jì)算出的平均分?jǐn)?shù)存放在磁盤文件stud中。文章來源地址http://www.zghlxwxcb.cn/news/detail-441500.html

到了這里,關(guān)于【C語言】#文件操作#有5個(gè)學(xué)生,每個(gè)學(xué)生有3門課程的成績,從鍵盤輸入以上數(shù)據(jù)(包括學(xué)號、姓名、3門課成績),計(jì)算出平均成績,將原有數(shù)據(jù)和計(jì)算出的平均分?jǐn)?shù)存放在磁盤文件stud中。的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • C語言7:輸入若干個(gè)學(xué)生的成績,統(tǒng)計(jì)出平均成績

    C語言7:輸入若干個(gè)學(xué)生的成績,統(tǒng)計(jì)出平均成績

    在程序編輯區(qū)編寫程序,給定程序功能是: 從鍵盤上輸入若干個(gè)學(xué)生的成績,統(tǒng)計(jì)出平均成績,并輸出低于平均分的學(xué)生成績,用輸入負(fù)數(shù)結(jié)束輸入。 例如輸入: 70? 80? 90? -1 輸出: ave =80.00 --------OUTPUT----------- 70.0 程序有兩個(gè)空(1)、(2)需要補(bǔ)充完整。并將程序調(diào)試出所需的結(jié)果

    2024年02月06日
    瀏覽(20)
  • C語言:輸入學(xué)生信息(學(xué)號姓名成績)并按成績高低升序輸出

    C語言:輸入學(xué)生信息(學(xué)號姓名成績)并按成績高低升序輸出

    定義學(xué)生結(jié)構(gòu)體Student(含學(xué)號、姓名、成績)和排序函數(shù)sort,該函數(shù)使用冒泡排序法按成績升序排序。在主函數(shù)中輸入5個(gè)學(xué)生的學(xué)號、姓名和成績,調(diào)用sort函數(shù)對學(xué)生數(shù)據(jù)排序,最后輸出排序后的學(xué)生全部信息。 結(jié)構(gòu)體數(shù)組的元素輸入輸出。 結(jié)構(gòu)體作為參數(shù)傳遞。 冒泡排序

    2024年02月12日
    瀏覽(20)
  • C語言課程設(shè)計(jì):學(xué)生成績信息管理系統(tǒng)(排序、平均分、總分)詳解

    C語言課程設(shè)計(jì):學(xué)生成績信息管理系統(tǒng)(排序、平均分、總分)詳解

    1、需求分析 利用C語言編寫一個(gè)可以對學(xué)生成績信息進(jìn)行管理的系統(tǒng) 0、退出系統(tǒng) 1、錄入學(xué)生信息和成績 2、打印學(xué)生信息 3、統(tǒng)計(jì)學(xué)生人數(shù) 4、查找學(xué)生信息 5、修改學(xué)生信息 6、刪除學(xué)生信息 7、排序?qū)W生成績 8、生成學(xué)生信息文件 9、讀取文件學(xué)生信息 10、輸出各科成績不

    2024年02月11日
    瀏覽(32)
  • C語言程序設(shè)計(jì):某班有5名同學(xué),建立一個(gè)學(xué)生的簡單信息表,包括學(xué)號、姓名、3門課程的成績,編寫程序,計(jì)算每名學(xué)生的平均成績及名次。

    題目內(nèi)容: 某班有5名同學(xué),建立一個(gè)學(xué)生的簡單信息表,包括學(xué)號、姓名、3門課程的成績,編寫程序,計(jì)算每名學(xué)生的平均成績及名次。(注:定義一個(gè)結(jié)構(gòu)體類型,用結(jié)構(gòu)指針作為函數(shù)參數(shù)) 輸入格式: %ld %s %f %f %f 輸出格式: %-9ld%-10s%-5.1f%-5.1f%-8.1f%-10.1f%-dn 輸入樣例:

    2024年02月02日
    瀏覽(25)
  • 【期末課程設(shè)計(jì)】學(xué)生成績管理系統(tǒng)

    【期末課程設(shè)計(jì)】學(xué)生成績管理系統(tǒng)

    因其獨(dú)特,因其始終如一 文章目錄 一、學(xué)生成績管理系統(tǒng)介紹 二、學(xué)生成績管理系統(tǒng)設(shè)計(jì)思路 三、源代碼 1.?test.c? 2.?Student Management System.c 3.Stu_System.c 4.Teacher.c 5.Student Management System.h?? 前言: 學(xué)生成績管理系統(tǒng)含教師登錄入口和學(xué)生登錄入口,可實(shí)現(xiàn)學(xué)生信息的添加,刪

    2024年02月16日
    瀏覽(22)
  • Java課程設(shè)計(jì)——學(xué)生成績管理系統(tǒng)

    Java課程設(shè)計(jì)——學(xué)生成績管理系統(tǒng)

    1 需求分析 1.1 需求分析概述 需求分析是開發(fā)軟件系統(tǒng)的重要環(huán)節(jié),是系統(tǒng)開發(fā)的第一步和基礎(chǔ)環(huán)節(jié)。通過需求分析充分認(rèn)識(shí)系統(tǒng)的目標(biāo)、系統(tǒng)的各個(gè)組成部分、各部分的任務(wù)職責(zé)、工作流程、工作中使用的各種數(shù)據(jù)及數(shù)據(jù)結(jié)構(gòu)、各部門的業(yè)務(wù)關(guān)系和數(shù)據(jù)流程等, 為系統(tǒng)設(shè)計(jì)

    2024年02月03日
    瀏覽(23)
  • C++課程設(shè)計(jì)——學(xué)生成績管理系統(tǒng)

    C++課程設(shè)計(jì)——學(xué)生成績管理系統(tǒng)

    今天清理電腦偶爾發(fā)現(xiàn)一個(gè)我剛學(xué)編程時(shí)用c++寫的一份課程設(shè)計(jì),使用到簡單的鏈表,結(jié)構(gòu)體,c++類與對象的知識(shí)——學(xué)生成績管理系統(tǒng)。 ~~ 系統(tǒng)結(jié)構(gòu): 管理員模式 教師模式 學(xué)生模式 實(shí)現(xiàn)了對學(xué)生成績及信息的增刪改查以及排序。 效果圖 主菜單 管理員模式菜單 源代碼

    2024年02月16日
    瀏覽(22)
  • 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì):學(xué)生成績管理系統(tǒng)

    數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì):學(xué)生成績管理系統(tǒng)

    目 ?錄 第一章 ??需求分析 第二章 概要設(shè)計(jì) 第三章 詳細(xì)設(shè)計(jì) 第四章 測試報(bào)告 第五章 安裝及使用 第六章 項(xiàng)目總結(jié) 第七章 源碼 一.需求分析 ? ? ? ?學(xué)生成績管理是一個(gè)學(xué)校不可缺少的部分,它的內(nèi)容對于學(xué)校的管理者和學(xué)生以及學(xué)生家長來說都至關(guān)重要,所以一個(gè)良好

    2024年02月02日
    瀏覽(29)
  • 【python課程作業(yè)】python學(xué)生成績管理系統(tǒng)

    功能介紹 平臺(tái)采用B/S結(jié)構(gòu),后端采用主流的Python語言進(jìn)行開發(fā),前端采用主流的Vue.js進(jìn)行開發(fā)。給舍友做的課程作業(yè)。 功能包括:成績管理、學(xué)生管理、課程管理、班級管理、用戶管理、日志管理、系統(tǒng)信息模塊。 源碼地址 https://github.com/geeeeeeeek/python_score 演示地址 http:/

    2024年03月13日
    瀏覽(26)
  • 48基于java的學(xué)生課程成績系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    本章節(jié)給大家?guī)硪粋€(gè)基于java的學(xué)生課程成績管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn),可適用于學(xué)生學(xué)生課程管理系統(tǒng),學(xué)生成績管理系統(tǒng),教務(wù)課程管理系統(tǒng),教務(wù)系統(tǒng),成績系統(tǒng),課程系統(tǒng),校園管理系統(tǒng),校園課程管理系統(tǒng),大學(xué)校園課程管理系統(tǒng)等等。 學(xué)生成績管理系統(tǒng)是學(xué)校日常

    2024年02月08日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包