学生成绩管理系统38Word文件下载.docx

上传人:b****2 文档编号:14527998 上传时间:2022-10-23 格式:DOCX 页数:40 大小:404.65KB
下载 相关 举报
学生成绩管理系统38Word文件下载.docx_第1页
第1页 / 共40页
学生成绩管理系统38Word文件下载.docx_第2页
第2页 / 共40页
学生成绩管理系统38Word文件下载.docx_第3页
第3页 / 共40页
学生成绩管理系统38Word文件下载.docx_第4页
第4页 / 共40页
学生成绩管理系统38Word文件下载.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

学生成绩管理系统38Word文件下载.docx

《学生成绩管理系统38Word文件下载.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统38Word文件下载.docx(40页珍藏版)》请在冰豆网上搜索。

学生成绩管理系统38Word文件下载.docx

03 

68 

82 

56

露 

04 

56 

45 

77

东明 

05 

38 

47

…. 

.. 

 

.. 

学生成绩信息文件2(2.txt),容如下:

学号 

语文 

数学 

英语 

果 

31 

57 

华明 

32 

88 

90 

68

明东 

33 

48 

42 

56

明国 

34 

50 

87

道亮 

35 

47 

58 

…. 

试编写一管理系统,要求如下:

1)实现对两个文件数据进行合并,生成新文件3.txt。

2)抽取出三科成绩中有补考的学生并保存在一个新文件4.txt。

3)合并后的文件3.txt中的数据按总分降序排序(至少采用两种排序法实现)。

4)输入一个学生姓名后,能查找到此学生的信息并输出结果(至少采用两种查找法实现)。

5)要求使用结构体,链或数组等实现上述要求。

6)采用多种法且算确者,可适当加分。

二、需求分析

本系统要现具体的五项功能,根据提供的这五项功能,运行时系统提供了相应的功能菜单,选择不同的选项来实现相应的功能。

1.采用了读文件和写文件的式,边读边写,合并两个文件成为一个文件。

2.采用结构体数组存入从文件中读入的数据,再通过对于数据中的相关成绩判断该学生是否需要补考,如果需要补考则将其信息写入另外一个文件。

3.采用快速排序、选择排序、冒泡排序的法按总分对学生数据进行排序。

4.采用了二种查找的法找到学生信息并输出。

5.通过调用函数exit(0)退出程序。

三、概要设计

1、实现对文件1.txt和文件2.txt数据进行合并,生成新文件3.txt。

调用函数Unitedfile()来实现,函数以读的式打开1.txt文件,以写的式打开3.txt文件,从1.txt读入一个数据并写入3.txt文件,直到遇到1.txt文件结束。

关闭1.txt文件,再以读的式打开2.txt文件,用上述式直到遇到2.txt文件结束。

关闭2.txt,3.txt文件。

实现对于文件的合并。

2、抽取出三科成绩中有补考的学生并保存在一个新文件4.txt。

调用函数findout()来实现。

函数以读的式打开3.txt文件,以写的式打开4.txt文件。

读入3.txt文件的一个数据到结构体stud中,判断学生信息中语文、数学和英语成绩中是否有不及格的,如果有,则将数据写入4.txt中,直至遇到3.txt文件结束。

3、对合并后的文件3.txt中的数据按总分降序排序。

调用函数sortfile()来实现。

函数提供了三种排序法,通过调用函数kuaisu()来实现快速排序,通过调用函数xuanze()来实现选择排序,通过调用函数maopao()来实现冒泡排序。

4、输入一个学生姓名后,能查找到此学生的信息并输出结果。

调用函数findoutstudent()来实现。

函数也提供了两种查找法:

(1)通过调用函数derectfindoutstudent()实现从文件从3.txt中逐个读入数据,再进行查找判断,如果找到所需要的数据,则查找结束,否则继续查找直至文件结束。

(2)autofindoutstudent()在进行第三步的过程中,已经把3.txt中的学生数据读入了结构体数组当中,调用函autofindoutstudent()直接从结构体中进行查找。

5、通过调用函数exit()退出。

main

findout()

sortfile()

findoutstudent()

exit()

Unitedfile()

Kuaisu()

Maopao()

Xuanzhe()

derectfindoutstudent()

autofindoutstudent()

四、详细设计

1.把1.txt和2.txt文件中的容放到3.txt文件中。

调用Unitedfile()文件,打开文件1和文件3,从1.txt中读入学生数据进结构体,把结构体中学生数据放到文件3中。

关闭文件1,从2.txt中读入学生数据进结构体,把结构体中学生数据放到文件3中。

关闭文件2和文件3。

voidUnitedfile(){

FILE*fp,*p;

Studentstud;

fp=fopen("

d:

\\1.txt"

"

r"

);

p=fopen("

\\3.txt"

w"

while(fscanf(fp,"

%s%s%d%d%d"

stud.name,stud.id,&

stud.chinese,&

stud.math,&

stud.english)!

=EOF)

{fprintf(p,"

%-6s%-6s%-6d%-6d%-6d\n"

stud.name,stud.id,stud.chinese,stud.math,stud.english);

}

fclose(fp);

\\2.txt"

fclose(p);

}

2.抽取出三科成绩中有分数低于60分的学生并保存在一个新文件4.txt

从3.txt中读入学生数据进结构体,判断是否有不及格的课程,如果有,则写入文件4.txt中

voidfindout(){

\\4.txt"

{if(stud.chinese<

60||stud.english<

60||stud.math<

60)

{fprintf(p,"

}

3.对文件3.txt中的数据按总分以降序进行排序(三种法:

选择排序、快速排序、冒泡排序)

voidsortfile()

{charc;

cout<

<

"

请选择排序法:

endl;

1.选择排序"

2.快速排序"

3.冒泡排序"

cin>

>

c;

switch(c)

{case'

1'

:

xuanze();

//选择排序

break;

case'

2'

kuaisu();

//快速排序

case'

3'

maopao();

//直接插入排序

}}

3.1选择排序

voidxuanze()

{intj,k,max1,sum1,sum2,q;

i=0;

Studenttemp;

FILE*fp;

stud[i].name,stud[i].id,&

stud[i].chinese,&

stud[i].math,&

stud[i].english)!

{i++;

}fclose(fp);

for(j=0;

j<

i;

j++)

stud[j].sum=stud[j].chinese+stud[j].math+stud[j].english;

i-1;

j++)//对结构体数组中的数据进行选择排序

{max1=j;

sum1=stud[j].sum;

for(k=j+1;

k<

k++)

{

sum2=stud[k].sum;

if(sum1<

sum2)

{max1=k;

sum1=sum2;

}

}

if(max1!

=j)

temp=stud[max1];

stud[max1]=stud[j];

stud[j]=temp;

stud[j].sum=sum1;

//将排序后的数据写入3.txt中

for(q=0;

q<

q++)

{fprintf(fp,"

%-8s%-8s%-8d%-8d%-8d%-8d\n"

stud[q].name,stud[q].id,stud[q].chinese,stud[q].math,stud[q].english,stud[q].sum);

3.2快速排序

voidkuaisu()

{inti,low,high;

{stud[i].sum=stud[i].chinese+stud[i].math+stud[i].english;

i++;

low=0;

high=i-1;

QSort(low,high);

for(intj=0;

stud[j].name,stud[j].id,stud[j].chinese,stud[j].math,stud[j].english,stud[j].sum);

3.3冒泡排序

voidmaopao()

{intj,k,q;

stud[i].name,st

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 计算机软件及应用

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1