C语言课程设计_学生成绩管理系统_完整版
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#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(); /*计算每个学生平均分*/
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(charame[]);/*按查找*/
void findyear(int cyear); /*按入学年查找*/
void save(); /*保存文件*/
void stop(); /*停顿函数*/
void stop() /*停顿函数(公共函数)*/
{
printf("Press Any Key To Continue...\n");
getchar();
}
void output() /*输出学生成绩函数(公共函数)*/
{
int i,j;
printf("================================================================ ===\n");
printf("学号班级专业入学年C语言高数大物电路模电\n");
printf("================================================================ ===\n");
for(i=0;i { printf("%s %s %s %s %d",stu[i].no,stu[i].name,stu[i].grade,stu[i].pro,stu[i].year) ; for(j=0;j<5;j++) printf(" %.1f",stu[i].score[j]); printf("\n"); } stop(); } void init() /*系统初始化函数*/ { if(access("stu.dat",0)) /*判断文件是否存在*/ newfile(); /*若不存在,新建数据文件*/ else read1(); /*若存在,读取数据*/ } void newfile() /*建立新的数据文件*/ { int i; FILE *fp; if((fp=fopen("stu.dat","wb"))==NULL) /*创建二进制文件*/ { printf("创建文件失败,请重新运行程序.\n"); /*显示"创建文件失败,请重新运行程序"*/ exit(0); /*终止程序*/ } printf("初次运行,进行数据初始化...\n");/*显示"初次运行,进行数据初始化..."*/ stop(); printf("请输入学生人数:");/*显示"请输入学生人数:"*/ scanf("%d",&num); for(i=0;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为数据文件中实际存储的学生人数*/