k=j;
if(k!
=i)
{
x=r[i];
r[i]=r[k];
r[k]=x;
}
}
}/*SelectSort*/
voidsqrand(RecordTyper[])//获取随机数据
{
inti;
intlen;
srand(time(NULL));//设置随机数种子。
for(i=1;i<=100;i++)
{
r[i].key=rand()%101;
}
}
voidout(RecordTyper[])
{
for(inti=1;i<=100;i++)
{
printf("%5d",r[i].key);
}
}
voidmenu()
{
printf("\n1生成随机数2输出随机数3插入排序4冒泡排序5简单选择排序其他退出\n");
}
intmain()
{
intlen,n;
RecordTyper[MAXSIZE];
menu();
len=100;
while
(1)
{
scanf("%d",&n);
switch(n)
{
case1:
sqrand(r);break;
case2:
out(r);break;
case3:
InsSort(r,len);break;
case4:
BubbleSort(r,len);break;
case5:
SelectSort(r,len);break;
default:
exit(0);break;
}
menu();
}
return0;
}
源程序清单宿舍结构体顺序存储结构定义如下:
#defineMAXSIZE100
typedefstruct//学生住宿记录结构体
{
chardormID[10];
intstudentID;
charname[10];
charsex[2];
intage;
}dormitory;
typedefstruct//顺序表的存储结构
{
dormitorydorm[MAXSIZE];//线性表占用的数组空间
intlast;//最后一个元素在数组中的位置(下标值),空表置为-1}SeqList;
宿舍结构体链式存储结构定义如下:
typedefstructdormitory//学生住宿记录结构体
{
chardormID[10];
intstudentID;
charname[10];
charsex[2];
intage;
}dormitory;
typedefstructNode//学生住宿记录结点
{
studentdata;structNode*next;
}Node,*LinkList;//LinkList为结构体指针类型
题目一线性结构的操作
1.用线性表的顺序存储(数组)保存数据
(1)键盘输入你所在宿舍的同学信息到数组;
(2)遍历输出所以学生数据;
(3)按姓名查找并输出指定学生数据,统计查找的次数;
(4)把数组内容输出到文件;
(5)从文件读入学生数据,按学号排序后显示在屏幕;
(6)某同学调入你的宿舍,请增加其信息;并查看增加后的结果;
(7)某同学调离你的宿舍,请删除其信息,并查看删除后的结果;题目一线性结构的操作
2.用线性表的链式存储(链表)保存数据
(1)键盘输入你所在宿舍的同学信息到数组;
(2)遍历输出所以学生数据;
(3)按姓名查找并输出指定学生数据,统计查找的次数;
(4)把数组内容输出到文件;
(5)从文件读入学生数据,按学号排序后显示在屏幕;
(6)某同学调入你的宿舍,请增加其信息;并查看增加后的结果;
(7)某同学调离你的宿舍,请删除其信息,并查看删除后的结果;题目二排序
实习总结报告这次课程设计的心得体会通过实习我的收获如下:
数据结构是计算机很基础的一门学科,但是学习就是要从基础学起.本次实训首先巩固课本上重要知识点,首先是一些基本操作,掌握线性表在单链存储结构中实现基本运算(查找、插入、删除、合并等)的算法,线性表在单向循环链表结构中实现基本运算(查找、插入、删除、合并等)的算法1、巩固和加深了对数据结构的理解,提高综合运用本课程所学知识的能力。
2、培养了我选用参考书,查阅手册及文献资料的能力。
培养独立思考,深入研究,分析问题、解决问题的能力。
3、通过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。
4、通过课程设计,培养了我严肃认真的工作作风,逐步建立正确的生产观念、经济观念和全局观念。
从刚开始得觉得很难,到最后把这个做出来,付出了很多,也得到了很多,以前总以为自己对编程的地方还不行,现在,才发现只要认真做,没有什么不可能。
编程时要认真仔细,出现错误要及时找出并改正,(其中对英语的要求也体现出来了,因为它说明错误的时候都是英语)遇到问题要去查相关的资料。
反复的调试程序,最好是多找几个同学来对你的程序进行调试并听其对你的程序的建议,在他们不知道程序怎么写的时候完全以一个用户的身份来用对你的用户界面做一些建议,正所谓当局者迷旁观者清,把各个注意的问题要想到;同时要形成自己的编写程序与调试程序的风格,从每个细节出发,不放过每个知识点,注意与理论的联系和理论与实践的差别。
另外,要注意符号的使用,注意对字符处理,特别是对指针的使用很容易出错且调试过程是不会报错的,那么我们要始终注意指针的初始化不管它怎么用以免不必要麻烦。
通过近两周的学习与实践,体验了一下离开课堂的学习,也可以理解为一次实践与理论的很好的连接。
特别是本组所做的题目都是课堂上所讲的例子,在实行之的过程中并不是那么容易事让人有一种纸上谈兵的体会,正所谓纸上得来终觉浅绝知此事要躬行。
实训过程中让我们对懂得的知识做了进一步深入了解,让我们的理解与记忆更深刻,对不懂的知识与不清楚的东西也做了一定的了解.