第四周《C语言及程序设计》实践项目14 开发一个电子词典
来源:互联网 发布:钉钉软件怎么样 编辑:程序博客网 时间:2024/06/05 09:10
【项目1-学生成绩统计】
/* * Copyright (c) 2016, CSDN学院 * All rights reserved. * 文件名称:【项目1-学生成绩统计】 .cpp * 作 者:张易安 * 完成日期:2016年 9 月 18 日 * 版 本 号:v1.0 * * 问题描述:每位同学的信息学号、姓名、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;float sum=0;struct Student stu[N];printf("请输入学号,姓名,C,高数,英语成绩:\n");for(i=0;i<N;i++){scanf("%s %s %d %d %d",&stu[i].num,&stu[i].name,&stu[i].c,&stu[i].math,&stu[i].english);stu[i].grade = stu[i].c+stu[i].english+stu[i].math;stu[i].average = stu[i].grade / 3.0;}printf("学号\t姓名\t总分\t均分\n");for(i=0;i<N;i++){printf("%s\t %s\t %d\t %lf\n",stu[i].num,stu[i].name,stu[i].grade,stu[i].average);sum += stu[i].average;}printf("所有同学均分的均值是:%lf",sum/N);return 0;}
运行结果
(2)
/* * Copyright (c) 2016, CSDN学院 * All rights reserved. * 文件名称:【项目1-学生成绩统计】 .cpp * 作 者:张易安 * 完成日期:2016年 9 月 18 日 * 版 本 号:v1.0 * * 问题描述:使用相同的结构体类型,在main函数中已经对结构体数组进行了初始化,请完成相关函数的定义,实现main函数中要求的功能。 */#include <stdio.h>#include<string.h>struct Student{ char num[13]; char name[10]; int c; int math; int english; int grade; double average;};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[]= { {"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;}//近段时间自己编程的学习方向有点问题,就是以完成任务为目的,而不是掌握知识为目的了,导致自己一直都不能很好的解决编程问题,只是照搬参考答案,也没有什么乐趣,知识感觉也没有学到多少//改变:以掌握知识为根本目的,参考答案只能算作辅助工具,是否学习到了东西是学习一段时间后的衡量标准 void calculate(struct Student s[],int n){int i;for(i=0;i<n;i++){s[i].grade+=s[i].c+s[i].math+s[i].english;s[i].average = s[i].grade / 3.0;}return;}void sort1(struct Student s[],int n){int i,j,temp;for(i=0;j<n-2;j++){ for(j=0;i<n-1-i;i++) { if(s[i].grade<s[i+1].grade) { temp = s[i].grade; s[i].grade = s[i+1].grade; s[i+1].grade = temp; } } } return ;}void sort2(struct Student s[],int n){int i,j,temp;for(i=0;j<n-2;j++){ for(j=0;i<n-1-i;i++) { if(strcmp(s[i].num,s[i+1].num)>0) { temp = s[i].grade; s[i].grade = s[i+1].grade; s[i+1].grade = temp; } } } return ;}void output(struct Student s[],int n){int i;for(i=0;i<n;i++){printf("%s %s %d %d %d %d %.2lf\n",s[i].num,s[i].name,s[i].c,s[i].math,s[i].english,s[i].grade,s[i].average);//看起来是有点不美观 }printf("\n");return ; } void outputExcellent(struct Student s[],int n){int i;for(i=0;i<n;i++)if(s[i].grade>285&&s[i].c>=90&&s[i].math>=90&&s[i].english) { printf("%s, %s, ", s[i].num, s[i].name); printf("%d, %d, %d, ", s[i].c, s[i].math, s[i].english); printf("%d %.1f\n", s[i].grade, s[i].average);}printf("\n");return;}运行结果
啊啊啊,好多啊,先留着吧。。。
0 1
- 第四周《C语言及程序设计》实践项目14 开发一个电子词典
- C语言及程序设计进阶例程-14 开发一个电子词典
- 第四周《C语言及程序设计》实践项目2 模块化程序设计及C语言中的函数
- 第四周《C语言及程序设计》实践项目39 问题求解——求素数
- 第四周《C语言及程序设计》实践项目40 问题求解方法——穷举
- 第四周《C语言及程序设计》实践项目43 从文本文件中读入数据
- 第四周《C语言及程序设计》实践项目7 返回指针的函数
- 第四周《C语言及程序设计》实践项目16 数组的引入
- 第四周《C语言及程序设计》实践项目22 用指针法访问数组元素
- 第四周《C语言及程序设计》实践项目20 经典:查找的艺术
- 第四周《C语言及程序设计》实践项目26 实现线性表基本操作的函数
- 第四周《C语言及程序设计》实践项目32 二维数组及其定义
- 第四周《C语言及程序设计》实践项目37 操作字符串数组
- 第四周《C语言及程序设计》实践项目5 认识递归
- 第四周《C语言及程序设计》实践项目11 体验结构体
- 《C语言及程序设计》实践参考——电子词典
- 第四周《C语言及程序设计》实践项目39 动态存储管理与动态数组的实现
- 《C语言及程序设计》第22讲实践项目
- XUtils===XUtils3框架的基本使用方法(二)
- C++ MD5加密实现
- C#获取web上传音频文件怎么得到文件时间长度
- Linux的文件系统和文件类型
- 彻底明白如何设置minSdkVersion和targetSdkVersion
- 第四周《C语言及程序设计》实践项目14 开发一个电子词典
- Grafana+InfluxDB+Collectd搭建企业级监控方案一
- HTTP请求/响应报文结构
- u-boot 1.1.6版本学习笔记——Start.s分析
- 安装Ambari和部署HDP报错总结
- pt-show-grant使用
- 用java实现HTTPS工作原理的例子
- Opencv2.4.8在 VS2010平台上安装配置图解
- SparkSQL读取Hive中的数据