版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#include <stdio.h> typedef struct int Id; char name10; char sex6; int room; int tel20; StudentInfo; typedef struct int Id; char courseNo10; char courseName20; float a; / 课程学分 float b; / 平时成绩 float c; / 实验成绩 float d; / 卷面成绩 float e; / 综合成绩 float f; / 实际学分 GradeInfo;/ 定义结构数组为全局变量 StudentInfo si1
2、00; / 学生信息结构数组 GradeInfo gi500; / 学生成绩结构数组 int sp=0; / 学生信息结构数组中学生数 int gp=0; / 学生成绩结构数组中成绩数 void ReadFile();/ 读取文件 void DisplayMainMenu();/ 主菜单 void DataInput();/ 数据录入 void DataQuery();/ 数据查询 void DataDelete();/ 数据删除 void DataSort();/ 排序 void QueryById(int );/ 按学号查询 void QueryByRoom(int );/ 按宿舍查询 v
3、oid QueryGrade(int );/ 成绩查询 void sort1();/ 按综合成绩排序 void sort2();/ 按实得学分排序 void gradeput();void e_min(); void main() int x;, 采用子函数的形式可以使主程ReadFile(); / 从文件中读取数据对两个结构数组赋值 序结构清楚int flag =1; while (flag)DisplayMainMenu(); / 因为要多次调用工作菜单,要采用子函数的形式 scanf ("%d",&x);switch (x)case 1 : DataInput
4、(); break; /case 2 : DataQuery(); break; /case 3 : DataDelete(); break; /case 4 : DataSort(); break; /case 5 : e_min(); break;case 6 : flag = 0;void ReadFile()FILE *fp;fp = fopen("C:A.txt","r+");while (!feof(fp)/ 检查文件是否结束fscanf(fp,"%d%s%s%d%s", &sisp.Id,,si
5、sp.sex,&sisp.room,sisp.tel); sp+;fclose (fp);fp = fopen("C:B.txt","r+");while (!feof(fp)fscanf (fp,"%d%s%s%f%f%f%f%f%f", &gigp.Id,gigp.courseNo,gigp.courseName,&gigp.a,&gigp.b,&gigp.c, &gigp.d,&gigp.e,&gigp.f);if (gigp.c=-1) gigp.e=0.3*gi
6、gp.b+0.7*gigp.d;else gigp.e=0.15*gigp.b+0.15*gigp.c+0.7*gigp.d;if ( gigp.e>=90.0) gigp.f = gigp.a;else if (gigp.e>=80.0) gigp.f=gigp.a *0.8;else if (gigp.e>=70.0) gigp.f=gigp.a *0.75;else if (gigp.e>=60.0)gigp.f=gigp.a*0.6;else gigp.f=0;gp+;/ 学生成绩结构数组中成绩数 +1 fclose(fp);void DisplayMainMe
7、nu()printf(" *printf("(1)数据录入nprintf("(2)数据查询n "printf("(3)数据删除n "printf("(4)数据排序n "printf("(6)程序结束n "");););););*nn");printf(" * *");printf("n 请输入你要执行的任务 :");void DataInput()int m=0,i;printf(" 请输入您想录入的学生数目 :")
8、;scanf("%d",&m);printf(" 学生的学号 课程编号 课程名称 学分 平时成绩 实验成绩 卷面成绩 n"); for(i=gp;i<=m+gp-1;i+)scanf ("%d%s%s%f%f%f%f",&gii.Id,gii.courseNo,gii.courseName,&gii.a,&gii.b,&gii.c, &gii.d);if (gii.c=-1)gii.e=0.3*gii.b+0.7*gii.d;/ 计算综合成绩 elsegii.e=0.15*gii.
9、b+0.15*gii.c+0.7*gii.d;printf(" 综合成绩为 :%f",gii.e);if ( gii.e>=90) gii.f=gii.a;else if ( gi i.e >= 80)gii.f=gii.a *0.8;else if ( gii.e >= 70)gii.f=gii.a *0.75;else if ( gii.e >= 60)gii.f=gii.a *0.6;else gii.f=0;/ 计算实得学分printf(" 实得学分为 :%fn",gii.f);FILE *fp;fp=fopen(&quo
10、t;C:B.TXT","w"); if(fp=fopen("C:B.TXT","w")=NULL)printf(" 无法打开文件 n");return; for(i=0;i<gp+m;i+)gii.d,gii.e,n");fprintf(fp,"n%d %s %s %.3f %.3f %.3f %f %f %f", gii.Id,gii.courseNo,gii.courseName,gii.a,gii.b,gigp.c, gii.f);fclose(fp);void
11、DataQuery()int x,y,z;printf( "n 1) 学生基本情况查询 n 2) 成绩查询 n 3) 查询综合成绩最低分 scanf("%d",&x);if (x = 1) / 查询学生信息printf ("1) 按学号查询 2) 按宿舍查询 n");scanf("%d",&y);if (y = 1 )printf ( " 输入学号 n");scanf ("%d",&z);QueryById(z);/ 按学号查询if (y = 2)printf
12、( " 输入宿舍号 n");scanf ("%d",&z); QueryByRoom(z);/ 按宿舍查询if ( x =2) / 查询成绩信息printf ( " 输入学号 n");scanf ("%d",&y);QueryGrade(y); if (x=3)e_min();void DataDelete()int x;int i=0;int k,d;printf(" 学生基本信息 ");printf ("n 学号 姓名 性别 宿舍号码 电话号码 n");
13、for( i=0;i<sp-1;i+)printf (" %d %s %s %dprintf(" 学生成绩基本信息 ");printf("n 学号 课程编号 课程名称 得学分 n");%sn",sii.Id,,sii.sex,sii.room,sii.tel);学分 平时成绩 实验成绩 卷面成绩 综合成绩for( i=0;i<gp-1;i+)printf("%d %s %s %f%f %f %f %f %fn",gii.Id,gii.courseNo,gii.courseName,gii
14、.a,gii.b,gii.c,gii.d,g ii.e,gii.f);printf( " 输入学号 n"); scanf( "%d",&x);i=0;while( sii.Id != x) i+;if (i<sp-1)for ( k=i; k<sp-1; k+)sik = sik+1; / 删除一个数据后,其他数据前移 if (i<sp) sp-;d=0; / 成绩数组中,有多个相同的学号,都要删除,并且后面的数据需要前移for (k=0;k<gp;k+)if (gik.Id=x) d+;else gik-d=gik;gp
15、=gp-d;printf(" 学生基本信息 ");printf ("n 学号 姓名 性别 宿舍号码 电话号码 n"); for(i=0;i<sp-1;i+)printf (" %d %s %s %d %sn",sii.Id,,sii.sex,sii.room,sii.tel);printf(" 学生成绩基本信息 ");printf("n 学号 课程编号 课程名称 学分 平时成绩 实验成绩 卷面成绩 综合成绩 实 得学分 n");for(i=0;i<gp-1;i+)pr
16、intf("%d %s %s %f %f %f %f %f %fn",gii.Id,gii.courseNo,gii.courseName,gii.a,gii.b,gii.c,gii.d,g ii.e,gii.f);void QueryById(int x)int i;for (i=0;i<sp;i+)if ( sii.Id = x )printf ("n 学号 姓名 性别 宿舍号码 电话号码 n");printf (" %d %s %s %d %sn",sii.Id,,sii.sex,sii.room,sii.
17、tel);void QueryByRoom(int x)int i;for (i=0;i<sp;i+)if ( sii.room = x )printf ("n 学号 姓名 性别 宿舍号码 电话号码 n");printf (" %d %s %s %d%sn",sii.Id,,sii.sex,sii.room,sii.tel);void QueryGrade(int x)int i;int sc=0;float sg=0;printf("n 学号 课程编号 课程名称 学分 平时成绩 实验成绩 卷面成绩 综合成绩 实 得学分
18、n");for (i=0;i<gp;i+)if ( gii.Id = x ) sc+; sg += gii.f; printf("%d%s %s %.3f %.3f %.3f %f %f %fn",gii.Id,gii.courseNo,gii.courseName,gii.a, gii.b,gii.c,gii.d,gii.e,gii.f);printf (" 共修: %d 科,实得总分为: %fn",sc,sg);void DataSort()int x;printf (" 1) 综合成绩排序 n 2) 实际学分排序 n&qu
19、ot;); scanf("%d",&x);if ( x = 1 ) sort1();if ( x = 2 ) sort2();void sort1()int i,j;GradeInfo t;for (i=gp-1;i>=1;i-)for (j=0;j<i;j+)if (gij.e>gij+1.e)/ 如果改为 gij.e< gij+1.e 则为逆序t=gij;gij = gij+1; gij+1 = t;gradeput(); FILE *fp;按综合成绩排序 .TXT","w"); 按综合成绩排序 .TXT&q
20、uot;,"w")=NULL)printf(" 无法打开文件 n");return;for( i=0;i<gp;i+)fprintf(fp,"%d %s %s %f %f %f %f %f %fn",gii.Id,gii.courseNo,gii.courseName,gii.a,gii.b,gii.c,gii.d,g ii.e,gii.f);fclose(fp);void sort2()int i,j;GradeInfo t;for (i=gp-1;i>=1;i-)for (j=0;j<i;j+)if (gij.f>gij+1.f) / 如果改为 gij.f< gij+1.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度宠物医院宠物医院宠物健康数据管理合同4篇
- 二零二五年版铝合金散热器研发与生产合同样本2篇
- 引进创新创业团队2025年度协议3篇
- 2025年度个人商铺租赁合同装修工程监督合同4篇
- 二零二五年度地质灾害风险评估与防治合同3篇
- 2025年度个人闲置土地承包权置换合同范本4篇
- 2025年度大型活动策划与执行服务合同模板4篇
- 二零二五年度建筑废弃物处理项目担保合同范本3篇
- 二婚家庭专用2024离婚协议范本样本版B版
- 2025年度赶工环保设备赶工销售合作协议书
- 高考语文复习【知识精研】《千里江山图》高考真题说题课件
- 河北省承德市2023-2024学年高一上学期期末物理试卷(含答案)
- 高中物理斜面模型大全(80个)
- 012主要研究者(PI)职责药物临床试验机构GCP SOP
- 农耕研学活动方案种小麦
- 2024年佛山市劳动合同条例
- 污水管网规划建设方案
- 城镇智慧排水系统技术标准
- 采购管理制度及流程采购管理制度及流程
- 五年级美术下册第9课《写意蔬果》-优秀课件4人教版
- 节能降耗课件
评论
0/150
提交评论