学生学籍管理系统(类似DOS下的操作)
2016-09-27 本文已影响0人
happywho250
Linux下与用户交互,用文件存储用户数据 ,
具有增加,删除,修改,查询的功能
设计要点:每次进入系统,将用户信息全部加载到内存,用户修改,删除,增加都是在内存中操作,
详情
1.jpg-
我的主页面:
index.php
, -
函数库:
functions.php
, -
用户信息:
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);
}