说明:
该系统涉及md5对密码进行加密操作,有用户注册和登录的认证页面,然后进入系统完成基本的增删改查操作,另外有成绩排序功能。代码没有做更深的优化,仅供参考,以记录自己的学习过程为主
顺便推荐一个破解md5密码的网站:md5在线解密破解,md5解密加密
破解一些简单的还是没有问题的
一、功能页面展示部分
1.用户注册登录页面
(1)注册
(2)登录
2.学生信息管理系统页面
(1)添加
(2)修改
(3)查看
(4)删除
(5)排序
(6)退出
二、代码部分
文件结构以及文件名
1.main.go
package main
import (
"fmt"
"project/util"
)
func main() {
util.Login()
if util.Shenfen==0{
fmt.Println("登录失败")
util.Login()
}
util.Init()
var choice int
s1:=util.Student{}
for {
fmt.Println("----------欢迎来到学生信息管理系统-----------")
fmt.Println(" 有以下选择: ")
fmt.Println(" 1.添加学生信息 ")
fmt.Println(" 2.修改学生信息 ")
fmt.Println(" 3.查看学生信息 ")
fmt.Println(" 4.删除学生信息 ")
fmt.Println(" 5.按照学生成绩排序 ")
fmt.Println(" 6.退出系统 ")
fmt.Println("---------------------------------------------")
fmt.Printf("请输入您的选择:")
fmt.Scanln(&choice)
switch(choice){
case 1:
fmt.Println("开始添加学生信息")
s1.AddInfo()
case 2:
fmt.Println("开始修改学生信息")
s1.Modify()
case 3:
fmt.Println("开始查看学生信息")
s1.ShowInfo()
case 4:
fmt.Println("开始删除学生信息")
s1.DeleteInfo()
case 5:
fmt.Println("开始按照成绩对学生排序")
s1.SortScore()
case 6:
fmt.Println("退出系统成功!")
return
default:
fmt.Println("输入有误!")
}
}
}
2.login.go
package util
import (
"fmt"
"crypto/md5"
)
var Shenfen int=0
var NUM int
var YonghuArr [10]Yonghu
type Yonghu struct{
username string
password [16]byte
}
func Jiami(a string) [16]byte{
new_a := md5.Sum([]byte(a))
return new_a
}
func Login() {
var choice int
fmt.Println("--------用户登录注册界面-----------")
fmt.Println(" 有以下选择: ")
fmt.Println(" 1.已有帐号,选择登录 ")
fmt.Println(" 2.没有帐号,选择注册 ")
fmt.Printf("请输入你的选择: ")
fmt.Scanln(&choice)
switch(choice){
case 1:
fmt.Println("选择登录:")
Denglu()
case 2:
fmt.Println("选择注册:")
Zhuce()
default:
fmt.Println("输入有误!")
Login()
}
}
func Denglu(){
var username,password string
fmt.Printf("请输入你的用户名:")
fmt.Scanln(&username)
fmt.Printf("请输入你的密码:")
fmt.Scanln(&password)
md5_password:=Jiami(password)
fmt.Printf("你输入的密码为:%x\n",md5_password)
for i:=0;i<NUM;i++{
if YonghuArr[i].username==username && YonghuArr[i].password==md5_password {
fmt.Println("恭喜您,登录成功!")
Shenfen=1
}
}
}
func Zhuce(){
var username,password string
fmt.Println("请输入你要注册的用户名:")
fmt.Scanln(&username)
fmt.Println("请输入你要注册的用户密码:")
fmt.Scanln(&password)
md5_password:=Jiami(password)
YonghuArr[NUM].username=username
YonghuArr[NUM].password=md5_password
NUM++
fmt.Println("恭喜您,注册成功!")
Login()
}
3.init.go
package util
import "fmt"
var StuArr [10]Student
var Num int
type Student struct{
id int
name string
major string
class string
score int
flag bool
}
func Init() {
fmt.Println("初始化成功")
}
4.add.go
package util
import "fmt"
func (s Student) AddInfo() {
var id,score int
var name,major,class string
fmt.Printf("学生学号:")
fmt.Scanln(&id)
fmt.Printf("学生姓名:")
fmt.Scanln(&name)
fmt.Printf("学生专业:")
fmt.Scanln(&major)
fmt.Printf("学生班级:")
fmt.Scanln(&class)
fmt.Printf("学生分数:")
fmt.Scanln(&score)
StuArr[Num].id=id
StuArr[Num].name=name
StuArr[Num].major=major
StuArr[Num].class=class
StuArr[Num].score=score
Num++
fmt.Println("修改成功!")
}
5.delete.go
package util
import "fmt"
func (s Student) DeleteInfo() {
var id int
fmt.Printf("请你输入你要删除的学生的学号:")
fmt.Scanln(&id)
for i:=0;i<Num;i++{
if id==StuArr[i].id{
StuArr[i].flag=true
fmt.Println("删除成功!")
return
}
}
fmt.Println("查无此人!")
}
6.modify.go
package util
import "fmt"
func (s Student) Modify() {
var id,choice int
var major,class string
fmt.Printf("请你输入你要修改的学生的学号:")
fmt.Scanln(&id)
for i:=0;i<Num;i++ {
if id==StuArr[i].id {
fmt.Printf("请选择要修改的信息(1.专业 2.班级):")
fmt.Scanln(&choice)
switch(choice){
case 1:
fmt.Printf("将专业修改为:")
fmt.Scanln(&major)
StuArr[i].major=major
fmt.Println("修改成功")
return
case 2:
fmt.Printf("将班级修改为:")
fmt.Scanln(&class)
StuArr[i].class=class
fmt.Println("修改成功")
return
default:
fmt.Println("输入有误!")
return
}
}
}
fmt.Println("查无此人!")
}
7.show.go
package util
import "fmt"
func (s Student) ShowInfo() {
fmt.Println("-------------------信息表-------------------")
fmt.Println(" 学号 姓名 专业 班级 分数")
for i:=0;i<Num;i++ {
if StuArr[i].flag==false{
fmt.Printf("%4d %8s %12s %8s %4d\n",StuArr[i].id,StuArr[i].name,StuArr[i].major,StuArr[i].class,StuArr[i].score)
}
}
}
8.sort.go
package util
import "fmt"
func (s Student) SortScore() {
for i:=0;i<Num-1;i++{
for j:=0;j<Num-1-i;j++{
if StuArr[j].score < StuArr[j+1].score{
var temp Student
temp=StuArr[j]
StuArr[j]=StuArr[j+1]
StuArr[j+1]=temp
}
}
}
var choice int
fmt.Printf("请你选择排序方法(1.从高到低 2.从低到高):")
fmt.Scanln(&choice)
if choice==1 {
fmt.Println("------------按照成绩从高到低排序------------")
fmt.Println(" 学号 姓名 专业 班级 分数")
for i:=0;i<Num;i++ {
fmt.Printf("%4d %8s %12s %8s %6d\n",StuArr[i].id,StuArr[i].name,StuArr[i].major,StuArr[i].class,StuArr[i].score)
}
}else if choice==2 {
fmt.Println("------------按照成绩从低到高排序------------")
fmt.Println(" 学号 姓名 专业 班级 分数")
for i:=Num-1;i>=0;i-- {
fmt.Printf("%4d %8s %12s %8s %6d\n",StuArr[i].id,StuArr[i].name,StuArr[i].major,StuArr[i].class,StuArr[i].score)
}
}else {
fmt.Println("输入错误!")
}
}