C综合性实验数组的综合运算.doc_第1页
C综合性实验数组的综合运算.doc_第2页
C综合性实验数组的综合运算.doc_第3页
C综合性实验数组的综合运算.doc_第4页
C综合性实验数组的综合运算.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实 验 报 告 课程名称 C程序设计 实验学期 2008 至 2009 学年 第 2 学期学生所在系部 计算机系 年级 2008级 专业班级 信管B081班 学生姓名 学号 任课教师 实验成绩 计算机系制C程序设计课程综合性实验报告开课实验室:基础实验室一 2009年 6月22日实验题目数组的综合运算一、实验目的使学生巩固和加深对C语言程序设计理论知识的理解,进一步掌握编程技巧和方法,能融会贯通所学知识,提高编程和调试程序的水平,从而培养学生理论与实践相结合的能力,独立操作与综合应用知识的能力。二、设备与环境PC兼容机、Windows操作系统、Turbo C/Win tc,Vc+软件等。三、实验内容系统主要界面设置及运行说明:1.输入学生的学号、姓名以及各科成绩,将之赋给结构体中的成员。在后面就可以直接运用和计算结构体的成员。2.按学号顺序输出学生的学号、 姓名和各科成绩。用冒泡法进行循环,将两个学号进行比较,如果前面的学号大于后面的学号,就把两组数据互换,从而使学号从小到大地排列。调用求平均值的函数,将平均值输出。3.通过学号查找学生的情况。先把学号定义成字符串,再输入学号。用字符串比较函数比较输入的学号和原来的学号,如果两者相等,输出学号对应的一组数据。4.用冒泡法比较两个平均分,如果前面一个小于后面一个,就将两组数据互换,使平均分从大到小排列,输出对应的几组数据。5.按课程成绩输出学生成绩,输入课程代号。用选择法将成绩进行比较,按从大到小排序,输出学号、姓名和对应的成绩。如果输入的课程代号大于2,输出“课程代号错误!”。6.总平均成绩就是所有学生所有课程的平均分,即学生成绩平均分的平均分。用算出来的学生成绩的平均分相加,再除以学生个数,即为所求。7.将各科成绩算出总和,再除以学生个数,即可算出各科成绩的平均成绩,并输出。8.将每门课程成绩与60比较,若小于60,就输出学生姓名及不及格的课程名。如果没有小于60的成绩,输出“无人不及格!”。9.选择课程,输入课程代号,将该课程中所有成绩与60比较,如果小于60,输出学生姓名。如果没有小于60的成绩,输出“无人不及格!”。10.将不及格人数定义为一维数组,并全部赋值为0。如果各科成绩小于60,则数组加1,如此计算出各科成绩的不及格人数。不及格比例的计算是用不及格人数除以总人数。程序中用“%”则显示出“%”。11.用goto语句,进入名为end的空语句,即可以退出系统。功能模块简介和系统结构图:学生考试成绩数据处理系统11.退出系统10.计算并输出每门课程不及格比例9.输出指定课程有不及格的学生名单8.输出课程有不及格的学生名单7.输出每门课程平均成绩1.增加学生记录2.按学号顺序输出所有学生成绩3.输入学号查成绩(包括平均成绩)4.按平均成绩顺序输出学生成绩5.按课程成绩降序输出学生成绩6.输出总平均成绩四、实验结果及分析(源程序代码)#include#includestruct studentchar num8;char name20;float score3;float average;stu80;struct student *p;float total_ave,math_ave,eng_ave,c_ave; /*定义总平均成绩和各门课程平均成绩*/int n;/*定义学生记录的个数*/void main()void average();void print();void choice1();void choice2();void choice3();void choice4();void choice5();void choice6();void choice7();void choice8();void choice9();void choice10();int c;A:system(cls);/*清屏*/printf(*n);printf( 欢迎使用学生考试成绩数据处理系统n);printf(*n);printf( 1.增加学生记录n);printf( 2.按学号顺序输出所有学生成绩n);printf( 3.输入学号查成绩(包括平均成绩)n);printf( 4.按平均成绩顺序输出学生成绩n);printf( 5.按课程成绩降序输出学生成绩n);printf( 6.输出总平均成绩n);printf( 7.输出每门课程平均成绩n);printf( 8.输出课程有不及格的学生名单n);printf( 9.输出指定课程有不及格的学生名单n);printf( 10.计算并输出每门课程不及格比例n);printf( 11.退出系统n);printf(*n);printf(-谢谢使用本系统-n);again:printf(请用数字键选择操作菜单:);scanf(%d,&c);if(c=1) choice1();else if(c=2) choice2();else if(c=3) choice3();else if(c=4) choice4();else if(c=5) choice5();else if(c=6) choice6();else if(c=7) choice7();else if(c=8) choice8();else if(c=9) choice9();else if(c=10) choice10();else if(c=11) goto end;else if(c11)printf(输入错误!请重新输入!n);goto again;/*如果选择项不在111之间则重输*/elsegoto A;end: ;void choice1()/*增加学生记录函数*/char c;doprintf(请输入学生的学号:);scanf(%s,stun.num);printf(请输入学生的姓名:);scanf(%s,);printf(请输入成绩:);scanf(%f,&stun.score0);printf(请输入成绩:);scanf(%f,&stun.score1);printf(请输入成绩:);scanf(%f,&stun.score2);getchar();n+;printf(是否继续录入?(按n退出,按任意键继续));c=getchar();printf(n);while(c!=n);printf(t数据已成功输入-!n);getch();main();void average()/*计算总平均成绩和各门课程平均成绩函数*/float sum=0,sum0=0,sum1=0,sum2=0;for(p=stu;paverage=(p-score0+p-score1+p-score2)/3;sum=sum+p-average;sum0=sum0+p-score0;sum1=sum1+p-score1;sum2=sum2+p-score2;total_ave=sum/n;math_ave=sum0/n;eng_ave=sum1/n;c_ave=sum2/n;void print()/*输出学生成绩函数*/printf(n);printf(-n);printf( 学号 姓名 数学 英语 C语言程序设计 平均分 n);printf(-n);for(p=stu;pnum,p-name,p-score0,p-score1,p-score2,p-average);printf(-n);void choice2()/*按学号顺序输出所有学生成绩函数*/int i,j;struct student t;for(i=0;in-2;i+)/*用冒泡法排序*/for(j=0;j0)t=stuj;stuj=stuj+1;stuj+1=t;average();print();getch();main();void choice3()/*输入学号查成绩函数*/char number8;int flag=1;printf(n);printf(请输入学号:);scanf(%s,number);for(p=stu;pnum)=0)printf(n);printf(-n);printf( 学号 姓名 数学 英语 C语言程序设计 平均分 n);printf(-n);printf( %6s %-10s %.1f %.1f %.1f %.2f n,p-num,p-name,p-score0,p-score1,p-score2,p-average);printf(-n);flag=0;if(flag)printf(输入有误!没有该学生数据!n);getch();main();void choice4()/*按平均成绩顺序输出学生成绩函数*/int i,j;struct student t;for(i=0;in-1;i+)/*用冒泡法排序*/for(j=0;jn-i;j+)if(stuj.average=0&s3)for(i=0;in-1;i+)/*用选择法排序*/for(j=i+1;jn;j+)if(stui.scoresstuj.scores)t=stui;stui=stuj;stuj=t;for(p=stu;pnum,p-name,p-scores);elseprintf(输入的课程代号错误!n);getch();main();void choice6()/*输出总平均成绩函数*/average();printf(n所有学生所有课程的平均成绩为:%.2fn,total_ave);getch();main();void choice7()/*输出每门课程平均成绩函数*/average();printf(n);printf(数学平均成绩:%.2fn,math_ave);printf(英语平均成绩:%.2fn,eng_ave);printf(C语言程序设计平均成绩:%.2fn,c_ave);printf(n);getch();main();void choice8()/*输出课程有不及格的学生名单函数*/int flag=1;printf(n);for(p=stu;pscore0name);flag=0;if(p-score1name);flag=0;if(p-score2name);flag=0;if(flag)printf(无人不及格!n);getch();main();void choice9()/*输出指定课程有不及格的学生名单函数*/int flag=1,s;printf(n);printf(请输入课程代号(数学0,英语1,C语言程序设计2):);scanf(%d,&s);for(p=stu;pscoresname);flag=0;if(flag)printf(无人不及格!n);getch();main();void choice10()/*计算并输出每门课程不及格比例函数*/int fail3=0,0,0,i;float percent3;for(i=0;i3;i+)for(p=stu;pscorei60)faili+;percenti=faili/(float)n*100;printf(n);printf(-n);printf( 课程 不及格人数 总人数 不及格比例 n);printf( 数学 %d %d %.1f% n,fail0,n,percent0);printf( 英语 %d %d %.1f% n,fail1,n,percent1);printf( C语言程序设计 %d %d %.1f% n,fail2,n,percent2);printf(-n);getch();main();五实验总结通过学习C语言程序设计,我的收获很大。通过对编程中遇到问题的思考,我了解

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论