C语言实验报告.docx

上传人:b****4 文档编号:3143900 上传时间:2022-11-18 格式:DOCX 页数:23 大小:69.70KB
下载 相关 举报
C语言实验报告.docx_第1页
第1页 / 共23页
C语言实验报告.docx_第2页
第2页 / 共23页
C语言实验报告.docx_第3页
第3页 / 共23页
C语言实验报告.docx_第4页
第4页 / 共23页
C语言实验报告.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

C语言实验报告.docx

《C语言实验报告.docx》由会员分享,可在线阅读,更多相关《C语言实验报告.docx(23页珍藏版)》请在冰豆网上搜索。

C语言实验报告.docx

C语言实验报告

实验一进制转换

一、实验要求

采用模块化程序设计完成进制转换。

由键盘输入一个十进制正整数,然后将该数转换成指定的进制数(二、八、十六)形式输出。

指定的进制由用户输入。

二、实验目的

1、熟悉C环境的安装、使用。

2、承上启下,复习《C程序设计》等基础课程的知识。

3、掌握C语言编程的方法。

三、预备知识

1、的安装与使用。

2、C程序设计基础知识。

四、实验内容

采用模块化程序设计完成进制转换。

五、程序框图

六、程序清单

1.编写主函数:

输入需转换的数与转换的进制

2.编写子函数

(1)函数转换为除16进制以外的进制转换算数编程,使用while循环实现计算进制的转换,并输出转换后的数字;

(2)函数转换为16进制,用while函数实现16进制转换的计算并输出16进制转换后的数据;

3.编写数组,关于16进制的一系列字符

4.编写主函数加入dowhile使函数可以循环。

七、实验步骤

#include<>

charnum[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};

voidfun(intn,intm)

{

inti=-1,a[100];

if(m!

=16)

{

while(n)

{

a[i++]=n%m;

n=n/m;

}

while(i!

=-1)

printf("%d",a[--i]);

printf("\n");

}

else

{

while(n)

{

a[++i]=num[n%16];

n/=16;

}

while(i!

=-1)

printf("%c",a[i--]);

printf("\n");

}

}

intmain()

{

inta,c;

charcIn=0;

do

{

printf("\n输入正整数,转换的进制:

");

scanf("%d%d",&a,&c);

fun(a,c);

printf("Goon(Y/N):

");

cIn=getchar();

if(cIn=='N'||cIn=='n')

return0;

}

while

(1);fun(a,c);

printf("Goon(Y/N):

");

cIn=getchar();

if(cIn=='N'||cIn=='n')

return0;

}

while

(1);

}

3、调试。

八、实验结果

实验二学生班级成绩统计

一、实验要求

设计一个统计班级学生成绩的程序。

统计一个班(最多有35人)的学生成绩,要求能实现如下四个功能:

(1)由键盘输入每个学生的学号和四门课程的成绩。

(2)计算每个学生的平均成绩和总成绩。

(3)按总成绩从高到低排名,并按名次输出每个学生的情况,包括:

学号,各科成绩,平均成绩,总成绩,排名

(4)根据要求输出某门课程(由键盘输入课程号)成绩在90分(含90分)以上且总分在前5名的学生情况(请采用结构体数据类型,并采用模块化结构实现)。

二、实验目的

1、进一步熟悉C环境的安装、使用。

2、进一步复习《C程序设计》等基础课程的知识。

3、进一步掌握C语言编程的方法。

三、预备知识

1、的安装与使用。

2、C程序设计基础知识。

3、软件实现基本流程。

四、实验内容

设计一个统计班级学生成绩的程序。

六、程序清单

1、先编写主函数,将所需要用到的子函数编写,

2、子函数1:

输入数据,将所需要的数据存到数组中并计算平均值和总分,

3、子函数2:

根据子函数1计算所得值进行排序,

4、子函数3:

输出排序完的数据,

5、子函数4:

编写查询程序,输入查询的科目缩写,并排名后输出。

七、实验步骤

1、可行性分析

2、需求分析

3、概要设计与详细设计(含绘制流程图)。

4、编码实现

#include<>

intorder[35];

doubleaddsum[35];

doubleaddaver[35];

intb=0;

typedefstructstudent

{

intid;

charname[35];

doublemath;

doubleenglish;

doublechinese;

doublecomputer;

}student;

studentstu[35];

voidshuru()

{

b=0;

while(b<35)

{

printf("输入学号(输入0退出输入):

");

scanf("%d",&stu[b].id);

fflush(stdin);

if(stu[b].id<=0)

break;

printf("输入名字:

");

scanf("%s",&stu[b].name);

printf("输入4门成绩(数学英语语文计算机):

");

scanf("%lf%lf%lf%lf",&stu[b].math,&stu[b].english,

&stu[b].chinese,&stu[b]puter);

fflush(stdin);

addsum[b]=stu[b].math+stu[b].english+stu[b].chinese,stu[b]puter;addaver[b]=addsum[b]/;

order[b]=stu[b].id;

b++;

}

}

intquery(intid)

{

inti=0;

for(i=0;i

{

if(stu[i].id==id)

returni;

}

return-1;

}

voidpaiming()

{

inti,j;

for(i=0;i

{

for(j=i+1;j

{

if(addsum[i]-addsum[j]<)

{

inttemp_id=order[i];

order[i]=order[j];

order[j]=temp_id;

}

}

}

}

voidoutput()

{

inti;

printf("名次学号姓名数学英语语文

for(i=0;i

{

intj=query(order[i]);

if(j<0)计算机总分平均\n");

6/21页

printf("order[%d]=%derror\n",i+1,order[i]);

continue;

}

printf("%02d%%s%%%%%%\n",i+1,stu[j].id,stu[j].name,stu[j].math,stu[j].english,stu[j].chinese,stu[j]puter,addsum[j],addaver[j]);

}

}

voidchaxun()

{

chara[1];

inti;

printf("输入你所想要查询的课程代号:

");

scanf("%c",&a[1]);

printf("名次学号姓名数学英语语文计算机总分平均\n");if(a[1]=='m')

{

for(i=0;i

{

if(stu[i].math>90&&order[i]<5)

{

printf("%02d%%s%%%%%%\n",i+1,stu[i].id,stu[i].name,stu[i].math,stu[i].english,stu[i].chinese,stu[i]puter,addsum[i],addaver[i]);

}

}

}

elseif(a[1]=='e')

{

for(i=0;i

{

if(stu[i].english>90&&order[i]<5)

{

printf("%02d%%s%%%%%%\n",i+1,stu[i].id,stu[i].name,stu[i].math,stu[i].english,stu[i].chinese,stu[i]puter,addsum[i],addaver[i]);

}

}

}

elseif(a[1]=='c')

{

for(i=0;i

if(stu[i].chinese>90&&order[i]<5)

{

printf("%02d%%s%%%%%%\n",i+1,stu[i].id,stu[i].name,stu[i].math,stu[i].english,stu[i].chinese,stu[i]puter,addsum[i],addaver[i]);

}

}

}

else

{

for(i=0;i

{

if(stu[i]puter>90&&order[i]<5)

{

printf("%02d%%s%%%%%%\n",i+1,stu[i].id,stu[i].name,stu[i].math,stu[i].english,stu[i].chinese,stu[i]puter,addsum[i],addaver[i]);

}

}

}

}

voidmain()

{

shuru();

paiming();

output();

chaxun();

}

5、调试。

八、实验结果

实验三文件合并

一、实验要求

将两个文件中的数据合并至一个文件。

有两个文件“Afile”和“Bfile”,各存放一行字母,今要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件“Cfile”中去。

二、实验目的

1、掌握指针、文件指针的概念。

2、掌握文件操作的知识。

3、进一步掌握软件开发的基本流程。

三、预备知识

1、C程序设计基础知识。

2、软件实现基本流程。

四、实验内容

将两个文件中的数据合并至一个文件。

五、程序清单

请按照自己对程序设计需求的理解进行设计。

6、程序框图

7、实验步骤

#include<>

#include<>

voidOutput(FILE*fp)

{

charch,t,str3[100];

inti=0,j,k;

while((ch=fgetc(fp))!

=EOF)

{

str3[i]=ch;

i++;

}

for(j=0;j<=i;j++)

{

for(k=j+1;k

{

if(str3[j]>str3[k])

{

t=str3[j];

str3[j]=str3[k];

str3[k]=t;

}

}

}

for(j=0;j<=i;j++)

printf("%c",str3[j]);

}

main(void)

{

FILE*fp1,*fp2,*fp3;

charch1[100],ch2[100],ch3[100];

charch,str1[100],str2[100];

printf("pleaseinputfirstfile

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1