A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 余武超 中级黑马   /  2014-6-1 13:26  /  1322 人查看  /  1 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 余武超 于 2014-6-2 12:37 编辑
  1. #include "stdio.h"
  2. #include "stdlib.h"
  3. #include "string.h"
  4. #include "conio.h"
  5. jiemian();
  6. struct student
  7. {
  8. char name[50];
  9. char sex[5];
  10. int age;
  11. char num[50];
  12. float score1;
  13. float score2;
  14.      float score3;
  15. float sum;
  16. float ave;
  17. }stu[50],del;
  18. void gn1()
  19. {
  20. int i=0;
  21. char num1;
  22. for(i=0;i<50;i++)
  23. {
  24. printf("请输入要添加的学生资料:\n");
  25. printf("学号:");
  26. scanf("%s",stu[i].num);
  27. printf("姓名:");
  28. scanf("%s",stu[i].name);
  29. printf("性别:");
  30. scanf("%s",&stu[i].sex);

  31. printf("年龄:");
  32. scanf("%d",&stu[i].age);
  33. printf("请输入学生的三门成绩:\n");
  34. printf("语文:");
  35. scanf("%f",&stu[i].score1);
  36. printf("数学:");
  37. scanf("%f",&stu[i].score2);
  38. printf("英语:");
  39. scanf("%f",&stu[i].score3);
  40. printf("是否继续添加:y/n\n");
  41. scanf("%c",&num1);//
  42. scanf("%c",&num1);
  43.    if(num1=='N' || num1=='n')
  44.    {
  45.     system("cls");
  46.     jiemian();
  47.    
  48.    
  49.    }
  50.      

  51.   

  52. }

  53. }
  54. void gn2()
  55. {
  56. int i;
  57. char num[50];
  58. printf("请输入要查找的学生学号:\n");
  59. scanf("%s",num);
  60.     for(i=0;i<50;i++)   
  61. if(strcmp(stu[i].num,num)==0)
  62. {
  63.       stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
  64.   stu[i].ave=stu[i].sum/3;

  65.     printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);
  66. break;
  67. }
  68.    
  69.     if(i==50)
  70.    printf("查找不到!请重新输入!\n");
  71.              getch();
  72.     system("cls");
  73.     jiemian();
  74.    
  75.    
  76.   
  77. }
  78. void gn3()
  79. {
  80.          char num1,i=0;
  81.    printf("请输入要修改的学生学号:\n");
  82.    scanf("%s",stu[i].num);
  83.    printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);
  84.       printf("姓名:");
  85.       scanf("%s",stu[i].name);
  86.       printf("性别:");
  87.       scanf("%s",stu[i].sex);
  88.       printf("年龄:");
  89.       scanf("%d",&stu[i].age);
  90.       printf("请输入学生的三门成绩:\n");
  91.       printf("语文:");
  92.       scanf("%f",&stu[i].score1);
  93.       printf("数学:");
  94.       scanf("%f",&stu[i].score2);
  95.       printf("英语:");
  96.       scanf("%f",&stu[i].score3);
  97.       printf("是否继续修改:y/n?\n");
  98.    scanf("%c",&num1);
  99.    scanf("%c",&num1);
  100.     if(num1=='N' || num1=='n')
  101.     system("cls");
  102.     jiemian();
  103.   
  104. }
  105. void gn4()
  106. {
  107.       int i;
  108.    char num[50];
  109.    printf("请输入要删除的学生学号:\n");
  110.    scanf("%s",num);
  111.   
  112.    for(i=0;i<50;i++)
  113.     if(strcmp(num,stu[i].num)==0)
  114.     {
  115.      printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);
  116.   
  117.      stu[i]=del;
  118.      printf("信息已删除,按任意键返回..\n");
  119.      break;
  120.     }
  121.    
  122.      if(i==50)
  123.      printf("您输入的信息不存在!\n");
  124.      getch();
  125.      system("cls");
  126.      jiemian();


  127. }
  128. void gn5()
  129. {
  130. int i=0;
  131. stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
  132. stu[i].ave=stu[i].sum/3;
  133. printf("学号 \t姓名 \t性别 \t年龄 \t语文 \t数学 \t英语 \t总成绩 \t 平均成绩 \n");
  134. for(i=0;i<50;i++)
  135. {
  136.    if(stu[i].age==0)
  137.     break;
  138.   printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);
  139. }
  140.        printf("按任意键返回...");
  141.   getch();
  142.   system("cls");
  143.   jiemian();
  144. }
  145. void gn6()
  146. {
  147. FILE *fp;
  148. int i;
  149. char filename[50];
  150. printf("\n");
  151. printf("\n");
  152. printf("请输入要保存的文件名:");
  153. scanf("%s",filename);
  154. if((fp=fopen(filename,"wb"))==NULL)
  155.    printf("文件名为空,不能保存!\n");
  156. for(i=0;i<50;i++)
  157. {
  158.    if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
  159.     printf("文件保存失败!\n");
  160. }
  161. fclose(fp);
  162. printf("文件已保存!\n");
  163. printf("按任意键返回...\n");
  164. getch();
  165. system("cls");
  166. jiemian();
  167. }
  168. void gn7()
  169. {
  170. FILE *fp;   
  171. int i=0;                        //打开文件流
  172. char filename[50];
  173. printf("请输入文件名:");
  174. scanf("%s",filename);           //输入要载入的文件名
  175. if((fp=fopen(filename,"rb"))==0)     //如果当前目录下不存在相对应的文件,输出文件不存在,退出系统。
  176. {
  177.    printf("文件不存在!\n");
  178.    exit(0);
  179. }
  180. while(fread(&stu[i],sizeof(struct student),1,fp)!=0)//若存在,读取系统
  181. {
  182.    i++;
  183. }
  184. fclose(fp);                                            //程序结束后,关闭流。
  185. printf("信息已载入!\n");
  186. printf("按回车键返回 ");
  187. getchar();
  188. getchar();
  189. system("cls");
  190. jiemian();
  191. }
  192. void gn8()
  193. {
  194. printf("按任意键退出...");
  195. exit(0);
  196. }
  197. void xuanze()
  198. {
  199. int num;
  200. scanf("%d",&num);
  201.    switch(num)
  202. {
  203. case 1:system("cls");gn1();break;
  204. case 2:system("cls");gn2();break;
  205. case 3:system("cls");gn3();break;
  206. case 4:system("cls");gn4();break;
  207. case 5:system("cls");gn5();break;
  208. case 6:system("cls");gn6();break;
  209. case 7:system("cls");gn7();break;
  210. case 8:system("cls");gn8();break;
  211.      
  212. default:printf(" ");break;
  213.    }
  214.    
  215. }
  216. jiemian()
  217. {
  218. printf("\t\t*****************学生档案管理系统*************\n");
  219. printf("\t\t1>添加学生信息");
  220. printf("\t\t\t2>查找学生信息\n");
  221. printf("\t\t3>修改学生信息");
  222. printf("\t\t\t4>删除学生信息\n");
  223. printf("\t\t5>显示学生信息");
  224. printf("\t\t\t6>保存学生信息\n");
  225. printf("\t\t7>载入学生信息");
  226. printf("\t\t\t8>退出系统\n");
  227. printf("\t\t**********************************************\n");
  228. printf("请从1-8中选择您的操作:\n");
  229.      xuanze();


  230. }
  231. void main()
  232. {


  233.      jiemian();


  234. }
复制代码

1 个回复

正序浏览
顶一个~~:lol
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马