您的位置:

c语言综合性实验,C语言综合实验

本文目录一览:

怎么写c语言综合实验设计报告?

举个楼主自己写的例子吧,仅供参考。

c语言作业报告书

题 目:二次探测再散列法解决冲突建立哈希表并查找

完成时间:2012年5月31号

学 号:2011013290 姓名:聂亮兵 专业班级:信管112班

1. 实习任务与目的

实验任务:独立写出哈希查找的相关代码并画出核心的算法流程图,记录相关实验数据,得出实验结果。

试验目的:通过两者运行时间的对比,加深对哈希查找和顺序查找各自优缺点的理解,并进一步熟悉哈希查找的原理和流程。

2. 实习内容及过程

实习内容:用除留余数法和二次探测再散列法解决冲突建立哈希表并查找,通过函数GetTickCount计算运行时间;再同样计算顺序查找的方法的查找时间。

实习过程:

查阅关于库函数windows.h的相关内容,并熟悉函数GetTickCount()的用法。

规划算法流程,画出主要函数的流程图。具体流程是:读入文件数据——顺序查找——输出结果——哈希查找——输出结果。

对应流程写出相关函数,完善主函数。

进行程序的运行和调试,修改一些不足和bug。

添上相关注释。

运行程序进行实验并得出实验结果,记录。

完成实验报告。

3. 实验结果分析

实验结果:由于所给数据Data.txt数据量过小,实验结果不明显,两种查找所耗时间均被系统默认为0;如图所示为编号为37、1294、4091的三个数据元素:

分析:哈希查找的方法适用于数据在区间内随机分布均并且量大的数据形式;而顺序查找原理简单,但是不适用于大量数据的查找。

4. 核心算法流程图

图1:主函数流程图

图2:哈希查找流程图

5. 实习总结及体会

这个实验难度不大,但是需要自己高质量的独立完成,对自己是一个总结归纳,能通过这个实验清楚自己哪些地方平时没有注意到,哪些地方是自己擅长并应该继续保持的。

此外,本实验的全过程能让自己了解正式的程序、任务和报告等的完成流程。通过自己独立完成这个实验,再和标准的数据结构代码比较,找出自己代码的亮点、不足以及欠缺,让自己明白哪些地方是自己想不到的,哪些方法是自己不能想到的,并以此学习好的编程思想和优秀的编程技巧和编程风格。

本次试验中:

正式的程序代码中,外部变量的使用要格外注意,不能随意使用外部变量。但是本程序具有独立性,不用与其他程序代码相衔接,采用外部变量的方法,减少函数调用的时候的复制传值的次数,提高效率。

正式的编程思想中,要有统一的命名方式。这包括两个方面。其一是自己的命名规则要统一,不能乱。其二是与合作小组之间的命名规则要统一,提高代码的可嵌入性。但是本实验由自己独立完成,命名规则按照自己的习惯而定,与课本命名规则有点出入。

二次探测再散列法解决冲突中,课本中没有提到如果H(a)-m^20时的处理方法。本程序中采用的方法是取绝对值。二次探测再散列法中,再散列需要在循环中进行,直到找到位置e为止。这个过程中m需要进行两种互斥变化:一种是 *-1 ;一种是 +1;再循环中不好实现。本程序中采用一个信号变量,每次循环自增1,奇偶数分别执行不同的变化。

C语言综合实验设计报告

题目: C语言输出万年历

学院:

专业:

班级:

姓名:

设计日期:

 总分:

一、设计题目:

C语言输出万年历

二、题目阐述及设计思路:

C语言输出万年历,输入年份、月份,计算得到的是这一天是星期几;给定年,月,计算此月有多少天 。本程序运用的万年历的计算公式: d=a-1+(a-1)/4-(a-1)/100+(a-1)/400+c; 其中a为年c为该日期在本年中的天数,d取整数,当d/7余数0时是星期天,余数1时是星期一依此类推。

三、主要知识点:

运用函数调用,if,else函数switch语句。for,while,循环语句。

四、程序清单:

#include stdio.h

int m_day(int year,int month)/*此函数是给定年,月,计算此月有多少天.*/

{

if ((year%4==0 year%100!=0) ?? (year%400==0))

switch(month)

{

case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31;

case 4: case 6: case 9: case 11: return 30;

case 2: return 29;

}

else

switch(month)

{

case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31;

case 4: case 6: case 9: case 11: return 30;

case 2: return 28;

}

}

int main()

{

int year,month;

int i, days=0, d, day=0;

printf ("Enter the year and month:\n");

scanf ("%d %d ", year, month );

for (i=1;imonth; i++)

days+=m_day (year,i);

d=year-1+(year-1)/4-(year-1)/100+(year-1)/400+days+1;

printf("%d-%d\n",year,month);

printf(" Sun Mon Tue Wed Thu Fri Sat\n");

for (i=0;id%7;i++)

printf(" ");

for (i=1;i=7-d%7;i++)

{

day++;

printf("%5d",day);

}

printf("\n");

while(1)

{

for (i=1;i=7;i++)

{

day++;

if (daym_day(year,month))

printf("%5d",day);

}

printf("\n");

}

}

五、设计结果说明:

1、设计优点:

程序充分利用所学的C语言知识,运用了函数的调用、循环语句、以及return语句,使得编程更加有条理。简单易懂,结构清晰,也使得程序的使用更加方便。

2、设计不足:

在编程序时,由于考虑到时间和受所学知识的限制,只能输入年份、月份,计算得到的是这一天是星期几;给定年,月,计算此月有多少天 。而并不能输入公历的年月日,输出农历年月日以及输入农历节气,输出当年农历的年月日及公历年月日。

c语言综合实验报告 帮我弄一个

姓名 ***

**学 院 ** 专业 052 班

2007 年 11 月 24 日

实验内容实验五 指导老师 陈老师

一、实验内容及要求:

编译运行习题5-3,观察x、y变量的值。

实现客户机类(类名为CLIENT),其中包含的成员有:字符型静态数据成员ServerName,用来保存服务器名称;整型静态数据成员ClientNum,记录已定义的客户数量;静态函数ChangeServerName(),用来改变服务器名称。在头文件client.h中声明这个类,在文件client.cpp中实现,在文件test.cpp中测试这个类,观察相应的成员变量取值的变化情况。二、实验目的:

1、复习类的声明和使用、掌握对象的声明和使用;

2、学习构造函数和析构函数的使用,观察构造函数和析构函数的执行过程。

三、程序:

//client.h

class Client

{

public:

Client();

~Client();

static ChangeServerName(char *); //改变服务器名称

char * GetServerName(); //返回服务器名称

int GetClientNum (); //返回客户机数量

protected:

static char ServerName[20]; //服务器名称

static int ClientNum; //存放服务器数量

};

/////////////////////////////////////////////////////

//client.cpp

# include iostream

# include cstring

# include "client.h"

using namespace std;

static char *ServerName = "";

int Client::ClientNum = 0;

Client::Client()

{ClientNum ++;}

Client::~Client(){}

void Client::ChangeServerName(char * names) //改变服务器名称

{strcpy(ServerName,names);}

char * GetServerName() //返回服务器名称

{return ServerName;}

int GetClientNum () //返回服务器数量

{return ClientNum;}

////////////////////////////////////////////////////////

//test.cpp

# include iostream

# include "client.cpp"

using namespace std;

void main() //用于测试的主函数

{

Client threeclient[3];

char namestr[20]; //临时存放服务器名称

cout"定义了3个客户"endl;

cout"请输入新服务器名称:"endl;

cin namestr;

CC.ChangeServerName(namestr);

cout"服务器的名称是"Client::GetServerName()endl;

cout"客户数量为"CC.GetClientNum ();

}

思考题:

(1)C语言有五种基本数据类型:字符、整型、单精度实型、双精度实型和空类型。结构体可以定义自己所需特殊类型.其他类型是已经定义好,不可修改的,而结构体是根据自己的需要定义的特殊的类型.

(3)采用了循环,复合语句.

C语言综合实验

If SqlConn Is Nothing = False Then

SqlConn.Dispose()

SqlConn = Nothing

End If

End Sub

Public Sub Open()

If SqlConn Is Nothing = True Then

SqlConn = New SqlConnection(Me.sConn)

SqlConn.Open()

End If

End Sub

Public Sub Close()

If SqlConn Is Nothing = False Then

SqlConn.Close()

End If

End Sub

Public Function RunSelectSQL(ByVal sSQLString As System.String) As DataView

Me.Open()

Dim SqlDS As DataSet = New DataSet

Dim SqlDA As SqlDataAdapter = New SqlDataAdapter(sSQLString, Me.SqlConn)

SqlDA.Fill(SqlDS)

Return SqlDS.Tables(0).DefaultView

End Function

Public Function RunDelOrInsSQL(ByVal sSQLString As System.String)

Me.Open()

Dim sqlcomm As SqlCommand = New SqlCommand(sSQLString, Me.SqlConn)

sqlcomm.ExecuteNonQuery()

End Function

End Class