⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄

📁 教学信息管理系统
💻
字号:
void main()
{
 int notinit=0;
 int f=1,er=0;
   // char pd[20];
   welcome();
   Slink sl;
   Klink kl;
   FILE *sf,*kf; //定义两个文件指针  
   Snode *rs,*ps;//定义一个尾指针和一个临时指针(学生)
   Knode *rk,*pk;//定义一个尾指针和一个临时指针(教师)
   sl=(Snode*)malloc(sizeof(Snode));
   sl->next=NULL;
   rs=sl;//给尾指针赋值

   sf=fopen("s.dat","r");
   if(!sf)//未打开文件说明用户是第一次使用这个程序让用户初始化密码
   {
       printf("\n\t这是你第一次使用本程序,请初始化参数\n");
    printf("\n请输入密码:");
    scanf("%s",&pd);
    getchar();
    notinit=1;
    saveflag=1;
    //getchar();
   }
   else
   {
       aflag=fgetc(sf);
       int y=0;
    char tempc;
    tempc=fgetc(sf);
    while(!feof(sf)&&(tempc!='\n')&&(y<20))//不添加小于20就会产生溢出
    {
     pd[y]=tempc;//读取密码
     tempc=fgetc(sf);
     y++;
    }
      while(!feof(sf))
   {

          ps=(Snode*)malloc(sizeof(Snode));
          if(fread(ps,sizeof(Snode),1,sf)==1) //将文件的内容放入接点中
    {
              ps->next=NULL;
              rs->next=ps;
               rs=ps; //将该接点挂入连中
    }
   }
      fclose(sf); //关闭文件
   }
   kl=(Knode*)malloc(sizeof(Knode));
   kl->next=NULL;
   rk=kl;
   kf=fopen("k.dat","r");
   if(kf==NULL)
   {
        printf("\n\t!!!!!!!!!!还没有课程数据库存在,请以管理员身份登录!!!!!!!!!!!\n");
  getchar();
  goto ad;
   }
   else
   {    
       int z=0;
    char tem,tempd[20];
    tem=fgetc(kf);
    while(!feof(kf)&&(tem!='\n')&&(z<20))
    {
     tempd[z]=tem;//putchar(tem);//读取密码
     tem=fgetc(kf);
     z++;tempd[z]='\0';
    }
    
    //puts(pd);
    //puts(tempd);
    if(strcmp(pd,tempd))//校验密码的同时检查文件的完整性
    {
     printf("\n文件出错,有可能已经损坏,请联系管理员\n");
     getchar();
     er=1;
    }
    else
           while(!feof(kf))
     {
             pk=(Knode*)malloc(sizeof(Knode));
             if(fread(pk,sizeof(Knode),1,kf)==1) //将文件的内容放入临时接点中
    {
                  pk->next=NULL;//尾赋值为空
                  rk->next=pk;
                  rk=pk; //把刚刚的节点连接到链中
    }
     }
  fclose(kf);
   }
   while(f)
   {
    if(notinit)
     goto ad;
    if(er)
     goto end;
    system("cls");//调用dos命令清屏
    welcome();
    load();
       char loadflag[20];//存放选择
    pleasechoice();
    scanf("%s",&loadflag);
    getchar();//接受回车符
    if((strlen(loadflag)<2)&&(loadflag[0]=='Q'||loadflag[0]=='q'))//输入大于2这说明用户输入出错
end:    exit(0);//退出
    else if((strlen(loadflag)<2)&&(loadflag[0]=='A'||loadflag[0]=='a'))
    {
 ad: admin(sl,kl);//管理员
    }
    else if((strlen(loadflag)<2)&&(loadflag[0]=='T'||loadflag[0]=='t'))
         teacher(sl,kl);//教师
    else if((strlen(loadflag)<2)&&(loadflag[0]=='S'||loadflag[0]=='s'))
      student(kl,sl);//学生
    else 
    {
     wrong();
     getchar();
     
    }
   }
}

/*这是一个教学信息管理系统的源程序,只是为一次作业写的,所以有许多地方不完善。在写这个程序之前曾经参考过c语言之家的一些程序,非常感激,所以公开这个代码,希望对一些朋友有帮助.由于版面有限,所以这儿只贴出了主函数,其它部分在附件里。如果程序有什么问题请与我联系。我的QQ:421404493 E-mail:wbaobao#zj.com*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -