#include<>
#include<>
#include<>
#include<>
/* strcmp函数原型包含*/
#define N 100
/*定义最大学生人数为100*/
struct student /*学生结构体定义*/
{
char no[11]; /*学号,10位*/
char name[10];/*姓名,3个汉字*/
char grade[10];/*班级*/
char pro[20];/*专业*/
float score[5];/*储存5门功课的成绩*/
float ave;/*储存平均分*/
int year;/*入学年*/
}stu[N];
int num;
void panduani(int); /*通过i的值,判断信息要查的信息是否存在*/ void output(); /*输出学生成绩函数(公共函数)*/
void init(); /*系统初始化函数*/
void newfile(); /*建立新的数据文件*/
void read1(); /*从数据文件中读取数据*/
void weihu(); /*维护界面函数*/
void new1(); /*新增一个学生成绩函数*/
void xiugai(); /*修改学生成绩*/
void xgcj(int); /*修改成绩*/
void delete1(); /*删除学生信息函数*/
void tongji(); /*统计界面函数*/
void tongji1(); /*计算每个学生平均分*/
fopen函数失败void tongji2(); /*计算每门课程的平均分*/
void paixu1(); /*排序函数*/
void paino(); /*按学号排序*/
void paiave(); /*按平均分排序*/
void paidkcj(); /*按单科成绩排序*/
void change(int,int); /*交换结构体数组中的两个记录*/ void outputx(int); /*选择输出单科成绩*/
void find1(); /*查界面函数*/
int find(char sno[]); /*按学号查*/
int findname(char cname[]);/*按姓名查*/
void findyear(int cyear); /*按入学年查*/
void save(); /*保存文件*/
void stop(); /*停顿函数*/
void stop() /*停顿函数(公共函数)*/
{
printf("Press Any Key \n");
getchar();
}
void output() /*输出学生成绩函数(公共函数)*/
{
int i,j;
printf("===================================================================\n") ;
printf("学号姓名班级专业入学年 C语言高数大物电路模电\n");
printf("===================================================================\n") ;
for(i=0;i<num;i++)
{
printf("%s %s %s %s %d",stu[i].no,stu[i].name,stu[i].grade,stu[i].p ro,stu[i].year);
for(j=0;j<5;j++)
printf(" %.1f",stu[i].score[j]);
printf("\n");
}
stop();
}
void init() /*系统初始化函数 */
{
if(access("",0)) /*判断文件是否存在*/
newfile(); /*若不存在,新建数据文件*/
else
read1(); /*若存在,读取数据*/
}
void newfile() /*建立新的数据文件 */
{
int i;
FILE *fp;
if((fp=fopen("","wb"))==NULL) /*创建二进制文件*/
{
printf("创建文件失败,请重新运行程序.\n"); /*显示"创建文件失败,请重新运行程序"*/
exit(0); /*终止程序*/
}
printf("初次运行,进行数据初始化...\n");/*显示"初次运行,进行数据初始化..."*/ stop();
printf("请输入学生人数:");/*显示"请输入学生人数:"*/
scanf("%d",&num);
for(i=0;i<num;i++)
{
printf("请输入第 %d个学生的学号:",i+1); /*显示"请输入第i+1个学生的学号:"*/ getchar(); /*吃回车*/
gets(stu[i].no);
printf("姓名:"); /*显示"姓名:"*/
gets(stu[i].name);
printf("班级:"); /*显示"班级:"*/
gets(stu[i].grade);
printf("专业:"); /*显示"专业:"*/
gets(stu[i].pro);
printf("入学年n:");/*显示"入学年"*/
scanf("%d",&stu[i].year);
printf("C语言成绩:");/*显示"C语言成绩"*/
scanf("%f",&stu[i].score[0]);
printf("高数成绩:");/*显示"高数成绩"*/
scanf("%f",&stu[i].score[1]);
printf("大物成绩:");/*显示"大物成绩"*/
scanf("%f",&stu[i].score[2]);
printf("电路成绩:");/*显示"电路成绩"*/
scanf("%f",&stu[i].score[3]);
printf("模电成绩:");/*显示"模电成绩"*/
scanf("%f",&stu[i].score[4]);
fwrite(&stu[i],1,sizeof(struct student),fp); /*把第i+1名学生成绩写入文件*/ }
fclose(fp);
printf("========================\n");
printf(" 刚才输入的 %d 个数据为:\n",num); /*显示"刚才输入的 num 个数据为:"*/ printf("========================\n\n");
output();
}
void read1() /*从数据文件中读取数据 */
{
FILE *fp;
num=0; /*num为数据文件中实际存储的学生人数*/
fp=fopen("","r");
if(fp==NULL) /*数据文件不存在*/
{
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论