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

【项目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,单科不低于90
int main()
{struct Student stu[]= {{"201152501104","Tom",65,69 ,68 },{"201152501114","Jeery",94 ,89 ,63 },{"201152501138","Speike",67 ,62 ,84 },{"201152501204","Tyke",100 ,95 ,91 },{"201152501202","Tuffy",59 ,80 ,55 },{"201152501115","Butch",100 ,99 ,89 },{"201152501201","Lightning",95 ,92 ,99 },{"201152501145","Topsy",88 ,56 ,67 },{"201152501203","Droopy",62 ,62 ,95 },{"201152501140","Drupa",80 ,60 ,86 },{"201152501205","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中,提供了全国各省城市的长途区号和邮政编码。请以这个文件为数据来源设计程序,输入城市名,输出该城市的相关的信息。
[参考解答]

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

  1. c语言程序设计实验8,C语言程序设计实验八结构体.doc

    C语言程序设计实验八结构体 C语言程序设计实验八:结构体 请求用户输入若干个学生的基本情况,其中包括每位学生的学号.姓名和两门课(C语言.数学)的成绩.然后用下面的格式输出学生的成绩列表. 格式描述如 ...

  2. C语言 匿名联合体和匿名结构体

    C语言 匿名联合体和匿名结构体 匿名联合体和匿名结构体顾名思义,就是没有名字的联合体和结构体,没有名字哪怎么用?拿来用? 在嵌入式数据通信里面,大部分都是使用联合体,将有实际意义的结构体和字节数组互相 ...

  3. C语言中函数如何返回结构体?

    //#include "stdafx.h"//If the vc++6.0, with this line. #include "stdio.h" #inclu ...

  4. C语言学生信息管理系统(结构体数组,文件)

    C语言学生信息管理系统(结构体数组,文件) 这是初学时写的一个程序,比较菜,不喜勿喷.在一个结构体里定义结构体内所有的信息(如果信息也需要分类则可以再定义一个结构体并在当前结构体内声明,我的这个代码在 ...

  5. Nwafu-Oj-1444 Problem l C语言实习题七——2.结构体数组的定义与引用

    问题 : C语言实习题七--2.结构体数组的定义与引用 时间限制: 1 Sec  内存限制: 128 MB 提交: 4459  解决: 2011 [提交][状态][讨论版] 题目描述 定义一个职工结构 ...

  6. c语言用数组直接填充结构体,C语言第11题:结构体数组的定义与使用 + 结构体数组排序...

    C语言第11题:结构体数组的定义与使用 + 结构体数组排序 C语言第11题:结构体数组的定义与使用 + 结构体数组排序 注意: 一下赋值是不能使用的 但是在结构体中是可以直接进行赋值操作的 st[1] ...

  7. C语言程序设计 数组,结构体和指针练习题

    涉及知识点:数组,结构体和指针 分析以下程序的运行结果: #include "stdio.h" struct  sp {     int a;     int *b; } *p ; ...

  8. 头歌c语言实训项目-结构体

    (创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 第1关:结构体变量的初始化和引用: 题目: 代码思路: 代码表示: 第2关:结构体排序 题目: 代码思 ...

  9. 遍历结构体_三菱ST语言编程(3)——结构体变量

    上篇文章介绍了数组,是一组相同类型数据的列表,那么不同类型的数据能否组合到一起用一个标签表示呢?答案当然是可以的,而实现这个功能的就是结构体(struct). 建立结构体 在三菱结构化编程的界面中左侧 ...

最新文章

  1. 走进JavaScript响应式编程(Reactive Programming)
  2. Flutter开发之ListView下拉刷新上拉加载更多(35)
  3. oracle 修改表
  4. 3 地理位置定位_IP地理定位API的十大用途和应用
  5. 3月任务--target
  6. [20151112]ORA-01450?3215?.txt
  7. 【IDEA】Cause: invalid type code: 8D
  8. JFinal上传文件时用getFile()方法报错
  9. 边工作边刷题:70天一遍leetcode: day 56-1
  10. linux网络子系统分析(三)—— 设备无关层
  11. Python_day01-----day07
  12. java线程不sleep_在Java多线程中sleep()和wait()方法,下列说法不正确的是()
  13. 3226. 【HBOI2013】ALO
  14. CGAL 基础知识(学习笔记)
  15. 《iOS移动开发从入门到精通》图书连载7:iOS模拟器的使用
  16. dbms支持哪几种数据模型_DBMS数据库模型
  17. 自平衡二叉树实现及时间复杂度分析
  18. 高压FOC电机驱动方案,精准控制实现超静音
  19. 递归:以俄罗斯跳棋为例
  20. Excel快速选中所有空白行并删除

热门文章

  1. sqlmap 连接mysql_sqlmap从入门到精通-第三章-4-4-使用sqlmap直连MSSQL获取webshell或权限...
  2. linux记录用户命令的日志是,用日志记录Linux用户执行的每一条命令
  3. 计算机背景象怎样改变,我的页面背景总是黑色,以前改变过现在好象改变不了?我该怎么改变呢? 爱问知识人...
  4. 测试信标灯的随机特性
  5. 节能无线信标Ver0:功率测试
  6. 2020人工神经网络第一次作业-参考答案第五部分
  7. java实习生入职_Java实习生入职测试
  8. vue list添加元素_Vue简单入门及组件的简单使用
  9. java 国际化 properties_java处理国际化和读取properties文件代码片段
  10. TCL中关于Pins的一些使用方法?