• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

go语言的简单查询成绩系统,能导入

开发技术 开发技术 2周前 (04-07) 7次浏览
//自学数组作为函数参数,使用函数与数组的知识完成成绩录入及查询系统,必须具备以下功能。
//功能1:可以录入成绩(成绩的个数自己拟定,不少于5个。提示成绩可以用数组保存)
//

package main

import (
    "fmt"   //
    "os"   //针对操作系统的操作 os标准包,是一个比较重要的包,顾名思义,主要是在服务器上进行系统的基本操作,如文件操作,目录操作,执行命令,信号与中断,进程,系统状态等等。在os包下,有exec,signal,user三个子包
)

type student struct {
    name0        string
    num0, score0 int
}

func newStudent(name string, num, score int) *student { //模拟student的构造函数
    return &student{
        name0:  name,
        num0:   num,
        score0: score,
    }
}

var studentInf = make([]*student, 0, 100)

func userInput() *student {
    var (
        name       string
        num, score int
    )
    fmt.Print("请输入学生学号:")
    fmt.Scanln(&num)

    fmt.Print("请输入学生姓名:")
    fmt.Scanln(&name)

    fmt.Print("请输入学生成绩:")
    fmt.Scanln(&score)
    return newStudent(name, num, score)
}

func addInf() {
    ptr := userInput() //ptr类型是*student
    studentInf = append(studentInf, ptr)         //运用数组,切片,遍历
    fmt.Println("添加信息成功!")
    fmt.Printf("您添加信息如下:n姓名:%vt学号:%vt成绩:%vn", ptr.name0, ptr.num0, ptr.score0)
    menu()      //录入成功后返回函数菜单栏
}

func printInf() {     //套用长度
    if len(studentInf) == 0 {
        fmt.Println("没有任何成绩信息")
        menu()
    }
    for _, val := range studentInf {
        fmt.Printf("%#vn", *val)
    }
    menu()
}

func changeInf() {       // 建立修改学生成绩函数
    var (
        num int    // 设立一个为int类型的数据num 充当学号
    )
    fmt.Print("请输入想要修改的学生学号:")
    fmt.Scanln(&num)
    var finish bool
    for index, val := range studentInf {
        if val.num0 == num {
            ptr := userInput()
            studentInf[index] = ptr
            finish = true
            fmt.Printf("修改成功!姓名:%st学号:%dt成绩:%dn", ptr.name0, ptr.num0, ptr.score0)
            menu()
        }
    }
    if !finish {    //如果不存在
        fmt.Println("输入的学号不存在")
    }
}
func menu() {      //菜单函数
    fmt.Printf("--------------------学生成绩管理系统--------------------n")
    fmt.Printf("0.添加学生成绩                              1.修改学生成绩n")
    fmt.Printf("2.查看学生成绩                                3.退出系统  n")
    var choose int      //choose    /xuanze
    fmt.Scanln(&choose)
    switch choose {      //建立选择结构体
    case 0:
        addInf()
    case 1:
        changeInf()
    case 2:
        printInf()
    case 3:
        fmt.Println("退出系统!")
        os.Exit(0)
    default:   //默认
        fmt.Println("输入有误,请重新选择:")
        menu()    //默认返回主菜单栏进行二次选择, 实现一个递归的效果,循环嵌套
    }
}

func main() {
    menu()   ///通过主函数去引导其他函数的运行

}

 


程序员灯塔
转载请注明原文链接:go语言的简单查询成绩系统,能导入
喜欢 (0)