当前位置:   article > 正文

C语言代码:编写简单的学生管理系统。(数组+结构体实现)_学生管理系统c语言简单版

学生管理系统c语言简单版

实现的功能一共有七个:1.添加学生信息,2.删除学生信息,3.修改学生信息,4.查看单个学生信息,5.学生信息排序,6.遍历学生信息,7.插入学生信息。

首先定义结构体,里面包含三个信息,学生姓名,学号,成绩。

struct Stu{
    char name[20];
    int id;
    float score;    
};

通过枚举依次赋值,quit = 0,后边依次加一,在下边switch语句中使用。
enum Tag{quit,add,del,change,find,rank,print,charu}; 

定义结构体数组,这里设置的添加的学生50人。
struct Stu student[50];

定义全局变量count,用来统计添加了多少学生。
int count;

具体实现代码如下所示:

  1. #include <stdio.h>
  2. #include <string.h>
  3. struct Stu{
  4. char name[20];
  5. int id;
  6. float score;
  7. };
  8. enum Tag{quit,add,del,change,find,rank,print,charu}; //枚举
  9. struct Stu student[50]; //定义结构体数组,分配50
  10. int count; //全局变量,计数用
  11. void menu(); //菜单
  12. void Add(); //1.添加学生信息
  13. void Del(); //2.删除学生信息
  14. void Change(); //3.修改学生信息
  15. void Find(); //4.查看单个学生信息
  16. void Rank(); //5.学生信息排序
  17. void Print(); //6.遍历学生信息
  18. void Charu(); //7.插入学生信息
  19. int main()
  20. {
  21. while(1)
  22. {
  23. int num;
  24. menu();
  25. printf("请输入要执行的操作!\n");
  26. scanf("%d",&num);
  27. switch(num)
  28. {
  29. case add: //1.添加学生信息
  30. Add();
  31. break;
  32. case del: //2.删除学生信息
  33. Del();
  34. break;
  35. case change://3.修改学生信息
  36. Change();
  37. break;
  38. case find: //4.查看单个学生信息
  39. Find();
  40. break;
  41. case rank: //5.学生信息排序
  42. Rank();
  43. break;
  44. case print: //6.遍历学生信息
  45. Print();
  46. break;
  47. case charu: //7.插入学生信息
  48. Charu();
  49. break;
  50. case quit:
  51. return 0;
  52. default:printf("输入有误,请重新输入!\n");
  53. }
  54. }
  55. return 0;
  56. }
  57. //学生管理系统菜单
  58. void menu()
  59. {
  60. printf("*********欢迎来到学生管理系统*********\n");
  61. printf("*********1.添加学生信息*********\n");
  62. printf("*********2.删除学生信息*********\n");
  63. printf("*********3.修改学生信息*********\n");
  64. printf("*********4.查看单个学生信息*********\n");
  65. printf("*********5.学生信息排序*********\n");
  66. printf("*********6.遍历学生信息*********\n");
  67. printf("*********7.插入学生信息*********\n");
  68. printf("*********0.退出学生管理系统*********\n");
  69. }
  70. //1.添加学生信息
  71. void Add()
  72. {
  73. int n,i,m;
  74. loop:
  75. printf("请输入要添加的学号!\n");
  76. scanf("%d",&n);
  77. for(i=0;i<count;i++)
  78. {
  79. if(n == student[i].id)
  80. {
  81. printf("该学号已存在!\n");
  82. return;//无返回值
  83. }
  84. }
  85. student[count].id = n;
  86. printf("请输入要添加的学生姓名!\n");
  87. scanf("%s",student[count].name);
  88. printf("请输入要添加的学生成绩!\n");
  89. scanf("%f",&student[count].score);
  90. count++;
  91. printf("该学生信息添加成功!\n");
  92. printf("是否要继续添加? 是......1,否......2\n");
  93. scanf("%d",&m);
  94. if(m == 1)
  95. {
  96. goto loop;
  97. }
  98. else if(m == 2)
  99. {
  100. return;
  101. }
  102. }
  103. //2.删除学生信息
  104. void Del()
  105. {
  106. int n,p;
  107. int i,j;
  108. printf("请输入要删除学生的学号!\n");
  109. scanf("%d",&n);
  110. printf("请认真考虑是否要删除? 是......1,否......2\n");
  111. scanf("%d",&p);
  112. if(p == 1)
  113. {
  114. for(i=0;i<count;i++)
  115. {
  116. if(n == student[i].id)
  117. {
  118. for(j=i;j<count-1;j++)
  119. {
  120. student[j]=student[j+1];
  121. }
  122. }
  123. }
  124. count--;
  125. printf("删除成功!\n");
  126. }
  127. else if(p == 2)
  128. {
  129. return;
  130. }
  131. }
  132. //3.修改学生信息
  133. void Change()
  134. {
  135. int n,i;
  136. printf("请输入要修改学生的学号!\n");
  137. scanf("%d",&n);
  138. for(i=0;i<count;i++)
  139. {
  140. if(n == student[i].id)
  141. {
  142. printf("请输入要修改学生的姓名!\n");
  143. scanf("%s",student[i].name);
  144. printf("请输入要修改学生的成绩!\n");
  145. scanf("%f",&student[i].score);
  146. }
  147. }
  148. }
  149. //4.查看单个学生信息
  150. void Find()
  151. {
  152. int n,i,num;
  153. char str[20]= {0};
  154. int flag = 0;
  155. printf("**********请选择查询方式!***********\n");
  156. printf("**********1.通过学号***********\n");
  157. printf("**********2.通过姓名***********\n");
  158. printf("*******************************\n");
  159. scanf("%d",&num);
  160. if(num == 1)
  161. {
  162. printf("请输入要查看学生的学号!\n");
  163. scanf("%d",&n);
  164. for(i=0;i<count;i++)
  165. {
  166. if(n == student[i].id)
  167. {
  168. flag = 1;
  169. printf("该学生信息为:\n");
  170. printf("学号\t姓名\t成绩\n");
  171. printf("%d\t%s\t%f\n",student[i].id,student[i].name,student[i].score);
  172. }
  173. }
  174. }
  175. else if(num == 2)
  176. {
  177. printf("请输入要查看学生的姓名!\n");
  178. scanf("%s",str);
  179. for(i=0;i<count;i++)
  180. {
  181. if(0 == strcmp(str,student[i].name))
  182. {
  183. flag = 1;
  184. printf("该学生信息为:\n");
  185. printf("学号\t姓名\t成绩\n");
  186. printf("%d\t%s\t%f\n",student[i].id,student[i].name,student[i].score);
  187. }
  188. }
  189. }
  190. if(flag == 0)
  191. {
  192. printf("查无此人,返回主菜单!\n");
  193. }
  194. }
  195. //5.学生信息排序
  196. void Rank()
  197. {
  198. struct Stu temp;
  199. printf("按成绩由高到低排序为:\n");
  200. for(int i=0;i<count;i++)
  201. {
  202. for(int j=0;j<count-i;j++)
  203. {
  204. if(student[j].score<student[j+1].score)
  205. {
  206. temp=student[j];
  207. student[j]=student[j+1];
  208. student[j+1]=temp;
  209. }
  210. }
  211. }
  212. printf("学号\t姓名\t成绩\n");
  213. for(int i=0;i<count;i++)
  214. { printf("%d\t%s\t%3.f\n",student[i].id,student[i].name,student[i].score);
  215. }
  216. }
  217. //6.遍历学生信息
  218. void Print()
  219. {
  220. printf("共有%d个学生信息\n",count);
  221. printf("学号\t姓名\t成绩\n");
  222. for(int i=0;i<count;i++)
  223. {
  224. printf("%d\t%s\t%f\n",student[i].id,student[i].name,student[i].score);
  225. }
  226. }
  227. //7.插入学生信息
  228. void Charu()
  229. {
  230. int n,i,j;
  231. printf("请输入想要插入的学号后边!\n");
  232. scanf("%d",&n);
  233. for(i=0;i<count;i++)
  234. {
  235. if(n == student[i].id)
  236. {
  237. for(j=count;j>i;j--)
  238. {
  239. student[j]=student[j-1];
  240. }
  241. }
  242. printf("请输入要插入的学生学号!\n");
  243. scanf("%d",&student[i+1].id);
  244. printf("请输入要插入的学生姓名!\n");
  245. scanf("%s",student[i+1].name);
  246. printf("请输入要插入的学生成绩!\n");
  247. scanf("%f",&student[i+1].score);
  248. count++;
  249. printf("该学生信息插入成功!\n");
  250. return;
  251. }
  252. }

运行结果如图所示:

 不足之处多多谅解!

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

闽ICP备14008679号