C语言课程设计实习报告_第1页
C语言课程设计实习报告_第2页
C语言课程设计实习报告_第3页
C语言课程设计实习报告_第4页
C语言课程设计实习报告_第5页
已阅读5页,还剩21页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、优质文本C语言课程设计实习报告学 号:201505987姓 名:廖伯龙班 级:数学1502指导老师:何黎霞完成日期:2016.06.16优质文本学生成绩管理系统 一、摘要 二、系统设计、实现与测试数据 1.系统设计 2.系统实现 3.测试数据 三、结论 四、附录一、摘要 通过课程设计,我对C语言有了更深刻的理解,让我们把学到的理论应用于具体的实践中,锻炼了我们各方面的能力,从而让我们更快提高。通过一些简单函数的叠加构成了一个简易的学生管理系统。本系统具有以下几个功能:计算平均分,创立成绩表和成绩条,查询优等生和不及格学生名单等。二、系统设计、实现与数据测试 1、系统设计 本系统通过读取两个记事

2、本文件数据,保存在相应的结构体当中,通过函数创立菜单,根据菜单提示,用户可以自行选择系统的功能,可实现计算平均分及加权平均分,创立成绩单和成绩条,查询优等生和不及格学生名单以及每门课各分数段的人数等功能。 1、功能流程图主要功能显示学生成绩等级显示每门课各分数段人数查询优等生和不及格学生名单计算平均分及加权平均分创立学生成绩表和成绩条优质文本2、系统实现与测试数据 1、原始文件sx150209.txt和sx02KC.txt3、测试数据与功能实现代码测试:菜单:优等生名单:各科平均分:每科各分数段人数:学生成绩等级:学生成绩表:三、结论 通过本次课程设计,我明白了C语言编程并不是简单的事情,认为

3、理所应当正确的代码却在调试时出现了错误,在编写程序时应理解C语言的规那么并按照它的规那么来写程序,这样才能写出正确的程序。另外,结构体、函数以及指针在单独学习时并不觉得难,但在写程序中一起用到时遇到了许多困难,通过长时间的分析将问题细细划分与同学讨论,最终完成了代码的编写,同时也体会到了完成编程时的喜悦。四:附录源代码:#define M 20#define N 5#include<stdio.h>#include<stdlib.h>#include<math.h>struct student/结构体:学生 int xuehao; char name10;

4、int scoreN; int mingci; float jqave;stM;struct kecheng/结构体:课程 int num; char kcname10; float xuefen; float ave; int fsdrsN;courseN;void read1()/函数:读文件1 int i,j; char str1100; FILE *fp; if(fp=fopen("c:sx150209.txt","r")=NULL) printf("Can't open the file!n"); exit(0);

5、fgets(str1,100,fp); for(i=0;i<M;i+) fscanf(fp,"%d%s",&sti.xuehao,); for(j=0;j<N;j+) fscanf(fp,"%d",&sti.scorej); fclose(fp);void read2()/函数:读文件2 int i; char str2100; FILE *fp; if(fp=fopen("C:sx02KC.txt","r")=NULL) printf("Can't o

6、pen the file!n"); exit(0); fgets(str2,100,fp); for(i=0;i<N;i+) fscanf(fp,"%d%s%f",&coursei.num,coursei.kcname,&coursei.xuefen); fclose(fp);void jqave()/函数:求加权平均分 int i,j; float s=0,sum; for(j=0;j<N;j+) s=s+coursej.xuefen; for(i=0;i<M;i+) sum=0; for(j=0;j<N;j+) sum=

7、sum+sti.scorej*coursej.xuefen; sti.jqave=sum/s; void mingci()/函数:求名次 int i,j; for(i=0;i<M;i+) sti.mingci=1; for(j=0;j<M;j+) if(sti.jqave<stj.jqave) sti.mingci+;void kcave()/函数:求课程平均分 int i,j; float sum;printf("英语 C语言 数学 物理 毛概n"); for(i=0;i<N;i+) sum=0.0; for(j=0;j<M;j+) sum=

8、sum+stj.scorei; coursei.ave=sum/M; printf("%-7.2f",coursei.ave);/printf("nnn");void fsdrs()/函数:求每门课各分数段人数 int i,j,k;printf(" 60分以下 6069 7079 8089 90分以上n"); for(j=0;j<N;j+) coursej.fsdrs0=coursej.fsdrs1=coursej.fsdrs2=coursej.fsdrs3=coursej.fsdrs4=0; for(i=0;i<M;i+

9、) if(sti.scorej<60) coursej.fsdrs0+; else if(sti.scorej>=60&&sti.scorej<69) coursej.fsdrs1+; else if(sti.scorej>=70&&sti.scorej<79) coursej.fsdrs2+; else if(sti.scorej>=80&&sti.scorej<89) coursej.fsdrs3+; else coursej.fsdrs4+; printf("英语 "); for

10、(k=0;k<N;k+) printf("%8d",course0.fsdrsk);printf("n"); printf("C语言 "); for(k=0;k<N;k+) printf("%8d",course1.fsdrsk);printf("n"); printf("数学 "); for(k=0;k<N;k+) printf("%8d",course2.fsdrsk);printf("n"); printf(&q

11、uot;物理 "); for(k=0;k<N;k+) printf("%8d",course3.fsdrsk);printf("n"); printf("毛概 "); for(k=0;k<N;k+) printf("%8d",course4.fsdrsk);printf("n");void writemc()/函数:新建文件名次 int i,j; FILE *fp; if(fp=fopen("C:MC150209.txt","w")=

12、NULL) printf("fail to build a new file!n"); exit(0); fprintf(fp,"名次 学号 姓名 英语 C语言 数学 物理 毛概 加权平均分n"); printf("名次 学号 姓名 英语 C语言 数学 物理 毛概 加权平均分n"); for(i=0;i<M;i+) fprintf(fp,"%3d%8d%8s",sti.mingci,sti.xuehao,); printf("%3d%8d%8s",sti.mingci,st

13、i.xuehao,); for(j=0;j<N;j+) fprintf(fp,"%4d",sti.scorej); printf("%4d",sti.scorej); fprintf(fp,"%6.2fn",sti.jqave); printf("%6.2fn",sti.jqave); printf("该文件已写入到C:MC150209.txt中nn"); fclose(fp);void writekc()/函数:新建文件课程 int i,j; FILE *fp; if(f

14、p=fopen("C:KC150209.txt","w")=NULL) printf("fail to build a new file!n"); exit(0); fprintf(fp,"编号 课程名称 课程学分 课程平均分 优秀 良好 中等 及格 不及格n"); printf("编号 课程名称 课程学分 课程平均分 优秀 良好 中等 及格 不及格n"); for(i=0;i<N;i+) fprintf(fp,"%3d%10s%7.1f%9.1f",coursei.n

15、um,coursei.kcname,coursei.xuefen,coursei.ave); printf("%3d%10s%7.1f%9.1f%",coursei.num,coursei.kcname,coursei.xuefen,coursei.ave); for(j=4;j>=0;j-) fprintf(fp,"%6d",coursei.fsdrsj); printf("%6d",coursei.fsdrsj); fprintf(fp,"n"); printf("n"); print

16、f("该文件已写入到C:KC150209.txt中nn"); fclose(fp);void writecjt()/函数:新建文件成绩条 int i,j; FILE *fp; if(fp=fopen("C:CJT150209.txt","w")=NULL) printf("fail to build a new file!n"); exit(0); for(i=0;i<M;i+) fprintf(fp,"名次 学号 姓名 英语 C语言 数学 物理 毛概 加权平均分n"); printf(&

17、quot;名次 学号 姓名 英语 C语言 数学 物理 毛概 加权平均分n"); fprintf(fp,"%3d%8d%8s",sti.mingci,sti.xuehao,); printf("%3d%8d%8s",sti.mingci,sti.xuehao,); for(j=0;j<N;j+) fprintf(fp,"%7d",sti.scorej); printf("%7d",sti.scorej); fprintf(fp,"%8.2fnnn",

18、sti.jqave); printf("%8.2fnnn",sti.jqave); fclose(fp);void bjgmd()/函数:显示不及格名单 int i,j,k; printf("不及格学生学号 姓名 课程名称 课程学分 分数n"); for(i=0;i<M;i+) for(j=0;j<N;j+) if(sti.scorej<60) printf("%8d%10s%10s%5.1f%4dn",sti.xuehao,,coursej.kcname,coursej.xuefen,sti.sco

19、rej); break; for(k=j+1;k<N;k+) if(sti.scorek<60) printf("%10s%5.1f%4dn",coursek.kcname,coursek.xuefen,sti.scorek); void ydsmd()/函数:显示优等生名单 int i,j; printf("名次 学号 姓名 英语 C语言 数学 物理 毛概 加权平均分n"); for(i=0;i<M;i+) if(sti.jqave>=90|sti.mingci<=3) printf("%3d%8d%8s&quo

20、t;,sti.mingci,sti.xuehao,); for(j=0;j<N;j+) printf("%4d",sti.scorej); printf("%6.2fn",sti.jqave); for(j=0;j<N;j+) if(sti.jqave>=85&&sti.jqave<90&&sti.mingci>3&&sti.scorej>=98) printf("%3d%8d%8s",sti.mingci,sti.xuehao,); for(j=0;j<N;j+) printf("%4d",sti.scorej); printf("%6.2fn",sti.jqave); void caidan()/函数:显

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论