C语言课程设计指导书Word格式.docx
《C语言课程设计指导书Word格式.docx》由会员分享,可在线阅读,更多相关《C语言课程设计指导书Word格式.docx(20页珍藏版)》请在冰豆网上搜索。
6.掌握书写程设计开发文档的能力,使学生学会撰写课程设计总结报告。
课程设计的思想和方法还可以作为学生做毕业论文时的参考资料。
7.通过查阅手册和文献资料,培养学生独立分析问题和解决问题的能力。
为学生做毕业设计打好基础。
8.初步掌握开发一个小型实用系统的基本方法:
结合实际应用的要求,使课程设计既覆盖知识点,又接近工程实际需要。
通过激发学习兴趣,调动学生主动学习的积极性,并引导他们根据实际编程要求,训练自己实际分析问题的能力及编程能力,并养成良好的编程习惯。
9.培养学生的创新能力和创新思维。
学生可以根据指导书和相关文献上的参考算法,自己设计出相应的应用程序。
10.培养学生良好的程序设计风格。
在实际编程中,为了提高编程质量,对空行、空格和注释均有要求。
学生在课程设计书写代码时,应该严格按要求处理,以便建立良好的程序设计风格。
2课程设计内容
2.1设计环境
1、硬件:
PC机。
2、软件:
操作系统为Win7或Windowsxp,设计语言为VisualC++6.0或TurboC2.0。
2.2基本要求
1.课程设计采取每两人一组,体现团队合作精神,要求选定一人为组长。
2.可以选择老师提供的参考选题(选题方法另行公布),也可以自选,如果自选,需要将自选题目的详细内容以及实现要求提供给老师,老师批准后方可采用(和网上雷同的一律不批准)。
3.要求有欢迎界面、菜单、数据使用数组、结构体、链表等均可,键盘操作或鼠标操作均可;
可以加以其他功能或修饰,使程序更加完善、合理;
4.模块化程序设计:
要求在设计的过程中,按功能定义函数或书写多个文件,进行模块化设计,各个功能模块用函数的形式来实现;
5.学生所选课题必须上机通过,并获得满意的结果;
6.设计上交内容:
设计报告每组一份(按附件1的格式书写);
源程序文件;
7.流程图要采用N-S流程图;
10.源程序书写风格:
锯齿型书写格式。
2.3设计过程
1.根据问题描述,设计数据存储方式;
2.分析系统功能,划分功能模块,确定各模块函数名称;
3.主程序算法设计和各模块算法设计;
4.编程实现;
5.调试和测试;
6.完成设计文档和课程设计说明书。
2.4、课程设计报告格式及要求
一、封面(见附件1);
二、目录;
三、需求分析;
描述问题。
四、总体设计(程序设计总流程图及各模块划分);
五、详细设计(各模块功能说明,如函数功能、入口及出口参数说明,函数调用关系描述等);
六、调试与测试:
调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施;
七、测试结果,用几组测试数据进行测试算法设计的正确性,要包括测试数据和运行结果。
八、附录。
源程序清单和结果:
源程序要加注释。
2总体设计
(程序设计总流程图及各模块划分)
3详细设计
(各模块功能说明,如函数功能、入口及出口参数说明,函数调用关系描述等)
魔方阵NS流程图:
最大值子函数流程图
输入:
c,k,i,l,max
输出:
======================
max=magic[0][0]
3.3排序子函数流程图:
素数子函数流程图:
完数子函数流程图:
水仙花数子函数流程图:
4调试与测试
(调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施)
这一个问题主要是在c(56)中:
fprintf("
%d\t"
magic[i][c]);
没有定义magic[i][c]的途径,为解决问题,需将fprintf("
magic[i][c])改为fprintf(fp,"
在一个简单的程序中,测试的错误反而会很多,在很多情况下,很多错误的问题大多数因为我们的粗心所导致,往往会在一些简单的细节上出了差错,从而导致程序运行不了.在这一点上,我需要培养自己的能力,不但在平时的训练中,还是在考试中,我都要养成良好的习惯,却不可以大意,不可以小看.
另外一种情况就是在一个较为复杂的程序中,测试出现错误是正常的,复杂的程序多多少少会因为自己的能力有限而导致测试出现错误,导致程序运行不了.现在解决的方法有:
第一:
和老师讨论一下,多吸收老师们的经验,多学习老师们的解决方法。
第二:
网络的发展为我们提供了学习的平台,所以网络也是我们学习的好地方,但也不忘网络的双重性。
5测试结果
(用几组测试数据进行测试算法设计的正确性,要包括测试数据和运行结果)
输入一位奇数,例如:
9.则出现魔方阵:
选择功能1,将出现魔方阵地最大值:
选择功能2,将出现排序顺序:
选择功能3,将出现魔方阵中的所有素数:
选择功能4,将出现魔方阵地所以完数:
选择功能5,将出现魔方阵的所有水仙花数:
操作完毕!
6附录
(源程序清单和结果:
源程序要加注释)
#include<
stdio.h>
voiddaxiao(intmagic[][100],intn);
//最大值函数声明
voidpaixu(intmagic[][100],intn);
//行数排序函数声明
voidsushu(intmagic[][100],intn);
//素数函数声明
voidwangshu(intmagic[][100],intn);
//完数函数声明
voidshuixianhuashu(intmagic[][100],intn);
//水仙花数函数声明
voidmain()
{
FILE*fp;
inti=0,n,nn,c,s,v,x=1,t=1;
intmagic[100][100];
char*filename="
magic.txt"
;
fp=(filename,"
w+"
);
//生成文件
if((fp=fopen("
"
))==NULL)
{
printf("
cannotopenthefile\n"
exit(0);
}
while(x)
printf("
请输入一个奇数:
\n"
//生成魔方阵
scanf("
%d"
&
n);
if((n%2)==0)
printf("
数据不存在,重新输入\n"
else
{
c=(n-1)/2;
s=1;
nn=n*n;
while(s<
=nn)
{
magic[i][c]=s;
s++;
if((s-1)%n==0)
i++;
else
{
i--;
c++;
}
if(i<
0)
i=n-1;
elseif(i==n)
i=0;
if(c<
c=n-1;
elseif(c>
=n)
c=0;
}
for(i=0;
i<
n;
i++)
for(c=0;
c<
c++)
{
fprintf(fp,"
printf("
magic[i][c]);
}
printf("
printf("
\n\n"
x--;
}
while(t)//显示菜单
=================================================\n"
1求魔法阵的最大值以及所在行列\n"
2求各行的排序\n"
3求素数\n"
4求完数\n"
5求水仙花数\n"
6退出\n"
==================================================\n"
请选择功能:
\n\n\n"
v);
if(v>
=1&
&
v<
=6)
switch(v)//子函数调用
case1:
daxiao(magic,n);
break;
case2:
paixu(magic,n);
case3:
sushu(magic,n);
case4:
wangshu(magic,n);
case5:
shuixianhuashu(magic,n);
case6:
t--;
}
else
printf("
数据输入错误\n"
}
voiddaxiao(intmagic[][100],intn)//最大值子函数
intc,k,i,l,max;
===================\n"
max=magic[0][0];
for(i=0;
for(c=0;
if(magic[i][c]>
max)
max=magic[i][c];
k=i;
l=c;
最大值=%d\n行数=%d\n列数数=%d\n"
max,k+1,l+1);
======================\n"
voidpaixu(intmagic[][100],intn)//排序子函数
intj,x,temp,b;
请输入需要排序的行数:
\t"
b);
for(j=0;
j<
n-1;
j++)
for(x=0;
x<
n-1-j;
x++)
if(magic[b-1][x]>
magic[b-1][x+1])
temp=magic[b-1][x];
magic[b-1][x]=magic[b-1][x+1];
magic[b-1][x+1]=temp;
magic[b-1][j]);
\n===============================================\n\n\n"
voidsushu(intmagic[][100],intn)//素数子函数
inti,j,m;
printf("
\n\n\n====================\n"
此魔方阵中的素数有:
for(j=0;
j<
n;
j++)
for(i=0;
i<
i++)
for(m=2;
m<
=magic[j][i];
m++)
if(m<
magic[j][i])
if(magic[j][i]%m==0)break;
if(magic[j][i]==m)
%5d"
magic[j][i]);
}
====================\n\n\n"
voidwangshu(intmagic[][100],intn)//完数子函数
intj,sum,h,m;
\n\n\n"
for(m=0;
for(h=0;
h<
h++)
sum=0;
for(j=1;
=magic[m][h]/2;
if(magic[m][h]%j==0)
sum+=j;
if(sum==magic[m][h])
printf("
%d\t的因子是:
"
magic[m][h]);
for(j=1;
j<
=magic[m][h]/2;
if(magic[m][h]%j==0)
j);
=================\n\n\n"
voidshuixianhuashu(intmagic[][100],intn)//水仙花数子函数
inti,k,s,l,m,sum=0;
\n\n\n================================================\n"
if(n<
13)
printf("
此魔方阵没有水仙花数"
else
水仙花数有:
\t"
for(l=0;
l<
l++)
for(m=0;
i=magic[l][m];
k=i;
do
s=k%10;
k=k/10;
sum=sum+s*s*s;
while(k>
0);
if((i==sum)&
(i!
=1))
magic[l][m]);
sum=0;
=============================================\n\n\n"