一、设计要求
1、数据定义
整型数组部分,设计一个10个元素的整型数组。键盘输入数组中的10个元素,并输出数组的原数据(原数组的数据和排列顺序)。以便与处理后的结果相比较。
结构体数组部分,设计一个结构体
struct student
{
char name[20];
int age;
double score;
};
定义一个该结构体的数组:struct student stu[10];
键盘输入数组中的10个元素,并输出数组的原数据(原数组的数据和排列顺序)。以便与处理后的结果相比较。要求输出为表格形式。
2、设计一个两级菜单,完成上述程序结构的控制与调用
3、编写排序函数(分别编写函数)
函数功能是对整型数组或结构体数组中的数据进行排序处理,并输出操作结果。
整型数组,要求使用冒泡排序法进行处理,从大到小排序,输入一组整数并输出,对这组整数进行排序,输出排序后的结果。
结构体数组,要求使用冒泡排序法进行处理,按照成绩或年龄从大到小排序,输入一组数据并以表格输出,对这组数据进行排序处理,以表格形式输出排序后的结果。
4、编写查询函数(分别编写函数)
函数功能是对整型数组或结构体数组中的数据进行查询处理,并输出操作结果。
整型数组,要求使用折半法进行处理,从键盘输入一组整数并输出,先调用排序函数将数据从大到小排序,再输入一个要查找的整数,调用查找函数进行查找操作,输出查找的结果。没找到输出相应的信息。
结构体数组,要求使用折半法进行处理,从键盘输入一组数据并以表格形式输出,先调用排序函数将数据按照年龄值从大到小排序,再输入一个要查找的年龄数,调用查找函数进行查找操作,输出查找的结果以表格形式输出。没找到输出相应的信息。
折半查找法:数据已按一定规律排列好,先检索序列1/2处的数据,判断其是否为所需数据。如果不是所需数据,则判断要查找的数据位于中间数的哪一边,下一次就在这个新的范围内查找……,每次将查找范围缩小一半,直至找到这个数或得出找不到的结论为止。
定义数组并进行初始化
排序处理
输入要查找的元素
top=0,bot=n-1
bot=mid-1
top=mid+1
输出信息
x<a[mid]
x>a[mid]
x==a[mid]
mid=(top+bot)/2
while(top<=bot)
5、编写插入函数
函数功能是在已经排好序的数组中插入一个数据或一条记录(结构体),使插入后的数据仍然是有序的。
整型数据,要求输入一组整数并输出;调用排序函数进行排序,输出排序结果;输入一个要插入的整数,实施插入操作,保证数据插入到正确的位置上,输出插入后的数据序列。
结构体数据,要求输入一组记录并以表格形式输出;调用排序函数按照年龄进行排序,以表格形式输出排序结果;输入要插入的一条记录,实施插入操作,保证数据插入到正确的位置上,以表格形式输出插入后的数据序列。
6、编写删除函数
函数功能是给定一个数据或一条记录(结构体),在数组先进行查找,如果找到将该数据删除,并输出结果;如果找不到,输出相应的信息。
整型数据,要求输入一组整数并输出;输入一个要删除的整数,进行查找,找到则实施删除操作,否则输出没找到的信息。
结构体数据,要求输入一组记录并以表格形式输出;输入要删除的一条记录,进行查找,按照姓名或年龄或成绩查找均可,找到则实施删除操作,否则输出没找到的信息。