C语言大作业

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学院

目录

1 摘要 (3)

1.1设计题目 (3)

1.2设计内容 (3)

1.3开发工具 (3)

1.4应用平台 (3)

2 详细设计 (3)

2.1程序结构 (3)

2.2主要功能 (10)

2.3函数实现 (10)

2.4开发日志 (17)

3 程序调试及运行 (18)

3.1程序运行结果 (18)

3.2程序使用说明 (19)

3.3程序开发总结 (20)

4 附件(源程序) (20)

1 摘要

1.1 设计题目

A题算法型:折半查找算法演示程序

B题空间桁架结构节点位移求解

1.2 设计内容

A题:

本程序是一个演示折半查找算法的演示程序。当用户输入查找数据表列和要查找的数据时,程序会演示折半法查找该数的详细过程,并且支持多次查找、错误提示等功能。

B题:

空间桁架结构节点位移求解

1.3 开发工具

Code Blocks 12.11(内置MinGW)

1.4 应用平台

Windows 7 64位

2 详细设计

2.1 程序结构

A题:

程序功能模块:

本程序主要包含六大模块:程序说明模块、输入模块、排序模块、折半法查找模块、选择模块和程序

退出模块。

工程文件结构:

本程序的工程含有6个文件,其中main.cpp、print_stars.cpp、judge.cpp、sort.cpp、putout.cpp5个cpp 文件和include.h1个头文件(参见下图),两者共同存在于工程“折半法查找演示程序”中。其中main.cpp 文件包含了程序的主体部分,程序说明模块、输入、排序、折半查找、选择、程序退出模块按线性排列。其中输入、排序模块执行一次,这般查找、选择模块可多次执行,直到程序退出模块执行。

六大模块说明:

(1) 程序说明模块:

给使用者营造一个较为友好的界面,同时提供程序开发人员的相关信息以及程序操作的相关说明信息。此部分模块主函数源代码如下:

int a[N];

/*存储要查找的数表,用户输入*/

int i,n,num,count;

/*count为折半次数计数器,n为数表数据个数,num存储所查数据*/

int top,bottom,mid;

char c;

/*存储选择函数中的输入的字符y或n*/

int flag=1;

/*折半法循环标志变量*/

int loc=-1;

/*存储所查找数据位置*/

double k=0;

p_s(76);puts("\n");

/*引用p_s函数,打出一行'*'*/(p_s函数位于print_star.cpp文件中,参见下文)

printf("****欢****迎****使****用****折****半****查****找****法****演****示****器****\n");

puts("\n");

/*程序欢迎语*/

p_s(13);

printf("制作者:Haidong Chen***");

/*作者信息*/

p_s(4);

printf("**Email:1562353594@");

/*电子邮件*/

p_s(11);puts("\n");

p_s(76);puts("\n");

/*再次引用p_s函数,程序说明部分结束*/

附:print_star.cpp文件源代码

#include

void p_s(int k)

{

int i;

for(i=1;i<=k;i++)

/*连续输出ka个'*'*/

printf("*");

}

(2) 输入模块:

引导使用者输入要在其中查找数据的数表的数据个数和数表数据。并通过一个judge函数判断输入是否合法,若不合法提醒用户继续输入。此部分模块主函数源代码如下:

printf("请输入你想要在其中查找数据的数据表列的数据个数(1--50):\n");//

scanf("%d",&n);

n=judge(n);

/*引用judge函数,判断n值是否合法*/ (judge函数位于judge.cpp文件,参见下文)printf("请输入你要在其中查找数据的数据表列(%d个数据用空格间隔大小排序不限):\n",n);

/*输入要查找的n 个数据*/

for(i=0;i<=n-1;i++)

scanf("%d",&a[i]);

/*将要查找的n个数据存入数组a*/

sort(a,n);

/*引用sort函数,将数表排序*/

printf("\n输出表列(从小到大排列)\n");

附:judge.cpp文件源代码

#include

int judge(int n2)

/*函数作用:判断n2的值是否在1—50范围内*/

{ int n3;

while(n2<1 || n2>50)

{

printf("你输入的数不正确,请重新输入。\n");

printf("请输入你想要在其中查找数据的数据表列的数据个数(1--50):\n");

/*不合法重新输入并传递给主函数*/

scanf("%d",&n3);

return n3;

}

return n2;

}

(3) 排序模块:

将用户输入数表的按升序排列并输出,为接下来的折半法查找做准备。此部分模块主要通过sort.cpp 文件中的sort函数实现。此部分模块主函数源代码如下:

sort(a,n);

/*引用sort函数,将数表排序*/

printf("\n输出表列(从小到大排列)\n");

putout(a,0,n-1);

/*引用putout函数,输出排序后数表*/

附:sort.cpp 文件源代码

#include

void sort(int A[],int n1)

/*将数组A的元素按从下到大顺序排序*/

{

int x,y,z;

for(x=0;x

for(y=0;y

{

if(A[y]>A[y+1])

/*二重循环将n1个数据由小到大排序*/

{

z=A[y];

/*z暂时存储a[y]的值*/

A[y]=A[y+1];

A[y+1]=z;

}

相关文档
最新文档