综合性实验报告模版.docx
- 文档编号:4669135
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:11
- 大小:145.91KB
综合性实验报告模版.docx
《综合性实验报告模版.docx》由会员分享,可在线阅读,更多相关《综合性实验报告模版.docx(11页珍藏版)》请在冰豆网上搜索。
综合性实验报告模版
软件学院综合性、设计性实验报告
专业:
计算机科学与技术(java方向)年级/班级:
2010级1班2010—2011学年第一学期
课程名称
C语言程序设计
指导教师
本组成员
学号姓名
实验地点
实验时间
12月13日8:
00-9:
40;12月14日8:
00-9:
40;12月20日8:
00-9:
40;12月21日8:
00-9:
40。
项目名称
职工数据管理
实验类型
综合性
一、实验目的
1.掌握数组的定义、赋值和输入输出的方法;
2.掌握字符数组和字符函数的使用;
3.掌握与数组有关的算法(特别是排序、查找算法);
4.掌握定义函数和函数调用的方法;
5.掌握函数实参和形参的对应关系及传递方式(值传递和地址传递)。
二、实验仪器或设备
系统
MicrosoftWindowsXP
Professional
版本2002
Sevicepack3
计算机
AMDAthlon(tm)IIX2B24
3.01GHZ,2.00GB的内存
三、总体设计(设计原理、设计方案及流程等)
1、编写一个函数。
(1)函数的要求:
用“起泡法”对输入的10个字符按由小到大顺序排序。
(2)描述程序中用到的函数的作用
(3)画出主函数的N—S图。
(4)对实验中用到的方法进行描述。
(5)写出程序。
(6)对运行结果及程序进行分析。
2、编写几个函数。
(1)函数的内容及要求如下:
①输入10个职工的姓名和职工号。
②按职工号由大到小排序,姓名顺序也随之调整;
③要求输入一个职工号,用折半法查找出该职工的姓名,从主函数输入要查找的职工号,输出该职工姓名。
(2)对程序中的方法进行描述。
(3)描述程序中用到的函数的作用。
(4)描述变量:
用到的变量及变量代表的内容。
(5)写出程序。
(6)对运行结果及程序进行分析。
3、写出对实验的分析与总结以及体会。
四、实验步骤(包括主要步骤、代码分析等)
1、
(1)有关函数的作用:
sort函数的作用是排序。
(2)主函数的N—S图
(3)起泡法的主要步骤如下:
用起泡法对十个数排序。
“起泡法”的思路是:
将相邻两个数进行比较,讲小的调到前头。
见下图1具体情况如下:
若有六个数,第一次将8和9对调,第二次将第2和第3个数(9和5)对调……如此共进行5次,得到8-5-4-2-0-9的顺序,可以看到:
最大的数9已“沉底”,成为最下面一个数,而小的数“上升”。
最小的数0已向上“浮起”一个位置。
经第一趟(共5次比较与交换)后,已得到最大的数。
然后进行第二趟比较,对余下的前面5个数按上述方法进行比较,见上图2。
经过4次比较与交换,得到次大的数8。
如此进行下去,可以推知,对6个数要比较5趟,才能使6个数按大小顺序排列。
在第一趟中要进行两个数之间的比较,共5次,在第二趟中比较四次……第5趟比较一次。
如果有n个数,则要进行n-1趟比较。
在第一趟中要进行n-1次两两比较,在第j趟中要进行n-j趟两两比较。
据此可画出流程图:
(4)根据流程图写出程序:
运行情况如下:
(4)实验程序:
实验结果:
对结果进行分析:
①程序中定义对输入的10个字符进行排序,若输入的字符数小于10,会出现如下结果:
说明当输入的字符个数小于10时,程序仍能够对字符进行排序;
②而输入的字符个数大于10的时候又会出现下面的结果:
运行结果显示输入的数组太长,需要重新输入,再按要求输入10个字符会得到如下结果:
③对程序及结果进行整体分析:
主函数当循环开关变量flag=1,输入字符串,如果长度超过10,系统提示“stringtoolong,inputagain!
”反之,置flag=0。
调用sort函数进行排序,for(i=0;i for(i=0;i ='\0');i++)其中(str[i]! ='\0')非字符串尾,如果第i个字符大于第i+1个字符则交换第i个与第i+1个字符,反之则不交换 2、 (1)①实验中用到的查找法是“折半法”下面对“折半法”进行描述: 折半查找法是比顺序查找法效率高的一种方法。 其基本思路如下: 假如有已按由小到大排好序的9个数,a[1]—a[9],其值分别为124568101223(这9个数为实验中用到的10个职工号的其中9个) 若输入一个职工号2,想查找2是否在数列中,先找出表列居中的数,即a[5],将要找的数2与a[5]比较,a[5]的值是6,发现a[5]>2,显然2应在a[1]到a[5]范围内,而不会在a[6]到a[9]范围内。 这样就可以缩小查找范围,甩掉a[6]到a[9]这一部分,即将查找的范围缩小一半。 )再找a[1]到a[5]范围内的居中的数,即a[3],将要找的数2与a[3]比较,a[3]的值是4,发现a[3]>2,显然2应在a[1]到a[3]范围内,这样又将查找范围缩小一半。 再将2与a[1]到a[3]范围内的 居中的数a[2]比较,发现要找的数2等于a[2],查找结束。 一共比较了三次。 如果表列中有n个数,则最多比较的次数为int(㏒2n)+1。 ②实验中用到了“选择法”排序,下面对“选择法”进行描述: 选择排序的思路是这样的: 设有10个元素a[1]—a[10],将a[1]与a[2]—a[10]进行比较,若a[1]比a[2]—a[10]都小,则不进行交换,即无任何操作。 若a[2]—a[10]中有一个以上比a[1]小,则将其中最大的一个(假设为a[i])与a[1]进行交换,此时a[1]中存放了10个中最小的数。 第二轮将a[2]与a[3]—a[10]比较,将剩下的9个数中的最小者a[i]与a[2]进行对换,此时a[2]中存放的是10个数中的第二小的数。 依此类推,共进行9轮比较,a[1]—a[10]就已经按由小到大的顺序存放了。 N—S图如下: (2)、有关函数的作用: ①input函数的作用是完成10个职工的数据的录入; ②sort函数的作用是选择法排序; ③search函数的作用是用折半查找的方法找出指定职工号的职工姓名。 (3)、有关变量的描述: ①number代表职工号; ②name代表职工姓名。 (4)、实验程序: 实验结果: 程序运行结束。 (5)对结果及程序进行分析: ①本程序用到的知识比较多,其中有第七章《数组》中的一维数组的定义形式(如程序中的int[]);字符数组的定义形式(如程序中的charname[]);还有strcpy函数,它是“字符串复制函数”,其一般形式为strcpy(字符数组1,字符串2),它的作用是将字符串2复制到字符数组1中去,在使用时应注意字符数组1必须定义得足够大;还有gets函数,其作用是从终端输入一个字符数组,并且得到一个函数值,该函数值时字符数组的起始地址。 还用到了第九章《预处理命令》中的宏定义。 其形式为: #define标识符字符串。 宏定义是用宏名代替一个字符串,也就是作简单的置换,使用宏名代替一个字符串,可以减少程序中重复书写某些字符串的工作量,使程序简单而不易出错,使用宏定义时应注意: 宏定义不是C语句,不必在行末加分号,如果加分号,则会连分号一起进行置换。 ②其流程用我的理解描述为: top,bott是查找区间两断点的下标,loca是查找成功与否的开关变量。 基本思路是: 有序数组a[N],flag=1,sign=1,显示a[N],while(flag==1),输入要找的数据number,loca=0,top=0,bott=N-1,如果number超出范围loca=-1,while(sign=1&&top<=bott)mid=(bott+top)/2,若number==a[mid],loca=mid找到显示结果,sign=0,若number!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 综合性 实验 报告 模版