本文是针对[数据结构基础系列(11):文件]中的实践项目。

【项目1】操作文件

有若干学生的成绩数据如下,将这些数据保存到st数组中:

学号     姓名    年龄 性别 语文 数学 英语
1 陈华 20 男 78 90 84
5 张明 21 男 78 68 92
8 王英 20 女 86 81 86
3 刘丽 21 女 78 92 88
2 许可 20 男 80 83 78
4 陈军 20 男 78 88 82
7 马胜 21 男 56 67 75
6 曾强 20 男 78 89 82

基于这些数据,编程序实现下面的功能:

(1)将st数组中学生记录写入stud.dat文件

(2)将stud.dat文件中学生记录读入到st数组中

(3)显示st数组中的学生记录

(4)求学生的平均分并放在st1数组中

(5)对st1数组按平均分递减排序

(6)将st1数组中学生记录写入stud1.dat文件

(7)将stud1.dat文件中学生记录读入到st1数组中

(8)显示st1数组中的学生记录

[​​参考解答​​]

【项目2】索引文件

有若干学生的成绩数据如下,将这些数据保存到st数组中:

学号     姓名    年龄 性别 语文 数学 英语
1 陈华 20 男 78 90 84
5 张明 21 男 78 68 92
8 王英 20 女 86 81 86
3 刘丽 21 女 78 92 88
2 许可 20 男 80 83 78
4 陈军 20 男 78 88 82
7 马胜 21 男 56 67 75
6 曾强 20 男 78 89 82

基于这些数据,编程序实现下面的功能:

(1)将st数组中学生记录写入stud.dat文件作为主文件

(2)输出主文件中的学生记录

(3)建立与主文件相对应的索引文件,其中每个记录由两个字段组成:学号和该学生记录在数据文件中的位移量(例:上面列出数据中学号为2的学生许可,其位移量是5。由于本例用定长文件,可以根据位移量计算记录在主文件中的相对地址)。索引文件按学号有序。

(4)输出索引文件中的全部记录

(5)根据用户输入的学号,利用索引文件,用二分查找法找到对应的记录号,再通过主文件输出该记录

(6)是否有想法,将这个项目再扩充了?加大数据量、哈希文件、多关键字文件……

[​​参考解答​​]