当前位置:   article > 正文

学生信息管理系统(C语言,简单运用了结构体 )_学生信息管理系统c语言

学生信息管理系统c语言

#学习笔记#

        简单运用了struct 结构体和数组来储存学生的信息。

学生的信息有:学号id,姓名name,成绩math。

结构体的运用代码:

  1. typedef struct ssss
  2. {
  3. int id; // id 学号
  4. char name[100]; // name 姓名
  5. int math; // math 成绩
  6. }student;

学生管理系统主要实现的几个模式:

1.增加学生;
2.删除学生;
3.更改学生;
4.查找学生;
5.显示所有学生;
6.退出。

首先创建主函数

int maim()

{

}

        在主函数外创建需要调用的函数,先把骨干创建出来,骨干创建完毕后再逐个完成各个需要调用函数的功能。在写代码过程中要边写边调试。完成一个项目可以说用两个小时写代码其中一个小时都在调试。

        主函数创建完成后外面需要调用的函数有:

void add_student(student *pstu,int *sum,int n); // 增加学生;

void delete_student(student *pstu,int *sum);// 删除学生;

void update_student(student *pstu,const int *sum);// 更改学生信息;

void find_student(student *pstu,const int *sum);//查找学生信息;

void show_all_student(student *pstu,const int *sum);// 显示所有学生信息;

void menu();                                           //   选择模式菜单。

其中主函数主要代码:

  1. int main()
  2. {
  3. menu();
  4. return 0;
  5. }

创建选择模式的函数代码:

  1. void menu()
  2. {
  3. int N=0;// 数组的最大容量
  4. printf("请输入本系统最大学生容量:");
  5. scanf("%d",&N);
  6. student stu[N];
  7. int sum=0; // 实际学生数量
  8. int m=0; // 接受 1-6 菜单选项
  9. while(1)
  10. {
  11. printf("-------------学生管理系统-----------------\n");
  12. printf("-------------1.增加学生-------------------\n");
  13. printf("-------------2.删除学生-------------------\n");
  14. printf("-------------3.更改学生-------------------\n");
  15. printf("-------------4.查找学生-------------------\n");
  16. printf("-------------5.显示所有学生---------------\n");
  17. printf("-------------6.退出-----------------------\n");
  18. printf("请输入选项:\n");
  19. scanf("%d",&m);
  20. if(m==1)
  21. {
  22. printf("这是增加学生模式\n");
  23. add_student(stu,&sum,N);
  24. printf("请再继续选择:\n\n");
  25. }
  26. else if(m==2)
  27. {
  28. printf("这是删除学生模式\n");
  29. delete_student(stu,&sum);
  30. printf("请再继续选择:\n\n");
  31. }
  32. else if(m==3)
  33. {
  34. printf("这是更改学生信息模式\n");
  35. update_student(stu,&sum);
  36. printf("请再继续选择:\n\n");
  37. }
  38. else if(m==4)
  39. {
  40. printf("这是查找某个学生信息 模式\n");
  41. find_student(stu,&sum);
  42. printf("请再继续选择:\n\n");
  43. }
  44. else if(m==5)
  45. {
  46. printf("这是全部学生信息:\n");
  47. show_all_student(stu,&sum);
  48. printf("请再继续选择:\n\n");
  49. }
  50. else if(m==6)
  51. {
  52. printf("成功退出系统,欢迎下次使用~\n\n");
  53. break;
  54. }
  55. else
  56. {
  57. printf("请输入1-6的选项\n");
  58. }
  59. }
  60. }

         由于只创建了结构体,结构体内并没有学生信息,下面写增加学生的函数,并调试成功。

增加学生函数代码如下:

  1. void add_student(student *pstu,int *sum,int n)
  2. {
  3. if(*sum>=n)
  4. {
  5. printf("学生数量已经超过了最大容量,请更新学生数量。 \n");
  6. return;
  7. }
  8. printf("学号:");
  9. scanf("%d",&pstu[*sum].id);
  10. printf("姓名:");
  11. scanf("%s",pstu[*sum].name);
  12. printf("成绩:");
  13. scanf("%d",&pstu[*sum].math);
  14. (*sum)++;
  15. }

        既然已经有了增加函数了,应该写查找学生函数了,因为查找学生的函数写完了之后,在其他的函数体内可以直接调用或者复制粘贴代码。

查找学生函数代码如下:

  1. void find_student(student *pstu,const int *sum)
  2. {
  3. int id=0;
  4. printf("请输入要查找的学号:");
  5. scanf("%d",&id);
  6. int i=0;
  7. int flag=0;
  8. for(i=0;i<*sum;i++)
  9. {
  10. if(pstu[i].id==id)
  11. {
  12. printf("学号%d ",pstu[i].id);
  13. printf("姓名%s ",pstu[i].name);
  14. printf("成绩%d \n",pstu[i].math);
  15. flag=1;
  16. }
  17. }
  18. if(flag==0)
  19. {
  20. printf("查无此人\n");
  21. }
  22. }

        然后写删除学生信息代码,删除某位学生信息,应该把这个学生信息查找出来,然后再进行删除,为了简单我们选用最省事的复制粘贴查找学生函数的代码。

删除学生信息代码如下:

  1. void delete_student(student *pstu,int *sum)
  2. {
  3. int id=0;
  4. printf("请输入要查找的学号:");
  5. scanf("%d",&id);
  6. int i=0;
  7. int flag=0;
  8. for(i=0;i<*sum;i++)
  9. {
  10. if(pstu[i].id==id)
  11. {
  12. printf("学号:%d ",pstu[i].id);
  13. printf("姓名:%s ",pstu[i].name);
  14. printf("成绩:%d \n",pstu[i].math);
  15. flag=1;
  16. int j=0;
  17. for(j=1;j<*sum;j++)
  18. {
  19. pstu[j]=pstu[j+1];
  20. }
  21. (*sum)--;
  22. return;
  23. }
  24. }
  25. if(flag==0)
  26. {
  27. printf("查无此人\n");
  28. }
  29. }

        之后是更改学生信息的代码:

  1. void update_student(student *pstu,const int *sum)
  2. {
  3. int id=0;
  4. printf("请输入要修改的学生的学号:");
  5. scanf("%d",&id);
  6. int i=0;
  7. int flag=0;
  8. for(i=0;i<*sum;i++)
  9. {
  10. if(pstu[i].id==id)
  11. {
  12. printf("旧的 学号%d ",pstu[i].id);
  13. printf("姓名%s ",pstu[i].name);
  14. printf("成绩%d \n",pstu[i].math);
  15. flag=1;
  16. printf("请输入新的学号:");
  17. scanf("%d",&pstu[i].id);
  18. printf("请输入新的姓名:");
  19. scanf("%s",pstu[i].name);
  20. printf("请输入新的成绩:");
  21. scanf("%d",&pstu[i].math);
  22. printf("修改成功!\n");
  23. return;
  24. }
  25. }
  26. if(flag==0)
  27. {
  28. printf("查无此人\n");
  29. }
  30. }

        若管理学生信息完毕,要求显示所有已经在录的信息需要写显示所有信息代码。

显示所有学生信息函数代码如下:

  1. void show_all_student(student *pstu,const int *sum)
  2. {
  3. // printf("5 \n");
  4. int i=0;
  5. for(i=0;i<*sum;i++)
  6. {
  7. printf("学号%d ",pstu[i].id);
  8. printf("姓名%s ",pstu[i].name);
  9. printf("成绩%d \n",pstu[i].math);
  10. }
  11. }

到这里项目已经完成了90%了,接下来就是调试修改调试修改,嘻嘻嘻。

完整代码如下:

  1. #include <stdio.h>
  2. #include <string.h>
  3. typedef struct ssss
  4. {
  5. int id; // id 学号
  6. char name[100]; // name 姓名
  7. int math; // math 成绩
  8. }student;
  9. void add_student(student *pstu,int *sum,int n)
  10. {
  11. if(*sum>=n)
  12. {
  13. printf("学生数量已经超过了最大容量,请更新学生数量。 \n");
  14. return;
  15. }
  16. printf("学号:");
  17. scanf("%d",&pstu[*sum].id);
  18. printf("姓名:");
  19. scanf("%s",pstu[*sum].name);
  20. printf("成绩:");
  21. scanf("%d",&pstu[*sum].math);
  22. (*sum)++;
  23. }
  24. void delete_student(student *pstu,int *sum)
  25. {
  26. int id=0;
  27. printf("请输入要查找的学号:");
  28. scanf("%d",&id);
  29. int i=0;
  30. int flag=0;
  31. for(i=0;i<*sum;i++)
  32. {
  33. if(pstu[i].id==id)
  34. {
  35. printf("学号:%d ",pstu[i].id);
  36. printf("姓名:%s ",pstu[i].name);
  37. printf("成绩:%d \n",pstu[i].math);
  38. flag=1;
  39. int j=0;
  40. for(j=1;j<*sum;j++)
  41. {
  42. pstu[j]=pstu[j+1];
  43. }
  44. (*sum)--;
  45. return;
  46. }
  47. }
  48. if(flag==0)
  49. {
  50. printf("查无此人\n");
  51. }
  52. }
  53. void update_student(student *pstu,const int *sum)
  54. {
  55. int id=0;
  56. printf("请输入要修改的学生的学号:");
  57. scanf("%d",&id);
  58. int i=0;
  59. int flag=0;
  60. for(i=0;i<*sum;i++)
  61. {
  62. if(pstu[i].id==id)
  63. {
  64. printf("旧的 学号%d ",pstu[i].id);
  65. printf("姓名%s ",pstu[i].name);
  66. printf("成绩%d \n",pstu[i].math);
  67. flag=1;
  68. printf("请输入新的学号:");
  69. scanf("%d",&pstu[i].id);
  70. printf("请输入新的姓名:");
  71. scanf("%s",pstu[i].name);
  72. printf("请输入新的成绩:");
  73. scanf("%d",&pstu[i].math);
  74. printf("修改成功!\n");
  75. return;
  76. }
  77. }
  78. if(flag==0)
  79. {
  80. printf("查无此人\n");
  81. }
  82. }
  83. void find_student(student *pstu,const int *sum)
  84. {
  85. int id=0;
  86. printf("请输入要查找的学号:");
  87. scanf("%d",&id);
  88. int i=0;
  89. int flag=0;
  90. for(i=0;i<*sum;i++)
  91. {
  92. if(pstu[i].id==id)
  93. {
  94. printf("学号%d ",pstu[i].id);
  95. printf("姓名%s ",pstu[i].name);
  96. printf("成绩%d \n",pstu[i].math);
  97. flag=1;
  98. }
  99. }
  100. if(flag==0)
  101. {
  102. printf("查无此人\n");
  103. }
  104. }
  105. void show_all_student(student *pstu,const int *sum)
  106. {
  107. int i=0;
  108. for(i=0;i<*sum;i++)
  109. {
  110. printf("学号%d ",pstu[i].id);
  111. printf("姓名%s ",pstu[i].name);
  112. printf("成绩%d \n",pstu[i].math);
  113. }
  114. }
  115. void menu()
  116. {
  117. int N=0;// 数组的最大容量
  118. printf("请输入本系统最大学生容量:");
  119. scanf("%d",&N);
  120. student stu[N];
  121. int sum=0; // 实际学生数量
  122. int m=0; // 接受 1-6 菜单选项
  123. while(1)
  124. {
  125. printf("-------------学生管理系统-----------------\n");
  126. printf("-------------1.增加学生-------------------\n");
  127. printf("-------------2.删除学生-------------------\n");
  128. printf("-------------3.更改学生-------------------\n");
  129. printf("-------------4.查找学生-------------------\n");
  130. printf("-------------5.显示所有学生---------------\n");
  131. printf("-------------6.退出-----------------------\n");
  132. printf("请输入选项:\n");
  133. scanf("%d",&m);
  134. if(m==1)
  135. {
  136. printf("这是增加学生模式\n");
  137. add_student(stu,&sum,N);
  138. printf("请再继续选择:\n\n");
  139. }
  140. else if(m==2)
  141. {
  142. printf("这是删除学生模式\n");
  143. delete_student(stu,&sum);
  144. printf("请再继续选择:\n\n");
  145. }
  146. else if(m==3)
  147. {
  148. printf("这是更改学生信息模式\n");
  149. update_student(stu,&sum);
  150. printf("请再继续选择:\n\n");
  151. }
  152. else if(m==4)
  153. {
  154. printf("这是查找某个学生信息 模式\n");
  155. find_student(stu,&sum);
  156. printf("请再继续选择:\n\n");
  157. }
  158. else if(m==5)
  159. {
  160. printf("这是全部学生信息:\n");
  161. show_all_student(stu,&sum);
  162. printf("请再继续选择:\n\n");
  163. }
  164. else if(m==6)
  165. {
  166. printf("成功退出系统,欢迎下次使用~\n\n");
  167. break;
  168. }
  169. else
  170. {
  171. printf("请输入1-6的选项\n");
  172. }
  173. }
  174. }
  175. int main()
  176. {
  177. char x1[20]; // 进入系统的变量
  178. printf("请输入是否进入系统(是/否):");
  179. scanf("%[^\n]",x1);
  180. if(strcmp(x1,"否")==0)
  181. {
  182. printf("随时欢迎进入系统哦~\n");
  183. printf("已关闭\n");
  184. return 0;
  185. }
  186. else if(strcmp(x1,"是")==0)
  187. {}
  188. else
  189. {
  190. printf("您的输入有误,禁止使用本系统~\n");
  191. printf("已关闭\n");
  192. return 0;
  193. }
  194. menu();
  195. return 0;
  196. }

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

闽ICP备14008679号