资源简介
现有学生成绩信息文件1(1.txt),内容如下
姓名 学号 语文 数学 英语
张明明 01 67 78 82
李成友 02 78 91 88
张辉灿 03 68 82 56
王露 04 56 45 77
陈东明 05 67 38 47
…. .. .. .. …
学生成绩信息文件2(2.txt),内容如下:
姓名 学号 语文 数学 英语
陈果 31 57 68 82
李华明 32 88 90 68
张明东 33 48 42 56
李明国 34 50 45 87
陈道亮 35 47 58 77
…. .. .. .. …
试编写一管理系统,要求如下:
1) 实现对两个文件数据进行合并,生成新文件3.txt
2) 抽取出三科成绩中有补考的学生并保存在一个新文件4.txt
3) 对合并后的文件3.txt中的数据按总分降序排序
4) 输入一个学生姓名后,能查找到此学生的信息并输出结果
5) 要求使用结构体,链或数组等实现上述要求.
6) 采用多种方法且算法正确者,可适当加分.
代码片段和文件信息
#include
using namespace std;
#define SIZE 100 /*存放学生数据的结构体*/
typedef struct
{
char name[10];
int id;
int chinese;
int math;
int english;
int sum;
}Student;
Student stud[SIZE];
int i;
int sign=0sign1=0sign2=0sign3=0;
void Unitedfile() /*合并1.txt和2.txt为3.txt*/
{
FILE *fp*p;
Student studd;
fp=fopen(“1.txt““r“); /*以读的方式打开1.txt*/
p=fopen(“3.txt““w“); /*以写的方式打开3.txt*/
fscanf(fp“%*[^\n]%*c“); /*跳过一行字符串*/
fprintf(p“姓名 学号 语文 数学 英语 \n“);
while(fscanf(fp“%s%d%d%d%d“studd.name&studd.id&studd.chinese&studd.math&studd.english )!=EOF)
{
fprintf(p“%-6s %2d %d %d %d\n“studd.namestudd.idstudd.chinesestudd.mathstudd.english );
} /*读取1.txt的数据进入结构体中,写入3.txt,继续读取直结束*/
fclose(fp); /*关闭文件1.txt*/
fp=fopen(“2.txt““r“); /*以写的方式打开2.txt*/
fscanf(fp“%*[^\n]%*c“); /*跳过一行字符串*/
while(fscanf(fp“%s%d%d%d%d“studd.name&studd.id&studd.chinese&studd.math&studd.english )!=EOF)
{
fprintf(p“%-6s %2d %d %d %d\n“studd.namestudd.idstudd.chinesestudd.mathstudd.english );
} /*读取2.txt的数据进入结构体中,写入3.txt,继续读取直结束*/
fclose(fp); /*关闭文件2.txt*/
fclose(p); /*关闭文件3.txt*/
}
void findout() /*抽取出三科成绩中有补考的学生并保存在一个新文件4.txt*/
{
FILE *fp*p;
Student studd;
fp=fopen(“3.txt““r“); /*以读的方式打开3.txt*/
p=fopen(“4.txt““w“); /*以写的方式打开4.txt*/
fscanf(fp“%*[^\n]%*c“); /*跳过一行字符串*/
fprintf(p“姓名 学号 语文 数学 英语\n“);
while(fscanf(fp“%s%d%d%d%d“studd.name&studd.id&studd.chinese&studd.math&studd.english )!=EOF)
{
if(studd.chinese<60||studd.english<60||studd.math<60)
{
fprintf(p“%-6s %2d %d %d %d\n“studd.namestudd.idstudd.chinesestudd.mathstudd.english );
}
} /*从3.txt中读入学生数据进结构体,判断是否有不及格的课程,如果有,则写入文件4.txt中*/
fclose(fp); /*关闭文件3.txt*/
fclose(p); /*关闭文件4.txt*/
}
void Selectsort() /*对合并后的文件3.txt中的数据按总分降序排序*/
{
int jkmax1sum1sum2q;
i=0;
Student temp;
FILE *fp;
fp=fopen(“3.txt““r“); /*以读的方式打开3.txt*/
i=0;
fscanf(fp“%*[^\n]%*c“); /*跳过一行字符串*/
while(fscanf(fp“%s%d%d%d%d“stud[i].name&stud[i].id&stud[i].chinese&stud[i].math&stud[i].english )!=EOF)
{
i++;
} /*从3.txt中读入数据进结构体数组stud中*/
fclose(fp);
for(j=0;j {
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2011-12-24 14:27 源程序阅读与调试课程设计报告\
文件 66173 2011-12-14 12:08 源程序阅读与调试课程设计报告\1.jpg
文件 197 2011-12-14 14:35 源程序阅读与调试课程设计报告\1.txt
文件 51411 2011-12-14 12:06 源程序阅读与调试课程设计报告\2.jpg
文件 197 2011-12-14 14:36 源程序阅读与调试课程设计报告\2.txt
文件 51583 2011-12-14 12:07 源程序阅读与调试课程设计报告\3.jpg
文件 51876 2011-12-14 12:05 源程序阅读与调试课程设计报告\4.jpg
文件 63297 2011-12-14 12:07 源程序阅读与调试课程设计报告\5.jpg
文件 7111 2011-12-24 14:22 源程序阅读与调试课程设计报告\学生管理系统-源程序阅读与调试课程设计报告源代码.txt
文件 7111 2011-12-14 16:15 源程序阅读与调试课程设计报告\源程序阅读与调试课程设计报告.cpp
文件 598528 2011-12-18 14:12 源程序阅读与调试课程设计报告\源程序阅读与调试课程设计报告.doc
文件 825856 2011-12-14 15:33 源程序阅读与调试课程设计报告\源程序阅读与调试课程设计报告.ppt
- 上一篇:随机点名系统源码
- 下一篇:国科大数字图像处理习题课重点
评论
共有 条评论