#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>//成绩结构体
struct score
{char snum[9];char sname[11];int chinese;int math;int english;int physics;int chemistry;int biology;int pscj;//平时成绩 float sumcj;//期末成绩float zhcj;
};//函数声明
void menu();
void lr();
void xg();
void sc();
void cx();
void xs();
void save();
void help();
void tuichu();//main函数
int main()
{int flag,n=0,count=0;//flag标志位,count计数,当前总人数//-------------判断文件里面有多少条记录--------------------//FILE *fp;fp=fopen("cj.txt","a+");if(fp==NULL){printf("打开文件失败,请重试!\n");getch(); fclose(fp);  exit(0);} int c = 0;while(!feof(fp)){char cc = fgetc(fp);if(cc==EOF){break;}//输出字符
//        putchar(cc);c++;}count = c/14;
//  printf("%d", count);
//  getch();fclose(fp);//---------------------------------//do{menu();scanf("%d",&flag);//选择操作 switch(flag){case 1: printf("请输入您要录入的人数:");scanf("%d",&n);lr(n);count += n;break;case 2: count=sc(count);break;case 3: xg(count);break;case 4: cx(count);break;case 5: xs(count);break;case 6: save();break;case 7: help();break; default:printf("输入错误,请重试!\n");getch(); } }while(flag!=0);getch();return 0;
}void menu()
{system("cls");printf("*----------------------------------------------------*\n");printf("*               欢迎使用**成绩管理系统               *\n");printf("*----------------------------------------------------*\n"); printf("*               1: 成绩录入                         *\n");printf("*               2: 删除信息                         *\n");printf("*               3: 修改成绩                         *\n");printf("*               4: 成绩查询                         *\n");printf("*               5: 显示成绩信息                     *\n");printf("*               6: 保存文件                         *\n");printf("*               7: 帮助文档                         *\n");printf("*               0: 退出系统                         *\n");printf("*----------------------------------------------------*\n");printf("选择操作<0-7>                                         \n");
}void lr(int n)
{struct score stu[100];FILE *fp;fp=fopen("cj.txt","a+");if(fp==NULL){printf("打开文件失败,请重试!\n");getch(); fclose(fp);exit(0);}printf("请输入全部学生的学号,姓名,语文成绩,数学成绩,英语成绩,物理成绩,化学成绩,生物成绩;\n"); int i;for(i=0;i<n;i++){   printf("----第%d个学生----\n", i+1);printf("学号(九位)):");scanf("%s",&stu[i].snum);getchar();printf("姓名:");scanf("%s,",&stu[i].sname);printf("语文成绩:");scanf("%d",&stu[i].chinese);printf("数学成绩:");scanf("%d",&stu[i].math);printf("英语成绩:");scanf("%d",&stu[i].english);printf("物理成绩:");scanf("%d",&stu[i].physics);printf("化学成绩:");scanf("%d",&stu[i].chemistry);printf("生物成绩:");scanf("%d",&stu[i].biology);printf("平时成绩:");scanf("%.2f",&stu[i].pscj);stu[i].sumcj = stu[i].chinese + stu[i].math + stu[i].english + stu[i].physics + stu[i].chemistry + stu[i].biology ;float zhcj = stu[i].sumcj * 0.7 + stu[i].pscj * 0.3;//写入数据 fprintf(fp,"%s\t\t%s %d %d %d %d %d %d %.2f\n",stu[i].snum,stu[i].sname,stu[i].chinese,stu[i].math,stu[i].english,stu[i].physics,stu[i].chemistry,stu[i].biology,stu[i].zhcj);} fclose(fp);printf("添加学生成功,请按任意键返回\n");getch();}//删除成绩
int sc(int n)
{struct score stu[100];struct score sub[99];//删除后的结构体数组 char stnum[9];//学号int find=0;printf("请输入你要删除的学生学号:"); scanf("%s", &stnum);FILE *fp;fp=fopen("cj.txt","r");if(fp==NULL){printf("打开文件失败,请联系管理员\n");getch(); return -1;   }int c=0;int index=0;//用于记录目标序号 while(!feof(fp))//不为空{ fscanf(fp,"%s\t\t%s %d %d %d %d %d %d %.2f\n", &stu[c].snum,&stu[c].sname,&stu[c].chinese,&stu[c].math,&stu[c].english,&stu[c].physics,&stu[c].chemistry,&stu[c].biology,&stu[c].zhcj);if(strcmp(stnum,stu[c].snum)==0){find = 1;//根据学号查找,找到赋值为1 index = c;//记录编号} c++;}fclose(fp);if(n==0){printf("已经没有学生成绩信息了,请按任意键返回\n");getch();  menu();return n;}if(find==0){printf("没有该学生成绩信息,请按任意键返回\n");getch();  menu();return n;}else {int i;//删除 for(i=0;i<c;i++){if(i < index){sub[i] = stu[i];}else{sub[i] = stu[i+1];}}fp=fopen("cj.txt","w");//写入数据 for(i=0;i<c-1;i++){fprintf(fp,"%s\t\t%s %d %d %d %d %d %d %.2f\n",sub[i].snum,sub[i].sname,sub[i].chinese,sub[i].math,sub[i].english,sub[i].physics,sub[i].chemistry,sub[i].biology,sub[i],zhcj);     } fclose(fp);printf("学号为%s的学生成绩删除成功,请按任意键返回\n",stnum);getch();menu();return n-1;}
}//3修改成绩
int xg(int n)
{   struct score stu[100];FILE *fp;char stnum[9];int find=0;  printf("请输入要修改的学生学号:");scanf("%s",stnum);fp=fopen("cj.txt","r");if(fp==NULL){printf("文件打开失败,请联系管理员\n");getch();return -1;   }int c=0;while(!feof(fp)){fscanf(fp,"%s\t\t%s %d %d %d %d %d %d %.2f\n",&stu[c].snum,&stu[c].sname,&stu[c].chinese,&stu[c].math,&stu[c].english,&stu[c].physics,&stu[c].chemistry,&stu[c].biology,&stu[c],pscj);if(strcmp(stnum,stu[c].snum)==0)   {find=1;//修改操作 int num;//用于switch函数的子菜单 printf("***************************************************\n");printf("*----1.修改学号--------  -  -----2.修改语文成绩-------*\n");printf("*----3.修改数学成绩----  -  -----4.修改英语成绩--*\n");printf("*----5.修改物理成绩----  -  -----6.修改化学成绩---*\n");printf("*----7.修改生物成绩----  -  -----8.修改平时成绩---------*\n");printf("*------------9.退出本菜单------------------------------*\n"); printf("***************************************************\n\n");printf("请输入子菜单:");scanf("%d",&num);switch(num){case 1:  printf("请输入新的学号:\n");getchar();gets(ID);strcpy(stu[i].snum,ID);break;case 2:getchar();    printf("请输入新的语文成绩:\n");scanf("%f",&score);stu[i].score[0]=score;break;case 3:printf("请输入新的数学成绩:\n");scanf("%f",&score);stu[i].score[1]=score;break;case 4:printf("请输入新的英语成绩:\n");scanf("%f",&score);stu[i].score[2]=score;break;case 5:printf("请输入新的物理成绩:\n");scanf("%f",&score);stu[i].score[3]=score;break;case 6:printf("请输入新的化学成绩:\n");scanf("%f",&score);stu[i].score[4]=score;break;case 7:printf("请输入新的生物成绩:\n");scanf("%f",&score);stu[i].score[5]=score;break;case 8:printf("请输入新的平时成绩:\n");scanf("%f",&score);stu[i].score[6]=score;break;case 9:return;break; default:printf("请在1--9之间选择!\n");}if(num>0&&num<9)printf("修改成功,记得保存哟!!!\n");break;//找到学生,结束循环;   }}c++;    }fclose(fp);if(find==0){printf("没有找到要删除的学生记录,请按任意键退出\n");getch(); } else{fp=fopen("cj.txt","w");int i; for(i=0;i<n;i++){//更新数据 fprintf(fp,"%s %s %d %d %d %d %d\n",stu[i].snum,stu[i].sname,stu[i].chinese,stu[i].math,stu[i].english,stu[i].sumcj,stu[i].rank);   }fclose(fp);     printf("学号为%s同学的成绩已经修改成功,请按任意键返回",stnum);getch(); }showmenu();return 1;
}//4成绩查询
void cx(int n) //n全班人数
{int k;do{showcxmenu();scanf("%d",&k); switch(k){ case 1:xhcx(n);break;//学号查询 case 2:xmcx(n);break;//姓名查询 case 3:allrankcx(n);break;//全班排名查询case 0:break;default:printf("输入错误,请重新选择\n");getch();} }while(k!=0);return;
}//查询菜单
void showcxmenu()
{system("cls");printf("*----------------------------------------------------*\n");printf("*                    成绩查询菜单                    *\n");printf("*----------------------------------------------------*\n"); printf("*               1: 按学号查询                       *\n");printf("*               2: 按姓名查询                       *\n");printf("*               0: 退出查询系统,返回主系统         *\n");printf("*----------------------------------------------------*\n");printf("选择操作<0-2>                                         \n");
}//学号查询
void xhcx(int n)
{   struct score stu[100];char snum[9];printf("请输入你要查询学生的学号:");scanf("%s",&snum);FILE *fp; fp=fopen("cj.txt ","r");if(fp==NULL){printf("打开文件失败!\n");getch();exit(0); }int c = 0;while(!feof(fp)){fscanf(fp,"%s\t\t%s %d %d %d %d %d %d %.2f\n",&stu[c].snum,&stu[c].sname,&stu[c].chinese,&stu[c].math,&stu[c].english,&stu[c].physics,&stu[c].chemistry,&stu[c].biology,&stu[c],zhcj);c++;}int i;for(i=0;i<n;i++){if(strcmp(snum,stu[i].snum)==0){printf("学号\t\t姓名\t语文\t数学\t英语\t物理\t化学\t生物\t综合\n");printf("%s\t\t%s\t%d\t%d\t%d\t%d\t%d\t%d\t%.2f\n",stu[i].snum,stu[i].sname,stu[i].chinese,stu[i].math,stu[i].english,stu[i].physics,stu[i].chemistry,stu[i].biology,istu[c],zhcj);printf("按任意键返回\n");getch();fclose(fp);return;           }}printf("未找到要查询学生的成绩,请重试!\n");getch();fclose(fp);return;
}
//姓名查询
void xmcx(int n)
{struct score stu[100]; char sname[11];printf("请输入你要查询学生的姓名:");scanf("%s",&sname);FILE *fp; fp=fopen("cj.txt ","r");if(fp==NULL){printf("打开文件失败!\n");getch();exit(0); }int c = 0;while(!feof(fp)){fscanf(fp,"%s\t\t%s %d %d %d %d %d %d %.2f\n",&stu[c].snum,&stu[c].sname,&stu[c].chinese,&stu[c].math,&stu[c].english,&stu[c].physics,&stu[c].chemistry,&stu[c].biology,&stu[c],zhcj);c++;}int i;for(i=0;i<n;i++){if(strcmp(sname,stu[i].sname)==0){printf("学号\t\t姓名\t语文\t数学\t英语\t物理\t化学\t生物\t综合\n");printf("%s\t\t%s\t%d\t%d\t%d\t%d\t%d\t%d\t%.2f\n",stu[i].snum,stu[i].sname,stu[i].chinese,stu[i].math,stu[i].english,stu[i].physics,stu[i].chemistry,stu[i].biology,istu[c],zhcj);printf("按任意键返回\n");getch();fclose(fp);return;}}printf("未找到要查询学生的成绩,请重试!\n");getch();fclose(fp);return;
}//显示成绩信息
void xs(int n)
{struct score stu[100];int i;   printf("成绩信息如下:\n");FILE *fp;fp=fopen("cj.txt","r");if(fp==NULL){printf("打开文件失败,请重试!\n");getch(); fclose(fp);  exit(0);} printf("学号\t\t姓名\t语文\t数学\t英语\t物理\t化学\t生物\t综合\n"); int c = 0;while(!feof(fp)){fscanf(fp,"%s\t\t%s %d %d %d %d %d %d %.2f\n",&stu[c].snum,&stu[c].sname,&stu[c].chinese,&stu[c].math,&stu[c].english,&stu[c].physics,&stu[c].chemistry,&stu[c].biology,&stu[c].zhcj);c++;}if(n!=0){//人数不为0 for(i=0;i<c;i++){printf("%s\t\t%s\t%d\t%d\t%d\t%d\t%d\t%d\t%.2f\n",stu[i].snum,stu[i].sname,stu[i].chinese,stu[i].math,stu[i].english,stu[i].physics,stu[i].chemistry,stu[i].biology,stu[c].zhcj);}  }fclose(fp); printf("显示完毕 ,请按任意键返回\n");getch();return;
}void save()
{}
void help()
{printf("\n这是一个学生信息管理系统,为了帮助您更快的了解使用它,请先仔细阅读以下注意事项:\n");printf("\n************************************注意事项:**********************************\n ");printf("\n       1、请根据提示进行操作!\n");printf("\n       2、初次使用请先选择增加学生信息!\n");printf("\n       3、修改或者增加学生信息后切记保存!\n");printf("\n       4、学生信息包括学号,姓名,语文成绩,数学成绩,英语成绩,物理成绩,化学成绩,生物成绩!\n");printf("\n       5、学号长度为9,编码规则为:入学年份+在读年级+在读班级+班内编号\n");printf("\n          学号长度为9,编码规入学年份用4位整数构成字符串,如2015年入学则表示为:\n");printf("\n          '2015';在读年级用1位整数构成字符串,如正在1年级读书则表示为:''1'',\n");printf("\n          在读班级用2位整数构成字符串,如正在1班读书则表示为:”01”,班内编号用2位整数\n");printf("\n          构成字符串,如在班内编号为23号则为:入学年份+在读年级+在读班级+班内编号\n");printf("\n***********************************************************************************\n"); }//退出系统
void tuichu()
{printf("感谢您的使用,欢迎下次使用!\n");getch();    return;
}

dnklxxzzxz相关推荐

最新文章

  1. 什么是“ 2的补码”?
  2. Music Notes(前缀和+二分)
  3. 虚拟服务器 cms安装,轻量化云服务器怎么安装cms
  4. 增加新分类daily——“每天学了啥?”
  5. php自动关闭页面代码,自动生成伪静态页面代码(简易版)
  6. 57 FI配置-财务会计-固定资产-资产数据传输-定义传输日期和附加参数
  7. 【java】java String 源码
  8. 【JS点滴】substring和substr以及slice和splice的用法和区别。
  9. 实战:tomcat版本升级
  10. libRTMP 整体说明
  11. 随机预言机模型 Random Oracle Model
  12. Unity3d基于订阅者模式实现事件机制_解决装箱拆箱问题和注册的监听事件单一问题
  13. R语言(4) plot函数介绍
  14. Yolov5如何在训练意外中断后接续训练
  15. 如何在html里面搜索代码,怎样在网页里查找关键字
  16. Android,提供视频开发测试地址(视频下载和视频播放所用)
  17. SQL Server报错:选择列表中的列无效,因为该列没有包含在聚合函数或 GROUP BY 子句中
  18. 暴走gif失落的出处_暴走gif表情包 - 暴走gif微信表情包 - 暴走gifQQ表情包 - 发表情 fabiaoqing.com...
  19. 苏州胜网与一番车道就IDC项目全面开启战略合作
  20. 大型网站架构改进历程

热门文章

  1. 细节决定ERP项目启动会的成败
  2. Deepin - deepin20更换软件源、镜像源
  3. 收到开复老师亲笔签名的自传:)《小鸟》更需加油哦!
  4. 设计模式的意图和适用性
  5. php中求解二元一次方程,二元一次方程组及其解法(第1课时)
  6. Excel 2010 SQL应用003修改数据源的连接路径
  7. 三角函数π/2转化_三个视频搞定三角函数(诱导篇):同角三角函数关系式、诱导公式...
  8. Bootstrap 插件Affix
  9. redis+lua实现抢红包
  10. 福田区卫生局社区信息平台