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

上传人:b****8 文档编号:30559561 上传时间:2023-08-16 格式:DOCX 页数:12 大小:21.68KB
下载 相关 举报
C语言实验报告学生信息资源管理系统.docx_第1页
第1页 / 共12页
C语言实验报告学生信息资源管理系统.docx_第2页
第2页 / 共12页
C语言实验报告学生信息资源管理系统.docx_第3页
第3页 / 共12页
C语言实验报告学生信息资源管理系统.docx_第4页
第4页 / 共12页
C语言实验报告学生信息资源管理系统.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

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

《C语言实验报告学生信息资源管理系统.docx》由会员分享,可在线阅读,更多相关《C语言实验报告学生信息资源管理系统.docx(12页珍藏版)》请在冰豆网上搜索。

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];

double

Chinese;

double

math;

double

English;

double

mark_ave;

double

mark_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","语文");

_(ss①」pe.mns①」」-sep」S8%=)七£」d_ar6emns①」3ep・=S8%・・)七u一」d_(x①s.mns①」」-sep」S8%=)七u一」d^UJeu.mns①」」2ep」S8%=)匕£」dsu.mns①」」2ep」P8%=)匕£」d

Fub)」eu9nd厂Q頑=」SOL%=££」d厂=」s0L%=££」d厂职梆=・=sol%=)xuk(>報=」S8%=)匕£」d

 

<烟哮>

-qe-0406

Futeumnd_(J)」£9nd

(+±08V一0上)」04

Futeumnd

_(o「M」euJD_ns①」」-sep匸LOL%=)匕£」d

-Q>elM」ellrmns①」®ep匸LZL&・・)七£」d

MS=6U山D_ns①」」-sep匸LOL%=)匕£」d

_(£eujmns2」2ep匸一Loo%=)匕£」d

-Qrs①uzo.mns①」®ep匸一Loo%=)4c一」d

_Enusse_6.D_ns①」」2ep」S8%=)匕£」d

 

/*统计子程序*/

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输入信息

出信息\n");

printf("3按平均分排序

按学号查找\n");

printf("5按平均分输出统计信息

保存到文件\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