操作系统原理实验Word文档下载推荐.docx
- 文档编号:20640811
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:63
- 大小:447.57KB
操作系统原理实验Word文档下载推荐.docx
《操作系统原理实验Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《操作系统原理实验Word文档下载推荐.docx(63页珍藏版)》请在冰豆网上搜索。
//人数
structstudent
{
chars[3];
//姓名
floatscore[3];
//成绩
doubleavg[2];
//平均成绩
intrank;
//名次
}st[1000];
//定义学生结构体
doubleavge[5];
//课程平均成绩
doublevar[5];
//方差
doublesta_dev[5];
//标准差
if((fp=fopen("
in.txt"
"
r"
))==NULL)
printf("
cannotopenthisfile\n"
exit(0);
}
while(fgetc(fp)!
='
\n'
)
{}
j=-1;
do
j++;
fscanf(fp,"
%s%f%f%f%f%f"
&
st[j].s,&
st[j].score[0],&
st[j].score[1],&
st[j].score[2],&
st[j].score[3],&
st[j].score[4]);
st[j].rank=1;
}while(fgetc(fp)!
=EOF);
//输入
j--;
for(i=0;
i<
=j;
i++)
st[i].avg[1]=(st[i].score[0]+st[i].score[1]+st[i].score[2]+st[i].score[3]+st[i].score[4])/(double)5.0;
}//求平均成绩
for(k=i+1;
k<
k++)
{
if(st[i].avg[1]<
st[k].avg[1])
st[i].rank++;
elseif(st[i].avg[1]>
st[k].rank++;
}
printf("
namescore1score2score3score4score5averagerank\n"
fprintf(fp2,"
//输出表头
%s%g%g%g%g%g%.4lf%d\n"
st[i].s,st[i].score[0],st[i].score[1],st[i].score[2],st[i].score[3],st[i].score[4],st[i].avg[1],st[i].rank);
fprintf(fp2,"
}//输出学生成绩及平均成绩
i<
=4;
i++)
{avge[i]=0;
}
for(k=0;
k<
k++)
avge[i]+=st[k].score[i];
avge[i]/=5;
average%.2lf%.2lf%.2lf%.2lf%.2lf----\n"
avge[0],avge[1],avge[2],avge[3],avge[4]);
//课程的平均成绩
{var[i]=0;
var[k]+=(st[i].score[k]-avge[k])*(st[i].score[k]-avge[k]);
方差%.2lf%.2lf%.2lf%.2lf%.2lf----\n"
var[0],var[1],var[2],var[3],var[4]);
=5;
sta_dev[i]=sqrt(var[i]);
标准差%.2lf%.2lf%.2lf%.2lf%.2lf----\n"
sta_dev[0],sta_dev[1],sta_dev[2],sta_dev[3],sta_dev[4]);
//方差和标准差
fclose(fp);
fclose(fp2);
方法二:
文正学院08计算机顾健同学。
#include<
inta[5][5],b[5][7],c[5]={0},d[5]={0};
FILE*fp,*fa;
floatave;
inti,j,sum;
if((fp=fopen("
stud.txt"
))==NULL)//||(fp=fopen("
score.txt"
cannotopen."
for(i=0;
i<
5;
for(j=0;
j<
j++)
{
fscanf(fp,"
%d"
&
a[i][j]);
}
for(j=1;
c[i]+=a[i][j];
d[i]=c[i]/4;
b[i][j]=a[i][j];
{
b[i][5]=c[i];
b[i][6]=d[i];
}
numb\tscore1\tscore2\tscore3\tscore4\tsum\tave"
//fprintf(fa,"
numbscore1score2score3score4sumave"
printf("
\n"
//fprintf(fa,"
7;
printf("
%d\t"
b[i][j]);
//fprintf(fa,"
\nave\t"
//fprintf(fa,"
for(j=1;
sum=0;
for(i=0;
sum+=a[i][j];
ave=sum/5.0;
%3.1f\t"
ave);
//fprintf(fp,"
fp=fopen("
fprintf(fp,"
for(i=0;
for(j=0;
fprintf(fp,"
//printf("
fprintf(fp,"
//fprintf(fa,"
//fclose(fa);
方法三:
文正学院08计算机束方桂同学。
#include"
process.h"
ctype.h"
math.h"
constintSTUNUM=5;
constintCOURSENUM=5;
voidsort(int*pa,float(*pb)[2]);
char*title[]={"
rank"
C1"
C2"
C3"
C4"
C5"
ave"
};
floatscore[STUNUM][COURSENUM];
floatstuAve[STUNUM][2]={{0,0}};
floatcourseAve[COURSENUM]={0};
floattotalAve=0;
intrank[STUNUM]={0};
intcurStu=0;
inttempa[2]={0};
FILE*fp,*wp;
float*clacAve(float*pa[COURSENUM]);
float(*average)[2];
if((fp=fopen("
scoreData.txt"
rt"
))==NULL||(wp=fopen("
rank.txt"
))==NULL)
\nCannotopenfilestrikeanykeyexit!
"
getchar();
exit
(1);
for(inti=0;
i<
STUNUM;
i++){
for(intj=0;
j<
COURSENUM;
j++)
fscanf(fp,"
%f"
score[i][j]);
//printf("
\t"
for(intt=0;
t<
7;
t++)
{
%s\t"
title[t]);
fprintf(wp,"
%-4s\t"
\n-----------------------------------------------------\n"
fprintf(wp,"
//求学生平均成绩
for(intm=0;
m<
m++){
for(intn=0;
n<
n++)
stuAve[m][0]+=score[m][n];
stuAve[m][0]/=COURSENUM;
stuAve[m][1]=float(m);
//stuID
rank[m]=m;
//默认名次
//排名stuAve
sort(rank,stuAve);
//打印学生成绩及平均成绩
for(intmm=0;
mm<
mm++)
curStu=stuAve[mm][1];
s%d\t"
curStu+1);
for(intnn=0;
nn<
nn++)
score[curStu][nn]);
fprintf(wp,"
%3.1f\n"
stuAve[mm][0]);
//计算课程平均成绩
for(intt1=0;
t1<
t1++)
for(intt2=0;
t2<
t2++)
courseAve[t1]+=score[t2][t1];
courseAve[t1]/=STUNUM;
//打印课程平均成绩
-----------------------------------------------------\n"
ave\t"
for(inta=0;
a<
a++)
courseAve[a]);
totalAve+=courseAve[a];
totalAve/COURSENUM);
RankingofscoreData.txtfinished,savedtorank.txt\n"
fclose(wp);
//*(p+i)+j是二维数组i行j列的元素的地址,而*(*(p+i)+j)则是i行j列元素的值。
voidsort(int*pa,float(*pb)[2])
floattemp=0,temp1=0;
intN=STUNUM;
for(inti=0;
N-1;
for(intj=0;
N-i-1;
if(*(*(pb+j)+0)<
*(*(pb+j+1)+0))
temp=*(*(pb+j)+0);
temp1=*(*(pb+j)+1);
*(*(pb+j)+0)=*(*(pb+j+1)+0);
*(*(pb+j)+1)=*(*(pb+j+1)+1);
*(*(pb+j+1)+0)=temp;
*(*(pb+j+1)+1)=temp1;
方法四
输出不及格学生名单,好创意!
文正学院08计算机沈燕辉同学。
{
FILE*in,*out;
inta[6][6],b[6][8],d[6][8],t[6]={0},z[6]={0},e[6]={0},ave1[6],ave2[6];
int*m,*c[6],*f[6];
inti,j;
charh;
if((in=fopen("
inscore.txt"
r+"
))==NULL)
Cannotopenfile\n"
exit(0);
}
6;
fscanf(in,"
//从磁盘文件读入字符
for(j=1;
t[i]=t[i]+a[i][j];
//求总分数
ave1[i]=t[i]/5;
//求平均数
for(i=0;
i++)//把数组a[i][j]赋给b[i][j]
for(j=0;
b[i][j]=a[i][j];
i++)//把平均数和总分数赋给b[i][6]和b[i][7]
for(j=6;
8;
j++){
if(j==6)
b[i][j]=ave1[i];
else
b[i][j]=t[i];
完成排序后的结果:
\nNO.\t语文\t数学\t英语\t物理\t化学\t平均分\t总分"
\n............................................................"
c[i]=&
b[i][7];
for(j=0;
j++)//排序
if(*c[i]<
*c[i+1])
m=c[i];
c[i]=c[i+1];
c[i+1]=m;
}
for(i=0;
for(j=0;
d[i][j]=*(c[i]-7+j);
i++)//输出d[i][j]
d[i][j]);
均分:
"
for(j=1;
z[j]=z[j]+b[i][j];
ave2[j]=z[j]/6;
ave2[j]);
\n\n"
是否输出有不及格成绩的学生的学号(y/n):
scanf("
%c"
h);
if((h=='
Y'
)||(h=='
y'
))
for(j=1;
{
if(d[i][j]<
60)
{
f[i]=&
d[i][j]-j;
printf("
*f[i]);
break;
}
}
if((out=fopen("
outscore.txt"
w+"
))==NULL)//输出到文本
fprintf(out,"
fprintf(out,"
for(j=0;
\n.........................................
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 原理 实验