当前位置:   article > 正文

C语言——学生信息管理系统_c语言学生信息管理系统

c语言学生信息管理系统
  1. #include<stdio.h>
  2. #include<string.h>//使我可以调用strcmp进行自定义
  3. #include<stdlib.h>//使我可以调用字符颜色库
  4. typedef struct student//tupedef将结构体类型标识符进行自定义
  5. {
  6. char sno[20];//学号
  7. char name[50];//姓名
  8. char sex[10];//性别
  9. int age;//年龄
  10. char nation[10];//民族
  11. char origin[30];//籍贯
  12. char contact[20];//联系方式
  13. } SD;
  14. SD datas[5000];//定义了可存储500位学生的数组
  15. int sl=0;//记录存储了多少位学生的信息
  16. //
  17. void printxinxi()//打印信息
  18. {
  19. if(sl==0)
  20. printf("当前无学生信息\n") ;
  21. printf("学号 姓名 性别 年龄 民族 籍贯 联系方式\n") ;
  22. int i=0;
  23. for(i=0;i<sl;i++)
  24. {
  25. printf("%s %s %s %d %s %s %s\n",datas[i].sno,datas[i].name,datas[i].sex,
  26. datas[i].age,datas[i].nation,datas[i].origin,datas[i].contact);
  27. }
  28. }
  29. /
  30. void menu()//菜单
  31. {
  32. printf("\n");
  33. printf(" ****************【菜单】*********************\n");
  34. printf(" *** 《1》:增加一条学生信息 ***\n");
  35. printf(" *** 《2》:修改一条学生信息 ***\n");
  36. printf(" *** 《3》:查找一条学生信息 ***\n");
  37. printf(" *** 《4》:删除一条学生信息 ***\n");
  38. printf(" *** 《5》:从文件导入学生信息 ***\n");
  39. printf(" *** 《6》:将学生信息导入文件 ***\n");
  40. printf(" *** 《7》:打印所有学生信息 ***\n");
  41. printf(" *** 《8》:退出 ***\n");
  42. printf(" *********************************************\n");
  43. printf(" >>>请输入1-8中你要进行的操作:");
  44. }
  45. //
  46. void save()//保存内容到文件内
  47. {
  48. FILE *fp=NULL;//定义一个文件指针
  49. char wenjianmin[100];
  50. printf("请输入文件地址:");
  51. scanf("%s",wenjianmin);
  52. fp=fopen("Xueshengxinxi.txt","wb+");//为读/写新建一个二进制文件
  53. if(fp==NULL)
  54. {
  55. printf("打开失败\n");
  56. return;
  57. }
  58. int i=0;
  59. for(i=0;i<sl;i++)
  60. {
  61. fprintf(fp,"%s %s %s %d %s %s %s\n",datas[i].sno,datas[i].name,datas[i].sex,
  62. datas[i].age,datas[i].nation,datas[i].origin,datas[i].contact);//写入文件
  63. fflush(stdin);//清除文件缓冲区
  64. }
  65. fclose(fp);//关闭文件
  66. printf("保存成功!\n");
  67. }
  68. /
  69. void read()//读取文件内容
  70. {
  71. FILE *fp=NULL;
  72. char wenjianmin[100];
  73. printf("请输入文件地址:");
  74. scanf("%s",wenjianmin);
  75. fp=fopen("Xueshengxinxi.txt","r");//以只读方式读取文件
  76. if(fp==NULL)
  77. {
  78. printf("打开失败\n");
  79. //return;
  80. }
  81. sl=0;
  82. while(!feof(fp))//feof()检查文件是否结束,结束返回非0值,未结束返回0值;
  83. {
  84. fscanf(fp,"%s %s %s %d %s %s %s\n",datas[sl].sno,datas[sl].name,datas[sl].sex,
  85. &datas[sl].age,datas[sl].nation,datas[sl].origin,datas[sl].contact); //从文件读取数据
  86. sl++;
  87. }
  88. printf("读取成功!\n");
  89. }
  90. //
  91. void add()//增加信息
  92. {
  93. SD data;//新定义一个结构体变量
  94. printf("请按照顺序输入学生的学号:");
  95. scanf("%s",data.sno);
  96. printf("请输入学生的姓名:") ;
  97. scanf("%s",data.name);
  98. printf("请输入学生的性别:");
  99. scanf("%s",data.sex);
  100. printf("请输入学生的年龄:");
  101. scanf("%d",&data.age);
  102. printf("请输入学生的民族:");
  103. scanf("%s",data.nation);
  104. printf("请输入学生的籍贯:");
  105. scanf("%s",data.origin);
  106. printf("请输入学生的联系方式:");
  107. scanf("%s",data.contact);
  108. datas[sl]=data;
  109. sl++;
  110. printf("添加成功!\n");
  111. }
  112. void dele()//删除
  113. {
  114. printf("请输入要删除的学生学号:");
  115. char sno[20];
  116. scanf("%s",sno);
  117. int flg,i;
  118. flg=0;
  119. for(i=0;i<sl;i++)
  120. if(strcmp(datas[i].sno,sno)==0)
  121. {
  122. int j;
  123. flg=1;
  124. for(j=i;j<sl-1;j++)
  125. datas[j]=datas[j+1];
  126. }
  127. if(flg==0)
  128. {
  129. printf("系统内没有该位学生的信息\n") ;
  130. }
  131. sl--;
  132. printf("删除成功!\n");
  133. }
  134. //
  135. void modify()//修改
  136. {
  137. printf("请输入你需要修改的学生的学生号");
  138. char sno[20];
  139. scanf("%s",sno);
  140. int flg,i;
  141. flg=0;
  142. for(i=0;i<sl;i++)
  143. if(strcmp(datas[i].sno,sno)==0)
  144. {
  145. flg=1;
  146. printf("请输入需要修改的学生的姓名:") ;
  147. scanf("%s",datas[i].name);
  148. printf("请输入需要修改的学生的性别:");
  149. scanf("%s",datas[i].sex);
  150. printf("请输入需要需改的学生的年龄:");
  151. scanf("%d",&datas[i].age);
  152. printf("请输入需要修改的学生的民族:");
  153. scanf("%s",datas[i].nation);
  154. printf("请输入需要修改的学生的籍贯:");
  155. scanf("%s",datas[i].origin);
  156. printf("请输入需要修改的学生的联系方式:");
  157. scanf("%s",datas[i].contact);
  158. }
  159. if(flg==0)
  160. {
  161. printf("系统内没有该位学生的信息\n") ;
  162. }
  163. printf("修改成功!\n");
  164. }
  165. ///
  166. void seek()//寻找
  167. {
  168. printf("请输入要查找的学生学号:");
  169. char sno[20];
  170. scanf("%s",sno);
  171. int flg,i;
  172. flg=0;
  173. for(i=0;i<sl;i++)
  174. if(strcmp(datas[i].sno,sno)==0)
  175. {
  176. flg=1;
  177. printf("%s %s %s %d %s %s %s\n",datas[i].sno,datas[i].name,datas[i].sex,
  178. datas[i].age,datas[i].nation,datas[i].origin,datas[i].contact);
  179. }
  180. if(flg==0)
  181. {
  182. printf("系统内没有该位学生的信息!\n") ;
  183. }
  184. }
  185. ///
  186. int main()//主函数
  187. {
  188. system("color 1F");//改变输出颜色
  189. int cmd;
  190. do
  191. {
  192. menu();
  193. scanf("%d",&cmd);
  194. switch(cmd)
  195. {
  196. case 1:
  197. printf("添加一条学生信息\n");
  198. add();
  199. break;
  200. case 2:
  201. printf("修改一条学生信息\n");
  202. modify() ;
  203. break;
  204. case 3:
  205. printf("查找一条学生信息\n");
  206. seek();
  207. break;
  208. case 4:
  209. printf("删除一条学生信息\n");
  210. dele();
  211. break;
  212. case 5:
  213. printf("从文件导入学生信息\n");
  214. read();
  215. break;
  216. case 6:
  217. printf("将学生信息导入文件\n");
  218. save();
  219. break;
  220. case 7:
  221. printf("打印所有学生信息\n");
  222. printxinxi();
  223. break;
  224. case 8:printf("已退出学生信息管理系统!\n ");
  225. break;
  226. default:
  227. printf("没有该项操作,请输入正确的操作!\n") ;
  228. printf("\n");
  229. break;
  230. }
  231. }
  232. while(cmd!=8);
  233. return 0;
  234. }

 

 

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

闽ICP备14008679号