C语言实验报告学生信息资源管理系统.docx

上传人:b****4 文档编号:24597904 上传时间:2023-05-29 格式:DOCX 页数:13 大小:17.15KB
下载 相关 举报
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语言实验报告

 

院系:

数学与计算科学学院

班级:

信息与计算科学2班

姓名:

学号:

2011年12月21日

一、问题描述

编写一个信息管理系统,包括姓名、性别、年龄、班级、学号、地址、各科成绩等,要求能进行查找、排序和计算,按加权平均排序、按某一课程排序和按学号排序。

二、分析问题,解决问题的步骤

1、输入初始的学生信息:

输入信息包括学生的姓名、性别、年龄、班级、学号、地址、各科成绩等相关信息;可用函数voidinput(STUDENT*data,int*len)来实现此操作。

2、成绩输出模块:

输出学生的信息以及成绩voidoutput(STUDENT*data,intlen):

通过学生的姓名来查看学生的相关成绩,同时也可以分别通过caverage()、maverage()、eaverage()和comaverage()来输出成绩的平均分数、最高和最低分数。

3、排序模块:

用函数voidsort(STUDENT*data,intlen)来实现。

4、成绩查询模块:

可用voidfind(STUDENT*data,intlen)来实现。

找到就输出此学生全部信息。

5、统计功能能:

用函数voidstat(STUDENT*data,intlen)来实现。

6、退出系统:

可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。

三、程序编写

#include

#include

#include

#defineMAXN35

#defineMaxsize325

typedefstructstudent//学生信息

{

intno;

charname[Maxsize];

charsex[Maxsize];

charage[Maxsize];

charadress[Maxsize];

charglassnum[Maxsize];

doubleChinese;

doublemath;

doubleEnglish;

doublemark_ave;

doublemark_tot;

}STUDENT;

/*-----------输入信息子程序---------*/

voidinput(STUDENT*data,int*len)

{

intno;

putchar('\n');

printf("%s\n","请输入新的记录,如果需要退出当前菜单请输入-1.");

printf("%s\n","格式:

\n学号\n");

printf("%s\n","姓名性别年龄地址班级学号语文数学英语");

putchar('\n');

printf("如:

\n");

printf("1\n");

printf("张三939589\n");

scanf("%d",&no);

while(no!

=-1){

data[*len].no=no;

scanf("%s%s%s%s%s%lf%lf%lf",data[*len].name,&data[*len].sex,&data[*len].age,&data[*len].adress,&data[*len].glassnum,&data[*len].Chinese,&data[*len].math,&data[*len].English);data[*len].mark_ave=(data[*len].Chinese+data[*len].math+data[*len].English)/3.0;data[*len].mark_tot=data[*len].Chinese+data[*len].math+data[*len].English;

(*len)++;

scanf("%d",&no);

}

/*---------------输出信息子程序---------------*/

voidoutput(STUDENT*data,intlen)

{

inti;

system("cls");

printf("%8s","姓名");

printf("%8s","性别");

printf("%8s","年龄");

printf("%8s","地址");

printf("%8s","班级");

printf("%8s","语文");

printf("%8s","数学");

printf("%10s","英语");

printf("%12s","平均分");

printf("%10s","总分");

putchar('\n');

for(i=0;i<80;i++)

putchar('=');

putchar('\n');

for(i=0;i

{

printf("%8d",data[i].no);

printf("%8s",data[i].name);

printf("%8s",data[i].sex);

printf("%8s",data[i].age);

printf("%8s",data[i].adress);

printf("%8s",data[i].glassnum);

printf("%8.1lf",data[i].Chinese);

printf("%8.1lf",data[i].math);

printf("%10.1lf",data[i].English);

printf("%12.1lf",data[i].mark_ave);

printf("%10.1lf",data[i].mark_tot);

putchar('\n');

}

for(i=0;i<80;i++)

putchar('=');

putchar('\n');

printf("按回车键继续.");

getchar();

getchar();

}

/*--------------排序子程序------------*/

voidsort(STUDENT*data,intlen)

{

inti,j,k;

STUDENTtemp;

for(i=0;i

for(k=i,j=i+1;j

if(data[k].mark_ave>data[j].mark_ave)k=j;

if(k!

=i){

temp=data[i];

data[i]=data[k];

data[k]=temp;

}

}

}

/*--------------------查询子程序-----------------------*/

voidfind(STUDENT*data,intlen)

{

intfind_no,result;

inti;

lab:

result=0;

printf("%s\n","请输入需要查找的学生的学号,退出当前菜单请输入-1.");

scanf("%d",&find_no);

if(find_no==-1)return;/*exitthefinesubprogram*/

while(data[result].no!

=find_no&&result

if(result>=len){

printf("%s\n","未查询到相关信息");

gotolab;

}

else{

system("cls");

printf("%s\n","查询信息如下:

");

for(i=0;i<80;i++)

putchar('=');

putchar('\n');

printf("%8s","学号");

printf("%8s","姓名");

printf("%8s","性别");

printf("%8s","年龄");

printf("%8s","地址");

printf("%8s","班级");

printf("%8s","语文");

printf("%8s","数学");

printf("%10s","英语");

printf("%12s","平均分");

printf("%10s","总分");

putchar('\n');

printf("%8d",data[result].no);

printf("%8s",data[result].name);

printf("%8s",data[result].sex);

printf("%8s",data[result].age);

printf("%8s",data[result].adress);

printf("%8s",data[result].glassnum);

printf("%8.1lf",data[result].Chinese);

printf("%8.1lf",data[result].math);

printf("%10.1lf",data[result].English);

printf("%12.1lf",data[result].mark_ave);

printf("%10.1lf",data[result].mark_tot);

putchar('\n');

for(i=0;i<80;i++)

putchar('=');

putchar('\n');

gotolab;

}

}

/*---------------统计子程序------------*/

voidstat(STUDENT*data,intlen)

{

intno_59=0,no_69=0,no_79=0,no_89=0,no_100=0;

inti;

for(i=0;i

if(data[i].mark_ave<=59)no_59++;

elseif(data[i].mark_ave<=69)no_69++;

elseif(data[i].mark_ave<=79)no_79++;

elseif(data[i].mark_ave<=89)no_89++;

elseno_100++;

}

system("cls");

for(i=0;i<80;i++)

putchar('=');

putchar('\n');

printf("%10s","分数");

printf("%10s","0--59");

printf("%10s","60--69");

printf("%10s","70--79");

printf("%10s","80--89");

printf("%10s","90--100");

putchar('\n');

putchar('\n');

printf("%10s","学生");

printf("%10d",no_59);

printf("%10d",no_69);

printf("%10d",no_79);

printf("%10d",no_89);

printf("%10d",no_100);

putchar('\n');

for(i=0;i<80;i++)

putchar('=');

putchar('\n');

printf("按回车键返回");

getchar();

getchar();

}

/*---------------显示信息子程序------------*/

voidpaint()

{

inti;

system("cls");

printf("%55s\n",“信计二班学生成绩管理系统\n");

printf("制作者:

XX\n");

for(i=0;i<80;i++)

putchar('=');

putchar('\n');

printf("1输入信息2输出信息\n");

printf("3按平均分排序4按学号查找\n");

printf("5按平均分输出统计信息6保存到文件\n");

printf("0退出\n");

for(i=0;i<=79;i++)

putchar('=');

putchar('\n');

printf("%s\n","请输入各操作对应的序号:

");

}

voidsave(STUDENT*data,intlen)//将数据保存到文件

{

inti;

FILE*fp;

fp=fopen("成绩统计表.txt","w");

fprintf(fp,"%8s","学号");

fprintf(fp,"%8s","姓名");

fprintf(fp,"%8s","性别");

fprintf(fp,"%8s","年龄");

fprintf(fp,"%8s","地址");

fprintf(fp,"%8s","班级");

fprintf(fp,"%8s","语文");

fprintf(fp,"%8s","数学");

fprintf(fp,"%10s","英语");

fprintf(fp,"%12s","平均分");

fprintf(fp,"%10s\n","总分");

fprintf(fp,"========================================================================\n");

putchar('\n');

for(i=0;i

{

fprintf(fp,"%8d",data[i].no);

fprintf(fp,"%8s",data[i].name);

fprintf(fp,"%8s",data[i].sex);

fprintf(fp,"%8s",data[i].age);

fprintf(fp,"%8s",data[i].adress);

fprintf(fp,"%8s",data[i].glassnum);

fprintf(fp,"%8.1lf",data[i].Chinese);

fprintf(fp,"%8.1lf",data[i].math);

fprintf(fp,"%10.1lf",data[i].English);

fprintf(fp,"%12.1lf",data[i].mark_ave);

fprintf(fp,"%10.1lf\n",data[i].mark_tot);

}

fprintf(fp,"========================================================================\n");

fclose(fp);

printf("文件已保存到\"成绩统计表.txt\"");

getchar();getchar();

}

/*-----------主程序--------------*/

voidmain()

{

STUDENTdata[MAXN];

intlen=0;

charctrl_ch;

paint();

scanf("%c",&ctrl_ch);

while(ctrl_ch!

='0'){

;case'1':

input(data,&len);

break;

case'2':

output(data,len);

break;

case'3':

sort(data,len);

break;

case'4':

find(data,len);

break;

case'5':

insert(data,&len);

break;

case'6':

delete_item(data,&len);

break;

case'7':

stat(data,len);

break;

case'8':

save(data,len);

break;

default:

if(ctrl_ch!

='\n')printf("%s\n","输入错误!

");

break;

}

if(ctrl_ch!

='\n')paint();

scanf("%c",&ctrl_ch);

}

}

四、误差分析

此程序没有按加权平均排序功能是本程序的一大弊端,还有就是所列科目少了点,由于本课题中的许多知识点都没有学过,需要查找课外资料,所以如有错误,希望老师多多指正,谢谢!

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

当前位置:首页 > 外语学习 > 英语考试

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

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