C语言实习报告

上传人:re****.1 文档编号:511707990 上传时间:2023-04-17 格式:DOC 页数:16 大小:192KB
返回 下载 相关 举报
C语言实习报告_第1页
第1页 / 共16页
C语言实习报告_第2页
第2页 / 共16页
C语言实习报告_第3页
第3页 / 共16页
C语言实习报告_第4页
第4页 / 共16页
C语言实习报告_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《C语言实习报告》由会员分享,可在线阅读,更多相关《C语言实习报告(16页珍藏版)》请在金锄头文库上搜索。

1、题目一线性结构的操作1用线性表的顺序存储(数组)保存数据算法的N-S图或流程图2用线性表的链式存储(链表)保存数据插入:sH删除:C2A C1rin clude#in cludetypedefstructint num;/ 学号char name10;/ 姓名student; / 定义的抽象元素类型 Elemtype typedefstruct Node /* 结点类型定义 */student data;struct Node *next;Node, *LinkList;/* LinkList 为吉构指针类型 */staticint count;/ 学生人数/ 带头结点的尾插入法创建链表voi

2、d insert(LinkList head)LinkList p,q; /p 代表的待插元素代入最后一个元素q=head;/q 指向 head吉点printf( 输入学生人数 :);scanf(%d,&count);for(int i=0;idata.num);输入结点p的数据。学号printf(n 输入姓名 :);scanf%s,p-data.name)/输入结点的数据域姓名name为数组类型数组名为首地址 所有此处不需要地i址符号if(i=0)head- next = p; /i=0 链表中没有元素只有头节点把插入到 heac之后elseq-next = p; / 链表中已有结点元素结点

3、采用尾插入法q = p; /每插入一个元素就赋值于q q始终指向最后一个元素p-next = NULL; / 设置next为空void print(LinkList head)LinkList x; / 定义一个链表结点x = head-next ; / 该节点指向第一个元素printf(学生信息如下n);while(x) / 存在结点printf(学号d 姓名sn ,x-data.num,x-data.name); / 输出该结点的数据域学号和姓名x = x-next ; / 下一个元素printf(n );/ 把链表中的文件信息放入文件中/ 写入语句void savetofile(Link

4、List head)FILE*fp;LinkList p;p=head-next;if(fp=fopen(d:st2.txt ,wb+ )=NULL)printf( 不能打开文件 );return;while(p)fprintf(fp, %d%srn ,p-data.num,p-data.name);p=p-next;printf( n 写入成功 n );/ 功能菜单 提示性语句void menu()printf(nO.退出1输入 2输出3.写入n);void main()int choice;LinkList l;l = (LinkList)malloc(sizeof(Node); / 头结

5、点申请空间l-next=NULL; / 头结点的 next为空menu();while(1)scanf(%d,&choice);/ 输入一个整数switch(choice)case1: insert(l);menu()b;reak;case2: print(l); menu()b; reak;default: exit(0);题目二 排序#includestdio.h#include stdlib.h#includetime.h#define TRUE 1#define FALSE 0typedef int KeyType;typedef int OtherType;#define MAXSI

6、ZE 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+)rO=ri; /*将待插入记录存放到监视哨r0中*/j=i-1;while (r0.key rj.key ) /* 寻找插入位置 */rj+1= rj;j=j-1;rj+1=r0;/* 将待插入记录插入到已

7、排序的序列中 */ /* 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 rj+1.key )x= rj;rj= rj+1;rj+1= x;change=TRUE; /* BubbleSort */void SelectSort(RecordTy

8、pe 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 (rj.key rk.key )k=j;if ( k!=i)x= ri;ri= rk;rk=x; /* SelectSort */void sqra nd(RecordType r)/获取随机数据int i;int len;srand(time(NULL);/ 设置随机数种子。for(i=1;i=100;i+

9、)ri.key = rand()%101;void out(RecordType r)for(int i=1;i=100;i+)printf(%5d,ri.key );void menu()5 简单选择排printf(n1 生成随机数 2 输出随机数 3 插入排序 4 冒泡排序序 其他 退出 n);int main()int len,n;RecordType rMAXSIZE;menu();len=100;while(1)scanf(%d,&n);switch(n)case 1: sqrand(r);break;case 2: out(r);break;case 3:InsSort(r,len

10、);break;case 4:BubbleSort(r,len);break;case 5:SelectSort(r,len);break;default :exit(0);break;menu();return 0;源程序清单 宿舍结构体顺序存储结构定义如下:#define MAXSIZE 100typedef struct / 学生住宿记录结构体char dormID10;int studentID;char name10;char sex2;int age;dormitory;typedef struct / 顺序表的存储结构dormitory dorm MAXSIZE; / 线性表占用

11、的数组空间int last; / 最后一个元素在数组中的位置(下标值),空表置为 -1 SeqList;宿舍结构体链式存储结构定义如下:typedef struct dormitory / 学生住宿记录结构体char dormID10;int studentID;char name10;char sex2;int age; dormitory;typedef struct Node / 学生住宿记录结点student data;struct Node *next;Node, *LinkList; /LinkList 为结构体指针类型题目一 线性结构的操作1.用线性表的顺序存储(数组)保存数据(

12、1)键盘输入你所在宿舍的同学信息到数组;(2)遍历输出所以学生数据;(3)按姓名查找并输出指定学生数据,统计查找的次数;(4)把数组内容输出到文件;(5)从文件读入学生数据,按学号排序后显示在屏幕;(6)某同学调入你的宿舍,请增加其信息;并查看增加后的结果;(7)某同学调离你的宿舍,请删除其信息,并查看删除后的结果;题目一 线性结构的操作2.用线性表的链式存储(链表)保存数据(1)键盘输入你所在宿舍的同学信息到数组;(2)遍历输出所以学生数据;(3)按姓名查找并输出指定学生数据,统计查找的次数;4)把数组内容输出到文件;(5)从文件读入学生数据,按学号排序后显示在屏幕;(6)某同学调入你的宿舍

13、,请增加其信息;并查看增加后的结果;(7)某同学调离你的宿舍,请删除其信息,并查看删除后的结果; 题目二 排序实习总结报告 这次课程设计的心得体会通过实习我的收获如下 :数据结构是计算机很基础的一 门学科 ,但是学习就是要从基础学起 .本次实训首先巩固课本上重要知识点,首先 是一些基本操作,掌握线性表在单链存储结构中实现基本运算(查找、插入、删 除、合并等)的算法,线性表在单向循环链表结构中实现基本运算 (查找、插入、 删除、合并等)的算法 1、巩固和加深了对数据结构的理解,提高综合运用本课 程所学知识的能力。 2、培养了我选用参考书,查阅手册及文献资料的能力。培 养独立思考,深入研究,分析问题、解决问题的能力。 3、通过实际编译系统的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号