当前位置:   article > 正文

学生成绩管理系统_csnd社区学生成绩管理系统

csnd社区学生成绩管理系统

一、运行环境

      Xcode Version 14.2 (14C18)

二、系统功能

1)学生成绩查找功能

2)学生成绩插入功能

3)学生成绩排序功能

4)学生成绩展示功能

5)学生成绩删除功能

6)退出系统

三、功能展示截图

1)学生成绩查找功能

2)学生成绩插入功能

3)学生成绩排序功能

4)学生成绩展示功能

5)学生成绩删除功能

6)退出系统

四、源代码

  1. #include<iostream>
  2. #include<stdio.h>
  3. #include<stdlib.h>
  4. #include<string.h>
  5. using namespace std;
  6. typedef struct PNode*LinkList;
  7. typedef struct PNode{
  8. int stdio;
  9. char name[30];
  10. double chinese;
  11. double math;
  12. double english;
  13. double politics;
  14. double sum;
  15. PNode *next;
  16. }PNode;
  17. void input(LinkList llist){
  18. printf("请输入考试的学生人数:\n");
  19. int n;scanf("%d",&n);
  20. LinkList p;
  21. for(int i=1;i<=n;i++){
  22. p=(LinkList)malloc(sizeof(PNode));
  23. printf("请输入学生学号:\n");
  24. scanf("%d",&p->stdio);
  25. printf("请输入学生姓名:\n");
  26. scanf("%s",p->name);
  27. printf("请输入学生语文成绩:\n");
  28. scanf("%lf",&p->chinese);
  29. printf("请输入学生数学成绩:\n");
  30. scanf("%lf",&p->math);
  31. printf("请输入学生英语成绩:\n");
  32. scanf("%lf",&p->english);
  33. printf("请输入学生政治成绩:\n");
  34. scanf("%lf",&p->politics);
  35. p->sum=p->chinese+p->math+p->english+p->politics;
  36. p->next=llist->next;
  37. llist->next=p;
  38. }
  39. printf("\n-----------------------—学生成绩完成录入-----------------------\n");
  40. }
  41. void check(LinkList llist){
  42. LinkList e=llist->next;
  43. int f;
  44. printf("请输入查找的学号:\n");
  45. scanf("%d",&f);
  46. while(e->stdio!=f)
  47. e=e->next;
  48. if(e->stdio==f)
  49. printf("%d\t %s%12lf %6lf %6lf %6lf %6lf\n",e->stdio,e->name,e->chinese,e->math,e->english,e->politics,e->sum);
  50. else
  51. printf("查找值不存在!\n");
  52. }
  53. void display(LinkList llist){
  54. printf("\n-----------------------—学生成绩信息展示-----------------------\n");
  55. printf("学号\t姓名\t 语文\t 数学\t 英语\t 政治 总分\n");
  56. LinkList p=llist->next;
  57. if(llist->next==NULL){
  58. printf("系统中无学生信息!\n");
  59. }
  60. else{
  61. while(p!=NULL){
  62. printf(" %d\t %s%12lf %6lf %6lf %6lf %6lf\n",p->stdio,p->name,p->chinese,p->math,p->english,p->politics,p->sum);
  63. p=p->next;}
  64. }
  65. printf("\n-----------------------—学生成绩完成展示-----------------------\n");
  66. }
  67. void sortList(LinkList llist){
  68. printf("请输入排序的依据:\n");
  69. printf("1.数学 2.语文 3.英语 4.政治 5.总分\n");
  70. int a;
  71. scanf("%d",&a);
  72. switch(a){
  73. case 1:
  74. printf("按照数学排序已完成\n");
  75. if(llist->next==NULL){
  76. printf("学生成绩无数据!");
  77. } else if(llist->next->next==NULL){
  78. printf("学生成绩为一个,无需排序!");
  79. }else{
  80. LinkList p=llist->next->next;
  81. llist->next->next=NULL;
  82. LinkList q,r;
  83. while(p!=NULL){
  84. q=llist;
  85. r=p->next;
  86. while(q->next!=NULL&&q->next->math<p->math){
  87. q=q->next;
  88. }
  89. p->next=q->next;
  90. q->next=p;
  91. p=r;
  92. }
  93. }
  94. break;
  95. case 2:
  96. printf("按照语文排序已完成\n");
  97. if(llist->next==NULL){
  98. printf("学生成绩无数据!");
  99. } else if(llist->next->next==NULL){
  100. printf("学生成绩为一个,无需排序!");
  101. }else{
  102. LinkList p=llist->next->next;
  103. llist->next->next=NULL;
  104. LinkList q,r;
  105. while(p!=NULL){
  106. q=llist;
  107. r=p->next;
  108. while(q->next!=NULL&&q->next->chinese<p->chinese){
  109. q=q->next;
  110. }
  111. p->next=q->next;
  112. q->next=p;
  113. p=r;
  114. }
  115. }
  116. break;
  117. case 3:
  118. printf("按照英语排序已完成\n");
  119. if(llist->next==NULL){
  120. printf("学生成绩无数据!");
  121. } else if(llist->next->next==NULL){
  122. printf("学生成绩为一个,无需排序!");
  123. }else{
  124. LinkList p=llist->next->next;
  125. llist->next->next=NULL;
  126. LinkList q,r;
  127. while(p!=NULL){
  128. q=llist;
  129. r=p->next;
  130. while(q->next!=NULL&&q->next->english<p->english){
  131. q=q->next;
  132. }
  133. p->next=q->next;
  134. q->next=p;
  135. p=r;
  136. }
  137. }
  138. break;
  139. case 4:
  140. printf("按照政治排序已完成\n");
  141. if(llist->next==NULL){
  142. printf("学生成绩无数据!");
  143. } else if(llist->next->next==NULL){
  144. printf("学生成绩为一个,无需排序!");
  145. }else{
  146. LinkList p=llist->next->next;
  147. llist->next->next=NULL;
  148. LinkList q,r;
  149. while(p!=NULL){
  150. q=llist;
  151. r=p->next;
  152. while(q->next!=NULL&&q->next->politics<p->politics){
  153. q=q->next;
  154. }
  155. p->next=q->next;
  156. q->next=p;
  157. p=r;
  158. }
  159. }
  160. break;
  161. case 5:
  162. printf("按照总分排序已完成\n");
  163. if(llist->next==NULL){
  164. printf("学生成绩无数据!");
  165. } else if(llist->next->next==NULL){
  166. printf("学生成绩为一个,无需排序!");
  167. }else{
  168. LinkList p=llist->next->next;
  169. llist->next->next=NULL;
  170. LinkList q,r;
  171. while(p!=NULL){
  172. q=llist;
  173. r=p->next;
  174. while(q->next!=NULL&&q->next->sum<p->sum){
  175. q=q->next;
  176. }
  177. p->next=q->next;
  178. q->next=p;
  179. p=r;
  180. }
  181. }
  182. break;
  183. default:
  184. printf(" 输入有误!\n");
  185. }
  186. }
  187. void deleteList(LinkList llist){
  188. LinkList p=llist;
  189. int d;
  190. printf("请输入删除的学号:\n");
  191. scanf("%d",&d);
  192. while(p!=NULL){
  193. if(p->next->stdio!=d) p=p->next;break;}
  194. if(p->next->stdio==d) p->next=p->next->next;
  195. else
  196. printf("删除值不存在!\n");
  197. printf("\n-----------------------—学生成绩完成删除-----------------------\n");
  198. }
  199. int main(){
  200. LinkList llist=(LinkList)malloc(sizeof(PNode));
  201. llist->next=NULL;
  202. int a=0,b=1;
  203. while(b){
  204. printf("\n-----------------------—学生成绩管理系统-----------------------\n");
  205. printf("请选择你需要的功能:\n");
  206. printf(" 1.查找 2.插入 3.排序 4.展示 5.删除 6.退出\n");
  207. scanf("%d",&a);
  208. switch(a){
  209. case 1:printf("\n-----------------------—学生成绩查找功能-----------------------\n"); check(llist);break;
  210. case 2:printf("\n-----------------------—学生成绩插入功能-----------------------\n"); input(llist);break;
  211. case 3:printf("\n-----------------------—学生成绩排序功能-----------------------\n"); sortList(llist);break;
  212. case 4:printf("\n-----------------------—学生成绩展示功能-----------------------\n"); display(llist);break;
  213. case 5:printf("\n-----------------------—学生成绩删除功能-----------------------\n"); deleteList(llist);break;
  214. case 6:b = 0; break;
  215. default:printf(" 输入有误!请重新输入!\n");
  216. }
  217. }
  218. printf("\n-----------------------已退出成绩管理系统-----------------------\n");
  219. return 0;
  220. }

四、总结

      这个学生成绩管理系统到这里就结束了,对于我这个小白来说还是有点难度的,也有很多地方需要改进,欢迎大家来与我相互共勉。

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

闽ICP备14008679号