ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:349.75KB ,
资源ID:7251398      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7251398.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言程序设计课程设计实习报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言程序设计课程设计实习报告.docx

1、C语言程序设计课程设计实习报告长江大学C语言程序设计课程设计实习报告 题 目: 学生成绩管理系统 姓 名: 陈桥 学 院: 计算机科学学院 专 业: 教育技术学 班 级: 教技 11001 学 号: 201003885 指导教师: 马老师 康老师 2011年12月19日目 录一 设计目的1二 课程设计摘要 2三 课程设计的任务与数据3四 系统功能模块 4五 详细设计(各功能模块的具体实现算法流程图) 5六 调试分析(包含各模块的测试用例及测试结果) 6七 总结 7一、设计目的1.进一步熟悉VC6.0的开发环境,掌握基本的编程方法,熟悉用C语言完成一个应用程序的设计过程、掌握有关编辑和调试程序的

2、方法和技巧;2.主要掌握C语言中的结果提、指针及文件操作等内容;3.了解开发简单应用程序的全过程,包括:分析、设计、编程、调试和编写报告。二、课程设计摘要第一步 原始数据(建立两个数据文件)1. 文件1用来存放学生成绩2. 文件2用来存放课程学分第二步 程序设计思想1. 定义两个结构体数组用来存放文件1和文件2的内容。2. 编写各个函数对应各个应实现的功能。3. 编写第一个函数ReadDat1( )读取文件1(jj110014.txt)读取学生成绩4. 编写第二个函数ReadDat2( )读取文件2(jj01kc.txt)读取课程学分5. 编写第三个函数pj( )计算各个同学的加权平均值6.

3、编写第四个函数writecj()计算每个同学的名次,同时创建文本文件ksMC110014.txt写入数据,包括各个学生的学号、名次、姓名、各科成绩、加权平均值。7. 编写第五个函数kc( )统计全班每门课程的平均分和标准差,并计算各分数段(60分以下;6069;7079;8089;90分以上的学生人数)。课程设计的计算公式为:式中:y为课程标准差,xi 为第i个学生成绩, 为本门课程的算术平均成绩,N为学生数。创建txt文本文件kskcjj110014.txt写入数据,包括课程编号、课程名称、课程学分、标准差、分数段人数统计。7编写第六个函数cjt( )打印每名学生的成绩条,同时创建txt文本

4、文件kscjt110014.txt写入成绩条内容。8编写第七个函数bjg( )屏幕显示所有存在不及格课程的学生名单(含学号、不及格课程名称、课程的学分及成绩)。9编写第八个函数yxiu( )屏幕显示优等生名单(含学号、N门课成绩、平均分、名次)。三、程序设计的任务与数据1.原始文件用记事本新建一文本文件,文件名为:“班名+序号”,将本班的M名学生在本学期的N门考试课的成绩(要求用真实的课程名、假想的分数,并要求将自己的学号假定为1,将自己的每门课的分数都定在90分以上,而将别人的每门课的分数都定在95分以下。)输入到这个文件中,建议按如下形式存放(注:20M50、5N8,下文以M=4,N=3为

5、例): 学号 姓名 英语 C语言 数学 1 我自己 96 93 99 2 张某 76 89 89 3 李某 91 96 67 4 王某 75 58 56 jj110014.txt 用记事本新建另一文本文件,文件名为:“班名+KC”,将本班本学期的N门真实的课程名及其学分输入到这个数据文件中,建议按如下列形式存放: 编号 课程名称 课程学分1 英语 6.02 C语言 4.53 数学 5.5jj01kc.txt2课设任务在主函数中读入两个原始数据文件的内容,保存在对应的结构体数组中,并根据以上内容计算每个学生N门课的加权平均分(保留1位小数,4舍5入),并按平均分排列名次,平均分相同则名次并列。然

6、后显示菜单,利用菜单调用各个函数,分别完成如下功能: 1) 用C语言创建一个数据文件,文件名为:“MC+班号+序号”,如信计0901班的12号同学所建的文件名应为:“MC1090221.txt”。用来存放班级排名后的成绩表,要求按以下形式存放。 名次 学号 姓名 英语 C语言 数学 平均成绩 1 1 我自己 96 93 99 95.5 3 2 张某 76 89 89 80.5 4 3 李某 91 96 67 78.2 2 4 王某 75 58 56 88.8 5 5 赵某 58 67 77 68.5 2) 分别统计全班每门课的平均分和标准差,并计算各分数段(60分以下;6069;7079;80

7、89;90分以上)的学生人数。课程标准差的计算公式为:式中:y为课程标准差,xi 为第i个学生成绩, 为本门课程的算术平均成绩,N为学生数。3) 用C语言创建一个数据文件,文件名为:“KC+班号+序号”, hx1090121.txt 编号 课程名称 课程学分 标准差 优秀 良好 中等 及格 不及格1 英语 6.0 16.8 3 10 18 15 3 2 C语言 4.5 11.7 1 5 20 13 83 数学 5.5 18.5 9 12 19 8 14) 打印每名学生成绩条,结果存放到用C语言创建的一个数据文件中,文件名为:“CJT+班号+序号”, CJT1090221.txt。成绩条的格式自

8、定。5) 屏幕显示所有存在不及格课程的学生的名单(含学号、不及格课程名称、课程的学分及成绩)。6) 屏幕显示优等生名单(含学号、门课成绩、平均分、名次) 优等生条件(只要满足三个条件中的任意一个条件即可):a) 平均分 92分b) 名次在本班位于前五名c) 平均分 88分,并且至少有一门课的成绩 99分四、系统功能模块五、详细设计(各功能模块的具体实现算法流程图)1.流程图 #include #include struct stu int num; char name10; int score5; float ave;stu20;struct kecheng int num,count5; c

9、har kcname10; float xuefen,ave;course5;void ReadDat1() int i,j; char str1100; FILE *fp; if(fp=fopen(jj110014.txt,r)=NULL) printf(Cannot open the file1!n); exit(0); fgets(str1,100,fp); printf(%s,str1); for(i=0;i20;i+) fscanf(fp,%5d%s,&stui.num,stui.name); printf(%2d %2s,stui.num,stui.name); for(j=0;j

10、5;j+) fscanf(fp,%4d,&stui.scorej); printf(%6d,stui.scorej); printf(n); fclose(fp);void ReadDat2() FILE *fp; int k; char str2100; fp=fopen(jj01kc.txt,r); fgets(str2,100,fp); puts(str2); for(k=0;k5;k+) fscanf(fp,%d%s%f,&coursek.num,coursek.kcname,&coursek.xuefen); printf(%-8d%-10s%fn,coursek.num,cours

11、ek.kcname,coursek.xuefen); fclose(fp);void pj() int i,j; float s=0,sum; for(i=0;i5;i+) s+=coursei.xuefen; for(i=0;i20;i+) sum=0; for(j=0;j5;j+) sum+=stui.scorej*coursej.xuefen; stui.ave=sum/s; void writecj() FILE *fp; int i,j,a20,k; for(i=0;i20;i+) k=1; for(j=0;j20;j+) if(stui.ave-stuj.ave0) k+; ai=

12、k; if(fp=fopen(e:ksMC110014.txt,w)=NULL) printf(Faile to build a new file!n); exit(0); fprintf(fp,名次 学号 姓名 英语 C语言 数学 体育 物理 平均成绩n); for(i=0;i20;i+) fprintf(fp,%3d%4d%7s,ai,stui.num,stui.name); for(j=0;j5;j+) fprintf(fp,%5d,stui.scorej); fprintf(fp,%8.2fn,stui.ave); fclose(fp);void kc() int i,j; float

13、 b5,sum5; FILE *fp; for(i=0;i5;i+) bi=0; for(j=0;j5;j+) sumj=0; for(i=0;i20;i+) sumj+=stui.scorej; for(j=0;j5;j+) for(i=0;i20;i+) bj+=(stui.scorej-sumj/20.0)*(stui.scorej-sumj/20.0); coursej.ave=(float)sqrt(double)bj/20.0); for(j=0;j5;j+) for(i=0;i5;i+) coursej.counti=0; for(j=0;j5;j+) for(i=0;i=90)

14、 coursej.count0+; else if(stui.scorej=80) coursej.count1+; else if(stui.scorej=70) coursej.count2+; else if(stui.scorej=60) coursej.count3+; else coursej.count4+; if(fp=fopen(e:kskcjj110014.txt,w)=NULL) printf(Faile to build a new file!n); exit(0); fprintf(fp,编号 课程名称 课程学分 标准差 优秀 良好 中等 及格 不及格n); for(

15、i=0;i5;i+) fprintf(fp,%-6d%-10s%-7.1f%5.1f,i+1,coursei.kcname,coursei.xuefen,coursei.ave); for(j=0;j5;j+) fprintf(fp,%5d,coursei.countj); fprintf(fp,n); fclose(fp);void cjt() int i,j,a20,k; float s=0,sum; FILE *fp; for(i=0;i5;i+) s+=coursei.xuefen; for(i=0;i20;i+) sum=0; for(j=0;j5;j+) sum+=stui.sco

16、rej*coursej.xuefen; stui.ave=sum/s; for(i=0;i20;i+) k=1; for(j=0;j20;j+) if(stui.ave-stuj.ave0) k+; ai=k; if(fp=fopen(e:kscjt110014.txt,w)=NULL) printf(Faile to build a new file!n); exit(0); fprintf(fp,名次 学号 姓名 英语 C语言 数学 体育 物理 平均成绩n); for(i=0;i20;i+) fprintf(fp,%3d%4d%7s,ai,stui.num,stui.name); for(

17、j=0;j5;j+) fprintf(fp,%5d,stui.scorej); fprintf(fp,%6.2fn,stui.ave); fprintf(fp,n); while(i!=19) fprintf(fp,名次 学号 姓名 英语 C语言 数学 体育 物理 平均成绩n); break; fclose(fp);void bjg() int i,j; printf(不及格课程学生名单n); printf(学号 姓名 不及格课程名称 课程学分 课程成绩n); for(i=0;i20;i+) for(j=0;j5;j+) if(stui.scorej60) printf(%-5d,stui.n

18、um); printf(%-8s,stui.name); printf(%7s,coursej.kcname); printf(%11.1f,coursej.xuefen); printf(%8dn,stui.scorej); printf(n);void yxiu() int i,j,k,a20,b20,c20; float s=0,sum; for(i=0;i5;i+) s+=coursei.xuefen; for(i=0;i20;i+) sum=0; for(j=0;j5;j+) sum+=stui.scorej*coursej.xuefen; stui.ave=sum/s; for(i

19、=0;i20;i+) k=1; for(j=0;j20;j+) if(stui.ave-stuj.ave0) k+; ai=k; printf(优等生名单n); printf(名次 学号 姓名 英语 C语言 数学 体育 物理 平均分n); for(i=0;i20;i+) bi=0; ci=0; for(j=0;j=92) bj+; for(i=0;i=88&stuj.scorei=99) cj+; for(i=0;i20;i+) if(ai=5|bi|ci) printf( %-5d,ai); printf(%-5d,stui.num); printf(%-6s,stui.name); for

20、(j=0;j5;j+) printf(%-5d,stui.scorej); printf(%-7.2fn,stui.ave); printf(n);main() ReadDat1(); ReadDat2(); pj(); writecj(); kc(); cjt(); bjg(); yxiu();六、调试分析(包含各模块的测试用例及测试结果)源文件运行结果C程序新建的文本文件ksMC110014.txtKskcjj110014.txtKscjt110014.txt七、总结编程题目要求简单易懂,但实际操作却很难,主要是没有理清条理,通过编程各个函数解决各个问题,题目变得简单易操作。通过编程解决实际问题,掌握了结构体,数组,文件的使用,函数的各个调用,以及顺序结构、选择结构、循环结构的应用。通过编程,进一步掌握了C语言的实践操作。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1