当前位置:   article > 正文

定义一个学生信息结构体,包含姓名,学号,语文成绩、数学成绩,和英语成绩,定义结构体数组存放不同学生的信息,可以在终端录入学生的信息,可以实现对于学生成绩的排序,排序可以按照语文、数学或者英语的任意一个_假设学生的基本信息包括学号、姓名、年龄、性别、英语成绩,试构造结构类型,并定义

假设学生的基本信息包括学号、姓名、年龄、性别、英语成绩,试构造结构类型,并定义

1.代码实现

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4. typedef struct student{
  5. int num;
  6. char gender[32];
  7. char name[64];
  8. int chi;
  9. int mat;
  10. int eng;
  11. int avr;
  12. }S;
  13. void stu_add(S *p);
  14. void stu_delete(S *p);
  15. void stu_search(S *p);
  16. void stu_modify(S *p);
  17. void stu_show(S *p);
  18. void stu_chi(S *p);
  19. void stu_mat(S *p);
  20. void stu_eng(S *p);
  21. void stu_avr(S *p);
  22. int cnt=0;
  23. int main(int argc, const char *argv[])
  24. {
  25. S stu[20];
  26. int key;
  27. while(1){
  28. printf("---------------功能选择---------------\n");
  29. printf("------------1.学生信息录入------------\n");
  30. printf("------------2.学生信息删除------------\n");
  31. printf("------------3.学生信息查询------------\n");
  32. printf("------------4.学生信息修改------------\n");
  33. printf("------------5.学生信息显示------------\n");
  34. printf("---------6.按语文成绩降序排名---------\n");
  35. printf("---------7.按数学成绩降序排名---------\n");
  36. printf("---------8.按英语成绩降序排名---------\n");
  37. printf("---------9.按平均成绩降序排名---------\n");
  38. printf("-------------10.退出系统---------------\n");
  39. printf("---------------选择操作---------------\n");
  40. scanf("%d",&key);
  41. switch(key){
  42. case 1:
  43. stu_add(stu);
  44. break;
  45. case 2:
  46. stu_delete(stu);
  47. break;
  48. case 3:
  49. stu_search(stu);
  50. break;
  51. case 4:
  52. stu_modify(stu);
  53. break;
  54. case 5:
  55. stu_show(stu);
  56. break;
  57. case 6:
  58. stu_chi(stu);
  59. break;
  60. case 7:
  61. stu_mat(stu);
  62. break;
  63. case 8:
  64. stu_eng(stu);
  65. break;
  66. case 9:
  67. stu_eng(stu);
  68. break;
  69. case 10:
  70. printf("---------------------结束---------------------\n");
  71. return -1;
  72. default:
  73. printf("ERROR\n");
  74. }
  75. }
  76. return 0;
  77. }
  78. void stu_add(S *p){
  79. int i,jud;
  80. while(1){
  81. printf("请输入--->学号 性别 姓名 语文成绩 数学成绩 英语成绩\n");
  82. scanf("%d %s %s %d %d %d",&p[cnt].num,p[cnt].gender,p[cnt].name,\
  83. &p[cnt].chi,&p[cnt].mat,&p[cnt].eng);
  84. p[cnt].avr=(p[cnt].chi+p[cnt].mat+p[cnt].eng)/3;
  85. cnt++;
  86. printf("是否继续添加 \"1\"是 \"0\"否\n");
  87. scanf("%d",&jud);
  88. if(jud==0)
  89. break;
  90. }
  91. }
  92. void stu_delete(S *p){
  93. int num=0;
  94. printf("输入被删除学生学号:");
  95. scanf("%d",&num);
  96. int i=0,j=0;
  97. S t1;
  98. for(i=0;i<cnt;i++){
  99. if(p[i].num==num){
  100. for(j=i;j<cnt;j++){
  101. t1=p[j];
  102. p[j]=p[j+1];
  103. p[j+1]=t1;
  104. }
  105. cnt--;
  106. }
  107. }
  108. }
  109. void stu_search(S *p){
  110. int num;
  111. printf("输入该学生学号:");
  112. scanf("%d",&num);
  113. int i;
  114. for(i=0;i<cnt;i++){
  115. if(p[i].num==num){
  116. printf("学号:%-7d 性别:%-7s 姓名:%-7s 语文成绩:%-7d 数学成绩:%-7d 英语成绩:%-7d 平均成绩:%-7d\n",p[i].num,p[i].gender,p[i].name,p[i].chi,p[i].mat,p[i].eng,p[i].avr);
  117. }
  118. }
  119. }
  120. void stu_modify(S *p){
  121. int num;
  122. printf("输入该学生学号:");
  123. scanf("%d",&num);
  124. int i;
  125. for(i=0;i<cnt;i++){
  126. if(p[i].num==num){
  127. printf("请输入--->学号 性别 姓名 语文成绩 数学成绩 英语成绩\n");
  128. scanf("%d %s %s %d %d %d",&p[i].num,p[i].gender,p[i].name,\
  129. &p[i].chi,&p[i].mat,&p[i].eng);
  130. printf("该学生信息已被修改为:\n");
  131. printf("学号:%-7d 性别:%-7s 姓名:%-7s 语文成绩:%-7d 数学成绩:%-7d 英语成绩:%-7d 平均成绩:%-7d\n",p[i].num,p[i].gender,p[i].name,p[i].chi,p[i].mat,p[i].eng,p[i].avr);
  132. break;
  133. }
  134. }
  135. }
  136. void stu_show(S *p){
  137. int i;
  138. for(i=0;i<cnt;i++){
  139. printf("--------------------录入显示---------------------\n");
  140. printf("学号:%-7d 性别:%-7s 姓名:%-7s 语文成绩:%-7d 数学成绩:%-7d 英语成绩:%-7d 平均成绩:%-7d\n",p[i].num,p[i].gender,p[i].name,p[i].chi,p[i].mat,p[i].eng,p[i].avr);
  141. }
  142. }
  143. void stu_chi(S *p){
  144. int i,j;
  145. S t;
  146. for(i=0;i<cnt-1;i++){
  147. for(j=0;j<cnt-1-i;j++){
  148. if(p[j].chi<p[j+1].chi){
  149. t=p[j];
  150. p[j]=p[j+1];
  151. p[j+1]=t;
  152. }
  153. }
  154. }
  155. for(i=0;i<cnt;i++){
  156. printf("---------------按语文成绩降序显示---------------\n");
  157. printf("学号:%-7d 性别:%-7s 姓名:%-7s 语文成绩:%-7d 数学成绩:%-7d 英语成绩:%-7d 平均成绩:%-7d\n",p[i].num,p[i].gender,p[i].name,p[i].chi,p[i].mat,p[i].eng,p[i].avr);
  158. }
  159. }
  160. void stu_mat(S *p){
  161. int i,j;
  162. S t;
  163. for(i=0;i<cnt-1;i++){
  164. for(j=0;j<cnt-1-i;j++){
  165. if(p[j].mat<p[j+1].mat){
  166. t=p[j];
  167. p[j]=p[j+1];
  168. p[j+1]=t;
  169. }
  170. }
  171. }
  172. for(i=0;i<cnt;i++){
  173. printf("---------------按数学成绩降序显示---------------\n");
  174. printf("学号:%-7d 性别:%-7s 姓名:%-7s 语文成绩:%-7d 数学成绩:%-7d 英语成绩:%-7d 平均成绩:%-7d\n",p[i].num,p[i].gender,p[i].name,p[i].chi,p[i].mat,p[i].eng,p[i].avr);
  175. }
  176. }
  177. void stu_eng(S *p){
  178. int i,j;
  179. S t;
  180. for(i=0;i<cnt-1;i++){
  181. for(j=0;j<cnt-1-i;j++){
  182. if(p[j].eng<p[j+1].eng){
  183. t=p[j];
  184. p[j]=p[j+1];
  185. p[j+1]=t;
  186. }
  187. }
  188. }
  189. for(i=0;i<cnt;i++){
  190. printf("---------------按英语成绩降序显示---------------\n");
  191. printf("学号:%-7d 性别:%-7s 姓名:%-7s 语文成绩:%-7d 数学成绩:%-7d 英语成绩:%-7d 平均成绩:%-7d\n",p[i].num,p[i].gender,p[i].name,p[i].chi,p[i].mat,p[i].eng,p[i].avr);
  192. }
  193. }
  194. void stu_avr(S *p){
  195. int i,j;
  196. S t;
  197. for(i=0;i<cnt-1;i++){
  198. for(j=0;j<cnt-1-i;j++){
  199. if(p[j].avr<p[j+1].avr){
  200. t=p[j];
  201. p[j]=p[j+1];
  202. p[j+1]=t;
  203. }
  204. }
  205. }
  206. for(i=0;i<cnt;i++){
  207. printf("---------------按平均成绩降序显示---------------\n");
  208. printf("学号:%-7d 性别:%-7s 姓名:%-7s 语文成绩:%-7d 数学成绩:%-7d 英语成绩:%-7d 平均成绩:%-7d\n",p[i].num,p[i].gender,p[i].name,p[i].chi,p[i].mat,p[i].eng,p[i].avr);
  209. }
  210. }

2.运行结果

ubuntu@ubuntu:day1$ gcc hw.c
ubuntu@ubuntu:day1$ ./a.out 
---------------功能选择---------------
------------1.学生信息录入------------
------------2.学生信息删除------------
------------3.学生信息查询------------
------------4.学生信息修改------------
------------5.学生信息显示------------
---------6.按语文成绩降序排名---------
---------7.按数学成绩降序排名---------
---------8.按英语成绩降序排名---------
---------9.按平均成绩降序排名---------
-------------10.退出系统---------------
---------------选择操作---------------
1
请输入--->学号 性别 姓名 语文成绩 数学成绩 英语成绩
1 male hcf 115 90 115
是否继续添加 "1"是 "0"否
1
请输入--->学号 性别 姓名 语文成绩 数学成绩 英语成绩
2 male syh 110 100 130
是否继续添加 "1"是 "0"否
1
请输入--->学号 性别 姓名 语文成绩 数学成绩 英语成绩
3 male lc 110 95 110
是否继续添加 "1"是 "0"否
1
请输入--->学号 性别 姓名 语文成绩 数学成绩 英语成绩
4 male czy 90 90 90
是否继续添加 "1"是 "0"否
1
请输入--->学号 性别 姓名 语文成绩 数学成绩 英语成绩
5 female yj 120 110 130
是否继续添加 "1"是 "0"否
0
---------------功能选择---------------
------------1.学生信息录入------------
------------2.学生信息删除------------
------------3.学生信息查询------------
------------4.学生信息修改------------
------------5.学生信息显示------------
---------6.按语文成绩降序排名---------
---------7.按数学成绩降序排名---------
---------8.按英语成绩降序排名---------
---------9.按平均成绩降序排名---------
-------------10.退出系统---------------
---------------选择操作---------------
5
--------------------录入显示---------------------
学号:1       性别:male    姓名:hcf     语文成绩:115         数学成绩:90      英语成绩:115     平均成绩:106    
--------------------录入显示---------------------
学号:2       性别:male    姓名:syh     语文成绩:110         数学成绩:100     英语成绩:130     平均成绩:113    
--------------------录入显示---------------------
学号:3       性别:male    姓名:lc      语文成绩:110         数学成绩:95      英语成绩:110     平均成绩:105    
--------------------录入显示---------------------
学号:4       性别:male    姓名:czy     语文成绩:90          数学成绩:90      英语成绩:90      平均成绩:90     
--------------------录入显示---------------------
学号:5       性别:female  姓名:yj      语文成绩:120         数学成绩:110     英语成绩:130     平均成绩:120    
---------------功能选择---------------
------------1.学生信息录入------------
------------2.学生信息删除------------
------------3.学生信息查询------------
------------4.学生信息修改------------
------------5.学生信息显示------------
---------6.按语文成绩降序排名---------
---------7.按数学成绩降序排名---------
---------8.按英语成绩降序排名---------
---------9.按平均成绩降序排名---------
-------------10.退出系统---------------
---------------选择操作---------------
4
输入该学生学号:3
请输入--->学号 性别 姓名 语文成绩 数学成绩 英语成绩
3 male lc 115 100 110
该学生信息已被修改为:
学号:3       性别:male    姓名:lc      语文成绩:115      数学成绩:100      英语成绩:110     平均成绩:105    
---------------功能选择---------------
------------1.学生信息录入------------
------------2.学生信息删除------------
------------3.学生信息查询------------
------------4.学生信息修改------------
------------5.学生信息显示------------
---------6.按语文成绩降序排名---------
---------7.按数学成绩降序排名---------
---------8.按英语成绩降序排名---------
---------9.按平均成绩降序排名---------
-------------10.退出系统---------------
---------------选择操作---------------
3
输入该学生学号:3
学号:3       性别:male    姓名:lc      语文成绩:115      数学成绩:100     英语成绩:110     平均成绩:105    
---------------功能选择---------------
------------1.学生信息录入------------
------------2.学生信息删除------------
------------3.学生信息查询------------
------------4.学生信息修改------------
------------5.学生信息显示------------
---------6.按语文成绩降序排名---------
---------7.按数学成绩降序排名---------
---------8.按英语成绩降序排名---------
---------9.按平均成绩降序排名---------
-------------10.退出系统---------------
---------------选择操作---------------
5
--------------------录入显示---------------------
学号:1       性别:male    姓名:hcf     语文成绩:115         数学成绩:90      英语成绩:115     平均成绩:106    
--------------------录入显示---------------------
学号:2       性别:male    姓名:syh     语文成绩:110         数学成绩:100     英语成绩:130     平均成绩:113    
--------------------录入显示---------------------
学号:3       性别:male    姓名:lc      语文成绩:115         数学成绩:100     英语成绩:110     平均成绩:105    
--------------------录入显示---------------------
学号:4       性别:male    姓名:czy     语文成绩:90          数学成绩:90      英语成绩:90      平均成绩:90     
--------------------录入显示---------------------
学号:5       性别:female  姓名:yj      语文成绩:120         数学成绩:110     英语成绩:130     平均成绩:120    
---------------功能选择---------------
------------1.学生信息录入------------
------------2.学生信息删除------------
------------3.学生信息查询------------
------------4.学生信息修改------------
------------5.学生信息显示------------
---------6.按语文成绩降序排名---------
---------7.按数学成绩降序排名---------
---------8.按英语成绩降序排名---------
---------9.按平均成绩降序排名---------
-------------10.退出系统---------------
---------------选择操作---------------
6
---------------按语文成绩降序显示---------------
学号:5       性别:female  姓名:yj      语文成绩:120      数学成绩:110     英语成绩:130     平均成绩:120    
---------------按语文成绩降序显示---------------
学号:1       性别:male    姓名:hcf     语文成绩:115      数学成绩:90      英语成绩:115     平均成绩:106    
---------------按语文成绩降序显示---------------
学号:3       性别:male    姓名:lc      语文成绩:115      数学成绩:100     英语成绩:110     平均成绩:105    
---------------按语文成绩降序显示---------------
学号:2       性别:male    姓名:syh     语文成绩:110      数学成绩:100     英语成绩:130     平均成绩:113    
---------------按语文成绩降序显示---------------
学号:4       性别:male    姓名:czy     语文成绩:90       数学成绩:90      英语成绩:90      平均成绩:90     
---------------功能选择---------------
------------1.学生信息录入------------
------------2.学生信息删除------------
------------3.学生信息查询------------
------------4.学生信息修改------------
------------5.学生信息显示------------
---------6.按语文成绩降序排名---------
---------7.按数学成绩降序排名---------
---------8.按英语成绩降序排名---------
---------9.按平均成绩降序排名---------
-------------10.退出系统---------------
---------------选择操作---------------
7
---------------按数学成绩降序显示---------------
学号:5       性别:female  姓名:yj      语文成绩:120      数学成绩:110     英语成绩:130     平均成绩:120    
---------------按数学成绩降序显示---------------
学号:3       性别:male    姓名:lc      语文成绩:115      数学成绩:100     英语成绩:110     平均成绩:105    
---------------按数学成绩降序显示---------------
学号:2       性别:male    姓名:syh     语文成绩:110      数学成绩:100     英语成绩:130     平均成绩:113    
---------------按数学成绩降序显示---------------
学号:1       性别:male    姓名:hcf     语文成绩:115      数学成绩:90      英语成绩:115     平均成绩:106    
---------------按数学成绩降序显示---------------
学号:4       性别:male    姓名:czy     语文成绩:90       数学成绩:90      英语成绩:90      平均成绩:90     
---------------功能选择---------------
------------1.学生信息录入------------
------------2.学生信息删除------------
------------3.学生信息查询------------
------------4.学生信息修改------------
------------5.学生信息显示------------
---------6.按语文成绩降序排名---------
---------7.按数学成绩降序排名---------
---------8.按英语成绩降序排名---------
---------9.按平均成绩降序排名---------
-------------10.退出系统---------------
---------------选择操作---------------
8
---------------按英语成绩降序显示---------------
学号:5       性别:female  姓名:yj      语文成绩:120      数学成绩:110     英语成绩:130     平均成绩:120    
---------------按英语成绩降序显示---------------
学号:2       性别:male    姓名:syh     语文成绩:110      数学成绩:100     英语成绩:130     平均成绩:113    
---------------按英语成绩降序显示---------------
学号:1       性别:male    姓名:hcf     语文成绩:115      数学成绩:90      英语成绩:115     平均成绩:106    
---------------按英语成绩降序显示---------------
学号:3       性别:male    姓名:lc      语文成绩:115      数学成绩:100     英语成绩:110     平均成绩:105    
---------------按英语成绩降序显示---------------
学号:4       性别:male    姓名:czy     语文成绩:90       数学成绩:90      英语成绩:90      平均成绩:90     
---------------功能选择---------------
------------1.学生信息录入------------
------------2.学生信息删除------------
------------3.学生信息查询------------
------------4.学生信息修改------------
------------5.学生信息显示------------
---------6.按语文成绩降序排名---------
---------7.按数学成绩降序排名---------
---------8.按英语成绩降序排名---------
---------9.按平均成绩降序排名---------
-------------10.退出系统---------------
---------------选择操作---------------
9
---------------按英语成绩降序显示---------------
学号:5       性别:female  姓名:yj      语文成绩:120      数学成绩:110     英语成绩:130     平均成绩:120    
---------------按英语成绩降序显示---------------
学号:2       性别:male    姓名:syh     语文成绩:110      数学成绩:100     英语成绩:130     平均成绩:113    
---------------按英语成绩降序显示---------------
学号:1       性别:male    姓名:hcf     语文成绩:115      数学成绩:90      英语成绩:115     平均成绩:106    
---------------按英语成绩降序显示---------------
学号:3       性别:male    姓名:lc      语文成绩:115      数学成绩:100     英语成绩:110     平均成绩:105    
---------------按英语成绩降序显示---------------
学号:4       性别:male    姓名:czy     语文成绩:90       数学成绩:90      英语成绩:90      平均成绩:90     
---------------功能选择---------------
------------1.学生信息录入------------
------------2.学生信息删除------------
------------3.学生信息查询------------
------------4.学生信息修改------------
------------5.学生信息显示------------
---------6.按语文成绩降序排名---------
---------7.按数学成绩降序排名---------
---------8.按英语成绩降序排名---------
---------9.按平均成绩降序排名---------
-------------10.退出系统---------------
---------------选择操作---------------
2
输入被删除学生学号:4
---------------功能选择---------------
------------1.学生信息录入------------
------------2.学生信息删除------------
------------3.学生信息查询------------
------------4.学生信息修改------------
------------5.学生信息显示------------
---------6.按语文成绩降序排名---------
---------7.按数学成绩降序排名---------
---------8.按英语成绩降序排名---------
---------9.按平均成绩降序排名---------
-------------10.退出系统---------------
---------------选择操作---------------
5
--------------------录入显示---------------------
学号:5       性别:female  姓名:yj      语文成绩:120         数学成绩:110     英语成绩:130     平均成绩:120    
--------------------录入显示---------------------
学号:2       性别:male    姓名:syh     语文成绩:110         数学成绩:100     英语成绩:130     平均成绩:113    
--------------------录入显示---------------------
学号:1       性别:male    姓名:hcf     语文成绩:115         数学成绩:90      英语成绩:115     平均成绩:106    
--------------------录入显示---------------------
学号:3       性别:male    姓名:lc      语文成绩:115         数学成绩:100     英语成绩:110     平均成绩:105    
---------------功能选择---------------
------------1.学生信息录入------------
------------2.学生信息删除------------
------------3.学生信息查询------------
------------4.学生信息修改------------
------------5.学生信息显示------------
---------6.按语文成绩降序排名---------
---------7.按数学成绩降序排名---------
---------8.按英语成绩降序排名---------
---------9.按平均成绩降序排名---------
-------------10.退出系统---------------
---------------选择操作---------------
6
---------------按语文成绩降序显示---------------
学号:5       性别:female  姓名:yj      语文成绩:120      数学成绩:110     英语成绩:130     平均成绩:120    
---------------按语文成绩降序显示---------------
学号:1       性别:male    姓名:hcf     语文成绩:115      数学成绩:90      英语成绩:115     平均成绩:106    
---------------按语文成绩降序显示---------------
学号:3       性别:male    姓名:lc      语文成绩:115      数学成绩:100     英语成绩:110     平均成绩:105    
---------------按语文成绩降序显示---------------
学号:2       性别:male    姓名:syh     语文成绩:110      数学成绩:100     英语成绩:130     平均成绩:113    
---------------功能选择---------------
------------1.学生信息录入------------
------------2.学生信息删除------------
------------3.学生信息查询------------
------------4.学生信息修改------------
------------5.学生信息显示------------
---------6.按语文成绩降序排名---------
---------7.按数学成绩降序排名---------
---------8.按英语成绩降序排名---------
---------9.按平均成绩降序排名---------
-------------10.退出系统---------------
---------------选择操作---------------

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/516543
推荐阅读
相关标签
  

闽ICP备14008679号