C语言实验报告学生信息资源管理系统.docx
- 文档编号:30559561
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:12
- 大小:21.68KB
C语言实验报告学生信息资源管理系统.docx
《C语言实验报告学生信息资源管理系统.docx》由会员分享,可在线阅读,更多相关《C语言实验报告学生信息资源管理系统.docx(12页珍藏版)》请在冰豆网上搜索。
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
#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); } } 四、误差分析 还有就是 需要查找 此程序没有按加权平均排序功能是本程序的一大弊端,所列科目少了点,由于本课题中的许多知识点都没有学过,课外资料,所以如有错误,希望老师多多指正,谢谢!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 实验 报告 学生 信息 资源管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)