C语言课程设计.docx

上传人:b****2 文档编号:1427303 上传时间:2023-05-01 格式:DOCX 页数:20 大小:222.37KB
下载 相关 举报
C语言课程设计.docx_第1页
第1页 / 共20页
C语言课程设计.docx_第2页
第2页 / 共20页
C语言课程设计.docx_第3页
第3页 / 共20页
C语言课程设计.docx_第4页
第4页 / 共20页
C语言课程设计.docx_第5页
第5页 / 共20页
C语言课程设计.docx_第6页
第6页 / 共20页
C语言课程设计.docx_第7页
第7页 / 共20页
C语言课程设计.docx_第8页
第8页 / 共20页
C语言课程设计.docx_第9页
第9页 / 共20页
C语言课程设计.docx_第10页
第10页 / 共20页
C语言课程设计.docx_第11页
第11页 / 共20页
C语言课程设计.docx_第12页
第12页 / 共20页
C语言课程设计.docx_第13页
第13页 / 共20页
C语言课程设计.docx_第14页
第14页 / 共20页
C语言课程设计.docx_第15页
第15页 / 共20页
C语言课程设计.docx_第16页
第16页 / 共20页
C语言课程设计.docx_第17页
第17页 / 共20页
C语言课程设计.docx_第18页
第18页 / 共20页
C语言课程设计.docx_第19页
第19页 / 共20页
C语言课程设计.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言课程设计.docx

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

C语言课程设计.docx

C语言课程设计

目录

1矩阵转位置1

1.1题目内容1

1.2算法框图1

1.3源程序及注释1

1.4运行结果2

2查找子串2

2.1题目内容2

2.2算法框图3

2.3源程序及注释3

2.4运行结果4

3学生出成绩统计程序4

3.1题目内容4

3.2算法框图5

3.3源程序及注释5

3.4运行结果8

4总结10

参考文献10

1矩阵转置

1.1题目内容

用函数调用法,求a矩阵的转置b。

主函数初始化a数,输出该数组,调用函数求数组

的转置,返回主函数后,输出处理后的数组。

1.2算法框图

定义函数fun

定义i,j

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

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

b[j][i]=a[i][j];

定义并初始化数组a[2][3]

定义b[3][2]

定义i,j

输出原数组

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

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

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

输出转置后的数

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

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

printf("%d",b[i][j])

图1.1求a矩阵的转置b的算法的N-S图

1.3源程序及注释

#include

fun(inta[2][3],intb[3][2])/*定义函数*/

{

inti,j;

for(i=0;i<2;i++)/*实现矩阵转置*/

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

b[j][i]=a[i][j];

}

main()

{inta[2][3]={2,3,4,5,6,7},b[3][2];

inti,j;

printf("原数组为:

\n");

for(i=0;i<2;i++)/*输出原数组*/

{for(j=0;j<3;j++)

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

printf("\n");

}

fun(a,b);/*调用函数*/

printf("转置后的数组为:

\n");

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

{for(j=0;j<2;j++)

printf("%d",b[i][j]);

printf("\n");

}

}

1.4运行结果

图1.2求a矩阵的转置b的运行结果截图

2查找子串

2.1题目内容

编写函数fun(char*str,char*substr),该函数可以统计长度为2的字符串在str所指的字

符串中出现的次数。

例如,若str所指的字符串为:

asdasdfasdasabsd,substr所指的字符串

为as,则函数应返回值:

4

定义函数fun

inti=0,j=0

str[j]!

='\0'

str[j]==substr[0]

同时

str[j+1]==substr[1]

相等

i++

j++

输出i

定义字符串str和substr

输入字符串str

输入字符串substr

调用函数fun

2.2算法框图

 

图2.1查找字串的算法的N-S图

2.3源程序及注释

#include

fun(char*str,char*substr)/*定义函数*/

{

inti=0,j=0;

while(str[j]!

='\0')/*判断是否有相应的字符串*/

{if(str[j]==substr[0]&&str[j+1]==substr[1])

i++;

j++;}

printf("%d\n",i);/*输出个数*/

}

main()

{

charstr[20];/*定义字符串*/

charsubstr[2];/*定义字符串*/

gets(str);/*输入字符串*/

gets(substr);

fun(str,substr);/*调用函数*/

}

2.4运行结果

2.2查找字串运行结果截图

3学生成绩统计程序

3.1题目内容

设计结构体数组,结构中包含学生数据为:

学号、姓名、物理分数、数学分数、外语分数、计算机分数。

设计各个函数,分别实现以下功能:

(1)输入学生数据

(2)显示所有学生信息(3)统计每科的最高分、最低分、不及格人数、不及格学生的数据。

设计菜单,通过选择菜单调用以上各函数。

3.2算法框图

定义函数mulu

定义函数shuru

定义函数xianshi

定义函数tongji

定义n并附初值

定义结构体并初始化

菜单

定义r

intr;

printf("************************菜单************************\n\n\n");

printf("1.输入学生数据\n\n\n");

printf("2.显示所有学生信息\n\n\n");

printf("3.统计\n\n\n");

printf("请输入数字选择:

")

r==1?

shuru(group);break;

r==2?

xianshi(group);break;

r==3?

tongji(group);break

exit;

定义字符串a

定义i,j,k,l

调用函数

printf("请输入信息:

")

printf("\n请输入学号:

",n+1);

scanf("%s",&group[n].xh);

printf("\n姓名:

");

scanf("%s",&group[n].xm);

printf("\n物理分数:

");

scanf("%f",&group[n].wl);

printf("\n数学分数:

");

scanf("%f",&group[n].sx);

printf("\n外语分数:

");

scanf("%f",&group[n].wy);

printf("\n计算机分数:

");

scanf("%f",&group[n].jsj);

n++;

printf("\n继续输入息请按Y:

");

scanf("%s",a);

!

(strcmp(a,"Y"))||!

(strcmp(a,"y")))

printf("返回主菜单请按1,退出程序请按2:

");

scanf("%d",&l)

l==1?

{system("cls");mulu();break;

l==2?

exit

xianshi(structlibs[10])

inta,b,c,d,h,l;

printf("学号姓名物理分数数学分数外语分数计算机分数\n");

for(h=0;h

printf("%-10s%-12s%-12f%-12f%-12f%-12f\n"

s[h].xh,s[h].xm,s[h].wl,s[h].sx,s[h].wy,s[h].jsj);

printf("返回主菜单请按1,退推出程序请按2:

");

scanf("%d",&l);

l==1?

{system("cls");mulu();break;}

l==2?

exit

tongji(structlibs[10])

inte=0,g=0,d=0,f,l,m,p

floatmin1=100,min2=100,min3=100,min4=100

max1=0,max2=0,max3=0,max4=0:

求出各科成绩的最低分与最高分

求出各科不及格人数

l==0?

system("cls");mulu();break;

:

exit(0)

主函数

调用函数mulu()

图3.1学生成绩统计程序的算法的N-S图

3.3源程序及注释

#include

#include

#include

mulu();/*定义函数*/

shuru(structlib*p);

xianshi(structlibs[10]);

tongji(structlibs[10]);

intn=0;

structlib

{

charxh[8];/*学生学号*/

charxm[20];/*学生姓名*/

floatwl;/*物理成绩*/

floatsx;/*数学成绩*/

floatwy;/*外语成绩*/

floatjsj;

}group[20];

mulu()

{

intr;

printf("************************菜单************************\n\n\n");

printf("1.输入学生数据\n\n\n");

printf("2.显示所有学生信息\n\n\n");

printf("3.统计\n\n\n");

printf("4.退出程序\n\n\n");

printf("*****************************************************\n\n\n");

printf("请输入数字选择:

");

scanf("%d",&r);

system("cls");

switch(r)

{

case1:

shuru(group);break;

case2:

xianshi(group);break;

case3:

tongji(group);break;

case4:

exit;

}

}

shuru(structlib*p)

{

chara[2];

inti,j,k,l;

structlibs[10];

printf("请输入信息:

");

do/*连续输入学生信息*/

{

printf("\n请输入学号:

",n+1);

scanf("%s",&group[n].xh);

printf("\n姓名:

");

scanf("%s",&group[n].xm);

printf("\n物理分数:

");

scanf("%f",&group[n].wl);

printf("\n数学分数:

");

scanf("%f",&group[n].sx);

printf("\n外语分数:

");

scanf("%f",&group[n].wy);

printf("\n计算机分数:

");

scanf("%f",&group[n].jsj);

n++;

printf("\n继续输入息请按Y:

");

scanf("%s",a);

}

while(!

(strcmp(a,"Y"))||!

(strcmp(a,"y")));

printf("返回主菜单请按1,退出程序请按2:

");

scanf("%d",&l);

switch(l)

{

case1:

{system("cls");mulu();break;}

case2:

exit;

}

}

xianshi(structlibs[10])

{

inta,b,c,d,h,l;

printf("学号姓名物理分数数学分数外语分数计算机分数\n");

for(h=0;h

printf("%-10s%-12s%-12f%-12f%-12f%-12f\n",

s[h].xh,s[h].xm,s[h].wl,s[h].sx,s[h].wy,s[h].jsj);

printf("返回主菜单请按1,退推出程序请按2:

");

scanf("%d",&l);

switch(l)

{

case1:

{system("cls");mulu();break;}

case2:

exit;

}

}

tongji(structlibs[10])

{inte=0,g=0,d=0,f,l,m,p;

floatmin1=100,min2=100,min3=100,min4=100,

max1=0,max2=0,max3=0,max4=0;

inta=0;

for(m=0;m

{if(s[m].wl

if(s[m].wl>max1)max1=s[m].wl;elsemax1=max1;

if(s[m].sx

if(s[m].sx>max2)max2=s[m].sx;elsemax2=max2;

if(s[m].wy

if(s[m].wy>max3)max3=s[m].wy;elsemax3=max3;

if(s[m].jsj

if(s[m].jsj>max4)max4=s[m].jsj;elsemax4=max4;}

printf("物理数学外语计算机\n");

printf("最低分");

printf("%-12f%-12f%-12f%-12f\n",min1,min2,min3,min4);

printf("最高分");

printf("%-12f%-12f%-12f%-12f\n",max1,max2,max3,max4);

printf("物理不及格学生数据及人数:

");

for(p=0;p

{if(s[p].wl<60){printf("%-10s%-12s%-12f",s[p].xh,s[p].xm,s[p].wl);a++;}

}printf("%d\n",a);

printf("数学不及格学生数据及人数:

");

for(p=0;p

{if(s[p].sx<60){printf("%-10s%-12s%-12f",s[p].xh,s[p].xm,s[p].sx);e++;}

}printf("%d\n",e);

printf("外语不及格学生数据及人数:

");

for(p=0;p

{if(s[p].wy<60){printf("%-10s%-12s%-12f",s[p].xh,s[p].xm,s[p].wy);g++;}

}printf("%d\n",g);

printf("计算机不及格学生数据及人数:

");

for(p=0;p

{if(s[p].jsj<60){printf("%-10s%-12s%-12f",s[p].xh,s[p].xm,s[p].jsj);d++;}

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

printf("返回主菜单请按0,退出程序请按1:

");

scanf("%d",&l);

switch(l)

{

case0:

{system("cls");mulu();break;}

case1:

exit(0);

}

}

main()

{

mulu();

}

3.4运行结果

图3.2学生成绩统计程序运行结果截图(A)-显示主菜单

图3.3学生成绩统计程序行结果截图(B)-输入学生信息

图3.4学生成绩统计程序运行结果截图(C)-输出所有学生信息

图3.5学生成绩统计程序运行结果截图(D)-统计学生信息

4总结

我的课程设计是矩阵转置与查找子串、学生成绩统计程序的设计。

经过近一周

的设计和同学的帮助,我的程序终于完成了!

达到了要求的目的。

对于我们这些新手来说,这是很大的考验,课设题目的难度很大,也非常的新颖,我

每一次尝试,都会有新的体会。

经过自己的琢磨,听取了同学的建议,还查阅了很多书籍,

才做到了心中有数,才了解了C语言课程设计的真正用意——培养自学能力,养成程序编辑

的好习惯。

书山有路勤为径,我要积极,要把握,要努力。

我们自己能做到的仅此而已,因

为人力也有所不能及。

在课程设计过程中,刚开始我感到简单,但在完成课设的过程中遇到了许多问题,例

如怎样去规划,不注意编写程序的细节,心理急躁。

在写最后一个程序时,心理急躁,想放

弃,反复的调试,时间正在消磨我的意志。

现在我终于完成了,一时欣喜。

谢谢给我指点迷津的老师。

参考文献

[1]马秀丽刘志妩李筠.《C语言程序设计》.北京.清华大学出版社.2008年3月

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

当前位置:首页 > 法律文书 > 调解书

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

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