C语言 课程设计报告.docx

上传人:b****5 文档编号:8728974 上传时间:2023-05-14 格式:DOCX 页数:27 大小:118.32KB
下载 相关 举报
C语言 课程设计报告.docx_第1页
第1页 / 共27页
C语言 课程设计报告.docx_第2页
第2页 / 共27页
C语言 课程设计报告.docx_第3页
第3页 / 共27页
C语言 课程设计报告.docx_第4页
第4页 / 共27页
C语言 课程设计报告.docx_第5页
第5页 / 共27页
C语言 课程设计报告.docx_第6页
第6页 / 共27页
C语言 课程设计报告.docx_第7页
第7页 / 共27页
C语言 课程设计报告.docx_第8页
第8页 / 共27页
C语言 课程设计报告.docx_第9页
第9页 / 共27页
C语言 课程设计报告.docx_第10页
第10页 / 共27页
C语言 课程设计报告.docx_第11页
第11页 / 共27页
C语言 课程设计报告.docx_第12页
第12页 / 共27页
C语言 课程设计报告.docx_第13页
第13页 / 共27页
C语言 课程设计报告.docx_第14页
第14页 / 共27页
C语言 课程设计报告.docx_第15页
第15页 / 共27页
C语言 课程设计报告.docx_第16页
第16页 / 共27页
C语言 课程设计报告.docx_第17页
第17页 / 共27页
C语言 课程设计报告.docx_第18页
第18页 / 共27页
C语言 课程设计报告.docx_第19页
第19页 / 共27页
C语言 课程设计报告.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言 课程设计报告.docx

《C语言 课程设计报告.docx》由会员分享,可在线阅读,更多相关《C语言 课程设计报告.docx(27页珍藏版)》请在冰点文库上搜索。

C语言 课程设计报告.docx

C语言课程设计报告

泉州师范学院数学与计算机科学学院

 

《高级语言程序设计》课程设计

实验报告

 

 

目录

1.课程设计的目的和要求1

1.1课程要求1

1.2课程目的1

2.课程设计选题1

3.课程设计内容1

3.1选题1(选题名称)1

将一个数字字符串转换为一个整数;1

3.2选题2(选题名称)5

3.3选题3(选题名称)9

3.4选题4(选题名称)12

3.5选题5(选题名称)16

4.总结19

4.1碰到的问题19

4.2心得和体会19

5.参考文献19

6.附录(程序清单及注释)19

1.课程设计的目的和要求

1.1课程要求

运用所学C语言编程知识开发设计具有一定实用价值的计算机应用程序。

1.2课程目的

●复习、巩固C语言的基础知识,进一步加深对C语言的理解和掌握;

●培养理论与实践相结合的能力;

●培养独立分析问题解决问题的能力;

2.课程设计选题

选题1:

编程题第24题

将一个数字字符串转换为一个整数;

选题2:

编程题第44题

统计一个长度为2的字符串在另一个字符串中出现的次数;

选题3:

编程题第60题

删去一维数组中所有相同的数,使之只剩一个;

选题4:

编程题第76题

计算一个复杂的多项式的值;

选题5:

编程题第83题

将字符串尾部的*号全部删除。

3.课程设计内容

3.1选题1(选题名称)

将一个数字字符串转换为一个整数;

3.1.1详细设计

(1)主函数main()模块

该模块功能说明:

定义一维字符数组、文件型指针变量,打开文件,调用gets函数输入原始数组,调用printf函数显示提示信息,在调用fun函数,得到由fun函数指针传回的返回值,得到目标字符串存放在原数组中,调用printf函数,在屏幕上显示运行结果,关闭文件;

(2)各模块

N-S流程图

s=0,i=0,s1=0

n=strlen(p)

p[0]=’-’

是否

i++

i

t=p[j]-‘0’

s=s*s1+t

P[0]=’-’

是否

返回-s

返回s

 

该模块功能及程序说明:

将一个数字字符串转换为一个整数。

关键代码及代码注释

longfun(char*p)

{

longs=0;

inti=0,n,j,s1=10,t;

n=strlen(p);

if(p[0]=='-')

i++;

for(j=i;j

{

t=p[j]-'0';

s=s*s1+t;

}

if(p[0]=='-')

return-s;

else

returns;

}

 

3.1.2运行结果

运行结果。

(附贴图)

3.1.3测试

测试数据及结果。

(附贴图)

 

 

3.2选题2(选题名称)

统计一个长度为2的字符串在另一个字符串中出现的次数;

3.2.1详细设计

(1)主函数main()模块

该模块功能说明:

定义两个一维字符数组、文件型指针变量,打开文件,调用gets函数输入原始数组和长度为2的数组,调用printf函数显示提示信息,在调用fun函数,得到由fun函数指针传回的返回值,得到目标字符串存放在原数组中,调用printf函数,在屏幕上显示运行结果,关闭文件;

(2)各模块

N-S流程图

n=0

当*str为真

p=str

q=substr

当*q为真

*q=*p

是否

r++

p++

break

*q=’\0’

是否

n++

str++

返回n

 

该模块功能及程序说明:

统计一个长度为2的字符串在另一个字符串中出现的次数;

关键代码及代码注释

intfun(char*str,char*substr)

{

char*p,*q;

intn=0;

while(*str)

{

p=str;

q=substr;

while(*q)

{

if(*q==*p)

{

q++;

p++;

}

else

break;

}

if(*q=='\0')

n++;

str++;

}

returnn;

}

 

3.2.2运行结果

运行结果。

(附贴图)

3.2.3测试

测试数据及结果。

(附贴图)

3.3选题3(选题名称)

删去一维数组中所有相同的数,使之只剩一个;

3.3.1详细设计

(1)主函数main()模块

该模块功能说明:

定义一维字符数组、文件型指针变量,打开文件,调用scanf函数输入原始数组,调用printf函数显示数组信息,在调用fun函数,得到由fun函数指针传回的返回值,得到目标字符串存放在原数组中,调用printf函数,在屏幕上显示运行结果,关闭文件;

(2)各模块

N-S流程图

 

j=1,i=1

i

a[i]!

=a[i-1]

是否

a[j++]=a[i]

返回j

 

该模块功能及程序说明:

删去一维数组中所有相同的数,使之只剩一个;

关键代码及代码注释

intfun(inta[],intn)

{

inti,j=1;

for(i=1;i

if(a[i]!

=a[i-1])

a[j++]=a[i];

returnj;

}

 

3.3.2运行结果

运行结果。

(附贴图)

3.3.3测试

测试数据及结果。

(附贴图)

 

3.4选题4(选题名称)

计算一个复杂的多项式的值;

3.4.1详细设计

(1)主函数main()模块

该模块功能说明:

定义文件型指针变量,打开文件,调用scanf函数输入原始数组,调用printf函数显示提示信息,在调用fun函数,得到由fun函数指针传回的返回值,得到目标字符串存放在原数组中,调用printf函数,在屏幕上显示运行结果,关闭文件;

(2)各模块

N-S流程图

s1=1.0,p=1.0,sum=0.0,t=1.0

s0=s1

sum=sum+s0

t=t*n

p=p*(0.5-n+1)*x

s1=p/t

n++

当fabs(s1-s0)>=1e-6

返回sum

 

该模块功能及程序说明:

计算一个复杂的多项式的值;

关键代码及代码注释

doublefun(doublex)

{

intn=1;

doubles1=1,p=1,sum=0,s0,t=1;

do

{

s0=s1;

sum+=s0;

t*=n;

p*=(0.5-n+1)*x;

s1=p/t;

n++;

}while(fabs(s1-s0)>=0.000001);

returnsum;

}

 

3.4.2运行结果

运行结果。

(附贴图)

3.4.3测试

测试数据及结果。

(附贴图)

 

3.5选题5(选题名称)

将字符串尾部的*号全部删除。

3.5.1详细设计

(1)主函数main()模块

该模块功能说明:

定义一维字符数组、文件型指针变量,打开文件,调用scanf函数输入原始数组,调用printf函数显示数组信息,在调用fun函数,得到由fun函数指针传回的返回值,得到目标字符串存放在原数组中,调用printf函数,在屏幕上显示运行结果,关闭文件;

(2)各模块

N-S流程图

p=0,t=a

当*t为真

*t!

=’*’

是否

p=i

t++

*(a+p+1)=’\0’

 

该模块功能及程序说明:

将字符串尾部的*号全部删除。

关键代码及代码注释

voidfun(char*a)

{

inti,p=0;

char*t=a;

for(i=0;*t;i++)

{

if(*t!

='*')

p=i;

t++;

}

*(a+p+1)='\0';

}

 

3.5.2运行结果

运行结果。

(附贴图)

3.5.3测试

测试数据及结果。

(附贴图)

4.总结

4.1碰到的问题

对冒泡排序法和选择排序法还不能灵活运用。

对文件的认识度不够,导致不理解主函数的意思。

4.2心得和体会

第一次为期一周这么长时间的做程序题,感触颇多,也对程序有了一定的认识。

自己的做题速度也明显增快。

在这一段时间里我深深地意识到自己的阅读量太小,对C的知识掌握不全面,不会深究这门语言。

真的,要学好一门语言,就要扎扎实实地学习,这些语言也都是前人想出来的,那我们就应该学会站在巨人的肩膀上看世界,在他们的基础上把C学得更好。

5.参考文献

【1】谭浩强主编.C程序设计(第三版).北京:

清华大学出版社,2005

【2】崔武子,李青,李红豫编著.C程序设计辅导与实训.北京:

清华大学出版社,2004.1

【3】崔武子等著.C程序设计教程.北京:

清华大学出版社,2003

6.附录(程序清单及注释)

选题1:

编程题第24题

将一个数字字符串转换为一个整数;

#include

#include

longfun(char*p)

{

longs=0;

inti=0,n,j,s1=10,t;

n=strlen(p);

if(p[0]=='-')

i++;

for(j=i;j

{

t=p[j]-'0';

s=s*s1+t;

}

if(p[0]=='-')

return-s;

else

returns;

}

main()

{

chars[6];

longn;

FILE*out;

char*test[]={"-1234","5689","7102","-4356"};

printf("Enterastring:

\n");

gets(s);

n=fun(s);

printf("%ld\n",n);

out=fopen("out.dat","w");

for(n=0;n<4;n++)

fprintf(out,"%ld\n",fun(test[n]));

fclose(out);

}

 

选题2:

编程题第44题

统计一个长度为2的字符串在另一个字符串中出现的次数;

#include

#include

#include

intfun(char*str,char*substr)

{

char*p,*q;

intn=0;

while(*str)

{

p=str;

q=substr;

while(*q)

{

if(*q==*p)

{

q++;

p++;

}

else

break;

}

if(*q=='\0')

n++;

str++;

}

returnn;

}

main()

{

charstr[81],substr[3];

intn;

FILE*out;

printf("输入主字符串:

");

gets(str);

printf("输入子字符串:

");

gets(substr);

puts(str);

puts(substr);

n=fun(str,substr);

printf("n=%d\n",n);

out=fopen("out.dat","w");

strcpy(str,"asdasasdfgasdaszx67asdmklo");

strcpy(substr,"as");

fprintf(out,"%d",fun(str,substr));

fclose(out);

getch();

}

 

选题3:

编程题第60题

删去一维数组中所有相同的数,使之只剩一个;

#include

#defineN80

intfun(inta[],intn)

{

inti,j=1;

for(i=1;i

if(a[i]!

=a[i-1])

a[j++]=a[i];

returnj;

}

main()

{

inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,10},i,n=20;

FILE*out;

printf("Theoriginaldata:

\n");

for(i=0;i

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

n=fun(a,n);

printf("\n\nThedataafterdeleted:

\n");

out=fopen("out.dat","w");

for(i=0;i

{

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

fprintf(out,"%d\n",a[i]);

}

fclose(out);

printf("\n\n");

}

 

选题4:

编程题第76题

计算一个复杂的多项式的值;

#include

#include

doublefun(doublex)

{

intn=1;

doubles1=1,p=1,sum=0,s0,t=1;

do

{

s0=s1;

sum+=s0;

t*=n;

p*=(0.5-n+1)*x;

s1=p/t;

n++;

}while(fabs(s1-s0)>=0.000001);

returnsum;

}

main()

{

inti;

doublex,s;

FILE*out;

printf("Inputx:

");

scanf("%lf",&x);

s=fun(x);

printf("s=%f\n",s);

out=fopen("out.dat","w");

for(i=20;i<30;i++)

fprintf(out,"%f\n",fun(i/100.0));

fclose(out);

}

选题5:

编程题第83题

将字符串尾部的*号全部删除。

#include

#include

#include

voidfun(char*a)

{

inti,p=0;

char*t=a;

for(i=0;*t;i++)

{

if(*t!

='*')

p=i;

t++;

}

*(a+p+1)='\0';

}

main()

{

chars[81];

FILE*out;

printf("Enterastring:

\n");

gets(s);

fun(s);

printf("Thestringafterdeleted:

\n");

puts(s);

out=fopen("out.dat","w");

strcpy(s,"****A*BC*DE*F*G*********");

fun(s);

fprintf(out,"%s",s);

fclose(out);

}

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2