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

2016-09-27  本文已影响0人  happywho250

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);
                                        }
上一篇下一篇

猜你喜欢

热点阅读