700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 《C语言及程序设计》实践项目——结构体应用

《C语言及程序设计》实践项目——结构体应用

时间:2019-03-20 00:08:41

相关推荐

《C语言及程序设计》实践项目——结构体应用

返回:贺老师课程教学链接

【项目1-学生成绩统计】

每位同学的信息学号、姓名、C、高数、英语成绩。定义一个学生成绩的结构体数组,其中的数据成员包括学号(char num[13])、姓名(name)、三门课的成绩(grade)、总分(score)、均分(average))。

(1)从键盘上输入N名学生的信息(N定义为常变量);

(2)求出每名同学的总分和均分,并存储在结构体数组中(可以读入过程中“顺便”计算);

(3)输出每位同学的信息学号、姓名、总分和均分。

请参考下面的代码,将需要的其他代码写出来。

#include <stdio.h>struct Student{char num[13];char name[10];int c;int math;int english;int grade;double average;};const int N=3;int main( ){int i, j, k;//定义结构体数组struct Student stu[N];//写出代码,实现要求的功能return 0;}

参考运行结果如图:

(4)使用相同的结构体类型,在main函数中已经对结构体数组进行了初始化,请完成相关函数的定义,实现main函数中要求的功能。

#include <stdio.h>struct Student //同前{……};void calculate(struct Student s[],int n); //计算总分和均分,数据在s数组中,共有n个元素void sort1(struct Student [],int);//按总分降序排序void sort2(struct Student [],int);//按学号升序排序void output(struct Student [],int);//输出成绩单void outputExcellent(struct Student [],int); //输出优秀者:总分超285,单科不低于90int main(){struct Student stu[]= {{"52501104","Tom",65,69 ,68 },{"52501114","Jeery",94 ,89 ,63 },{"52501138","Speike",67 ,62 ,84 },{"52501204","Tyke",100 ,95 ,91 },{"52501202","Tuffy",59 ,80 ,55 },{"52501115","Butch",100 ,99 ,89 },{"52501201","Lightning",95 ,92 ,99 },{"52501145","Topsy",88 ,56 ,67 },{"52501203","Droopy",62 ,62 ,95 },{"52501140","Drupa",80 ,60 ,86 },{"52501205","Buzz",73 ,90 ,94}};int stuNum=sizeof(stu)/sizeof(stu[0]); //用sizeof运算确定数组中元素个数//计算总分和均分后输出calculate(stu,stuNum);printf("下面是成绩单:\n");output(stu,stuNum);printf("优秀者名单:\n");outputExcellent(stu,stuNum);//按总分降序排序后输出sort1(stu,stuNum);printf("按总分降序排序后:\n");output(stu,stuNum);//按学号升序排序后输出sort2(stu,stuNum);printf("按学号升序排序后:\n");output(stu,stuNum);return 0;}

(5)score.txt中是一些同学的学号、姓名、C++、高数、英语成绩,利用前面定义的结构体数组,读取文件score.txt中的数据,完成下面的应用:

从文件中读出数据,存放到结构体数组中;求出每名同学的总分(可以在读入过程中“顺便”计算);输出结构体数组中所有同学的记录;按总分排序(降序);输出排序后的成绩单;有30名同学可以获得奖学金,规则是总分高者优先,有挂科不能得奖学金。请输出可以得奖学金同学的名单。若符合得将的最后一名同学有重复(例如总分全为S),则总分为S的同学全得奖。

所有功能可以在main()函数中实现,推荐设计自定义函数实现任务,更推荐用多文件组织完成。

(6)在前面工作的基础拟出新的需求,将程序用一个“菜单”组织起来(如图所示),做成一个“学生成绩管理系统”之类的应用程序。

[参考解答]

【项目2-玩转日期和时间】

定义一个表示时间(包括年、月、日、时、分、秒)的结构体,然后完成下面的功能。

提示:将各个功能分别设计成函数实现,在main函数中调用,进行测试。可以设计一个函数,即刻进行测试,以降低复杂度。

要实现的功能是:

(1)输入一个时间(注意各部分数据的取值范围)将输入的时间保存在一个结构体变量中;

(2)输出该日在本年中是第几天(注意闰年问题);

(3)输出这是这一天中的第几秒;

(4)输出这是这一年中的第几秒;(不要认为这个数荒唐,在计算中需要取随机数时需要一个不会重复的“种子数”,这个秒数是常用的。)

(5)求你输入的时间d天后是哪年哪月哪日,将结果保存在一个结构体变量中输出。

[参考解答]

【项目3-区号查询】

在文件PostCode.txt中,提供了全国各省城市的长途区号和邮政编码。请以这个文件为数据来源设计程序,输入城市名,输出该城市的相关的信息。

[参考解答]

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。