美文网首页
学生学籍管理系统(类似DOS下的操作)

学生学籍管理系统(类似DOS下的操作)

作者: happywho250 | 来源:发表于2016-09-27 23:16 被阅读0次

    Linux下与用户交互,用文件存储用户数据 ,

    具有增加,删除,修改,查询的功能

    设计要点:每次进入系统,将用户信息全部加载到内存,用户修改,删除,增加都是在内存中操作,

    详情

    1.jpg
    1. 我的主页面:index.php,

    2. 函数库:functions.php,

    3. 用户信息:student.db(JSON格式存储)
      index.php代码

                         <?php
                           2 require("./functions.php");
                           3 $str=<<<mystr
                           4         ------------------------------------------------------------------
                           5         ------------------欢迎使用学生信息后台管理系统--------------------
                           6         ------------------------------------------------------------------
                           7         注意:本系统仅供后台管理员人员使用!
                           8               非管理人员,请速度离开!!!
                           9 mystr;
                          10 echo $str;
                          11         $stu=false;//判断管理员登录是否成功。
                          12       while($stu==false){
                          13         fwrite(STDOUT,"\n请输入管理员账号:");
                          14         $k=trim(fgets(STDIN));
                          15         fwrite(STDOUT,"\n请输入密码:");
                          16         $v=trim(fgets(STDIN));
                          17         if(($k==111 && $v==888)||($k==1111 && $v==8888)){
                          18                 echo "登录成功!";
                          19                 $stu=true;//当登陆成功的时候,$stu=true,不再进行登录操作
                          20         }else{
                          21                 echo "\n账号或密码错误\n";//当登录不成功的时候,$stu=false,再次重新登录
                          22                 $stu=false;
                          23         }
                          24 }
                          25
                          26       if($stu==true){
                          27         $strone=<<<mystrone
                                ------------------------------------------------------------------
                          29         -------------------欢迎使用学生信息后台管理系统-------------------
                          30         ------------------------------------------------------------------
                          31         1.查看所有信息                                      2.查询学生信息
                          32         3.增加学生信息                                      4.删除学生信息
                          33         5.修改学生信息                                      6.退出管理系统
                          34 mystrone;
                          35         echo "\n".$strone;
                          36         $studata=returnInfo();//此处的目的是在进入系统的时候,将用户的索引信息放在内存中,删除,修改完成以后再进行存储
                          37         }
                          38         while($stu==true){
                          39                 fwrite(STDOUT,"\n请输入选择操作选项:");
                          40                 $k1=trim(fgets(STDIN));
                          41                 switch($k1){
                          42                         case 1:
                          43                               showInfo();
                          44                                 break;
                          45                         case 2:
                          46                               findInfo();
                          47                                 break;
                          48                         case 3:
                          49                               addInfo();
                          50                                 break;
                          51                         case 4:
                          52                               delInfo();
                          53                                 break;
                          54                         case 5:
                          55                               modInfo();
                          56                                 break;
                                                   case 6:   
                          58                               echo "泪别!亲爱的管理员\n";
                          59                               exit();
                          60                               break;
                          61                         default:    
                          62                               echo "操作失败!请重新选择\n";
                          63                              break;
                          64                           }         
                          65 }
      

    functions.php代码

                            <?php
                            //查看所有信息
                                    function showInfo(){
                                                    global $studata;
                                                    $infoarr=$studata;//返回存放学生信息数组
                                                    echo " 编号\t  学号   \t 姓名\t性别\t总分数\t操作时间\n";
                                                    echo "-------------------------------------------\n";
                                                    foreach($infoarr as $k=>$v){
                                                    echo $k."\t";
                                                    $file=json_decode($v,true);//返回解码的数组
                                                    echo $file['id']."\t";
                                                    echo $file['name']."\t";
                                                    echo $file['sex']."\t";
                                                    echo $file['total']."\t";
                                                    echo date("Y-m-d",$file['time'])."\n";
                                                    }
    
                                    }
    
                            //查询信息  
                                    function findInfo(){
                                                    global $studata;
                                                    showInfo();//首先展示学生信息
                                                    $list=$studata;//全部的用户信息,每一个单元为一个学生的信息
                                                    fwrite(STDOUT,"请输入用户学号查询:");
                                                    $content=trim(fgets(STDIN));//获取用户查询内容  
                                                    fwrite(STDOUT,"查询结果如下:\n");
                                                    echo " 编号\t  学号   \t 姓名\t性别\t总分数\t操作时间\n";
                                                    echo "-------------------------------------------\n";
                                                    foreach($list as $k=>$v){
                                                            $file=json_decode($v,true);//每个学生的信息
                                                            if(strpos($file['id'],$content)!==false){
                                                                    echo $k."\t";
                                                                    echo $file['id']."\t";
                                                                    echo $file['name']."\t";
                                                                    echo $file['sex']."\t";
                                                                    echo $file['total']."\t";
                                                                    echo date("Y-m-d",$file['time'])."\n";
                                                            }
                                                    }
                                    }
    
    
    
    
    
                            //增加学生信息
                                    function addInfo(){
                                            showInfo();
                                            $arr=array();
                                            fwrite(STDOUT,"请输入学号:");
                                            $arr['id']=trim(fgets(STDIN));
                                            fwrite(STDOUT,"请输入姓名:");
                                            $arr['name']=trim(fgets(STDIN));
                                            fwrite(STDOUT,"请输入性别:");
                                            $arr['sex']=trim(fgets(STDIN));
                                            fwrite(STDOUT,"请输入总分:");
                                            $arr['total']=trim(fgets(STDIN));
                                            $arr['time']=time();
                                            //写入文件
                                            $f=fopen("./studentInfo.db","a");//已追加方式打开
                                            fwrite($f,json_encode($arr)."\n");//生成json格式的字符串
                                            fclose($f);//有开就有关。
                                    }
    
    
                            //删除学生信息  
                                    function delInfo(){
                                            global $studata;
                                            showInfo();//显示用户信息
                                            fwrite(STDOUT,"请输入需要删除学生的学号:");
                                            $key=trim(fgets(STDIN));
                                            $status=false;
                                            echo " 编号\t  学号   \t 姓名\t性别\t总分数\t操作时间\n";
                                                    echo "-------------------------------------------\n";
                                                    //查找匹配并且输出                      
                                                    foreach($studata as $k=>$v){
                                                            $file=json_decode($v,true);//每个学生的信息
                                                            if($file['id']===$key){
                                                                    echo $k."\t";
                                                                    echo $file['id']."\t";
                                                                    echo $file['name']."\t";
                                                                    echo $file['sex']."\t";
                                                                    echo $file['total']."\t";
                                                                    echo date("Y-m-d",$file['time'])."\n";
                                                                    $num=$k;
                                                                    $status=true;
                                                            }else{  //当用户不存在的时候,  
                                                                    $status=false;
                                                                    }
                                                    }
                                            if($status==true && $num>=0){
                                            fwrite(STDOUT,"确认删除该用户[1/0]:");
                                            $keytwo=trim(fgets(STDIN));
                                            if($keytwo==1){
                                                    unset($studata[$num]);//销毁
                                                    saveInfo();//保存
                                                    fwrite(STDOUT,"删除成功!");
                                                  }
                                    }else{
                                            echo    "该用户不存在!";
                                            }
                            }
    
                            //修改学生信息  
                                    function modInfo(){//如果存在需要修改的用户,先删除,后修改。
                                                    global $studata;
                                                    showInfo();
                                                    fwrite(STDOUT,"请输入需要修改的学号:");
                                                    $key=trim(fgets(STDIN));
                                                    $status=false;
                                            echo " 编号\t  学号   \t 姓名\t性别\t总分数\t操作时间\n";
                                                    echo "-------------------------------------------\n";
                                                    //查找匹配并且输出                      
                                                    foreach($studata as $k=>$v){
                                                            $file=json_decode($v,true);//每个学生的信息
                                                            if($file['id']===$key){
                                                                    echo $k."\t";
                                                                    echo $file['id']."\t";
                                                                    echo $file['name']."\t";
                                                                    echo $file['sex']."\t";
                                                                    echo $file['total']."\t";
                                                                    echo date("Y-m-d",$file['time'])."\n";
                                                                    $num=$k;
                                                                    $status=true;
                                                            }else{  //当用户不存在的时候,
                                                                     $status=false;
                                                                    }
                                                    }
                                                    if($status==true && $num>=0){
                                                    fwrite(STDOUT,"确认修改该用户[1/0]:");
                                                    $keytwo=trim(fgets(STDIN));
                                                             if($keytwo==1){
                                                                     unset($studata[$num]);//销毁
                                                                      saveInfo();//保存
                                                                      addInfo();//追加一个
                                                    fwrite(STDOUT,"修改成功!");
                                                  }
                                            }else{
                                                   echo  "该用户不存在!";
                                            }
                                    }
                            //返回用户信息的一个数组,每一个单元是一个人信息,而且是以json格式编码的
                                    function returnInfo(){
                                                    $list=array();
                                                    $f=fopen("./studentInfo.db","r");
                                                    while($row=fgets($f)){
                                                            $list[]=$row;
                                                            }
                                                    fclose($f);
                                                    return $list;
                                     }
    
                                    function saveInfo(){
                                                    global $studata;//json编码的
                                                    $f=fopen("./studentInfo.db","w");
                                                    foreach($studata as $v){
                                                            fwrite($f,$v);
                                                    }
                                                    fclose($f);
                                            }

    相关文章

      网友评论

          本文标题:学生学籍管理系统(类似DOS下的操作)

          本文链接:https://www.haomeiwen.com/subject/polhyttx.html