经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » C 语言 » 查看文章
基于C语言实现简单学生成绩管理系统
来源:jb51  时间:2022/8/31 17:26:10  对本文有异议

本文实例为大家分享了C语言实现简单学生成绩管理系统的具体代码,供大家参考,具体内容如下

一、系统主要功能

1、密码登录
2、输入数据
3、查询成绩
4、修改成绩
5、输出所有学生成绩
6、退出系统

二、代码实现

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #define N 10
  5. struct student
  6. {
  7. ?? ?char num[10];
  8. ? ? char name[20];
  9. ?? ?int old;
  10. ?? ?char add[30];
  11. ?? ?char xb[5];
  12. ?? ?char mc[5];
  13. ? ? int ds;
  14. ?? ?int eng;
  15. ?? ?int math;
  16. ?? ?int lan;
  17. };
  18. struct student stu[N];
  19. int count=0;
  20. void insert(int i) //输入学生的具体信息
  21. {
  22. ?? ?printf("第%d个学生的姓名:",i);
  23. ? ? scanf("%s",stu[i].name);
  24. ?? ?printf("第%d个学生的年龄:",i);
  25. ? ? scanf("%d",&stu[i].old);
  26. ?? ?printf("第%d个学生的住址:",i);
  27. ? ? scanf("%s",stu[i].add);
  28. ?? ?printf("第%d个学生的性别:",i);
  29. ? ? scanf("%s",stu[i].xb);
  30. ?? ?printf("第%d个学生的民簇:",i);
  31. ? ? scanf("%s",stu[i].mc);
  32. ? ? printf("第%d个学生的线性代数分数:",i);
  33. ? ? scanf("%d",&stu[i].ds);
  34. ? ? printf("第%d个学生的英语分数:",i);
  35. ? ? scanf("%d",&stu[i].eng);
  36. ? ? printf("第%d个学生的高等数学分数:",i);
  37. ? ? scanf("%d",&stu[i].math);
  38. ? ? printf("第%d个学生的C语言分数:",i);
  39. ? ? scanf("%d",&stu[i].lan);
  40. ? ? count++;
  41. ? ? sprintf(stu[i].num,"%d",count);
  42. }
  43. void input() //输入数据
  44. {
  45. ? ? system("color 3e");
  46. ? ? void menu();
  47. ? ? void insert(int i);
  48. ? ? int i,k,l,u;
  49. ? ? printf("请设定输入的学生人数:");
  50. ?? ?scanf("%d",&u);
  51. ?? ?while(u<1||u>10)
  52. ?? ?{
  53. ?? ??? ?printf("超出数据范围请重输:");
  54. ?? ??? ?scanf("%d",&u);
  55. ?? ?}
  56. ? ? for(i=1;i<u+1;i++)
  57. ? ? {
  58. ? ? ? ? printf("\n请输入第%d个学生的信息!\n",i);
  59. ? ? ? ? insert(i);
  60. ? ? }
  61. ? ? do
  62. ? ? {
  63. ? ? ? ? printf("请按0返回菜单:");
  64. ? ? ? ? scanf("%d",&k);
  65. ? ? ? ? if (k==0)
  66. ? ? ? ? {
  67. ? ? ? ? ? ? system("cls");
  68. ? ? ? ? ? ? menu();
  69. ? ? ? ? }
  70. ? ? ? ? else
  71. ? ? ? ? ? ? l=0;
  72. ? ? }while(l==0);
  73. }
  74. void search() //查询成绩
  75. {
  76. ? ? system("color 3f");
  77. ?? ?void menu();
  78. ? ? void printf_one(int k);
  79. ? ? struct student s;
  80. ? ? int i,k,w0,w1,w2;
  81. ? ? do
  82. ? ? {
  83. ? ? ? ? printf("1.姓名 ?2.学号 \n请选择查找的类别:");
  84. ? ? ? ? scanf("%d",&w1);
  85. ? ? ? ? if (w1<1||w1>2)
  86. ? ? ? ? {
  87. ? ? ? ? ? ? printf("输入错误!请重输:\n");
  88. ? ? ? ? ? ? w2 = 1;
  89. ? ? ? ? }
  90. ? ? ? ? else
  91. ? ? ? ? ? ? w2 = 0;
  92. ? ? }while(w2 == 1);
  93. ? ? if(w1==1) //按姓名查找
  94. ? ? {
  95. ?? ??? ?do
  96. ? ? ? ? {
  97. ? ? ? ? ? ? k=-1;
  98. ? ? ? ? ? ? do
  99. ? ? ? ? ? ? {
  100. ? ? ? ? ? ? ? ? printf("请输入您想查找的学生的姓名:");
  101. ? ? ? ? ? ? ? ? scanf("%s",s.name);
  102. ? ? ? ? ? ? ? ? for(i= 1;i<N;i++)
  103. ? ? ? ? ? ? ? ? ? ? if(strcmp(s.name,stu[i].name)==0)
  104. ? ? ? ? ? ? ? ? ? ? {
  105. ? ? ? ? ? ? ? ? ? ? ? ? k=i;
  106. ? ? ? ? ? ? ? ? ? ? ? ? s=stu[i];
  107. ? ? ? ? ? ? ? ? ? ? }
  108. ? ? ? ? ? ? ? ? if(k==-1) //没有找到
  109. ? ? ? ? ? ? ? ? {
  110. ? ? ? ? ? ? ? ? ? ? int o;
  111. ? ? ? ? ? ? ? ? ? ? printf("\n没有这个学生的信息!\n");
  112. ? ? ? ? ? ? ? ? ? ? printf("\n 1.继续 ?2.返回菜单 \n请选择进行下一个操作;");
  113. ? ? ? ? ? ? ? ? ? ? scanf("%d",&o);
  114. ? ? ? ? ? ? ? ? ? ? if (o==1)
  115. ? ? ? ? ? ? ? ? ? ? {
  116. ? ? ? ? ? ? ? ? ? ? ? ? system("cls");
  117. ? ? ? ? ? ? ? ? ? ? ? ? search(); //继续查找
  118. ? ? ? ? ? ? ? ? ? ? }
  119. ? ? ? ? ? ? ? ? ? ? if(o==2)
  120. ? ? ? ? ? ? ? ? ? ? {
  121. ? ? ? ? ? ? ? ? ? ? ? ? system("cls");
  122. ? ? ? ? ? ? ? ? ? ? ? ? menu(); //返回菜单
  123. ? ? ? ? ? ? ? ? ? ? }
  124. ? ? ? ? ? ? ? ? }
  125. ? ? ? ? ? ? }while(k==-1);
  126. ? ? ? ? ? ? system("cls");
  127. ? ? ? ? ? ? printf_one(k); //查找到以后输出这个学生的信息
  128. ? ? ? ? ? ? printf("\n 1.继续 ?2.返回菜单 \n请选择进行下一个操作:");
  129. ? ? ? ? ? ? scanf("%d",&w0);
  130. ? ? ? ? }while(w0==1);
  131. ? ? ? ? system("cls");
  132. ? ? ? ? menu(); //不再查找时返回菜单
  133. ? ? }
  134. ? ? else //按学号查找
  135. ? ? {
  136. ? ? ? ? do
  137. ? ? ? ? {
  138. ? ? ? ? ? ? k=-1;
  139. ? ? ? ? ? ? do
  140. ? ? ? ? ? ? {
  141. ? ? ? ? ? ? ? ? printf("请输入您想查找的学生的学号:");
  142. ? ? ? ? ? ? ? ? scanf("%s",s.num);
  143. ? ? ? ? ? ? ? ? for(i=0;i<N;i++)
  144. ? ? ? ? ? ? ? ? ? ? if(strcmp(s.num,stu[i].num)==0) //找到了
  145. ? ? ? ? ? ? ? ? ? ? {
  146. ? ? ? ? ? ? ? ? ? ? ? ? k=i;
  147. ? ? ? ? ? ? ? ? ? ? ? ? s=stu[i];
  148. ? ? ? ? ? ? ? ? ? ? }
  149. ? ? ? ? ? ? ? ? if(k==-1) ? ?//没有找到
  150. ? ? ? ? ? ? ? ? {
  151. ? ? ? ? ? ? ? ? ? ? int o;
  152. ? ? ? ? ? ? ? ? ? ? printf("\n没有这个学生的信息!\n");
  153. ? ? ? ? ? ? ? ? ? ? printf("\n 1.继续 ?2.返回菜单 \n请选择进行下一个操作:");
  154. ? ? ? ? ? ? ? ? ? ? scanf("%d",&o);
  155. ? ? ? ? ? ? ? ? ? ? if(o==1)
  156. ? ? ? ? ? ? ? ? ? ? {
  157. ? ? ? ? ? ? ? ? ? ? ? ? system("cls");
  158. ?? ??? ??? ??? ??? ??? ?search();
  159. ? ? ? ? ? ? ? ? ? ? }
  160. ? ? ? ? ? ? ? ? ? ? if(o==2)
  161. ? ? ? ? ? ? ? ? ? ? {
  162. ? ? ? ? ? ? ? ? ? ? ? ? system("cls");
  163. ? ? ? ? ? ? ? ? ? ? ? ? menu(); //返回菜单
  164. ? ? ? ? ? ? ? ? ? ? }
  165. ? ? ? ? ? ? ? ? }
  166. ? ? ? ? ? ? }while(k==-1);
  167. ? ? ? ? ? ? system("cls");
  168. ? ? ? ? ? ? printf_one(k); //找到后输出这个学生的信息
  169. ? ? ? ? ? ? printf("\n 1.继续 ?2.返回菜单 \n请选择进行下一个操作:");
  170. ? ? ? ? ? ? scanf("%d",&w0);
  171. ? ? ? ? }while(w0==1);
  172. ? ? ? ? system("cls");
  173. ? ? ? ? menu(); //不再查找时返回菜单
  174. ? ? }
  175. }
  176. void xiugai() //修改学生信息的函数
  177. {
  178. ? ? system("color 1a");
  179. ?? ?void menu();
  180. ? ? void printf_one(int k);
  181. ? ? void xiugai_2();
  182. ? ? struct student s;
  183. ? ? int i,n,k,w0=1,w1,w2=0,o;
  184. ? ? do
  185. ? ? {
  186. ? ? ? ? k=-1;
  187. ? ? ? ? do
  188. ? ? ? ? {
  189. ? ? ? ? ? ? printf("请输入您想要修改的学生的姓名:");
  190. ? ? ? ? ? ? scanf("%s",s.name);
  191. ? ? ? ? ? ? for(i=0;i<N;i++)
  192. ? ? ? ? ? ? if(strcmp(s.name,stu[i].name)==0) //与其中一个学生匹配
  193. ? ? ? ? ? ? {
  194. ? ? ? ? ? ? ? ? k=i;
  195. ? ? ? ? ? ? ? ? s=stu[i];
  196. ? ? ? ? ? ? }
  197. ? ? ? ? ? ? if(k==-1) //没有找到输入的学生
  198. ? ? ? ? ? ? { ? ? ? ? ? ? ? ?
  199. ? ? ? ? ? ? ? ? printf("没有这个学生的信息!\n");
  200. ? ? ? ? ? ? ? ? printf("\n 1.继续 ?2.返回菜单 \n请选择进行下一个操作:");
  201. ? ? ? ? ? ? ? ? scanf("%d",&o);
  202. ? ? ? ? ? ? ? ? if(o==1)
  203. ? ? ? ? ? ? ? ? {
  204. ? ? ? ? ? ? ? ? ? ? system("cls");
  205. ?? ??? ??? ??? ??? ?xiugai();
  206. ? ? ? ? ? ? ? ? }
  207. ? ? ? ? ? ? ? ? if(o==2)
  208. ? ? ? ? ? ? ? ? {
  209. ? ? ? ? ? ? ? ? ? ? system("cls");
  210. ? ? ? ? ? ? ? ? ? ? menu(); //返回菜单
  211. ? ? ? ? ? ? ? ? }
  212. ? ? ? ? ? ? }
  213. ? ? ? ? }while(k==-1);
  214. ? ? ? ? system("cls");
  215. ?? ??? ?printf("请输入修改后的线性代数分数:");
  216. ?? ??? ?scanf("%d",&stu[k].ds);
  217. ?? ??? ?printf("请输入修改后的英语分数:");
  218. ?? ??? ?scanf("%d",&stu[k].eng);
  219. ?? ??? ?printf("请输入修改后的高等数学分数:");
  220. ?? ??? ?scanf("%d",&stu[k].math);
  221. ?? ??? ?printf("请输入修改后的C语言分数:");
  222. ?? ??? ?scanf("%d",&stu[k].lan);
  223. ? ? ? ? printf("\n");
  224. ?? ??? ?printf("\n该生修改后的信息如下:\n");
  225. ? ? ? ? printf_one(k); //输出这个学生的信息
  226. ? ? ? ? printf("\n请按0返回菜单:");
  227. ? ? ? ? scanf("%d",&o);
  228. ? ? ? ? if(o==0)
  229. ? ? ? ? {
  230. ? ? ? ? ? ? system("cls");
  231. ? ? ? ? ? ? menu(); //返回菜单
  232. ? ? ? ? }
  233. ? ? }while(1);
  234. }
  235. void printf_all() //输出所有学生成绩的函数
  236. {
  237. ? ? void menu();
  238. ? ? system("color 9e");
  239. ? ? int i,j,k;
  240. ? ? for (i=1;i<3;i++)
  241. ? ? {
  242. ? ? ? ? printf("\n学号:%s \n姓名:%s \n性别:%s \n民簇:%s \n年龄:%d \n地址:%s \n线性代数分数:%d \n英语分数:%d \n高等数学分数:%d \nC语言分数:%d \n",stu[i].num,stu[i].name,stu[i].xb,stu[i].mc,stu[i].old,stu[i].add,stu[i].ds,stu[i].eng,stu[i].math,stu[i].lan);
  243. ? ? }
  244. ? ? do
  245. ? ? {
  246. ? ? ? ? printf("请按0返回菜单:");
  247. ? ? ? ? scanf("%d",&j);
  248. ? ? ? ? if(j==0)
  249. ? ? ? ? {
  250. ? ? ? ? ? ? system("cls");
  251. ? ? ? ? ? ? menu();
  252. ? ? ? ? }
  253. ? ? ? ? else
  254. ? ? ? ? {
  255. ? ? ? ? ? ? k = 0;
  256. ? ? ? ? }
  257. ? ? } while (k == 0);
  258. }
  259. void printf_one(int k) ?//输出某一个学生的信息的函数
  260. {
  261. ?? ?printf("\n学号:%s \n姓名:%s \n性别:%s \n民簇:%s \n年龄:%d \n地址:%s \n线性代数分数:%d \n英语分数:%d \n高等数学分数:%d \nC语言分数:%d \n",stu[k].num,stu[k].name,stu[k].xb,stu[k].mc,stu[k].old,stu[k].add,stu[k].ds,stu[k].eng,stu[k].math,stu[k].lan);
  262. }
  263. void Exit() //退出系统的函数
  264. {
  265. ? ? system("cls");
  266. ?? ?system("color 2e");
  267. ?? ?printf("\n祝您生活愉快!\n");
  268. ?? ?exit(0);
  269. }
  270. void menu() //菜单函数
  271. {
  272. ? ? system("color 1e");
  273. ? ? printf("\n\t\t\t欢迎使用学生学籍管理系统!\n");
  274. ? ? printf("\n");
  275. ? ? int n,m;
  276. ? ? do
  277. ? ? {
  278. ? ? ? ? puts("\t\t********************菜单*********************");
  279. ? ? ? ? puts("\t\t**************学生学籍管理系统***************");
  280. ? ? ? ? puts("\t\t*********************************************");
  281. ? ? ? ? puts("\t\t******* ? ? ? ?1--输入数据 ? ? ? ? ? ? ? ****");
  282. ? ? ? ? puts("\t\t******* ? ? ? ?2--查询成绩 ? ? ? ? ? ? ? ****");
  283. ? ? ? ? puts("\t\t******* ? ? ? ?3--修改成绩 ? ? ? ? ? ? ? ****");
  284. ? ? ? ? puts("\t\t******* ? ? ? ?4--输出所有学生成绩 ? ? ? ****");
  285. ? ? ? ? puts("\t\t******* ? ? ? ?5--退出系统 ? ? ? ? ? ? ? ****");
  286. ? ? ? ? puts("\t\t*********************************************");
  287. ? ? ? ? printf("\t\t*************请选择服务种类(1~5):");
  288. ? ? ? ? scanf("%d",&n);
  289. ? ? ? ? if(n<1||n>5)
  290. ? ? ? ? {
  291. ? ? ? ? ? ? system("cls");
  292. ? ? ? ? ? ? printf("\n\t\t*************选择错误! 请重新选择!\n");
  293. ? ? ? ? ? ? m=1;
  294. ? ? ? ? }
  295. ? ? ? ? else
  296. ? ? ? ? {
  297. ? ? ? ? ? ? m = 0;
  298. ? ? ? ? }
  299. ? ? }while(m==1);
  300. ? ? switch(n)
  301. ? ? {
  302. ?? ??? ?case 1:system("cls");input();break;
  303. ?? ??? ?case 2:system("cls");search();break;
  304. ?? ??? ?case 3:system("cls");xiugai();break;
  305. ?? ??? ?case 4:system("cls");printf_all();break;
  306. ?? ??? ?case 5:Exit();break;
  307. ? ? }
  308. }
  309. int main()
  310. {
  311. ?? ?int c;
  312. ?? ?printf("请输入密码:");
  313. ?? ?scanf("%d",&c);
  314. ?? ?while(c!=12345)
  315. ?? ?{
  316. ?? ??? ?printf("密码错误,请重输:");
  317. ?? ??? ?scanf("%d",&c);
  318. ?? ?}
  319. ?? ?system("cls");
  320. ?? ?menu();
  321. ? ? return 0;
  322. }

三、效果演示

输入登入密码:

输入数据:

查询成绩:

修改成绩:

输出所有学生成绩:

退出系统:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持w3xue。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号