• C语言小项目:学生管理(文件编辑)


    1. //主函数
    2. #include<stdio.h>
    3. #include<stdlib.h>
    4. #include"xsgl.h"
    5. int main(int argc, char const *argv[])
    6. {
    7. char name[]={};
    8. printf("请输入用户名:");
    9. scanf("%s",name);
    10. Help(name);
    11. while(1)
    12. {
    13. printf("请输入命令=");
    14. scanf("%c",&in);
    15. getchar();//回收一个垃圾字符
    16. if(in>=65&&in<=122)
    17. {
    18. if(in>=97&&in<=122)
    19. in=in-32;
    20. if(in!=84&&renshu==0&&in!=81&&in!=72&&in!=67)
    21. printf("成绩列表为空!请先使用命令T录入学生成绩。\n");
    22. else if(in==81)//输入字符Q退出系统
    23. break;
    24. else if(in==72)//输入字符H列出菜单
    25. Help();
    26. else if(in==67)//输入字符C清屏
    27. system("clear");
    28. else
    29. {
    30. switch(in)
    31. {
    32. case 84:Type();break;
    33. case 65:Average();break;
    34. case 76:List();break;
    35. case 80:Sort();break;
    36. case 83:Search();break;
    37. default:printf("命令错误请重新输入正确命令,");break;
    38. }
    39. }
    40. }
    41. else
    42. {
    43. getchar();
    44. printf("请输入正确英文字符,");
    45. }
    46. }
    47. return 0;
    48. }
    1. //自定义函数
    2. #include<stdio.h>
    3. #include"xsgl.h"
    4. void Type()
    5. {
    6. while(1)
    7. {
    8. for(int x = 0; x < renshu; x++)
    9. {
    10. stu[x].num=0;
    11. stu[x].yw=0;
    12. stu[x].sx=0;
    13. stu[x].wy=0;
    14. stu[x].avg=0;
    15. }
    16. printf("请输入学生人数:");
    17. int res=scanf("%d",&renshu);//确认要输入学生成绩人数
    18. getchar();
    19. if(res==1)
    20. {
    21. printf("请输入%d名学生的三门课成绩:\n",renshu);
    22. printf("学号 语文 数学 外语\n");
    23. for(int i=0;i<renshu;i++)
    24. {
    25. stu[i].num=i+1;
    26. printf("%d ",stu[i].num);
    27. scanf("%f %f %f",&stu[i].yw,&stu[i].sx,&stu[i].wy);
    28. }
    29. getchar();//回收垃圾字符
    30. break;
    31. }
    32. else
    33. printf("请输入正确的学生人数,");
    34. }
    35. }
    36. void List()
    37. {
    38. printf("学生成绩如下:\n");
    39. printf("学号 语文 数学 外语 平均分\n");
    40. for(int i=0;i<renshu;i++)
    41. {
    42. printf("%d ",stu[i].num);
    43. printf("%-5.1f %-5.1f %-5.1f %-5.1f",stu[i].yw,stu[i].sx,stu[i].wy,stu[i].avg);
    44. puts(" ");
    45. }
    46. }
    47. void Average()
    48. {
    49. for(int i=0;i<renshu;i++)
    50. {
    51. stu[i].avg=(stu[i].yw+stu[i].sx+stu[i].wy)/3.0;
    52. }
    53. printf("完成平均值计算,请使用命令L查看\n");
    54. }
    55. void Sort()
    56. {
    57. //stu中间交换量
    58. for(int i=0;i<renshu;i++)//冒泡排序,通过对平均分进行排序
    59. {
    60. for(int j=0;j<renshu-i;j++)
    61. {
    62. if(stu[j].avg<stu[j+1].avg)
    63. {
    64. stu1=stu[j];
    65. stu[j]=stu[j+1];
    66. stu[j+1]=stu1;
    67. }
    68. }
    69. }
    70. printf("完成排序。请使用命令L查看。\n");
    71. }
    72. void Search()
    73. {
    74. int n;//查询学号
    75. printf("请输入要查询的学生学号:");
    76. int res=scanf("%d",&n);
    77. getchar();
    78. if(res==1)
    79. {
    80. if(n<renshu)
    81. {
    82. for(int i=0;i<renshu;i++)
    83. {
    84. if(n==stu[i].num)
    85. {
    86. printf("学号 语文 数学 外语 平均分\n");
    87. printf("%d %-5.1f %-5.1f %-5.1f %-5.1f",n,stu[i].yw,stu[i].sx,stu[i].wy,stu[i].avg);
    88. puts(" ");
    89. break;
    90. }
    91. }
    92. }
    93. else
    94. {
    95. printf("成绩表内没有该同学\n");
    96. }
    97. }
    98. else
    99. printf("请正确输入学生学号,");
    100. }
    101. void Help(char a[32])
    102. {
    103. printf("***************************************************\n");
    104. printf(" * 学生成绩管理系统————帮助菜单 * \n");
    105. printf("***************************************************\n");
    106. printf(" * H = 显示帮助菜单 * \n");
    107. printf(" * T = 成绩录入 * \n");
    108. printf(" * A = 计算学生平均分 * \n");
    109. printf(" * L = 列出成绩表 * \n");
    110. printf(" * P = 按平均成绩由高到低排序 * \n");
    111. printf(" * S = 按学号查询学生成绩 * \n");
    112. printf(" * C = 清屏 * \n");
    113. printf(" * Q = 推出系统 * \n");
    114. printf("***************************************************\n");
    115. printf(" * Copyright 2023.08.24 By ");
    116. printf("姓名:%s * \n",a);
    117. printf("***************************************************\n");
    118. }
    1. //头函数
    2. #ifndef XSGL_H
    3. #define XSGL_H
    4. char in;//命令输入
    5. int renshu;//要录入的学生人数
    6. struct chengji//成绩结构体
    7. {
    8. int num;//学号
    9. float yw;//语文成绩
    10. float sx;//数学成绩
    11. float wy;//外语成绩
    12. float avg;//存放平均分
    13. }stu[32],stu1;//学生个人成绩
    14. void Type();//输入成绩函数
    15. void List();//展示成绩单函数
    16. void Average();//算取平均值函数
    17. void Sort();//排序函数
    18. void Search();//按学号查找函数
    19. void Help();//帮助界面函数
    20. #endif

  • 相关阅读:
    【Xilinx】如何用代码使能和禁用jtag功能
    DXF读写:标注样式组码中文说明
    python中setattr()函数用法详解
    Redis学习(2)—— 常用命令
    微信小程序生态15- 批量提交微信小程序审核的一种方式
    开发中如何克服tomcat热部署弱的缺陷?看这篇文章就够了
    linux高级作业
    Jmeter —— jmeter参数化实现
    leetcode竞赛:20220911周赛
    华为ensp搭建VRRP主备份配置
  • 原文地址:https://blog.csdn.net/m0_74937538/article/details/133987165