#include <stdio.h>
#include <stdlib.h>
#define N 30
/**
为 struct students定义了一个新的名字 STU
与 typedef struct students STU 等价
**/
typedef struct students
{long id;char name[10];float score;
}STU;void addscore(STU stu[],int n);
void showscore(STU stu[],int n);
void lowTOhigh(STU stu[],int n);
void highTOlow(STU stu[],int n);
int showlist(void);
int main()
{char choose;int n;STU stu[N];printf("你想输入多少名同学的信息:");scanf("%d",&n);while(1){choose=showlist();switch(choose){case 1:addscore(stu,n);break;case 2:showscore(stu,n);break;case 3:highTOlow(stu,n);showscore(stu,n);break;case 4:lowTOhigh(stu,n);showscore(stu,n);break;default:printf("Input error!\n");}
}return 0;
}void addscore(STU stu[],int n){int i;printf("***请输入学生的学号、姓名和成绩:\n(注意输入一项数据按一下回车键)\n");for(i=0;i<n;i++){scanf("%ld",&stu[i].id);scanf("%s",stu[i].name);scanf("%f",&stu[i].score);}
}
int showlist(void){int choose;printf("1.增加学生信息\n");printf("2.显示所有学生信息\n");printf("3.成绩由高到低排序\n");printf("4.成绩由低到高排序\n");printf("\n请选择:");scanf("%d",&choose);return choose;
}void showscore(STU stu[],int n){int i;for(i=0;i<n;i++){printf("%ld%5s%6.1f\n",stu[i].id,stu[i].name,stu[i].score);}
}void highTOlow(STU stu[],int n){int i,j,k;float temp1,temp2;for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++){if(stu[j].score>stu[k].score) k=j;}if(k!=i){temp1=stu[k].score;stu[k].score=stu[i].score;stu[i].score=temp1;temp2=stu[k].id;stu[k].id=stu[i].id;stu[i].id=temp2;}}
}void lowTOhigh(STU stu[],int n){int i,j,k;float temp1,temp2;for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++){if(stu[j].score<stu[k].score) k=j;}if(k!=i){temp1=stu[k].score;stu[k].score=stu[i].score;stu[i].score=temp1;temp2=stu[k].id;stu[k].id=stu[i].id;stu[i].id=temp2;}}
}

用C语言中的结构体实现简单的学生成绩管理系统相关推荐

  1. c语言结构体编辑学生成绩管理,【C语言】结构体的应用以及学生成绩管理系统的设计...

    一.结构体 数组中的各元素是属于同一个类型的.有时需要将不同类型的数据组合成一个整体,以便于引用.如,一个学生的学号.姓名.性别.年龄.成绩.家庭地址等项.这些项都与某一学生相联系.如果分别定义为互相 ...

  2. C语言不使用结构体实现链表,不用指针链表和结构体数组怎么编学生成绩管理系统啊...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include struct stu { int num;//学号 char name[10];//姓名 float cj[3];// ...

  3. c语言成绩管理系统不用结构体,不用指针链表和结构体数组怎么编学生成绩管理系统啊...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include struct stu { int num;//学号 char name[10];//姓名 float cj[3];// ...

  4. C语言中的结构体,结构体中数组初始化与赋值

    最近写c语言中的结构体遇到了些问题,从网上找了些资料如下: 结构体是连续存储的,但由于结构体中成员类型各异,所以会存在内存对齐问题,也就是内存里面会有空档,具体的对齐方式这里 暂不讨论: 1.结构体的 ...

  5. Linux结构体变量报错,C语言中的结构体

    用户自己建立自己的结构体类型 1.  定义和使用结构体变量 (1).结构体的定义 C语言允许用户自己建立由不同类型数据组成的组合型的数据结构,它称为结构体. (2).声明一个结构体类型的一般形式为: ...

  6. c语言中定义结构体指针的作用,C语言结构体定义,使用及指针(1)

    前言 C语言中的结构体作为一大难点,并且对于需要学习数据结构的同学来说,这个结构是每次上课都会遇到的,所以,我们只有更深层次的理解结构体的知识,才能更好的掌握数据结构 结构体用处 结构体到底有什么用? ...

  7. C语言中对结构体排序

    在C语言中对结构体排序 用qsort()函数进行排序, qsort()里面要传入4个参数–qsort(数组名,数组长度,sizeof(),排序方法) 实验9-5 查找书籍 (20分) 给定n本书的名称 ...

  8. C语言中的结构体定义和使用例子

    C语言中的结构体定义和使用例子 一.结构体定义的三种方式 结构体类型变量的定义与其它类型的变量的定义是一样的,但由于结构体类型需要针对 问题事先自行定义,所以结构体类型变量的定义形式就增加了灵活性,共 ...

  9. 关于C语言中的结构体所占的字节数 sizeof(struct)

    C语言中的结构体所占的字节数 ,用sizeof求一个结构体的大小 C语言中用sizeof求结构体所占字节数的详细方法. 一.非嵌套结构体 struct one{char a; // 1(char所占字 ...

最新文章

  1. 【OpenCV】使用过的函数汇总
  2. 如何选择合适的NoSQL数据库
  3. java HashMap 极限容量 大小限制 占用内存大小
  4. day21.模块和包
  5. windows 编程 —— 消息与参数(定时器、初始化消息、改变大小)
  6. php server 连接字符串,sqlServer 数据库常用连接字符串
  7. 客所思S10外置USB独立声卡调试教程:K歌、聊天、变声、喊麦、电音等效果
  8. wmic java_wmic 命令用法及实例
  9. 几种常见的十进制代码(笔记)
  10. 2016年腾讯实习生校园招聘-电面
  11. hdu 4747 Pet
  12. 【转】slideUp() 和slideDown() 如何解决反复抖动的问题
  13. 美团店铺评价语言处理以及文本分类(logistic regression)
  14. Leetcode04--给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的中位数。
  15. python爬虫大作业任务书_爬虫大作业
  16. STM32下载程序至SRAM——基于正点原子精英STM32F103ZET6开发板
  17. LabVIEW图形化TensoRT工具包的安装下载分享
  18. 如何理解DevOps
  19. FusionCharts的使用方法(超详细)
  20. unity3d音频基础知识

热门文章

  1. Linux下SD卡开发笔记(一)-SD 相关基础概念
  2. Powerpoint自动插入页码
  3. Cantor 表 {C语言解法}
  4. ijkplayer源码---倍速
  5. UML常用的基本图形简介
  6. 2021年安全生产模拟考试(建筑起重机司机-物料提升机模拟考试题库)安考星
  7. Mac同济大学毕业论文Latex模板环境配置
  8. java计算方法所耗费的时间
  9. 【FPGA_001】用Verilog写一个数组,会耗费很多资源
  10. 华为新贵!方舟编译器的荣光和使命