Linux 三级项目报告
项目名称:基于 shell 和 mysql 的学生成绩管理系统
姓名:韩露 石雪景 李贺 庄颜
指导教师:冯建周 李季辉 李可 王世明
日期:2015/6/22
摘要:
信息技术在管理上有着深入广泛的应用,信息管理系统能够
更高效率的将内部活动组织起来。本系统的研发正是迎合高效的
信息管理系统,使教师对于学生信息的管理更加方便,有效,快
捷。
本系统应用于对学生个人信息及成绩信息的统计,实现对学
生信息的录入,删除,和基本的查询需要。本文将对该系统的需
求分析,设计模块,相关代码等进行介绍和展示。
关键字:3~5 个 学生信息 查询 录入 分布 删除
1.前言
本报告以学生信息管理系统的开发为背景,介绍了信息系统的开发环境
的构建,系统的基本功能模块与实现,系统的各部分代码,系统结果展示,
以及总结等五部分。信息系统是利用 shell 脚本实现,数据库是基于 MySQL
设计。
预期结果:
构建两个信息表,一个学生基本信息表 stu_info,一个学生成绩表
stu_grade。Stu_info 表中包括姓名,性别,联系方式,家庭住址等字段。
Stu_grade 表中包括 id,学号,姓名和任选三门课程名称作为字段。
在此基础上,完成以下基本操作:实现记录的插入、删除、查询和更
新等操作。并添加新功能 比如计算总分,计算平均分等。
项目组分工:
李贺:整体项目功能分析,划分,主界面的构建。
庄颜:基本功能代码的实现,对系统测试,改良。
石雪景:基本功能代码的实现,对系统测试,改良。
韩露:额外功能代码实现。
2. 研究报告正文
2.1 项目应用背景
随着教育水平逐渐提高,学生人数的急剧增长。需要管理的信息也变
得复杂,庞大。同时计算机技术已经成熟。本项目基于计算机实现信息管
理以提高学生信息管理工作的效率。
2.2 软件系统设计
该系统共分为 信息查询,信息插入,信息删除,制作成绩表,成绩分
布统计等功能。功能的实现是通过 shell 脚本对 mysql 进行的操作。另外设
计主界面,列举主要功能与用户进行交互。
信息查询:
查询功能分为个人信息查询和整体信息查询。个人信息查询的条件为
学生姓名。主要由 mysql 的 select ..from ..where 语句实现。
信息插入:
通过录入学生姓名,各科成绩等实现对学生信息的插入。
主要由 mysql 语句 insert 实现。
信息删除:
通过学生姓名,将学生的全部信息从表中删除。并弹出交互信息,
验证要删除信息的正确性,避免误删。
主要由 mysql 语句 delete 实现。
制作成绩表:
由用户输入排序条件,将成绩表按照一定序列排序。默认值为总成绩。
主要由 mysql 语句 order by 实现。
成绩分布:
对用户指定科目,进行成绩分布统计,分为 A(90~100)、B(80~90)
C(60~80)、D(<60)四个等级,显示各级人数,及学生成绩信息。默认
值为学生的各科平均成绩。
主要由 mysql 语句的 where 限定条件实现。
2.3 数据库安装和配置
该系统使用的 DBMS 为 mysql,其安装于配置的过程如下:
1) 首先到 mysql 的下载中心上下载最新的 tar.gz 包.
2) 下载后得到文件 mysql-5.0.45-linux-i686-icc-glibc23.tar.gz,然后将其解
压,并重命名为 mysql,使用 mv 命令将其移到/usr/local
3) 创建的一个名为 mysql 的用户组和用户,来承载 mysql 数据库的运行
4) 接着进入 mysql 目录,修改 mysql 目录的拥有者,为 mysql 用户:
5) 安装 mysql,执行命令:
sudo scripts/mysql_intstall_db --user=mysql
6) 执行完上面的命令后,其实就已经完成了 mysql 的安装,但为了数据库
的安全,可以将 mysql 目录的拥有者改为 root 用户,并将生成的系统依赖
数据赋给 mysql 用户.
7) 安装好 mysql 后,通过下面命令行启动它:
sudo ./support_files/mysql.server start
8) 启动完 mysql 后,使用“./bin/mysql”命令来进入 mysql 数据库的控制
台,执行 SQL 命令
通过以上步骤我们就完成了 mysql 的安装于配置
2.4 shell 脚本文件的编码
数据库启动脚本 start.sh
sudo /usr/local/mysql/support-files/mysql.server start
表创建脚本 create.sh
/usr/local/mysql/bin/mysql -u root -p -e
"create database han;"
/usr/local/mysql/bin/mysql -u root -p -e "
use han;
create table stu_info (name
varchar(20),phone_number char(20), address
char(30));"
/usr/local/mysql/bin/mysql -u root -p -e "
use han;
create table stu_grade ( id char
(30),name varchar(20), C int(3), linux int(3),java int(3)); "
主界面 menu.sh
menu()
{
quit=0
while
[ $quit -eq 0 ]
do
choice
done
}
choice()
{
clear
echo "welcome!"
echo "Please enter your choice:"
echo "query .................1"
echo "delete.................2"
echo "insert.................3"
echo "update.................4"
echo "grade list.............5"
echo "chengji fenbu..............6"
echo "exit
read CHOICE
case $CHOICE in
.................7"
1)
2)
3)
4)
5)
6)
7)
echo "query"
query
bash select.sh
read n;;
echo "delete"
delete
read n;;
echo "insert"
insert
read n;;
echo "update"
update
read n;;
echo "grade list"
grade_list
read n;;
echo "chengji fenbu"
chengji
read n;;
echo "exit"
quit=1
echo "BYE";;
esac
}
query()
{
echo "query individual information ...1"
echo "query all information ..........2"
echo "enter your choice:"
read q_choice
case $q_choice in
1)
echo "enter your name :";;
2)
;;
esac
read q_name
export q_name
}
echo "enter like : student_id name C linux java sex phone
read i n c l j s p a
bash insert.sh $i $n $c $l $j $s $p $a
address "
echo "enter name you want to delete:"
read d_name
echo "Are you sure delete all information of $d_name :(y/n)"
read yn
if
[[ $yn = "y" ]]
then
bash delete.sh $d_name
insert()
{
}
delete()
{
fi
}
update()
{
echo "change grade or information :(g/i)"
read u_cho
if
[[ $u_cho = "g" ]]
then
else
tb="stu_grade"
tb=stu_info
fi
export tb
echo "enter name you want to update: "
read u_name