C语言实验报告学生信息资源管理系统Word文档下载推荐.docx
《C语言实验报告学生信息资源管理系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言实验报告学生信息资源管理系统Word文档下载推荐.docx(11页珍藏版)》请在冰豆网上搜索。
三、程序编写
#include<
stdlib.h>
stdio.h>
string.h>
#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)
putchar('
\n'
);
printf("
%s\n"
"
请输入新的记录,如果需要退出当前菜单请输入-1."
格式:
\n学号\n"
姓名性别年龄地址班级学号语文数学英语"
如:
\n"
1\n"
张三939589\n"
scanf("
%d"
&
no);
while(no!
=-1){
data[*len].no=no;
%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("
}
/*---------------输出信息子程序---------------*/
voidoutput(STUDENT*data,intlen)
inti;
system("
cls"
%8s"
姓名"
性别"
年龄"
地址"
printf("
班级"
语文"
数学"
%10s"
英语"
%12s"
平均分"
总分"
for(i=0;
i<
80;
i++)
='
for(i=0;
i<
len;
{
%8d"
data[i].no);
data[i].name);
data[i].sex);
data[i].age);
data[i].adress);
data[i].glassnum);
%8.1lf"
data[i].Chinese);
data[i].math);
%10.1lf"
data[i].English);
%12.1lf"
data[i].mark_ave);
data[i].mark_tot);
}
按回车键继续."
getchar();
}
/*--------------排序子程序------------*/
voidsort(STUDENT*data,intlen)
inti,j,k;
STUDENTtemp;
for(i=0;
len-1;
i++){
for(k=i,j=i+1;
j<
len;
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;
lab:
result=0;
printf("
请输入需要查找的学生的学号,退出当前菜单请输入-1."
find_no);
if(find_no==-1)return;
/*exitthefinesubprogram*/
while(data[result].no!
=find_no&
&
result<
len)result++;
if(result>
=len){
printf("
未查询到相关信息"
gotolab;
}
else{
system("
查询信息如下:
"
for(i=0;
putchar('
putchar('
学号"
data[result].no);
data[result].name);
data[result].sex);
data[result].age);
data[result].adress);
data[result].glassnum);
data[result].Chinese);
data[result].math);
data[result].English);
data[result].mark_ave);
data[result].mark_tot);
for(i=0;
/*---------------统计子程序------------*/
voidstat(STUDENT*data,intlen)
intno_59=0,no_69=0,no_79=0,no_89=0,no_100=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++;
=89)no_89++;
elseno_100++;
分数"
0--59"
60--69"
70--79"
80--89"
90--100"
putchar('
学生"
%10d"
no_59);
no_69);
no_79);
no_89);
no_100);
按回车键返回"
/*---------------显示信息子程序------------*/
voidpaint()
%55s\n"
“信计二班学生成绩管理系统\n"
制作者:
XX\n"
1输入信息2输出信息\n"
3按平均分排序4按学号查找\n"
5按平均分输出统计信息6保存到文件\n"
0退出\n"
=79;
请输入各操作对应的序号:
voidsave(STUDENT*data,intlen)//将数据保存到文件
inti;
FILE*fp;
fp=fopen("
成绩统计表.txt"
"
w"
fprintf(fp,"
fprintf(fp,"
%10s\n"
========================================================================\n"
%10.1lf\n"
fclose(fp);
文件已保存到\"
成绩统计表.txt\"
getchar();
/*-----------主程序--------------*/
voidmain()
STUDENTdata[MAXN];
intlen=0;
charctrl_ch;
paint();
%c"
ctrl_ch);
while(ctrl_ch!
='
0'
){
;
case'
1'
:
input(data,&
len);
break;
case'
2'
output(data,len);
3'
sort(data,len);
4'
find(data,len);
5'
insert(data,&
6'
delete_item(data,&
7'
stat(data,len);
8'
save(data,len);
default:
if(ctrl_ch!
)printf("
输入错误!
if(ctrl_ch!
)paint();
四、误差分析
此程序没有按加权平均排序功能是本程序的一大弊端,还有就是所列科目少了点,由于本课题中的许多知识点都没有学过,需要查找课外资料,所以如有错误,希望老师多多指正,谢谢!