欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    学籍管理系统C语言课程设计.doc

    • 资源ID:63967683       资源大小:31KB        全文页数:9页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    学籍管理系统C语言课程设计.doc

    #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 si100; / 学生信息结构数组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 );/按宿舍查询void 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(); 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,sisp.name,sisp.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*gigp.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+;/ 学生成绩结构数组中成绩数+1fclose(fp);void DisplayMainMenu()printf("*欢迎进入学籍信息系统*nn");printf(" (1) 数据录入 n ");printf(" (2) 数据查询 n ");printf(" (3) 数据删除 n ");printf(" (4) 数据排序 n ");printf(" (6) 程序结束 n ");printf("*");printf("n请输入你要执行的任务:");void DataInput()int m=0,i;printf("请输入您想录入的学生数目:");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;/计算综合成绩else gii.e=0.15*gii.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("C:B.TXT","w");if(fp=fopen("C:B.TXT","w")=NULL)printf("无法打开文件n");return;for(i=0;i<gp+m;i+)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.d,gii.e, gii.f);fclose(fp);void DataQuery()int x,y,z;printf( "n 1)学生基本情况查询n 2)成绩查询n 3) 查询综合成绩最低分n");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 ( " 输入宿舍号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"); for( i=0;i<sp-1;i+) printf ("%d%s%s%d%sn",sii.Id,sii.name,sii.sex,sii.room,sii.tel);printf("学生成绩基本信息");printf("n学号 课程编号 课程名称 学分 平时成绩 实验成绩 卷面成绩 综合成绩 实得学分n");for( i=0;i<gp-1;i+)printf("%d %s %s %f%f %f %f %f %fn",gii.Id,gii.courseNo,gii.courseName,gii.a,gii.b,gii.c,gii.d,gii.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=gp-d;printf("学生基本信息");printf ("n学号姓名性别宿舍号码电话号码n"); for(i=0;i<sp-1;i+) printf ("%d%s%s%d%sn",sii.Id,sii.name,sii.sex,sii.room,sii.tel);printf("学生成绩基本信息");printf("n学号 课程编号 课程名称 学分 平时成绩 实验成绩 卷面成绩 综合成绩 实得学分n");for(i=0;i<gp-1;i+)printf("%d %s %s %f%f %f %f %f %fn",gii.Id,gii.courseNo,gii.courseName,gii.a,gii.b,gii.c,gii.d,gii.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.name,sii.sex,sii.room,sii.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.name,sii.sex,sii.room,sii.tel);void QueryGrade(int x)int i;int sc=0;float sg=0;printf("n学号 课程编号 课程名称 学分 平时成绩 实验成绩 卷面成绩 综合成绩 实得学分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)综合成绩排序n2)实际学分排序n");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;fp=fopen("C:按综合成绩排序.TXT","w");if(fp=fopen("C:按综合成绩排序.TXT","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,gii.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.f 则为逆序 t=gij;gij = gij+1;gij+1 = t;gradeput();FILE *fp;fp=fopen("C:按学分排序.TXT","w");if(fp=fopen("C:按学分排序.TXT","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,gii.e,gii.f);fclose(fp);void gradeput()int i;printf("n学号 课程编号 课程名称 学分 平时成绩 实验成绩 卷面成绩 综合成绩 实得学分n");for( i=0;i<gp;i+)printf("%d %s %s %f%f %f %f %f %fn",gii.Id,gii.courseNo,gii.courseName,gii.a,gii.b,gii.c,gii.d,gii.e,gii.f);void e_min()float emin=100;int i,j;for (i=gp-1;i>=1;i-)if(gii.e<emin)emin=gii.e;printf("综合成绩最低分为:%fn",emin);

    注意事项

    本文(学籍管理系统C语言课程设计.doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开