文档详情

《C语言程序设计综合训练》学生成绩记录簿设计.doc

发布:2017-06-07约7.41千字共16页下载文档
文本预览下载声明
《C语言程序设计综合训练》 课 程 设 计 报 告 姓  名: 华中圆 班 级: 12物联网1 指导教师:     孙洁 成  绩: 日期:2013.09.13 目标与内容: 目标:学生成绩记录簿设计; 内容:编制一个C语言成绩记录簿,每个学生信息包括:学号、姓名、C语言成绩。具体功能: (1)创建信息并以磁盘文件保存; (2)读取磁盘文件并显示输出所有学生的成绩; (3)按学号或姓名查询成绩; (4)添加成绩记录; (5)修改指定姓名或学号的学生的成绩并可存盘; (6)显示输出60分以下、60~79、80~89、90分以上各分数段的学生信息。 (7)※附加功能:删除记录并可存盘; 地点与软件环境: 地点:60#103; 环境:Visual C++ 6.0; 课程设计主要内容: 问题分析:根据题目要求,程序应当记录下每个学生的学号、姓名、C语言成绩等成绩记录簿应有的全部信息,所以可以定义一个结构体数组存放每一个学生的信息。依次录入学生成绩并存入磁盘文件,并定义一个全局变量用来记录录入的总人数并写入磁盘文件,以便下一次打开文件时可以继续录入而不丢失前一次的信息。为了让程序界面更加简便易于操作,界面以菜单形式呈现,选择菜单编号,调用对应的子函数,实现程序的录入并保存、查询、修改、按分数段查询学生信息、储存磁盘文件、、删除记录并保存、退出程序等功能。 算法分析: 程序: #includestdio.h #includeprocess.h #includestring.h #define SIZE 200 typedef struct grade_list {int number; char name[10]; float grade; }GRADE_LIST; GRADE_LIST list[SIZE]; static int COUNT=0,I=0; void save() { FILE *fp; int i; if((fp=fopen(d:\\LIST.dat,wb))==NULL)//打开磁盘文件 { printf(cannot open file!!\n); return; } fwrite(COUNT,sizeof(int),1,fp); for(i=0;iCOUNT;i++) if(fwrite(list[i],sizeof(GRADE_LIST),1,fp)!=1) printf(file write error!!); fclose(fp); } void input() { int i,j; printf(输入学生信息,当输入学号为-1时,结束成绩的输入!\n); while(1) {if(COUNT==SIZE) { printf(亲~空间已满了哦~); break; } printf(学号:); scanf(%d,list[I].number); for(j=0;jCOUNT;j++) if(list[I].number==list[j].number) {printf(已有此学号了哦~请重新输入学号~\n学号:); scanf(%d,list[I].number); break; } if(list[I].number==-1)return; printf(请输入姓名:); scanf(%s,list[I].name); printf(请输入C语言成绩:); scanf(%f,list[I].grade); I++; COUNT++; } save(); } void search() { int choice,i,number; char name[10]; printf(请输入查询类型~\n1-----按学号查询\n2-----按姓名查询\n); do { scanf(%d,choice); if(choice!=1choice!=2)printf(输入错误!\n); }while(choice!=1choice!=2); if(choice==1){printf(请输入要查询的学号: );scanf(%d,number);} else {printf(请输入要查询的姓名:);scanf(%s,name);} switch(choice) { case 1: for(i=0;iCOUNT;i++) if(list[i].number==numbe
显示全部
相似文档