头文件与宏定义:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define _CRT_SECURE_NO_DEPRECATE
#define M 1000
结构体:
struct student {
char name[30];// 学生姓名
char num[30];//学号
int major;//专业
int _class;//班级
int Math;//数学成绩
int English;//英语成绩
int dl;//专业课导论成绩
int cLanguage;//C语言成绩
int ty;//体育成绩
int s;//总分
double avg;//平均分
};
函数声明:
void fileread(struct student stu[M]);//*读取文件函数
void filesave(struct student stu[M]);//*保存文件函数
void input(struct student stu[M]);//****输入数据函数
void output(struct student stu[M]);//***输出函数
void del(struct student stu[M]);//******删除学生信息函数 (1 、2)
void gai(struct student stu[M]);//******改成绩函数
void chakan(struct student stu[M]);//**查询学生成绩信息函数
void name_(struct student stu[M]);//****使用学生姓名删其信息 1
void num_(struct student stu[M]);//*****使用学生学号删其信息 2
void order(struct student stu[M]);//****进行排序函数
int count = 0;//输入学生成绩信息的个数,一开始为零
struct student t;//这个t是进行order排序时用的
主函数:
int main()
{
int sum = 0, xuan;//xuan一开始进入界面进行选择 ,
system("mode con: cols=369 lines=3690"); //控制编译器高和宽
struct student stu[M];
//**********代码运行界面*********
printf("\t\t\t\t\t\t 欢迎使用学生成绩管理信息系统\n");
do {
printf("\t\t\t\t\t -------------------------------------------\n");
printf("\t\t\t\t\t\t ***学生成绩信息管理系统***\n");
printf("\t\t\t\t\t\t\t ***************\n");
printf("\t\t\t\t\t\t\t 1、输入学生信息\n");
printf("\t\t\t\t\t\t\t 2、浏览学生信息\n");
printf("\t\t\t\t\t\t\t 3、查看学生信息\n");
printf("\t\t\t\t\t\t\t 4、修改学生成绩\n");
printf("\t\t\t\t\t\t\t 5、删除学生信息\n");
printf("\t\t\t\t\t\t\t 6、学生信息排序\n");
printf("\t\t\t\t\t\t\t 7、读取文件信息\n"); //从文件读取
printf("\t\t\t\t\t\t\t 8、保存到文件\n"); //保存到文件
printf("\t\t\t\t\t\t\t 9、退出系统\n");
printf("\t\t\t\t\t\t\t ***************\n");
printf("\t\t\t\t\t\t\t 请输入你的选择\n");
scanf_s("%d", &xuan); //进行选择功能
fflush(stdin); //清除输入缓冲区
if (xuan > 9 || xuan <= 0)
{
sum++;
if (sum >= 8)
{
printf("输入错误次数过8次,程序将重新开始\n");
//通过限制错误输入,避免进入死胡同
system("pause"); //程序暂停,重新选择
system("cls"); //清屏语句
}
}
switch (xuan) //根据选择,调用不同的函数来完成不同的任务
{
case 1:input(stu); break; //输入
case 2:output(stu); break; //输出
case 3:chakan(stu); break; //查询
case 4:gai(stu); break; //修改
case 5:del(stu); break; //删除
case 6:order(stu); break; //排序
case 7:fileread(stu); break;//读取文件数据
case 8:filesave(stu); break;//保存文件数据
case 9:printf("使用完毕,请关掉程序\n"); system("pause"); break;
default:printf("无效的选择,请重新输入\n"); break;
}
} while (xuan != 9);
printf("本程序结束 over\n");
return 0;
}
保存文件函数:
void filesave(struct student stu[M])
{
int a = 0;
char b;
FILE* fp;
printf("请确认一边是否已经输入学生信息了:'y' or 'n'?\n");
scanf_s("%c", &b,1);
fflush(stdin);//清除输入缓冲区
while (b != 'y' && b != 'n')
{
if (b != 'y' && b != 'n')
printf("输入错误,重新输入\n");
printf("确定请输入'y' or 'n'?\n");
scanf_s("%c", &b,1);
fflush