C语言实验报告
- 格式:docx
- 大小:57.97 KB
- 文档页数:43
实验一进制转换一、实验要求
采用模块化程序设计完成进制转换。由键盘输入一个十进制正整数,然后将该数转换成指定的进制数(二、八、十六) 形式输出。指定的进制由用户输入。
二、实验目的
1、熟悉C 环境的安装、使用。
2、承上启下,复习《C 程序设计》等基础课程的知识。
3、掌握C 语言编程的方法。
三、预备知识
1、VC6.0的安装与使用。
2、C 程序设计基础知识。
四、实验内容
采用模块化程序设计完成进制转换。
五、程序框图
六、程序清单
1. 编写主函数:输入需转换的数与转换的进制
2. 编写子函数
(1)函数转换为除16进制以外的进制转换算数编程,使用while 循环实现计算进制
的转换,并输出转换后的数字;
(2)函数转换为16进制,用while 函数实现16进制转换的计算并输出16进制转换后的数据;
3. 编写数组,关于16进制的一系列字符
4. 编写主函数加入do while 使函数可以循环。
七、实验步骤
#include
char
num[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
void fun(int n, int m)
{
int i=-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");
}
}
int main()
{
int a, c;
char cIn = 0;
do
{
printf("\n输入正整数,转换的进制:"); scanf("%d %d",&a,&c);
fun(a,c);
printf("Go on? (Y/N):");
cIn = getchar( );
if(cIn == 'N' || cIn == 'n')
return 0;
}
while(1);fun(a,c);
printf("Go on? (Y/N):");
cIn = getchar( );
if(cIn == 'N' || cIn == 'n')
return 0;
}
while(1);
}
3、调试。
八、实验结果
实验二学生班级成绩统计
一、实验要求
设计一个统计班级学生成绩的程序。
统计一个班(最多有35人) 的学生成绩,要求能实现如下四个功能:
(1) 由键盘输入每个学生的学号和四门课程的成绩。
(2) 计算每个学生的平均成绩和总成绩。
(3) 按总成绩从高到低排名,并按名次输出每个学生的情况,包括:学号,各科成绩,平均成绩,总成绩,排名
(4) 根据要求输出某门课程(由键盘输入课程号) 成绩在90分(含90分) 以上且总分在前5名的学生情况(请采用结构体数据类型,并采用模块化结构实现) 。
二、实验目的
1、进一步熟悉C 环境的安装、使用。
2、进一步复习《C 程序设计》等基础课程的知识。
3、进一步掌握C 语言编程的方法。
三、预备知识
1、VC6.0的安装与使用。
2、C 程序设计基础知识。
3、软件实现基本流程。
四、实验内容
设计一个统计班级学生成绩的程序。
六、程序清单
1、先编写主函数,将所需要用到的子函数编写,
2、子函数1:输入数据,将所需要的数据存到数组中并计算平均值和总分,
3、子函数2:根据子函数1计算所得值进行排序,
4、子函数3:输出排序完的数据,
5、子函数4:编写查询程序,输入查询的科目缩写,并排名后输出。
七、实验步骤
1、可行性分析
2、需求分析
3、概要设计与详细设计(含绘制流程图)。
4、编码实现
#include
int order[35];
double addsum[35];
double addaver[35];
int b= 0;
typedef struct student
{
int id;
char name[35];
double math;
double english;
double chinese;
double computer;
} student;
student stu[35];
void shuru()
{
b= 0;
while( b < 35 )
{
printf( "输入学号(输入0退出输入):" ); scanf( "%d", &stu[b].id );
fflush( stdin );
if ( stu[b].id <= 0 )