C语言课程设计指导书.docx

上传人:b****6 文档编号:4714344 上传时间:2022-12-07 格式:DOCX 页数:20 大小:258.21KB
下载 相关 举报
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

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

C语言课程设计指导书.docx

C语言课程设计指导书

附件1报告封面

课程设计报告

 

课程设计名称:

C语言程序设计

 

指导教师:

学生:

学号:

学院:

完成时间:

2011/9/27

 

目录

1需求分析1

2总体设计2

2.12

2.22

3详细设计3

4调试与测试4

5测试结果5

6附录6

1需求分析

(描述问题。

简述课题要解决的问题是什么,有什么要求和限制条件。

1课程设计目标

使学生综合使用所学过的C语言程序设计知识,掌握结构化程序设计的基本思路和方法,利用所学的基本知识和技能,发挥自学能力和查找资料的能力,解决稍微复杂的结构化程序设计问题,加深对所学知识的理解与掌握,增强学生利用自己所学知识解决实际问题的能力,为以后的程序开发打下基础。

课程设计的目的和要求:

1.使学生巩固和加强《C语言程序设计》课程的理论知识。

2.使学生掌握C语言的基本概念、语法、语义和数据类型的使用特点。

3.使学生掌握C语言程序设计的方法及编程技巧,能正确使用C语言编写程序。

4.进一步理解和运用结构化程设计的思想和方法;学会利用流程图或N-S图表示算法。

5.使学生掌握调试程序的基本方法及上机操作方法。

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("%d\t",magic[i][c])改为fprintf(fp,"%d\t",magic[i][c]);

在一个简单的程序中,测试的错误反而会很多,在很多情况下,很多错误的问题大多数因为我们的粗心所导致,往往会在一些简单的细节上出了差错,从而导致程序运行不了.在这一点上,我需要培养自己的能力,不但在平时的训练中,还是在考试中,我都要养成良好的习惯,却不可以大意,不可以小看.

另外一种情况就是在一个较为复杂的程序中,测试出现错误是正常的,复杂的程序多多少少会因为自己的能力有限而导致测试出现错误,导致程序运行不了.现在解决的方法有:

第一:

和老师讨论一下,多吸收老师们的经验,多学习老师们的解决方法。

第二:

网络的发展为我们提供了学习的平台,所以网络也是我们学习的好地方,但也不忘网络的双重性。

5测试结果

(用几组测试数据进行测试算法设计的正确性,要包括测试数据和运行结果)

输入一位奇数,例如:

9.则出现魔方阵:

选择功能1,将出现魔方阵地最大值:

 

选择功能2,将出现排序顺序:

 

选择功能3,将出现魔方阵中的所有素数:

 

选择功能4,将出现魔方阵地所以完数:

选择功能5,将出现魔方阵的所有水仙花数:

操作完毕!

6附录

(源程序清单和结果:

源程序要加注释)

#include

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("magic.txt","w+"))==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<0)

c=n-1;

elseif(c>=n)

c=0;

}

for(i=0;i

{

for(c=0;c

{

fprintf(fp,"%d\t",magic[i][c]);

printf("%d\t",magic[i][c]);

}

printf("\n");

}

printf("\n\n");

x--;

}

}

while(t)//显示菜单

{

printf("=================================================\n");

printf("1求魔法阵的最大值以及所在行列\n");

printf("2求各行的排序\n");

printf("3求素数\n");

printf("4求完数\n");

printf("5求水仙花数\n");

printf("6退出\n");

printf("==================================================\n");

printf("请选择功能:

\n\n\n");

scanf("%d",&v);

if(v>=1&&v<=6)

switch(v)//子函数调用

{

case1:

daxiao(magic,n);break;

case2:

paixu(magic,n);break;

case3:

sushu(magic,n);break;

case4:

wangshu(magic,n);break;

case5:

shuixianhuashu(magic,n);break;

case6:

t--;

}

else

{

printf("数据输入错误\n");

}

}

}

voiddaxiao(intmagic[][100],intn)//最大值子函数

{

intc,k,i,l,max;

printf("===================\n");

max=magic[0][0];

for(i=0;i

{

for(c=0;c

{

if(magic[i][c]>max)

{

max=magic[i][c];

k=i;

l=c;

}

}

}

printf("最大值=%d\n行数=%d\n列数数=%d\n",max,k+1,l+1);

printf("======================\n");

printf("\n\n");

}

voidpaixu(intmagic[][100],intn)//排序子函数

{

intj,x,temp,b;

printf("\n\n");

printf("请输入需要排序的行数:

\t");

scanf("%d",&b);

{

printf("\n\n");

printf("=================================================\n");

for(j=0;j

for(x=0;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;

}

}

for(j=0;j

{

printf("%d\t",magic[b-1][j]);

}

printf("\n===============================================\n\n\n");

}

voidsushu(intmagic[][100],intn)//素数子函数

{

inti,j,m;

printf("\n\n\n====================\n");

printf("此魔方阵中的素数有:

\n");

for(j=0;j

{

for(i=0;i

{

for(m=2;m<=magic[j][i];m++)

{

if(m

if(magic[j][i]%m==0)break;

if(magic[j][i]==m)

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

}

}

}

printf("====================\n\n\n");

}

voidwangshu(intmagic[][100],intn)//完数子函数

{

intj,sum,h,m;

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

printf("======================\n");

for(m=0;m

{

for(h=0;h

{

sum=0;

for(j=1;j<=magic[m][h]/2;j++)

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;j++)

if(magic[m][h]%j==0)

printf("%d\t",j);

printf("\n");

}

}

}

printf("=================\n\n\n");

}

voidshuixianhuashu(intmagic[][100],intn)//水仙花数子函数

{

inti,k,s,l,m,sum=0;

printf("\n\n\n================================================\n");

if(n<13)

printf("此魔方阵没有水仙花数");

else

printf("水仙花数有:

\t");

for(l=0;l

{

for(m=0;m

{

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))

printf("%d\t",magic[l][m]);

sum=0;

}

}

printf("\n");

printf("=============================================\n\n\n");

}

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

当前位置:首页 > 考试认证 > 公务员考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1