已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实习报告答辩记录运行情况原始数据成绩排名平均分和分数段统计不及格统计优秀生统计优秀学生干部统计破译密码组成大字符回答问题12345计算机上机实习实 习 报 告班 级 装备1001班 学 号 姓 名 指导教师 完成日期 2011年12月26日 1 题目分析1) 学生成绩管理系统1. 建立原始数据库1. 用文字处理软件(用记事本写字板wordtc,不能用excel)新建一个文本文件, 将本班M名学生在本学期的N门课程成绩录入到这个文件中,按如下形式存放。要求:学生人数M不少于30人,课程门数N不小于5, 姓名为本班的真实姓名, 课程中必须有一门考查课。学号 姓名 英语 数学 大学物理 机械制图 C程序设计 1 张国庆 76 80 85 82 83 2 王艳 91 90 88 92 75 3 李小华 56 65 70 69 66 4 王红 78 88 90 85 76 5 胡小明 78 88 90 85 76 .2将学生的基本信息按如下形式存入第二个文件中学号 姓名 性别 年龄 职务 1 张国庆 男 19 无 2 王艳 女 20 文体委员 3 李小华 男 20 生活委员 4 王红 女 21 团支书 5 胡小明 男 19 无 .3. 将本学期的N门课程及学分输入到第三个文件中。形式如下: 编号 课程名称 课程学分 1 英语 5.0 2 数学 5.03 大学物理 4.04 机械制图 4.55 C程序设计 4.06 上机实习 2.02编写一个学生成绩管理程序,要求完成以下功能1读取原始数据文件的内容,计算每个学生的加权平均分 (保留一位小数,4舍5入) ,按平均分排名次,平均分相同则名次相同。创建一个数据文件(建议为:文本文件) ,存放班级的成绩表,按下列式形存放。学号 姓名 性别 职务 英语 数学 大学物理 机械制图 C程序设计 平均分 名次1 张国庆 男 无 76 80 85 82 83 2 王艳 女 文体委员 91 90 88 92 75 3 李小华 男 班长 56 65 70 69 66 4 王红 女 团支部书记 78 88 90 85 76 5 胡小明 男 无 78 88 90 85 76 . 注:计算加权平均分的公式如下2分别统计全班每门课的平均分。计算各分数段(=90(优秀) 3 6 5 .8089(良好) 10 11 12 . .3. 分别统计男生和女生每门课的平均分。结果存放在一个数据文件中4. 输出所有存在不及格课程学生的名单,包括:学号、姓名、性别、不及格课程名称、课程学分及成绩。结果存放在一个数据文件中。5. 输出优秀学生名单,包括:学号、姓名、性别、名门课成绩、平均分和名次。结果存放在一个数据文件中。优秀学生的条件为:1平均分90 2. 名次在本班前3名3. 平均分85,并且至少有一门课的成绩为95分4平均分85,并且至少有二门课的成绩为90分 6.输出优秀学生干部名单,包括:学号、姓名、性别、职务、名门课成绩、平均分和名次。结果存放在一个数据文件中。优秀学生的条件为:1平均分85 2. 名次在本班前20%名3平均分80,并且至少有一门课的成绩为95分4平均分80,并且至少有二门课的成绩为90分 2) 破译密码1)用fgets函数读入字符串2)编一个函数处理所有可能的密钥,即计算从100到200的所有素数3)将密钥化成三个元素的整型数组,分别对应百位、十位和个位4)将所有英文字符按序轮换减去对应的数组元素,原来是大(小)写英文字符超出大(小)写英文字符范围加上26。 密码文件内容 Jk fpz nfy aij jpwyfha bszxjy, ztb bwl bs lyhlmqloy zuzkfsa.3) 大字符 用字符数组char c1077来组成大的数字字符,数组的第一个下标表示09共10个数字。数组的第二下标表示行(7行),数组的第三个下标表示列(7列)。(VC中的清屏命令为system(”cls”),原型在stdlib.h中;延迟可以用循环)。主程序2 程序图框 大字幕编译密码成绩管理系统优秀学生干部统计优秀生统计不及格统计平均分和数段统计成绩排名原始数据34 源程序清单void function1_1()system(CLS);FILE*fp1,*fp2,*fp3;int i; char str1100,str2100,str3100;if(fp1=fopen(c:chengji.txt,r)=NULL)printf(cannot open file!n);exit(0);fgets(str1,100,fp1); printf(%s,str1);for(i=0;i36;i+) fscanf(fp1,%d%s%d%d%d%d%d%s,&stui.num,,&stui.score0,&stui.score1,&stui.score2,&stui.score3,&stui.score4,stui.kc);printf(%-6d%-6s%9d%10d%11d%10d%10d%11sn,stui.num,,stui.score0,stui.score1,stui.score2,stui.score3,stui.score4,stui.kc);if(fp2=fopen(c:xingxi.txt,r)=NULL)printf(cannot open file!n);exit(0);fgets(str2,100,fp2); printf(%s,str2); for(i=0;i36;i+)fscanf(fp2,%d%s%s%d%s,&studenti.num,,&studenti.sex,&studenti.age,studenti.position); printf(%-2d%8s%10s%10d%12sn,studenti.num,,studenti.sex,studenti.age,studenti.position); if(fp3=fopen(c:xuefen.txt,r)=NULL)printf(cannot open file!n); exit(0);fgets(str3,100,fp3); printf(%s,str3); for(i=0;i6;i+) fscanf(fp3,%d%s%f,&si.num,&si.couse,&si.score); printf(%-2d%17s%18.1fn,si.num,si.couse,si.score); fclose(fp1); fclose(fp2); fclose(fp3); printf( *按Enter键继续*n); getchar();getchar();void function1_2()system(CLS); int i,j; FILE*fp1,*fp2,*fp3,*fp4; char str1100,str2100,str3100; float sum=0.0,all=0.0;if(fp1=fopen(c:chengji.txt,r)=NULL) printf(cannot open file!n); exit(0); if(fp2=fopen(c:xingxi.txt,r)=NULL) printf(cannot open file!n); exit(0); if(fp3=fopen(c:xuefen.txt,r)=NULL) printf(cannot open file!n); exit(0); fgets(str1,100,fp1); for(i=0;i36;i+) fscanf(fp1,%d%s%d%d%d%d%d%s,&stui.num,,&stui.score0,&stui.score1,&stui.score2,&stui.score3,&stui.score4,stui.kc); fgets(str2,100,fp2); for(i=0;i36;i+) fscanf(fp2,%d%s%s%d%s,&studenti.num,,&studenti.sex,&studenti.age,studenti.position);fgets(str3,100,fp3); for(i=0;i6;i+) fscanf(fp3,%d%s%f,&si.num,&si.couse,&si.point); for(i=0;i6;i+) /*求加权平均分*/ sum+=si.point; for(i=0;i36;i+) if(strcmp(stui.kc,优)=0) stui.score5=95; if(strcmp(stui.kc,良)=0) stui.score5=85; if(strcmp(stui.kc,中)=0) stui.score5=75; if(strcmp(stui.kc,差)=0) stui.score5=65; for(i=0;i36;i+) all=0.0;for(j=0;j6;j+)all+=stui.scorej*sj.point; stui.aver=all/sum; for(i=0;i36;i+) /*求排名*/ stui.rank=1; for(j=0;j36;j+) if(stui.averstuj.aver) stui.rank+; if(fp4=fopen(c:pingjunfen.txt,w)=NULL) /*打开写入文件*/ printf(faile to build a new file!n); exit(0);printf(学号 姓名 性别 职务 线代 物理 力学 制图 C设计 电子商务 平均分 名次n);fprintf(fp4,学号 姓名 性别 职务 线代 物理 力学 制图 C设计 电子务 平均分 名次n);for(i=0;i36;i+)printf(%2d%7s%3s%9s%6d%6d%6d%6d%6d%8s%9.1f%6dn,studenti.num,,studenti.sex, studenti.position,stui.score0,stui.score1,stui.score2,stui.score3,stui.score4,stui.kc,stui.aver,stui.rank);fprintf(fp4,%2d%7s%3s%9s%6d%6d%6d%6d%6d%8s%9.1f%6dn,studenti.num,,studenti.sex,studenti.position,stui.score0,stui.score1,stui.score2,stui.score3,stui.score4,stui.kc,stui.aver,stui.rank); fclose(fp1); fclose(fp2); fclose(fp3); fclose(fp4); printf( *按Enter键继续*n); getchar();getchar();void function1_3() system(CLS); structtongji /*定义统计每门课程在不同层次的结构体*/ int x1; int x2; int x3; int x4; int x5; float aver;kecheng6; int i,j; char str6100= 优等, 良好, 中等, 及格, 不及格,课程平均分; /*字符数组行首元素赋值*/ FILE *fp1,*fp4; char str1100; float sum; if(fp1=fopen(c:chengji.txt,r)=NULL) printf(cannot open file!n); exit(0); if(fp4=fopen(c:pingjunfen2.txt,w)=NULL) printf(faile to build a new file!n); exit(0); fgets(str1,100,fp1); /*读取表头*/ for(i=0;i36;i+) fscanf(fp1,%d%s%d%d%d%d%d%s,&stui.num,,&stui.score0,&stui.score1,&stui.score2,&stui.score3,&stui.score4,stui.kc); for(i=0;i36;i+) if(strcmp(stui.kc,优)=0) stui.score5=95; if(strcmp(stui.kc,良)=0) stui.score5=85; if(strcmp(stui.kc,中)=0) stui.score5=75; if(strcmp(stui.kc,差)=0) stui.score5=65; for(j=0;j6;j+) /*求平均分*/ sum=0.0; for(i=0;i36;i+) sum+=stui.scorej; kechengj.aver=sum/36; for(j=0;j6;j+) /*统计人数*/kechengj.x1=0,kechengj.x2=0,kechengj.x3=0,kechengj.x4=0,kechengj.x5=0;for(i=0;i=90)kechengj.x1+;else if(stui.scorej=80)kechengj.x2+; else if(stui.scorej=70) kechengj.x3+; else if(stui.scorej=60) kechengj.x4+;else kechengj.x5+; fprintf(fp4, 范围 线性代数 大学物理 理论力学 机械制图 C程序设计 电子商务n);printf( 范围 线性代数 大学物理 理论力学 机械制图 C程序设计 电子商务n); fprintf(fp4,%s,str0);printf(%s,str0); for(i=0;i6;i+)fprintf(fp4,%12d,kechengi.x1); printf(%10d,kechengi.x1); fprintf(fp4,n);printf(n); fprintf(fp4,%s,str1);printf(%s,str1); for(i=0;i6;i+)fprintf(fp4,%12d,kechengi.x2); printf(%10d,kechengi.x2); fprintf(fp4,n);printf(n); fprintf(fp4,%s,str2);printf(%s,str2); for(i=0;i6;i+)fprintf(fp4,%12d,kechengi.x3); printf(%10d,kechengi.x3); fprintf(fp4,n);printf(n); fprintf(fp4,%s,str3);printf(%s,str3); for(i=0;i6;i+)fprintf(fp4,%12d,kechengi.x4);printf(%10d,kechengi.x4); fprintf(fp4,n);printf(n); fprintf(fp4,%s,str4);printf(%s,str4); for(i=0;i6;i+)fprintf(fp4,%12d,kechengi.x5);printf(%10d,kechengi.x5); fprintf(fp4,n);printf(n); fprintf(fp4,%s,str5);printf(%s,str5); for(i=0;i6;i+) fprintf(fp4,%12.1f,kechengi.aver); printf(%10.1f,kechengi.aver);fclose(fp1); fclose(fp4); printf(n);printf( *按Enter键继续*n); getchar();getchar(); void function1_4() system(CLS);float a26; int i,j,n2,n1; char str2100=男, 女; FILE *fp1,*fp4,*fp2; char str1300,str2300; float sum1,sum2; if(fp1=fopen(c:chengji.txt,r)=NULL) printf(cannot open file!n); exit(0); if(fp2=fopen(c:xingxi.txt,r)=NULL) printf(cannot open file!n); exit(0); if(fp4=fopen(c:nannv.txt,w)=NULL)printf(faile to build a new file!n); exit(0); fgets(str1,200,fp1); fgets(str2,200,fp2); /*读取表头*/ for(i=0;i36;i+) fscanf(fp1,%d%s%d%d%d%d%d%s,&stui.num,,&stui.score0,&stui.score1, &stui.score2,&stui.score3,&stui.score4,stui.kc); fscanf(fp2,%d%s%s%d%s,&studenti.num,,studenti.sex,&studenti.age,studenti.position); for(i=0;i36;i+) if(strcmp(stui.kc,优)=0) stui.score5=95; if(strcmp(stui.kc,良)=0) stui.score5=85; if(strcmp(stui.kc,中)=0) stui.score5=75; if(strcmp(stui.kc,差)=0) stui.score5=65; for(j=0;j6;j+) for(i=0,n1=0,sum1=0,sum2=0,n2=0;i36;i+)if(strcmp(男,studenti.sex)=0) sum1+=stui.scorej; n1+; else sum2+=stui.scorej; n2+; a1j=sum2/n2; a0j=sum1/n1; printf( 性别 线性代数 大学物理 理论力学 机械制图 C程序设计 电子商务n);fprintf(fp4, 性别 线性代数 大学物理 理论力学 机械制图 C程序设计 电子商务n); fprintf(fp4,%4s,str0);printf(%4s,str0); for(i=0;i6;i+)fprintf(fp4,%12.1f,a0i); printf(%12.1f,a0i); fprintf(fp4,n);printf(n); fprintf(fp4,%4s,str1);printf(%4s,str1); for(i=0;i6;i+)fprintf(fp4,%12.1f,a1i); printf(%12.1f,a1i);fclose(fp2); fclose(fp1); fclose(fp4);printf(n); printf( *按Enter键继续*n); getchar();getchar();void function1_5() system(CLS); char str6100=学号,姓名,性别,课程名,学分,成绩; /*字符数组存放课程名*/ int i,j; char str1100,str2100,str3100; FILE*fp1,*fp2,*fp3,*fp4; if(fp1=fopen(c:chengji.txt,r)=NULL) printf(cannot open file!n); exit(0); if(fp2=fopen(c:xingxi.txt,r)=NULL) printf(cannot open file!n); exit(0); if(fp3=fopen(c:xuefen.txt,r)=NULL) printf(cannot open file!n); exit(0); fgets(str1,100,fp1); for(i=0;i36;i+) fscanf(fp1,%d%s%d%d%d%d%d%s,&stui.num,,&stui.score0,&stui.score1,&stui.score2,&stui.score3,&stui.score4,stui.kc); fgets(str2,100,fp2); for(i=0;i36;i+) fscanf(fp2,%d%s%s%d%s,&studenti.num,,&studenti.sex,&studenti.age,studenti.position); fgets(str3,100,fp3); for(i=0;i36;i+) fscanf(fp3,%d%s%f,&si.num,&si.couse,&si.point); if(fp4=fopen(c:bujige.txt,w)=NULL) printf(faile to build a new file!n); exit(0); for(i=0;i6;i+) fprintf(fp4,%10s,stri); printf(%10s,stri); fprintf(fp4,n); printf(n); for(i=0;i36;i+) for(j=0;j5;j+) if(stui.scorej60) fprintf(fp4,%9d%11s%8s%14s%8.1f%10dn,studenti.num,,studenti.sex,sj.couse,sj.point,stui.scorej); printf(%9d%11s%8s%14s%8.1f%10dn,studenti.num,, studenti.sex,sj.couse,sj.point,stui.scorej); fclose(fp1); fclose(fp2); fclose(fp3); fclose(fp4); printf(n); printf( *按Enter键继续*n); getchar();getchar(); void function1_6()system(CLS); int i,j,m; FILE*fp1,*fp2,*fp3,*fp4; char str1100,str2100,str3100; float sum=0.0,all; if(fp1=fopen(c:chengji.txt,r)=NULL) printf(cannot open file!n); exit(0); if(fp2=fopen(c:xingxi.txt,r)=NULL) printf(cannot open file!n); exit(0); if(fp3=fopen(c:xuefen.txt,r)=NULL) printf(cannot open file!n); exit(0); fgets(str1,100,fp1); for(i=0;i36;i+) fscanf(fp1,%d%s%d%d%d%d%d%s,&stui.num,,&stui.score0,&stui.score1,&stui.score2,&stui.score3,&stui.score4,stui.kc); fgets(str2,100,fp2); for(i=0;i36;i+) fscanf(fp2,%d%s%s%d%s,&studenti.num,,&studenti.sex,&studenti.age,studenti.position); fgets(str3,100,fp3); for(i=0;i6;i+) fscanf(fp3,%d%s%f,&si.num,&si.couse,&si.point); for(i=0;i36;i+) if(strcmp(stui.kc,优)=0) stui.score5=95; if(strcmp(stui.kc,良)=0) stui.score5=85; if(strcmp(stui.kc,中)=0) stui.score5=75; if(strcmp(stui.kc,差)=0) stui.score5=65; for(i=0;i6;i+) sum+=si.point; for(i=0;i36;i+) all=0.0; for(j=0;j6;j+) all+=stui.scorej*sj.point; stui.aver=all/sum; for(i=0;i36;i+) stui.rank=1; for(j=0;j36;j+) if(stui.averstuj.aver) stui.rank+; if(fp4=fopen(c:youxiuxuesheng.txt,w)=NULL)printf(faile to build a new file!n); exit(0); fprintf(fp4,学号 姓名 性别 线性代数 大学物理 理论力学 机械制图 C程序设计 电子商务 平均分 名次n);printf(学号 姓名 性别 线代 物理 力学 制图 C设计 电子商务 平均分 名次n);for(i=0;i=90.0|stui.rank=85.0&stui.aver=4) if(stui.score0|stui.score1|stui.score2|stui.score3|stui.score4|stui.score5) fprintf(fp4,%2d%10s%6s%8d%1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Photoshop笔试题重点及详细答案(完整版)
- 2025-2026学年湖北省赤壁市初中数学九年级期末下册提升黑金试卷详细参考解析
- PCS专业技能认证考核试题
- 农田排水沟清淤及衬砌方案
- 慢性偏头痛针灸联合药物疗程规范共识
- 宫颈环扎术后活动分级管理共识
- PADI开放水域(OW)潜水员考试真题及详细答案
- Oracle 11g 数据库笔试试题及详细答案
- 咬合桩围护结构施工及桩缝控制方案
- 香料蒸馏提取操作工安全规程
- 2026年燃料企业碳审计报告
- 纺织厂安全培训
- 信访培训教学课件
- 2025 肝硬化腹水查房课件
- 居住空间课件
- 2025年军事理论知识竞赛试题库及答案(完整版)
- 银行分流引导课件
- 初中语文统编版(五四学制)六年级上册第四单元13 穷人 公开课一等奖创新教学设计
- 小学肺结核宣传课件
- DBJ50-T-200-2024 建筑桩基础技术标准
- 贫血病人疑难病例讨论
评论
0/150
提交评论