C语言实现学生信息管理系统(多文件)
本文实例为大家分享了C语言实现学生信息管理系统的具体代码,供大家参考,具体内容如下
elemtype.h
/***************************** *这是学生成绩管理系统中的记录结构文件。 *文件名:elemtype.h *作者: *创建日期:2012-12-05 *完成日期:2012-12-07 *版本:1.0 *修改记录: * * ******************************/ #ifndefELEMTYPE #defineELEMTYPE #include//用宏定义来规定各个字符串数据项的最大长度。 //定义姓名最大长度 #defineMAX_NAME30 //定义学生课程数量 #defineSCORE_NUM3 /*学生分类信息*/ typedefenum { SCIENCE=0,//理科 ARTS,//文科 MEDICINE,//医科 OTHER//其它 }StuType; /*学生信息结构体*/ typedefstruct { charname[MAX_NAME+1];//学生姓名 StuTypetype;//学生分类,具体定义见学生分类信息 intID;//学号 floatscore[SCORE_NUM];//所修课程分数 }ElemType; /*函数功能: 从文件中读取数据并保存到数组中,n为文件中保存的记录条数 参数说明: filename-数据文件名称 n-数组中当前保存的有效记录条数 array-用于存储学生信息的数组 返回值: true-成功添加了一条记录; false-添加记录不成功 */ boolReadDataFromFile(char*filename,ElemTypearray[],intn); /*函数功能: 显示所有学生信息 参数说明: n-数组中当前保存的有效记录条数 array-用于存储学生信息的数组 返回值: 无 */ voidDispalyAll(ElemTypearray[],intn); /*函数功能: 修改学生信息,即从控制台输入一个学生信息,根据该信息在数组中进行查找并修改 参数说明: n-数组中当前保存的有效记录条数 array-用于存储学生信息的数组 返回值: true-成功修改了一条记录 false-修改记录不成功 */ boolModifyStudentInfo(ElemTypearray[],intn); /*函数功能: 计算某一科目平均分 参数说明: n-数组中当前保存的有效记录条数 array-用于存储学生信息的数组 返回值: -1-没有找到对应记录 对应记录的下标 */ voidCalcSubjectScore(ElemTypearray[],intn); /*函数功能: 根据学号查找学生,计算其平均分 参数说明: n-数组中当前保存的有效记录条数 array-用于存储学生信息的数组 返回值: -1-没有找到对应记录 对应记录的下标 */ voidCalcStudentScore(ElemTypearray[],intn); /*函数功能: 添加学生信息,即从控制台输入一条学生信息,然后将输入的学生信息保存到数组中 参数说明: n-数组中当前保存的有效记录条数 array-用于存储学生信息的数组 返回值: true-成功添加了一条记录,提示:此种情况下n需要增加1 false-添加记录不成功 */ voidSortStu(ElemTypearray[],intn); /*函数功能: 把数组中的数据写到文件中保存 参数说明: filename-数据文件名称 n-数组中当前保存的记录条数 array-用于存储学生信息的数组 返回值: true-成功添加了一条记录; false-添加记录不成功 */ boolWriteDataToFile(char*filename,ElemTypearray[],intn); #endif
elemtype.cpp
#include"elemtype.h" #include#include // ///function ///从文件中读取学生信息,保存到一个足够大的数组中。 boolReadDataFromFile(char*filename,ElemTypearray[],intn) { FILE*fp; inti; if((fp=fopen(filename,"rb"))==NULL) { returnfalse; } for(i=0;i main.cpp
//这是主测试文件 #include"elemtype.h" #defineMAX_STUDENT_NUM100 voiddisplayInfo(); voidrun(ElemType*array,intn); intmain() { intn=5;//n为数组中有效记录条数,初始文件中为5 ElemTypetotal[MAX_STUDENT_NUM]; charfilename[]="student.dat"; if(!ReadDataFromFile(filename,total,n)) { printf("打开文件%s失败",filename); } displayInfo(); run(total,n); return0; } // ///function voiddisplayInfo() { puts("********************************************************************"); puts("欢迎使用x大学计算机(软件)学院学生管理系统V1.0"); puts("********************************************************************\n"); } // ///function voidrun(ElemType*array,intn) { intoption=0; //提示用户选择操作 puts(""); puts("请选择操作:\n"); puts("0:直接退出"); puts("1:显示所有学生信息"); puts("2:修改某个学生信息"); puts("3:计算所有学生某一科平均分"); puts("4:计算某一个学生分数"); puts("5:添加一个学生信息"); puts("6:写回文件并退出\n"); do { scanf("%d",&option); //根据用户选择调用相关函数完成指定的操作 switch(option) { //显示所有学生信息 case1: DispalyAll(array,n); break; //修改某个学生信息 case2: { if(ModifyStudentInfo(array,n)) { printf("\n"); DispalyAll(array,n); printf("修改成功!\n"); } else printf("未找到此学生!\n"); } break; //计算所有学生某一科平均分 case3: CalcSubjectScore(array,n); break; //计算某一个学生分数 case4: CalcStudentScore(array,n); break; //添加一个学生信息 case5: SortStu(array,n); break; //写回文件并退出 case6: { if(WriteDataToFile("student.dat",array,n)) { printf("保存成功!\n"); DispalyAll(array,n+1); } break; } default: break; } }while(option!=0); }以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。