实验报告
1,已知三角形的边为a,b,c,试设计程序输入三边的值并计算三角形的面积,已知三角形的面积计算公式为:
S=(a+b+c)/2;
Area=
截图为程序及其运行结果
分析:常错的地方就是容易后面使用到的字母忘记定义导致程序不认识不能运行,另外地址符&容易忘记,后面有使用的函数公式是在math.h里面的,也不能忘记#include “math.h”,最后就是中英文输入标点符号的区别,必须都是英文标点。
2,求ax²+bx+c=0方程的根,a,b,c由键盘输入,设b²-4ac>0,已知求根公式为:
X1=;X2=;
截图为程序及其运行结果
分析:一是注意地址符,注意定义到所有用到的字母,
3,已知三角形的边为a,b,c,三角形的面积计算公式为:
S=(a+b+c)/2;
Area=
试设计程序计算三角形的面积,当三边不满足三角形条件时,提示用户输入错误。
截图为程序及其运行结果,当三边不满足三角形时提示错误
分析:程序编辑过程中注意最基本的是用英文符号,定义所有需要的字母,括号不能掉
4,求ax²+bx+c=0方程的根,a,b,c由键盘输入并为任意实数,已知求根公式为:
X1=;X2=;
提示:根为虚数时的输入语句:
printf("x1=%lf+i%lf",p,q);
printf("x1=%lf-i%lf",p,q);
P=-b/2a;
q=.
截图为程序及其运行结果,由于输入为任意实数,则可能不满足方程,各种情况都要予以考虑,因此用到else if语句
5,在我们国内的大学生中,学生的学习成绩以百分制计算,但有些国家的大学是以等级记录学生的成绩,例如:A,B,C,D,E等,假设需要按下表进行转换,编写程序,使用switch语句根据输入的百分制分数,输出相应的分数等级(设输入为任意实数)
需要注意事项是switch语句中,每一个单独的case语句后面break不能少,其他的基本与前面相同,英文符号,定义字母,下面截图中是程序及其运行结果,当分数不在0-100范围时显示为错误,
6,已知三角形的边为a,b,c,试设计程序输入三边的值并计算三角形的面积。当输入的三边值不满足三角形的条件时,提示用户输入的数据错误并使用户重新输入,直到输入正确。(提示:用while或do while语句)
分析:do while语句是当条件不满足时会一直执行,不能忘记scanf(),否则会成为一个死循环
第二篇:C语言实验报告3
暨南大学本科实验报告专用纸
课程名称 数据结构试验 成绩评定
实验项目名称 文本格式化 指导教师 孙世良
实验项目编号 实验项目类型 实验地点
学生姓名 谢显栩 学号 2009051718
学院 电气信息学院 系计算机科学系 专业 软件工程
实验时间 年 月 日 午~ 月 日 午 温度 ℃湿度
(一) 实验目的
熟悉串类型的实现方法和文本模式匹配方法,熟悉一般文字处理软件的设计方法,较复杂问题的分解求精方法。
(二) 实验内容和要求
输入文件中含有待格式化(或成为待排版)的文本,它由多行文字组成,例如一篇英文文章。每一行由一系列被一个或多个空格符所隔开的字所组成,任何完整的字都没被分割在两行(每行最后一个=字与下一行第一个字在逻辑上应该由空格分开),每行字符数不超过80。除了上述文本类字符外,还存在起控制作用的字符:符号"@"指示它后面的正文在格式化时应另起一段排放,即空一行,并在段首缩入8个字符位置。"@"自成一个字。
一个文本格式化程序可以处理上述输入文件,按照用户指定的版面规格重排版面:实现页内调整,分段,分页等文本处理功能,排版结果存入输出文本文件中。
[ 基本要求]:
(1) 输出文件中字与字之间只留一个空格符,即实现多余空格符的压缩。
(2) 在输出文件中,任何完整的字仍不能分隔在两行,行尾不齐没关系,但行首要对齐(即左对齐)。
(3) 如果所要求的每页页底所空行数不少于3,则将页号印在页底空行中第2行的中间位置上,否则不印。
(4) 版面要求的参数要包含:
页长(Page Length)——每页内文字(不计页号)的行数。
页宽(Page Wedth)——每行内文字所占最大字符数。
左空白(Left Margin)——每行文字前的固定格数。
头长(Heading Length)——每页页顶所空行数。
脚长(Footing Length)——每页页底所空行数(含页号行)
起始页号(Starting Page Number)——首页的页号。
(三) 主要仪器设备
仪器:计算机 实验环境:Windows 7 & win-tc
暨南大学本科实验报告专用纸(附页)
(四) 源程序
#include<stdio.h>
#include<stdlib.h>
int pl=20,pw=80,lm=1,hl=3,fl=3,spn=1;
main()
{
void operation(void);
operation();
printf("The TXT has been edited,please chack it in the new txt named new.txt");
getch();
}
void operation(void)
{
FILE *fp,*pf,*panduan;
int pli=1,pwi=1,lmi=1,spni=1,i,j=0,k=0,sp1,sp2,l=0,m=0,n=0;
char ch,hc;
if(!(fp=fopen("f:\\doc.txt","r")))
{
printf("input error");
exit(1);
}
if(!(pf=fopen("f:\\new.txt","w")))
{
printf("input error");
exit(1);
}
if(!(panduan=fopen("f:\\doc.txt","r")))
暨南大学本科实验报告专用纸(附页)
{
printf("input error");
exit(1);
}
fflush(stdin);
ch=fgetc(fp);
fflush(stdin);
hc=fgetc(panduan);
while(hc!=' '&&hc!=EOF&&hc!=3344&&hc!=46&&hc!=58&&hc!=59&&hc!=63)
{
fflush(stdin);
hc=fgetc(panduan);
m++;
}
while(ch!=EOF)
{
if(m==n)
{
fflush(stdin);
hc=fgetc(panduan);
m++;
while(hc!=' '&&hc!=EOF&&hc!=33&&hc!=44&&hc!=46&&hc!=58&&hc!=59&&hc!=63)
{
fflush(stdin);
hc=fgetc(panduan);
l++;
m++; }
暨南大学本科实验报告专用纸(附页)
if((l+pwi)>pw)
{
pwi=1;
pli++;
fputc('\n',pf);
fputc(' ',pf);
}
l=0;
}
if(pli>=18)
{
fputc('\n',pf);
for(i=0;i<pw/2-1;i++)
fputc(' ',pf);
sp1=spni/10;
sp2=spni%10;
fputc(sp1+48,pf);
fputc(sp2+48,pf);
fputc('\n',pf);
fputc('\n',pf);
pli=1,pwi=1,spni++;
k=1;
}
if(pli==1)
{
for(i=0;i<3;i++)
fputc('\n',pf);
暨南大学本科实验报告专用纸(附页)
pli=hl+1;
for(i=0;i<8+lm;i++)
fputc(' ',pf);
pwi=9;
}
if(ch=='@'&&k==0)
{
fputc('\n',pf);
pli++;
for(i=0;i<lm+8;i++)
fputc(' ',pf);
pwi=9;
}
if(ch==' '&&k==0)
{if(j==0)
fputc(ch,pf);
j=1;
pwi++; }
else
{if(ch!='\r'&&k==0)
fputc(ch,pf);
if((ch==33||ch==44||ch==46||ch==58||ch==59||ch==63)&&k==0)
fputc(' ',pf);
j=0;
pwi++;}
暨南大学本科实验报告专用纸(附页)
if(pwi==pw&&k==0)
{ pwi=1;
pli++;
fputc('\n',pf);
for(i=0;i<lm;i++)
fputc(' ',pf); }
if(k==0)
{ fflush(stdin);
ch=fgetc(fp);
n++;}
k=0; }
fclose(fp);
fclose(pf);
fclose(panduan); }
(五) 实验步骤与调试
(1) 在计算机F盘中建立doc.txt文件,将待排版内容输入其中。
暨南大学本科实验报告专用纸(附页)
(2) 运行程序。
(3) 打开F盘中生成的new.txt文件,查看排版结果。
(六) 实验结果与分析
实验结果: 输入文本按预定格式输出。
分析:程序输出正常,但尚有一些需改进的地方,例如:文本输出中,作为换段符的@本不该存在(按实验要求保留下来,减轻了程序难度)。而后,分页时,最后不足页的文本也没用分配成新的一页打上页码。最后,文本用到的参数都是预先写在程序之中,可以考虑由操作者自行输入,只需在主函数中写入相关的提示及参数输入语句。