您好,欢迎访问三七文档
当前位置:首页 > 外语资料 > 英语基础 > 英语四级成绩管理 课程设计报告
淮北师范大学程序设计课程设计英语四级成绩管理学院计算机科学与技术专业计算机科学与技术(师范)学号20101201081学生姓名徐凤凤指导教师姓名王帅2011年03月31日一、设计目的与内容为了进一步巩固和复习C程序设计的基础知识,培养我们结构化程序、模块化程序设计的方法和能力,提高调试程序的技巧和软件设计的能力,提高分析问题、解决问题以及综合利用C语言进行程序设计的能力,了解软件的编制过程。并实现能记录英语四级成绩的数据结构,要有准考证号、考生姓名、考场号、四级成绩等信息,而且可以进行输入、载入、输出、按条件查找等基本功能,并以此为基础评定考生参加六级考试的考试资格。二、算法的基本思想如图为该程序设计题的功能模块图:三、系统测试(列出对于给定的输入所产生的输出结果。只写出自己所做功能测试结果)程序运行实例如下:点击运行,运行界面如下:英语四级成绩管理理输出考生信息删除考生信息清空文件内容按准考证排序按考场排序按准考证查找按考场号查找六级参考资格输入考生信息载入考生信息保存信息到文件退出1.选择1,运行界面如下:2.选择2,运行界面如下:3.选择3,运行界面如下:4、选择4,运行界面如下:5、选择5,运行界面如下:6、选择6,运行界面如下:7、选择7,运行界面如下:8、选择8,运行界面如下:9、选择9,运行界面如下:10、选择10,运行界面如下:11、选择11,运行界面如下:12、选择12,运行界面如下:四、结论(给出完成任务书要求的情况说明,并提出程序的缺陷以及可以改进的功能)在英语四级成绩管理的课程设计编程中,其要求完成的分版块较多,内容涵盖量较全面,运用了基本的输入输出scanf、printf等函数,而较多使用的事switch进行调用函数。在程序中循环语句也占据了主要部分,在数据的输入载入以及输出模块中起到重要作用,还有在按照准考证、考场对学生成绩进行排序时,也用到了循环语句。同时结构体的应用也极大的方便了学生成绩情况的输入,数组(还包含结构体数组)、指针,以及十三章中学到关于文件的打开和关闭,以及定义指针文件等C语言程序设计的基本语言都用到了。但是其中也遇到了很多麻烦,例如在文件的删除中不能将该学生所占内存清除,而让其继续占据内存,浪费储存空间。还可以在该程序中增加登录模块五、源程序及系统文件使用说明附上关键数据结构的定义及自己所做功能的源代码,各自定义函数的声明部分中,要求对每个变量功能进行注释,语句部分中要求对关键语句进行注释,以方便阅读者阅读程序。源程序#includestdio.h#includestdlib.h#includestring.h/*-----------学生信息---------*/structstudent{intexamnum;/*----------准考证---------*/charname[20];/*-----------姓名---------*/intexamroom;/*-----------考场号---------*/floatscore;/*-----------英语四级成绩---------*/}stu[100];intn;/*---------------n为总人数---------------*//*-----------输入信息子程序---------*/voidinput(structstudent*stu,int*P){inti;printf(请输入考生信息,如需退出当前菜单请输入-1:\n格式:\n准考证号码\n姓名考场号成绩\n);printf(例如\n101201081\n徐凤凤01580\n);scanf(%d,&i);while(i!=-1){stu[*P].examnum=i;scanf(%s%d%f,stu[*P].name,&stu[*P].examroom,&stu[*P].score);*P=*P+1;scanf(%d,&i);}}/*---------------显示信息子程序------------*/voidpaint(){inti;system(cls);/*清屏*/printf(英语四级成绩管理\n);printf(计算机科学与技术学院10级徐凤凤\n);for(i=1;i=80;i++)putchar('=');/*if循环语句输出“=”*/putchar('\n');printf(1输入考生信息2载入考生信息\n);printf(3输出考生信息4删除考生信息\n);printf(5保存信息到文件6清空文件内容\n);printf(7按准考证排序8按考场排序\n);printf(9按准考证查找10按考场号查找\n);printf(11六级参考资格12退出\n);for(i=1;i=80;i++)putchar('=');putchar('\n');printf(请输入各操作序号:\n);}/*---------------发布信息子程序---------------*/voidoutput(){inti;for(i=0;in;i++)printf(准考证号码:%d姓名:%s考场号:%d英语四级成绩:%f\n,stu[i].examnum,stu[i].name,stu[i].examroom,stu[i].score);printf(返回主菜单请按enter键);getchar();}/*-----------保存信息子程序-------------*/voidsave(structstudentstu[],intn){inti;FILE*fp;/*-----------定义指针类型,便于打开文件------------*/fp=fopen(c:\\四级成绩信息.text,a);/*其中a为可以继续追加的*/for(i=0;in;i++)fprintf(fp,%d%s%d%f,stu[i].examnum,stu[i].name,stu[i].examroom,stu[i].score);fclose(fp);printf(信息已经保存完成,返回主菜单请按enter键);getchar();}/*-----------将信息载入文件子程序--------------*/voidload(structstudentstu[],int*p){FILE*fp;fp=fopen(c:\\四级成绩信息.text,r);if(fp==NULL){printf(不能打开此文件,按enter键返回上一菜单);getchar();return;}else{while((fscanf(fp,%d%s%d%f,&stu[*p].examnum,stu[*p].name,&stu[*p].examroom,&stu[*p].score))!=EOF)*p=*p+1;fclose(fp);printf(学生信息已载入,返回主菜单请按enter键);}getchar();}/*-----------删除信息子程序--------------*/voiddel(structstudentstu[]){intexamnum,i;intc;printf(请输入您需要删除记录的准考证号\n);scanf(%d,&examnum);for(i=0;i100;i++)if(examnum==stu[i].examnum){printf(%d%s%d%f\n,stu[i].examnum,stu[i].name,stu[i].examroom,stu[i].score);break;}printf(您是否确定删除此成绩记录?确认删除请输入1\n);scanf(%d,&c);if(c==1){while(i=100){stu[i].examnum=stu[i+1].examnum;strcpy(stu[i].name,stu[i+1].name);stu[i].examroom=stu[i+1].examroom;stu[i].score=stu[i+1].score;i=i+1;}printf(删除完成,返回主菜单请按enter键\n);}elseprintf(返回主菜单请按enter键\n);getchar();}/*--------------排序子程序(按准考证号排序)------------*/voidsort_num(structstudentstu[],intn){inti,j,k,temp;charchartemp[20];floatftemp;for(i=0;in;i++){for(k=i,j=i+1;jn;j++)if(stu[k].examnumstu[j].examnum)k=j;temp=stu[k].examnum;stu[k].examnum=stu[i].examnum;stu[i].examnum=temp;strcpy(chartemp,stu[k].name);strcpy(stu[k].name,stu[i].name);strcpy(stu[i].name,chartemp);temp=stu[k].examroom;stu[k].examroom=stu[i].examroom;stu[i].examroom=temp;ftemp=stu[k].score;stu[k].score=stu[i].score;stu[i].score=ftemp;}printf(已按照准考证排序,返回主菜单请按enter键\n);getchar();}/*--------------排序子程序(按考场号排序)------------*/voidsort_room(structstudentstu[],intn){inti,j,k,temp;charchartemp[20];floatftemp;for(i=0;in;i++){for(k=i,j=i+1;jn;j++)if(stu[k].examroomstu[j].examroom)k=j;temp=stu[k].examnum;stu[k].examnum=stu[i].examnum;stu[i].examnum=temp;strcpy(chartemp,stu[k].name);strcpy(stu[k].name,stu[i].name);strcpy(stu[i].name,chartemp);temp=stu[k].examroom;stu[k].examroom=stu[i].examroom;stu[i].examroom=temp;}printf(已按照考场号排序,返回主菜单请按enter键\n);getchar();}/*--------------------检索子程序(按准考证查找)---------------------*/voidfind_num(structstudentstu[],intn){inti,num;printf(请输入您要查找的准考证号码或按-1返回菜单\n);scanf(%d,&num);while(num!=-1){for(i=0;i=n;i++)if(num==stu[i].examnum){printf(准考证号码姓名考场号分数\n);printf(%d%s%d%f\n,stu[i].examnum,stu[i].name,stu[i].examroom,stu[i].score);break;};printf(继续查找则请输入您要查找的准考证号码或按-1返回主菜单\n);scanf(%d,&num);}}/*--------------------检索子程序(按考场号查找)---------------------*/voidfind_room(structstudentstu[],intn){inti,room;printf(请输入您要查找的准考证号码或按-1返回菜单\n);scanf(%d,&room);while(room!=-1){for(i=0;i=n;i++)if(room==
本文标题:英语四级成绩管理 课程设计报告
链接地址:https://www.777doc.com/doc-3245453 .html