您的位置:首页 > 其它

学生成绩管理系统续

2018-12-10 17:12 78 查看

续上篇学生成绩管理系统

上一篇博客上放出了我各个界面的源代码,还差一个主函数的源代码
我是将学生,教师,管理员,超级管理员,还有公共函数都分开写,最后再汇总在一个main函数中

main函数

#include"interface.h"//这个头文件中包含了其他所有的头文件还有函数
#include"common.h"//公共函数库,结构体定义都在里面
void xsglxt(void)
{
while(1)
{
interface();//显示初始界面
switch(getch())
{
case 49:student_interface();break;//1.学生入口
case 50:teacher_interface();break;//2.教师入口
case 51:administratorsr_interface();break;//3.管理员入口
case 52:super_administrators_interface();break;//4.超级管理员入口
case 53:return ;;break;//5.退出

}
}
}

int main()
{
FILE* fpp1=fopen("admin.dat","r");//读文件
fseek(fpp1,0,SEEK_END);
long j=ftell(fpp1);
rewind(fpp1);
adm_count=j/56;
for(int i=0;i<=adm_count;i++)
{
fread(&admin[i],56,1,fpp1);
}
FILE* fap1=fopen("student.dat","r");
fseek(fap1,0,SEEK_END);
long j1=ftell(fap1);
rewind(fap1);
stu_count=j1/64;
for(int i=0;i<=stu_count;i++)
{
fread(&student[i],64,1,fap1);
}

FILE* fwp1=fopen("teacher.dat","r");
fseek(fwp1,0,SEEK_END);
long j2=ftell(fwp1);
rewind(fwp1);
teacher_count=j2/60;
for(int i=0;i<=teacher_count;i++)
{
fread(&teacher[i],60,1,fwp1);
}

xsglxt();

FILE* fap=fopen("student.dat","w");//写文件
for(int i=0;i<stu_count;i++)
{
fwrite(&student[i],sizeof(student[0]),1,fap);
}
FILE* fwp=fopen("teacher.dat","w");
for(int i=0;i<teacher_count;i++)
{
fwrite(&teacher[i],sizeof(teacher[0]),1,fwp);
}
FILE* fpp=fopen("admin.dat","w");
for(int i=0;i<adm_count;i++)
{
fwrite(&admin[i],sizeof(admin[0]),1,fpp);
}
}
因为刚刚学了文件读写,对文件读写函数理解不深,所以我采用的是统一读,统一写入的方式,
在主程序运行前,先将文件中的数据读入系统中,主函数结束时,再重先从头开始写入到文件中
效率不是很高,如果量大的话每一次程序的读和写都会浪费掉巨大的时间。
其次,由于文件写入是放在主程序的最后,不是实时读写,程序运行的过程中直接退出,会导致
程序运行过程中输入的数据丢失。
最后,因为我们采用的是二进制方式的读写,所以读文件数据的时候会很不方便。
在整个项目的过程中,我体会到了合作的好处,以前都习惯一个人埋头苦干,效率不高,这次和
同学一起合作写项目,效率很快,我们小组用了2天的时间,准确的来说用了不到12个小时的时间就
把项目做完了。这是一个人没法做到的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: