《C程序设计》综合性实验
实验报告
题目: 学生成绩管理
姓名:
班级:
学号:
指导教师:
完成时间:
一、 实验题目
学生成绩管理
二、 实验目的
1. 掌握一维数组、二维数组的使用方法。
2. 掌握结构体数组的定义和使用。
3. 综合应用数据文件的读写语句保存结构体数组中的数据。
三、 实验要求
有4个学生,每个学生有3门课的成绩,从键盘上输入以上数据,计算每个学生的平均分,并把这些信息(包括学号、姓名、班级、3门课的成绩及平均分)保存到一个文件(score.txt)中,并显示在屏幕上。
具体要求:
?定义结构体类型(student_type),其中包括学号(num[11])、姓名(name[8])、班级(class[20])、3门课成绩(score[3])和平均成绩(ave)。利用该结构体类型定义数组stud[4]。
?在主函数中输入学生学号、姓名、班级、3门课的成绩,并计算出平均成绩,然后调用save()函数将学生数据保存在score.txt文件中,调用display()函数读取score.txt文件,并将其中的内容显示在屏幕上。
?定义保存文件函数save()和显示文件函数display()。
四、 程序流程图
#include <stdio.htypedef struct student_type_tag{
char num[11];
char name[9];
char classname[20];
float score[3];
float ave;
}student_type;
student_type stud[4];
void save()
{
FILE *fp = fopen("score.txt", "wb");
if (fp)
{
for (int i = 0; i < 4; i++)
{
fwrite(&stud[i], sizeof(student_type), 1, fp);
}
fclose(fp);
}
}
void display()
{
FILE *fp = fopen("score.txt", "rb");
if (fp)
{
printf("\n------------成绩---------------");
for (int i = 0; i < 4; i++)
{
student_type astud;
fread(&astud, sizeof(student_type), 1, fp);
printf("\n%11s | %9s | %20s | %3.1f | %3.1f | %3.1f | %3.1f",
astud.name, astud.name, astud.classname,
astud.score[0], astud.score[1], astud.score[2], astud.ave);
}
fclose(fp);
}
}
int main(int argc, char* argv[])
{
for (int i = 0; i < 1; i++)
{
printf("\n--输入成绩[%i/4]--\n", i+1);
printf("请输入学号(最长11位):");scanf("%s", &stud[i].num);
printf("请输入姓名(最长9位):");scanf("%s", &stud[i].name);
printf("请输入班级(最长20位):");scanf("%s", &stud[i].classname);
printf("请输入成绩1(xx.x):");scanf("%f", &stud[i].score[0]);
printf("请输入成绩2(xx.x):");scanf("%f", &stud[i].score[1]);
printf("请输入成绩3(xx.x):");scanf("%f", &stud[i].score[2]);
stud[i].ave = (stud[i].score[0] + stud[i].score[1] + stud[i].score[2]) / 3;
}
printf("\n正在保存...");
save();
printf("ok");
display();
getchar();
getchar();
return 0;
}
五、 程序代码
六、 实验结果
七、 实验体会
通过这次C语言实训,提高了我掌握和利用C语言进行程设计的能力, 而且进一步理解和运用结构化程设计的思想和方法。初步掌握了开发一个小型实用系统的基本方法。学会了调试一个较长程序的基本方法。学会了利用流程图或N-S图表示算法。掌握了书写程设计开发文档的能力.为以后的实训打下坚实的基础。
八 (写出完成此次综合性实验的心得体会,字数在200字以上。)
通过这次实训,增加了我学习软件技术的兴趣,虽然还不明确软件技术包含的具体内容,但从C语言这门课程开始,已发现程序设计的乐趣,在学习C语言的过程中也学到了许多计算机应用基础知识,对计算机的机体也有了一个大体的了解。
这次实训是老师给了范例程序,经过自己的改写,实现要求。先做简单的输出,一步步的再做其它图案,在实际操作过程中犯的一些错误还会有意外的收获,感觉实训很有意思。在具体操作中对这学期所学的C语言的理论知识得到巩固,达到实训的基本目的,也发现自己的不足之出,在以后的上机中应更加注意,同时体会到C语言具有的语句简洁,使用灵活,执行效率高等特点。发现上机实训的重要作用,特别是对数组和循环有了深刻的理解。
通过实际操作,学会C语言程序编程的基本步骤、基本方法,开发了自己的逻辑思维能力,培养了分析问题、解决问题的能力。深刻体会到“没有做不到的,只有想不到的”,“团结就是力量”,“实践是检验真理的标准”,“不耻下问”……的寓意。
计时在此希望以后应多进行这样的实训,加长设间,培养学生独立思考问题的能力,提高实际操作水平。
八、参考资料:《C语言程序设计教程》
参考资料:《C语言程序设计教程》1.总结
通过本次的C++课程设计,让我学会了把书本上的知识应用到了实际中来。虽然在这几周中有过挫折和坎坷,有的问题一直到了最后才被解决,但是我认为这未必就不是好事,这样能锻炼我的意志,磨练我的耐心,失败是成功之母,这话一点都没错,没有失败就没有成功。
让我没有失去信心的是关怀我们的老师,当我们有了问题和疑问,老师就很耐心的给予讲解,让我们有了一个良好的学习氛围。
演讲稿
尊敬的老师们,同学们下午好:
我是来自10级经济学(2)班的学习委,我叫张盼盼,很荣幸有这次机会和大家一起交流担任学习委员这一职务的经验。
转眼间大学生活已经过了一年多,在这一年多的时间里,我一直担任着学习委员这一职务。回望这一年多,自己走过的路,留下的或深或浅的足迹,不仅充满了欢愉,也充满了淡淡的苦涩。一年多的工作,让我学到了很多很多,下面将自己的工作经验和大家一起分享。
学习委员是班上的一个重要职位,在我当初当上它的时候,我就在想一定不要辜负老师及同学们我的信任和支持,一定要把工作做好。要认真负责,态度踏实,要有一定的组织,领导,执行能力,并且做事情要公平,公正,公开,积极落实学校学院的具体工作。作为一名合格的学习委员,要收集学生对老师的意见和老师的教学动态。在很多情况下,老师无法和那么多学生直接打交道,很多老师也无暇顾及那么多的学生,特别是大家刚进入大学,很多人一时还不适应老师的教学模式。学习委员是老师与学生之间沟通的一个桥梁,学习委员要及时地向老师提出同学们的建议和疑问,熟悉老师对学生的基本要求。再次,学习委员在学习上要做好模范带头作用,要有优异的成绩,当同学们向我提出问题时,基本上给同学一个正确的回复。
总之,在一学年的工作之中,我懂得如何落实各项工作,如何和班委有效地分工合作,如何和同学沟通交流并且提高大家的学习积极性。当然,我的工作还存在着很多不足之处。比日:有的时候得不到同学们的响应,同学们不积极主动支持我的工作;在收集同学们对自己工作意见方面做得不够,有些事情做错了,没有周围同学的提醒,自己也没有发觉等等。最严重的一次是,我没有把英语四六级报名的时间,地点通知到位,导致我们班有4名同学错过报名的时间。这次事使我懂得了做事要脚踏实地,不能马虎。
在这次的交流会中,我希望大家可以从中吸取一些好的经验,带动本班级的学习风气,同时也相信大家在大学毕业后找到好的工作。谢谢大家!
第二篇:C程序设计综合性实验报告模版(河工大)
《C程序设计》综合性实验
实验报告
题目: 学生成绩管理
姓名:
班级:
学号:
指导教师:
完成时间:
一、 实验题目
学生成绩管理
二、 实验目的
1. 掌握一维数组、二维数组的使用方法。
2. 掌握结构体数组的定义和使用。
3. 综合应用数据文件的读写语句保存结构体数组中的数据。
三、 实验要求
有4个学生,每个学生有3门课的成绩,从键盘上输入以上数据,计算每个学生的平均分,并把这些信息(包括学号、姓名、班级、3门课的成绩及平均分)保存到一个文件(score.txt)中,并显示在屏幕上。
具体要求:
?定义结构体类型(student_type),其中包括学号(num[11])、姓名(name[8])、班级(class[20])、3门课成绩(score[3])和平均成绩(ave)。利用该结构体类型定义数组stud[4]。
?在主函数中输入学生学号、姓名、班级、3门课的成绩,并计算出平均成绩,然后调用save()函数将学生数据保存在score.txt文件中,调用display()函数读取score.txt文件,并将其中的内容显示在屏幕上。
?定义保存文件函数save()和显示文件函数display()。
四、 程序流程图
五、 程序代码
struct student_type
{ char name[10];
int num;
int age;
char addr[15];
}stud[SIZE];
2 建立主程序
main()
{
int i;
for(i=0;i<SIZE;i++)
scanf("%s%d%d%s",stud[i].name,&stud[i].num,
&stud[i].age,stud[i].addr);
save();
display();
}
3建立保存学生成绩函数
void save( )
{FILE *fp;
int i;
if((fp=fopen("stu-list","wb"))==NULL)
{ printf("cannot open file\n");
return;}
for(i=0;i<SIZE;i++)/*二进制写*/
if(fwrite(&stud[i],sizeof(struct student_type),1,fp)!=1)
printf(“file write error\n”);/*出错处理*/
fclose(fp); /*关闭文件*/
}
4 建立显示学生成绩函数
void display()
{ FILE *fp;
int i;
if((fp=fopen("d:\\fengyi\\exe\\stu_dat","rb"))==NULL)
{ printf("cannot open file\n");
return;
}
for(i=0;i<SIZE;i++)
{ fread(&stud[i],sizeof(struct student_type),1,fp);
printf("%-10s %4d %4d %-15s\n",stud[i].name,
stud[i].num,stud[i].age,stud[i].addr);
}
fclose(fp);
}
六、 实验结果(同学们再填写时,要各不相同):
运行情况如下:
输入4个学生的姓名、学号、年龄和地址
Zhang 1001 19 room-101
Fun 1002 20 room-102
Tan 1003 21 room-103
Ling 1004 21 room-104
屏幕上显示出以下信息:
Zhang 1001 19 room-101
Fun 1002 20 room-102
Tan 1003 21 room-103
Ling 1004 21 room-104
七、 [M1] 实验体会
(写出完成此次综合性实验的心得体会,字数在200字以上。)
[M1]以上仅是例子