版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《C语言程序设计实验》实验报告实验九文件编程(一)班级:_07某某专业1班_学号:__1234567890____姓名:___实验样例_____日期:___2008.6.10_____台州学院数信学院计算机系制作
一、实验目的和要求综合使用基本结构、基本算法、函数、指针、结构体、链表等知识设计程序。二、实验指导1、注意:本次实验为综合性实验,需要综合本课程以前所学内容,完成编制一个小型应用程序。需要复习课本以前所学内容,浏览上课讲解的相关内容。2、实验时间安排:准备实验方案,上课时上机编程,课余完成整个设计并完成实验报告。3、实验具体要求:以一张假想的学生期中成绩表为实验对象,编制一个小型应用程序,可以考虑实现以下功能:(1)成绩修改;(2)成绩查询;(3)成绩统计;(4)成绩输入。也可以实现其他自定义的功能。界面采用简易菜单形式,可以分级显示。实验需要进行以下步骤:需求分析、程序设计、程序调试、程序运行,并对程序运行效果进行分析,提出改进方案。初步锻炼学生的程序设计能力、程序调试能力、对实验结果进行综合分析的能力。4、实验成绩评价标准:参见成绩评定表。三、成绩评定表(教师填写)评分栏目评分成绩程序实现的功能是否达到要求(对应内容第1、2点,参考第3、4点)程序代码是否合理(对应内容第3点)程序运行结果描述是否清晰(对应内容第4点)评价是否合理,有无提出好的改进方案(对应内容第5点)实验报告的撰写形式是否规范,内容是否正确(对应全部内容)总评成绩:四、实验报告内容(参见样本,请另附页)实验报告必须包含以下内容:1、对你设计的程序功能进行的较详细描述。2、画出程序测试用的学生期中成绩表(包含:表头、若干行包含学生成绩等信息的数据行)。3、给出程序清单(包含结构体的声明与定义、所有的函数声明、所有的全局变量、所有的函数定义、必要的注释。注:如果程序过长,可以不用给出所有的函数定义,只给出主要的函数定义)。4、运行结果(写出运行时的主界面、各模块的实现界面等,不作具体要求,但要求能清晰地体现出程序的功能)。5、对你的设计作一个评价(可以包含你所花的时间、精力,你遇到的困难及如何解决的,你的设计过程所遇到的其他事情;必须包含你对设计的客观评价,以及提出的改进方案)。
1、程序功能描述:(略)2、成绩表样表:学号姓名性别语文数学英语总分1001张三M7885501002李四M8979691003王五F8576871004钱六M6445701005赵七F9293943、程序清单:(红色部分是和上一个程序的区别之处)#include<stdio.h>structstudent/*期中成绩表的结构声明*/{ intnum; charname[20]; charsex; floatYuWen; floatShuXue; floatYingYu; floattotle;};#defineMAX_STU_NUMBER100/*宏定义最大学生数为100人*/structstudentStu[MAX_STU_NUMBER];/*一次性定义100个学生的存储空间*/intSTU_NUMBER;/*存放学生数*/char*FileName="chengji.txt";/*成绩存放的文件*//*所有的函数声明:*/intSelectMainMenu();/*显示并选择主菜单。返回:被选择的菜单项*/voidModify();/*成绩修改模块*/voidShow();/*成绩查询模块*/voidStat();/*成绩统计模块*/voidAppend();/*成绩输入模块*/voidStatAve(float*AveYuWen,float*AveShuXue,float*AveYingYu);/*统计平均分*/intFindStudent(intnum);/*根据学号查找某一学生*/voidSetAllTotle();/*计算所有学生总分*/voidSetTotle(intNo);/*计算第No个学生总分*/voidShowAllStudent();/*显示所有成绩*/voidShowTitle();/*显示表头信息*/voidShowStudent(intNo);/*显示第No个的学生信息*/voidRead();/*打开文件,读出成绩。设置学生人数到STU_NUMBER*/voidWrite();/*将成绩写入文件*/voidmain(){ intisend=0;/*程序结束标志量,0表示不结束,1表示结束*/ Read();/*打开文件,读出成绩。设置学生人数到STU_NUMBER*/ SetAllTotle();/*计算所有学生总分*/ while(1) { switch(SelectMainMenu())/*显示并选择主菜单*/ { case1:/*成绩修改*/ Modify();/*调用成绩修改函数*/ break; case2:/*成绩查询*/ Show();/*调用成绩查询函数*/ break; case3:/*成绩统计*/ Stat();/*调用成绩统计函数*/ break; case4:/*成绩输入*/ Append();/*成绩输入模块*/ break; case5:/*退出系统*/ Write();/*退出前保存成绩*/ printf("\n谢谢您的使用,再见!\n\n"); isend=1;/*设置程序结束标志*/ break; } if(isend)break;/*程序结束*/ }}voidRead()/*打开文件,读出成绩。设置学生人数到STU_NUMBER*/{ FILE*fp;/*指向文件的指针*/ structstudent*p; fp=fopen(FileName,"r");/*以读的方式打开文件*/ STU_NUMBER=0; if(fp==NULL)return;/*打开文件失败*/ for(p=Stu;;p++,STU_NUMBER++)/*循环读出数据*/ { if(fscanf(fp,"%d%s%c%f%f%f",&p->num,p->name,&p->sex,&p->YuWen,&p->ShuXue,&p->YingYu)==EOF) break; } fclose(fp);/*关闭文件*/}voidWrite()/*将成绩写入文件*/{ FILE*fp;/*指向文件的指针*/ structstudent*p; fp=fopen(FileName,"w");/*以写的方式打开文件(会删掉原来文件)*/ if(fp==NULL)return;/*打开文件失败*/ for(p=Stu;p<Stu+STU_NUMBER;p++)/*循环读出数据*/ { fprintf(fp,"%d%s%c%f%f%f\n",p->num,p->name,p->sex,p->YuWen,p->ShuXue,p->YingYu); } fclose(fp);/*关闭文件*/}intSelectMainMenu()/*显示并选择主菜单。返回:被选择的菜单项*/{ intmenu_no=0; do /*显示并选择菜单*/ { printf("\n===============================\n"); printf("《高二(3)班期中成绩管理程序》\n"); printf("作者:应老师\n"); printf("===============================\n"); printf("主菜单:\n"); printf("1–成绩修改\n"); printf("2–成绩查询\n"); printf("3–成绩统计\n"); printf("4–成绩输入\n"); printf("5–退出系统\n"); printf("请选择(1-5):"); scanf("%d",&menu_no); }while(menu_no<1&&menu_no>5); /*直到选择出正确的序号*/ returnmenu_no;}voidModify()/*成绩修改模块*/{ intn,i; while(1) { printf("\n====成绩修改====\n"); printf("请输入学号(输入0退出成绩修改):"); scanf("%d",&n); if(n==0)break;/*退出成绩修改模块*/ if((i=FindStudent(n))>=0)/*表示找到学号为n的学生*/ { ShowTitle();/*显示表头信息*/ ShowStudent(i);/*显示该学生信息*/ printf("请输入成绩(语文,数学,英语):"); scanf("%f,%f,%f",&Stu[i].YuWen,&Stu[i].ShuXue,&Stu[i].YingYu); SetTotle(i);/*计算该学生总分*/ printf("----修改成功----\n"); } elseprintf("----找不到该学号----\n"); }}voidShow()/*成绩查询模块*/{ intn,i; while(1) { printf("\n====成绩查询====\n"); printf("请输入学号(输入0退出成绩查询,输入1查询全部):"); scanf("%d",&n); if(n==0)break;/*退出成绩查询模块*/ if(n==1)ShowAllStudent();/*显示所有成绩*/ elseif((i=FindStudent(n))>=0)/*找到学号为n的学生*/ { ShowTitle();/*显示表头信息*/ ShowStudent(i);/*显示该学生信息*/ } elseprintf("----找不到该学号----\n"); }}voidStat()/*成绩统计模块*/{ floatAveYuWen,AveShuXue,AveYingYu; StatAve(&AveYuWen,&AveShuXue,&AveYingYu);/*统计三门课的班级平均分*/ printf("\n====成绩统计====\n"); printf("学生人数:%d\n",STU_NUMBER); printf("语文平均分:%6.2f\n",AveYuWen); printf("数学平均分:%6.2f\n",AveShuXue); printf("英语平均分:%6.2f\n",AveYingYu);}voidAppend()/*成绩输入模块*/{ structstudent*p; do { p=Stu+STU_NUMBER; printf("==========成绩输入==========\n"); printf("输入(学号姓名性别语文数学英语)(000000退出):"); scanf("%d%s%c%f%f%f",&p->num,p->name,&p->sex,&p->YuWen,&p->ShuXue,&p->YingYu); if(p->num==0)break; SetTotle(STU_NUMBER);/*求出总分*/ STU_NUMBER++; }while(1);}/*统计三门课的班级平均分,用指针参数返回*/voidStatAve(float*AveYuWen,float*AveShuXue,float*AveYingYu){ inti; floatsumYuWen=0,sumShuXue=0,sumYingYu=0; for(i=0;i<STU_NUMBER;i++) { sumYuWen+=Stu[i].YuWen; sumShuXue+=Stu[i].ShuXue; sumYingYu+=Stu[i].YingYu; } *AveYuWen=sumYuWen/STU_NUMBER; *AveShuXue=sumShuXue/STU_NUMBER; *AveYingYu=sumYingYu/STU_NUMBER;}/*根据学号查找某一学生。返回:-1没找到,>=0该学生所在数组的下标*/intFindStudent(intnum){ inti; for(i=0;i<STU_NUMBER;i++) if(Stu[i].num==num)break; if(i<STU_NUMBER)returni;/*找到*/ elseretu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026江苏连云港东海水晶产业发展集团有限公司招聘保安人员5人考试参考题库及答案解析
- 2026年中国科学技术大学科研部劳务派遣岗位招聘4名考试备考试题及答案解析
- 2026年天津海运职业学院单招综合素质笔试模拟试题附答案详解
- 2026西藏阿里地区普兰县财政局招聘财会管理专业人才1人考试参考题库及答案解析
- 2026黑龙江哈尔滨工业大学商学院招聘考试参考试题及答案解析
- 2026广东佛山南海狮山镇小塘第四幼儿园招聘3人考试备考题库及答案解析
- 2026湖北随州农商银行科技研发中心第二批人员招聘9人考试备考试题及答案解析
- 2026贵州遵义市红花岗区选调事业单位工作人员18人考试参考试题及答案解析
- 2026年合肥市包河区外国语第一实验小学招聘考试备考试题及答案解析
- 2026内蒙古鄂尔多斯电力冶金集团股份有限公司招聘考试备考题库及答案解析
- 化学反应原理大题集训(含解析)-2026届高中化学一轮复习讲义
- 团队成员介绍课件
- 医院敏感数据安全管理规范
- 政协机车辆管理办法
- 食品加工助剂管理办法
- 渝22TS02 市政排水管道附属设施标准图集 DJBT50-159
- 母婴护理员职业道德课件
- 非现场执法培训课件
- 电力工程应急管理措施
- 2025年高考英语复习难题速递之语法填空(2025年4月)
- 2025外籍工作人员劳动合同范本
评论
0/150
提交评论