C程序设计训练.docx

上传人:b****2 文档编号:24330946 上传时间:2023-05-26 格式:DOCX 页数:13 大小:153.61KB
下载 相关 举报
C程序设计训练.docx_第1页
第1页 / 共13页
C程序设计训练.docx_第2页
第2页 / 共13页
C程序设计训练.docx_第3页
第3页 / 共13页
C程序设计训练.docx_第4页
第4页 / 共13页
C程序设计训练.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

C程序设计训练.docx

《C程序设计训练.docx》由会员分享,可在线阅读,更多相关《C程序设计训练.docx(13页珍藏版)》请在冰豆网上搜索。

C程序设计训练.docx

C程序设计训练

C程序设计训练实验报告

题目:

学生综合成绩分析系统

时间:

2009年9月7~18日

指导老师:

**老师

设计人:

****************

模块系统的组织结构

模块设计详细说明表

 

模块名称

输入功能

模块功能

通过键盘输入学生学号及各科成绩的信息并生成系统文件,通过查找功能读取已保存信息

性能要求

可以对输入的数据进行存盘和读取,并在运行过程并在运行过程中能随时推出系统

输入

学生人数、学号及学生各科成绩等个人信息

输出

学生学号、各科成绩等信息

 

模块名称

计算功能

模块功能

对学生的成绩进行排序

求出各学生平均成绩及全体学生单科成绩

性能要求

对学生成绩进行准确计算

输入

计算指令

输出

计算结果

 

模块名称

查找功能

模块功能

根据学号或姓名查询系统文件中的某各学生的各门成绩

输入

学生学号或姓名

输出

该学生各科成绩及个人信息

备注

请正确运行程序并输入准确信息

测试结果

经过测试运行,程序功能均能实验,界面美观。

实验信息

设计人:

方泽建陈柏

参考文献:

数据结构(C语言版),C程序设计,数据结构学习指导●实验指导●课程指导(机械工业出版社

实验心得:

经过这两个星期的程序设计训练,我们重新复习了学过的知识,并学会将这些知识运用到实际当中去,而且我们也参考了很多课外的相关资料,认识到我们在课堂学不到的东西,我们受益良多。

源程序:

#include"stdio.h"

#definemaxsize1100/*maxsize1为学生名字的最大字符数*/

#definemaxsize210/*maxsize2为学生的最大个数*/

#definenull0

typedefstruct

{

intnumber;/*学号域*/

charname[maxsize1];/*姓名域*/

intpro[5];/*pro[1]为math成绩;pro[2]为english成绩;pro[3]为computer成绩;pro[4]为平均成绩;*/

}node;

typedefstruct

{

nodestu[maxsize2];/*存放学生信息*/

intnum;/*存放学生人数*/

}md;

mdcreat()/*创建学生信息*/

{

mda;

inti;

printf("\nenterstudentNO:

");

scanf("%d",&a.num);

for(i=1;i<=a.num;i++)/*输入每个学生的三门课的成绩*/

{

printf("enter%dnumbernamemathenglishcomputer:

",i);

scanf("%d%s%d%d%d",&a.stu[i].number,a.stu[i].name,&a.stu[i].pro[1],&a.stu[i].pro[2],&a.stu[i].pro[3]);

}save(a);

returna;

}

save(mda)

{inti;

FILE*fp;

if((fp=fopen("c:

\\INPUT.txt","a"))==null)

{

printf("cannotopenthisfile\n");

return1;

}

for(i=1;i<=a.num;i++)

{

fprintf(fp,"%d%s%d%d%d\n",a.stu[i].number,a.stu[i].name,a.stu[i].pro[1],a.stu[i].pro[2],a.stu[i].pro[3]);

}

{fclose(fp);printf("\n*************************************************\n");}

}

voiddisp(mda)/*输出学生信息*/

{

inti;

for(i=1;i<=a.num;i++)

printf("number:

%d,name:

%s,math:

%d,english:

%d,computer:

%d,average:

%d\n",a.stu[i].number,a.stu[i].name,a.stu[i].pro[1],a.stu[i].pro[2],a.stu[i].pro[3],a.stu[i].pro[4]);

}

voidsort(mda,intm)

{/*排序函数,若m为1,则按math成绩排序;若m为2,则按english成绩排序;若m为3,则按computer成绩排序;若m为4,则按平均成绩排序*/

inti,j,max;

nodetemp;

for(i=1;i<=a.num;i++)/*采用选择排序*/

{

max=i;

for(j=i+1;j<=a.num;j++)

if(a.stu[j].pro[m]>a.stu[max].pro[m])

max=j;

if(max!

=i)

{

temp=a.stu[max];

a.stu[max]=a.stu[i];

a.stu[i]=temp;

}

}

disp(a);

}

voidfun1(mda)/*按学生的各门功课排序*/

{

intselect,i;

for(i=1;i<=a.num;i++)/*求每个学生的平均成绩*/

a.stu[i].pro[4]=(a.stu[i].pro[1]+a.stu[i].pro[2]+a.stu[i].pro[3])/3;

printf("\n*************************************************\n");

do

{

printf("1.mathsort\n");

printf("2.englishsort\n");

printf("putersort\n");

printf("4.average\n");

printf("5.return\n");

printf("enterselect(1--5):

");

scanf("%d",&select);

printf("\n*************************************************\n");

if(select!

=5)

sort(a,select);

elsereturn;

}while

(1);

}

voidfun2(mda)/*按各门功课的平均成绩排序*/

{

intselect,i,tatal;

printf("\n*************************************************\n");

do

{

printf("1.math-class\n");

printf("2.english-class\n");

printf("puter-class\n");

printf("4.return\n");

printf("enterselect(1--4):

");

scanf("%d",&select);

printf("\n*************************************************\n");

if(select==4)return;

else

{

tatal=0;

for(i=1;i<=a.num;i++)

tatal+=a.stu[i].pro[select];

printf("class-average:

%d\n",tatal/a.num);

}

}while

(1);

}

mdget_file(mda)

{

FILE*fp;

inti=1,j;

if((fp=fopen("c:

\\INPUT.txt","r"))==null)

{

printf("cannotopenthisfile\n");

printf("error");

printf("\n*************************************************\n");

}

while(!

feof(fp))

{

if(fscanf(fp,"%d%s%d%d%d",&a.stu[i].number,a.stu[i].name,&a.stu[i].pro[1],&a.stu[i].pro[2],&a.stu[i].pro[3])==EOF)break;

i++;

}fclose(fp);

returna;

}

voidfind_nu(mda,intb)/*按学号查找学生信息*/

{

inti;

for(i=1;i<=a.num;i++)

if(a.stu[i].number==b)

{

printf("name:

%s,math:

%d,english:

%d,computer:

%d\n",a.stu[i].name,a.stu[i].pro[1],a.stu[i].pro[2],a.stu[i].pro[3]);

return;

}

printf("\n*************************************************\n");

}

voidfind_na(mda,charch[])/*按名字查找学生信息*/

{

inti;

for(i=1;i<=a.num;i++)

if(!

strcmp(a.stu[i].name,ch))

{

printf("number:

%d,math:

%d,english:

%d,computer:

%d\n",a.stu[i].number,a.stu[i].pro[1],a.stu[i].pro[2],a.stu[i].pro[3]);

return;

}

printf("\n*************************************************\n");

}

voidfun3(mda)/*学生信息查找函数*/

{

intx,select;

charch[maxsize1];

printf("\n*************************************************\n");

do

{

printf("1.findbynumber:

\n");

printf("2.findbyname:

\n");

printf("3.return\n");

printf("select(1--3):

");

scanf("%d",&select);getchar();

printf("\n*************************************************\n");

if(select==3)return;

elseif(select==1)/*按学号查找*/

{

printf("enternumber:

");

scanf("%d",&x);

find_nu(a,x);

}

elseif(select==2)

{

printf("entername:

");/*按名字查找*/

gets(ch);

find_na(a,ch);

}

}while

(1);

}

main()

{

mdh;

intselect;FILE*fp;

if((fp=fopen("c:

\\INPUT.txt","r"))==null)

{

printf("cannotopenthisfile\n");

h=creat();

}

h=get_file(h);

printf("\n*************************************************\n");

do

{

printf("1.sort\n");

printf("2.class-average\n");

printf("3.find\n");

printf("4.exit\n");

printf("enterselect(1--4):

");

scanf("%d",&select);

printf("\n*************************************************\n");

if(select==4)

{

printf("OK!

\n");

exit(0);

}

if(select==1)fun1(h);

elseif(select==2)fun2(h);

elseif(select==3)fun3(h);

}while

(1);

}

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

当前位置:首页 > 考试认证 > IT认证

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

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