好文档 - 专业文书写作范文服务资料分享网站

C语言实习报告

天下 分享 时间: 加入收藏 我要投稿 点赞

题目二 排序

#include\#include \#include\#define TRUE 1 #define FALSE 0 typedef int KeyType; typedef int OtherType;

#define MAXSIZE 200 /* 线性表可能达到的最大长度 */ typedef struct { KeyType key; OtherType other_data; }RecordType;

void InsSort(RecordType r[], int length)

/* 对记录数组 r 做直接插入排序, length 为数组中待排序记录的数目int i,j;

for (i=2; i<=length; i++)

{

r[0]=r[i]; /* 将待插入记录存放到监视哨 r[0] 中*/ j=i-1;

while (r[0].key< r[j].key ) /*

寻找插入位置 */

{

r[j+1]= r[j]; j=j-1;

}

r[j+1]=r[0]; /* 将待插入记录插入到已排序的序列中 */ }

} /* InsSort */

void BubbleSort(RecordType r[], int length )

/* 对记录数组 r 做冒泡排序, length 为数组的长度 */ {

int n,i,j;

*/ {

int change; RecordType x; n=length; change=TRUE;

for ( i=1 ; i<= n-1 && change ;++i ) {

change=FALSE; for ( j=1 ; j<= n-i ; ++j) if (r[j].key > r[j+1].key ) {

x= r[j]; r[j]= r[j+1]; r[j+1]= x; change=TRUE; }

}

} /* BubbleSort */

void SelectSort(RecordType r[], int length)

/* 对记录数组 r 做简单选择排序, length 为数组的长度int i,j,k; int n;

RecordType x; n=length;

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

{

k=i;

for ( j=i+1 ; j<= n ; ++j) if (r[j].key < r[k].key ) k=j; if ( k!=i)

{

x= r[i];

*/ {

r[i]= r[k]; r[k]=x;

} }

} /* SelectSort */

void sqrand(RecordType r[])//

获取随机数据

{

int i; int len;

srand(time(NULL));// 设置随机数种子。 for(i=1;i<=100;i++)

{

r[i].key = rand()1;

} }

void out(RecordType r[])

{

for(int i=1;i<=100;i++)

{

printf(\

} }

void menu()

{

printf(\生成随机数 2 输出随机数 3 插入排序 4 冒泡排序 5 简单选择 排序退出 \\n\

}

int main()

{

int len,n;

RecordType r[MAXSIZE]; menu(); len=100; while(1)

{

其他 scanf(\switch(n)

{

case 1: sqrand(r);break; case 2: out(r);break; case 3:InsSort(r,len);break; case 4:BubbleSort(r,len);break; case 5:SelectSort(r,len);break; default :exit(0);break;

}

menu();

}

return 0;

}

源程序清单 宿舍结构体顺序存储结构定义如下: #define MAXSIZE 100

typedef struct //学生住宿记录结构体

{

char dormID[10]; int studentID; char name[10]; char sex[2]; int age; }dormitory;

typedef struct //顺序表的存储结构

{

dormitory dorm[ MAXSIZE]; //线性表占用的数组空间

int last; //最后一个元素在数组中的位置(下标值),空表置为宿舍结构体链式存储结构定义如下:

typedef struct dormitory //学生住宿记录结构体

{

char dormID[10]; int studentID; char name[10]; char sex[2]; int age; }dormitory;

typedef struct Node //学生住宿记录结点

{

-1 } SeqList; student data; struct Node *next;

}Node, *LinkList; //LinkList 为结构体指针类型

题目一 线性结构的操作

1. 用线性表的顺序存储(数组)保存数据 (1)键盘输入你所在宿舍的同学信息到数组; (2)遍历输出所以学生数据;

(3)按姓名查找并输出指定学生数据,统计查找的次数; (4)把数组内容输出到文件;

(5)从文件读入学生数据,按学号排序后显示在屏幕;

(6)某同学调入你的宿舍,请增加其信息;并查看增加后的结果;

(7)某同学调离你的宿舍,请删除其信息,并查看删除后的结果; 题目一 线性结构的操作

2. 用线性表的链式存储(链表)保存数据 (1)键盘输入你所在宿舍的同学信息到数组; (2)遍历输出所以学生数据;

(3)按姓名查找并输出指定学生数据,统计查找的次数; (4)把数组内容输出到文件;

(5)从文件读入学生数据,按学号排序后显示在屏幕;

(6)某同学调入你的宿舍,请增加其信息;并查看增加后的结果;

(7)某同学调离你的宿舍,请删除其信息,并查看删除后的结果; 题目二 排序

实习总结报告 这次课程设计的心得体会通过实习

我的收获如下 : 数据结构是计算机很基础的一 门学科, 但是学习就是要从基础学起 .本次实训首先巩固课本上重要知识点, 首先 是一些基本操作,掌握线性表在单链存储结构中实现基本运算(查找、插入、删 除、合并等)的算法,线性表在单向循环链表结构中实现基本运算 (查找、插入、 删除、合并等)的算法 1、巩固和加深了对数据结构的理解,提高综合运用本课 程所学知识的能力。 2、培养了我选用参考书,查阅手册及文献资料的能力。培 养独立思考,深入研究,分析问题、解决问题的能力。 3、通过实际编译系统的 分析设计、编程调试,掌握应用软件的分析方法

和工程设计方法。 4、通过课程 设计,培养了我严肃认真的工作作风, 逐步建立正确的生产观念、 经济观念和全 局观念。从刚开始得觉得很难,到最后把这个做出来,付出了很多,也得到了很 多,以前总以为自己对编程的地方还不行,现在,才发现只要认真做,没有什么 不可能。

编程时要认真仔细,出现错误要及时找出并改正, (其中对英语的要求也体 现出来了, 因为它说明错误的时候都是英语) 遇到问题要去查相关的资料。 反复 的调试程序,最好是多找几个同学来对你的程序进行调试并听其对你的程序的建 议,在他们不知道程序怎么写的时候完全以一个用户的身份来用对你的用户界面 做一些建议, 正所谓当局者迷旁观者清, 把各个注意的问题要想到; 同时要形成 自己的编写程序与调试程序的风格, 从每个细节出发, 不放过每个知识点, 注意 与理论的联系和理论与实践的差别。 另外,要注意符号的使用, 注意对字符处理, 特别是对指针的使用很容易出错且调试过程是不会报错的, 那么我们要始终注意 指针的初始化不管它怎么用以免不必要麻烦。

通过近两周的学习与实践, 体验了一下离开课堂的学习, 也可以理解为一次 实践与理论的很好的连接。 特别是本组所做的题目都是课堂上所讲的例子, 在实 行之的过程中并不是那么容易事让人有一种纸上谈兵的体会, 正所谓纸上得来终 觉浅绝知此事要躬行。 实训过程中让我们对懂得的知识做了进一步深入了解, 让 我们的理解与记忆更深刻,对不懂的知识与不清楚的东西也做了一定的了解 .

C语言实习报告

题目二排序#include\#include\#include\#defineTRUE1#defineFALSE0typedefintKeyType;typedefintOtherType;#defineMAXSIZE200/*线性表可能达到的最大长度*/typedefstruct{KeyTypekey;Othe
推荐度:
点击下载文档文档为doc格式
19fue29r1n1xep036fj71ujtp7zqyg019k4
领取福利

微信扫码领取福利

微信扫码分享