《c语言综合设计》由会员分享,可在线阅读,更多相关《c语言综合设计(7页珍藏版)》请在金锄头文库上搜索。
1、昆明理工大学程序设计基础课程综合设计实践教学课题报告课程名称: C 语言程序设计课题名称: 学生成绩,结构体问题学号姓名学院专业班级指导教师昆明理工大学计算中心2013 年 月 日第一部分 系统概述一、程序功能:该程序能处理10个学生的信息,每个学生的信息包括:学号、姓名、三门成绩的学生 的信息。二、程序算法:将n个学生的数据表示为结构体数组(有n个元素)。按照功能函数化的思想,分别用3 个函数来实现不同的功能;(1)用input函数来输入数据和求个学生平均成绩。(2) 用max函数来找平均成绩最高的学生。(3) 用print函数来输出成绩最高的学生的信息。在主函数中先后调用这三个函数,用指向
2、结构体变量的指针做实参。第二部分/建立结构体类型/定义学号/定义姓名/定义三门课的成绩/平均成绩定义结构体:struct studentint num;char name20;float score3;float aver;四、数组设计:程序中定义是一个浮点型数组结构、一个字符型数组结构和一个结构体数组 字符数组char name20在结构体中用于保存学生姓名,float score3用 于保存学生成绩。结构体数组用于保存学生所有信息。五、函数定义:程序中定义了3个功能函数,它们是用input函数来输入数据和求个学生平均 成绩;用max函数来找平均成绩最高的学生;用print函数来输出成绩最高
3、的学生 的信息。最后是主函数m ain ()来调用以上3个函数。int main()void input(struct student stu);struct student max(struct student stu); void print (struct student stu);struct student stuN,*p=stu;input(p);print(max(p);return 0;/函数声明/函数声明/函数声明/定义结构体数组和指针/调用 input 函数/调用 print 函数,以 max 的返回值作为实参void input(struct student stu)/定
4、义 input 函数int i;printf(-请输入各学生的信息:学号、姓名、三门课成绩:);*J / 11f f -*% 1-1- f 1 1 Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx -*% 1 11 printf(* 学号 * 姓名 * 三门课成绩 * n);for(i=0;iN;i+)scanf(%d %s %f %f %f,&stui.num,stui.name, &stui
5、.score0,&stui.score1,&stui.score2);/输入学生数据信息stui.aver=(stui.score0+stui.score1+stui.score2)/3.0;/求平均成绩struct student max(struct student stu)Int i,m=0;/定义 max 函数/用 m 存放成绩最高的学生在数组中的序号for(i=0;istum.aver)m=i;return stum;void print(struct student stud)/找出平均成绩最高的学生在数组中的序号/返回包含该生信息的结构体元素定义print函数. j X t fk
6、1* k1* k1* k1* k1* k1* k1* k1* k1* k1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1*t f -* T-|- / 1 1 rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT*
7、rr* -1 1 1 printf(”* 学号:%dn* 姓名:sn* 三门课成绩:5.1f,%5.1f,%5.1fn* 平均成绩: %6.2fn,stud.num,stud.name,stud.score0,stud.score1,stud.score2,stud.aver);. j X t f、t*、t*、t*、t*、t*、t*、t*、t*、t*、t*、t*、t*、t*、t*、t* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *i* t f -* *|
8、-J- /1 1 rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rr* -1 11 第三部分使用程序说明八、调试按要求分别输入学生的学号、姓名、三门课的成绩并用空格隔开。每输入完一个学生成绩按回车打下一个学生成绩,最后再按回车得出结果。如上就可以得出信息。但是三门课的成绩未完全显示。说明程序存在错误: printf(”* 学号:%dn* 姓
9、名:sn* 三门课成绩:%5.1f.%5.1F.%5.1fn* 平均成 绩:6.2fn,stud.num,stud.name,stud.score0,stud.score1,stud.score2,stud.aver);. j X t f*1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *i* t f -* *|-J- / 1 1 rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT
10、* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rT* rr* -1 1 1 洪学号鬢姓名兴三门课成绩*99999 er 34 34 3455343 rt 34 56 7834343 oo 43 67 99 H:VCDebugTextl.exe:课成号名门均学姓三评34343oo成绩=43.0, 67.0, 99.0绩:G9.67Press any key to continue经过更改后就可以输出正确的数据了。如上:第四部分、总结和体会刚开始学C语言的时候,很迷茫,在此之前从没
11、有接触过C语言,有点摸 不着头脑。可是在上机过后,我觉得编程是很有趣的一件事。我知道要学好 C 语言不容易,可是我决定完成这件不容易的事。要学好 C 语言就要先懂得最基本的语法知识,看课本是必需的。我觉得看 不懂也没关系,尽力去理解就好了,在对知识有了一个大致的了解过后,就要上机实践。学习C语言一定要动手,只看不做,眼高手低是不行的。最开始可以打书上的例题,熟悉程序,慢慢的开始试着编程。在编程时要理 清自己的思路,然后再转换成 C 语言中的语言,这个时候就更要动手了,只有 通过上机操作才能验证自己程序的正确性。执行程序,不要害怕错误,其实,我 觉得错误是好的,知道了自己所学知识的不足,并根据提示改正程序中发生的错 误,一种成就感油然而生,觉得自己的付出都是值得的。这次编程作业虽然对我来说比较困难,但是值得高兴的,我努力了,并基本 完成了任务。为了做好这次作业,我查阅了一些关于 C 语言编程的书籍,并接 受了很多同学建议,以求做到精益求精。付出总有回报,即使它不能在现在,也 将在不远的将来!学习 C 语言需要的是坚持下去的毅力,认真对待每次错误的耐心,还有孜孜不倦的努力。拥有一个良好的心态,我相信自己一定能学好 c 语言!