《C语言程序设计综合训练》学生成绩记录簿设计.doc
文本预览下载声明
《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
显示全部