《C语言程序设计作业7》
一、作业目的
本次作业旨在让学生深入理解C语言中的指针、结构体、文件操作等知识点,通过实际编程锻炼学生的编程能力,提高问题分析和解决能力。
二、作业内容
指针操作
(1)题目描述
编写一个程序,实现以下功能:
输入一个整数数组,假设数组长度为n(n≥10);
使用指针操作,将数组中的元素按照从小到大的顺序进行排序;
输出排序后的数组。
(每行输出10个元素,最后一个元素后面不换行)。
(2)示例
输入:
12
34 56 78 90 12 24 36 48 60 72
输出:
12 24 34 36 48 56 60 72 78 90
结构体应用
(1)题目描述
编写一个程序,实现以下功能:
定义一个结构体Student,包含学号、姓名、性别、年龄、成绩等信息;
输入n个学生的信息(n≥5);
计算每个学生的平均成绩,并输出所有学生的信息;
按照成绩从高到低排序,输出排序后的学生信息。
(2)示例
输入:
5
1001 张三 男 20 90
1002 李四 女 21 85
1003 王五 男 22 95
1004 赵六 女 23 88
1005 孙七 男 24 92
输出:
学号 姓名 性别 年龄 成绩
1003 王五 男 22 95
1005 孙七 男 24 92
1001 张三 男 20 90
1004 赵六 女 23 88
1002 李四 女 21 85
文件操作
(1)题目描述
编写一个程序,实现以下功能:
从文件input.txt中读取学生信息(格式与结构体Student相同);
将读取到的学生信息存储到结构体数组中;
对结构体数组进行排序(按照成绩从高到低);
将排序后的学生信息写入文件output.txt。
(2)示例
input.txt内容:
1001 张三 男 20 90
1002 李四 女 21 85
1003 王五 男 22 95
1004 赵六 女 23 88
1005 孙七 男 24 92
output.txt内容:
学号 姓名 性别 年龄 成绩
1003 王五 男 22 95
1005 孙七 男 24 92
1001 张三 男 20 90
1004 赵六 女 23 88
1002 李四 女 21 85
三、作业要求
请使用C语言编写程序,不得使用其他编程语言;
程序应具有较好的可读性,代码结构清晰,注释完整;
作业提交时,请将源代码文件(.c)和可执行文件(.exe)打包压缩,以学号命名;
作业提交截止时间:2022年11月30日。
四、评分标准
程序正确性:40分;
代码可读性:30分;
作业提交格式:10分;
作业完成时间:20分。
五、作业解析
指针操作
本题目主要考察学生对指针的理解和运用。通过指针操作,实现对数组的排序。可以使用冒泡排序、选择排序、插入排序等算法,具体实现方式不限。
结构体应用
本题目主要考察学生对结构体的掌握。首先定义一个结构体Student,然后输入学生信息并存储到结构体数组中。计算平均成绩时,需要遍历数组,累加成绩并计算平均值。排序时,可以使用冒泡排序、选择排序、插入排序等算法。
文件操作
本题目主要考察学生对文件操作的掌握。首先从文件input.txt中读取学生信息,存储到结构体数组中。然后对数组进行排序,最后将排序后的学生信息写入文件output.txt。文件操作可以使用fopen、fgets、fputs、fclose等函数。
六、作业拓展
在结构体应用题目中,可以尝试使用链表来实现学生信息的存储和排序;
在文件操作题目中,可以尝试使用二进制文件读写学生信息;
可以尝试将本题目的功能整合到一个程序中,实现一个完整的学生信息管理系统。