C语言课程设计Word格式.docx
《C语言课程设计Word格式.docx》由会员分享,可在线阅读,更多相关《C语言课程设计Word格式.docx(20页珍藏版)》请在冰点文库上搜索。
b[j][i]=a[i][j];
定义并初始化数组a[2][3]
定义b[3][2]
输出原数组
printf("
%d"
a[i][j]);
输出转置后的数
b[i][j])
图1.1求a矩阵的转置b的算法的N-S图
1.3源程序及注释
#include<
stdio.h>
fun(inta[2][3],intb[3][2])/*定义函数*/
{
inti,j;
i++)/*实现矩阵转置*/
for(j=0;
b[j][i]=a[i][j];
}
main()
{inta[2][3]={2,3,4,5,6,7},b[3][2];
printf("
原数组为:
\n"
);
i++)/*输出原数组*/
{for(j=0;
}
fun(a,b);
/*调用函数*/
转置后的数组为:
{for(j=0;
b[i][j]);
}
1.4运行结果
图1.2求a矩阵的转置b的运行结果截图
2查找子串
2.1题目内容
编写函数fun(char*str,char*substr),该函数可以统计长度为2的字符串在str所指的字
符串中出现的次数。
例如,若str所指的字符串为:
asdasdfasdasabsd,substr所指的字符串
为as,则函数应返回值:
4
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]!
)/*判断是否有相应的字符串*/
{if(str[j]==substr[0]&
&
str[j+1]==substr[1])
i++;
j++;
%d\n"
i);
/*输出个数*/
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;
************************菜单************************\n\n\n"
1.输入学生数据\n\n\n"
2.显示所有学生信息\n\n\n"
3.统计\n\n\n"
请输入数字选择:
"
)
r==1?
shuru(group);
break;
r==2?
xianshi(group);
真
r==3?
tongji(group);
break
exit;
定义字符串a
定义i,j,k,l
调用函数
请输入信息:
\n请输入学号:
n+1);
scanf("
%s"
&
group[n].xh);
\n姓名:
group[n].xm);
\n物理分数:
scanf("
%f"
group[n].wl);
\n数学分数:
group[n].sx);
\n外语分数:
group[n].wy);
\n计算机分数:
group[n].jsj);
n++;
\n继续输入息请按Y:
a);
!
(strcmp(a,"
Y"
))||!
y"
)))
返回主菜单请按1,退出程序请按2:
%d"
l)
l==1?
{system("
cls"
mulu();
l==2?
exit
xianshi(structlibs[10])
inta,b,c,d,h,l;
学号姓名物理分数数学分数外语分数计算机分数\n"
for(h=0;
h<
n;
h++)
%-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);
返回主菜单请按1,退推出程序请按2:
l);
假
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("
:
exit(0)
主函数
调用函数mulu()
图3.1学生成绩统计程序的算法的N-S图
3.3源程序及注释
string.h>
stdlib.h>
/*定义函数*/
shuru(structlib*p);
xianshi(structlibs[10]);
tongji(structlibs[10]);
intn=0;
structlib
charxh[8];
/*学生学号*/
charxm[20];
/*学生姓名*/
floatwl;
/*物理成绩*/
floatsx;
/*数学成绩*/
floatwy;
/*外语成绩*/
floatjsj;
}group[20];
mulu()
4.退出程序\n\n\n"
*****************************************************\n\n\n"
r);
system("
switch(r)
{
case1:
case2:
case3:
case4:
shuru(structlib*p)
chara[2];
inti,j,k,l;
structlibs[10];
do/*连续输入学生信息*/
while(!
)));
switch(l)
inta,b,c,d,h,l;
for(h=0;
s[h].xh,s[h].xm,s[h].wl,s[h].sx,s[h].wy,s[h].jsj);
{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<
m++)
{if(s[m].wl<
min1)min1=s[m].wl;
elsemin1=min1;
if(s[m].wl>
max1)max1=s[m].wl;
elsemax1=max1;
if(s[m].sx<
min2)min2=s[m].sx;
elsemin2=min2;
if(s[m].sx>
max2)max2=s[m].sx;
elsemax2=max2;
if(s[m].wy<
min3)min3=s[m].wy;
elsemin3=min3;
if(s[m].wy>
max3)max3=s[m].wy;
elsemax3=max3;
if(s[m].jsj<
min4)min4=s[m].jsj;
elsemin4=min4;
if(s[m].jsj>
max4)max4=s[m].jsj;
elsemax4=max4;
物理数学外语计算机\n"
最低分"
%-12f%-12f%-12f%-12f\n"
min1,min2,min3,min4);
最高分"
max1,max2,max3,max4);
物理不及格学生数据及人数:
"
for(p=0;
p<
p++)
{if(s[p].wl<
60){printf("
%-10s%-12s%-12f"
s[p].xh,s[p].xm,s[p].wl);
a++;
}printf("
数学不及格学生数据及人数:
{if(s[p].sx<
s[p].xh,s[p].xm,s[p].sx);
e++;
e);
外语不及格学生数据及人数:
{if(s[p].wy<
s[p].xh,s[p].xm,s[p].wy);
g++;
g);
计算机不及格学生数据及人数:
{if(s[p].jsj<
s[p].xh,s[p].xm,s[p].jsj);
d++;
d);
返回主菜单请按0,退出程序请按1:
case0:
exit(0);
mulu();
3.4运行结果
图3.2学生成绩统计程序运行结果截图(A)-显示主菜单
图3.3学生成绩统计程序行结果截图(B)-输入学生信息
图3.4学生成绩统计程序运行结果截图(C)-输出所有学生信息
图3.5学生成绩统计程序运行结果截图(D)-统计学生信息
4总结
我的课程设计是矩阵转置与查找子串、学生成绩统计程序的设计。
经过近一周
的设计和同学的帮助,我的程序终于完成了!
达到了要求的目的。
对于我们这些新手来说,这是很大的考验,课设题目的难度很大,也非常的新颖,我
每一次尝试,都会有新的体会。
经过自己的琢磨,听取了同学的建议,还查阅了很多书籍,
才做到了心中有数,才了解了C语言课程设计的真正用意——培养自学能力,养成程序编辑
的好习惯。
书山有路勤为径,我要积极,要把握,要努力。
我们自己能做到的仅此而已,因
为人力也有所不能及。
在课程设计过程中,刚开始我感到简单,但在完成课设的过程中遇到了许多问题,例
如怎样去规划,不注意编写程序的细节,心理急躁。
在写最后一个程序时,心理急躁,想放
弃,反复的调试,时间正在消磨我的意志。
现在我终于完成了,一时欣喜。
谢谢给我指点迷津的老师。
参考文献
[1]马秀丽刘志妩李筠.《C语言程序设计》.北京.清华大学出版社.2008年3月