我的Go+语言初体验——祝福留言小系统,让她也可以感受到你的祝福

秦 羽 社区初级贡献者
优质创作者: 后端开发技术领域
2021-12-18 17:41:03

小木再探GO+
前段时间看了一下GO+,也成功将环境等一系列搭建起来
相信有很多小伙伴刚上大学的时候老师期末会让做个小系统啥的
那么这不正好是个小素材可以学习嘛,最近呢也是考试频繁啊
四六级,考研,期末等等!!!所以我就想着做一个祝福留言系统
🙏博主第一次用GO+尝试做系统,还请各位大佬指教

GO+征文也快结束了,但是我希望这仅仅是个开始,而不是结束🤭
祝福每一位都可以如愿,考试会的全对,蒙的全对🤭

@

GO+祝福留言系统

  • 环境搭建
  • GO+版的祝福语管理系统
  • 前期想法
  • 界面展示
  • 整体界面
  • 增加祝福信息
  • 修改操作
  • 删除操作
  • 退出
  • 源代码
  • 写在最后

环境搭建

之前讨论过关于GO+的环境搭建,这里就不在赘述了,如果有需要可以查看下面的文章。
关于GO+的环境搭建

GO+版的祝福语管理系统

前期想法

万变不离其宗,我们在有想法之后要做的就是构思,前期做好,后期就会变得非常的简单。
每一条祝福语都拥有自己唯一的id,同样拥有祝福者,幸运儿(被祝福的人),以及祝福的话语。

界面展示

整体界面

在这里插入图片描述

增加祝福信息

在这里插入图片描述


每一次运行之后都会有提示框,可以继续进行操作

在这里插入图片描述

修改操作

此处修改可以对单个信息,也可以对全部的信息进行修改,接下来我会依次给大家展示:
$\textcolor{OrangeRed}{--> 1.修改幸运儿}$:computer:

在这里插入图片描述


成功之后我们再查询:

在这里插入图片描述


$\textcolor{OrangeRed}{--> 2.修改祝福者:}$:computer:

在这里插入图片描述


$\textcolor{OrangeRed}{--> 3.修改祝福的话语}$:computer:

在这里插入图片描述


$\textcolor{OrangeRed}{--> 4.修改全部}$:computer:

在这里插入图片描述

删除操作

为了更好的查看,我们再增加一个,然后进行删除操作
$\textcolor{OrangeRed}{--> 增+查:}$:computer:

在这里插入图片描述

$\textcolor{OrangeRed}{--> 删+查:}$:computer:

在这里插入图片描述

退出

在这里插入图片描述

到此我们简单的祝福留言小系统就完成了:kissing_heart:

源代码

package main

import (
    "fmt"
    "os"
)

// 储存祝福信息
var Mgr wishMessages

//定义保存祝福信息的结构体
type wishMessages struct {
    wish map[uint]*wish
}

//定义祝福话语的结构体
type wish struct {
    id      uint   //祝福信息id
    lucky   string //被祝福的幸运儿
    wisher  string //祝福者
    message string //祝福的话语
}

//查询所有祝福信息
func (w wishMessages) showAllWishs() {
    println("----所有祝福信息如下----\n\n")
    println("ID", "幸运儿", "祝福者", "祝福的话")
    for i, v := range w.wish {
        println(i, v.lucky, v.wisher, v.message)
    }
    println("--------------------------")
}

//增加祝福信息
func (w wishMessages) addWish() {
    println("请输入新祝福id:")
    var (
        wishID      uint
        wishLucky   string
        wishWisher  string
        wishMessage string
    )
    fmt.Scanln(&wishID)
    _, ok := w.wish[wishID]
    if ok {
        println("此祝福话语存在!")
        return
    }
    println("请输入幸运儿:")
    fmt.Scanln(&wishLucky)
    println("请输入祝福者:")
    fmt.Scanln(&wishWisher)
    println("请输入新的祝福的话语:")
    fmt.Scanln(&wishMessage)
    w.wish[wishID] = &wish{wishID, wishLucky, wishWisher, wishMessage}
}

//修改祝福的信息
func (w wishMessages) updateWish() {
    println("请输入要修改祝福话的id:")
    var (
        wishID      uint
        wishLucky   string
        wishWisher  string
        wishMessage string
        num         int
    )
    fmt.Scanln(&wishID)
    _, ok := w.wish[wishID]
    if !ok {
        println("查无此祝福话!")
        return
    }
    println("请输入要修改祝福的哪项信息:\n1.幸运儿;2.祝福者,3.祝福的话语,4.所有信息\n请输入序号:")
    fmt.Scanln(&num)
    switch num {
    case 1:
        println("请输入要修改幸运儿:")
        fmt.Scanln(&wishLucky)
        w.wish[wishID].lucky = wishLucky
    case 2:
        println("请输入要修改祝福者:")
        fmt.Scanln(&wishWisher)
        w.wish[wishID].wisher = wishWisher
    case 3:
        println("请输入要修改祝福的话语:")
        fmt.Scanln(&wishMessage)
        w.wish[wishID].message = wishMessage
    case 4:
        println("请输入要修改幸运儿:")
        fmt.Scanln(&wishLucky)
        println("请输入要修改祝福者:")
        fmt.Scanln(&wishWisher)
        println("请输入要修改祝福的话语:")
        fmt.Scanln(&wishMessage)
        w.wish[wishID] = &wish{
            lucky:   wishLucky,
            wisher:  wishWisher,
            message: wishMessage,
        }
    }
    println("----修改成功----")
}

//删除祝福的信息
func (w wishMessages) delWish() {
    println("请输入要修改祝福话语的id:")
    var wishID uint
    fmt.Scanln(&wishID)
    delete(w.wish, wishID)
    println("----删除成功----")
}

Mgr = wishMessages{
    wish: make(map[uint]*wish, 100),
}
println("-------------欢迎使用祝福信息管理系统-------------")
for {
    println(`
        1.查看所有祝福信息
        2.增加祝福信息
        3.修改祝福信息
        4.删除祝福信息
        5.退出程序
------------------------------------------
    `)
    println("请输入上面对应的序号来选择对应的操作:")
    var wishID uint
    fmt.Scanln(&wishID)
    switch wishID {
    case 1:
        Mgr.showAllWishs()
    case 2:
        Mgr.addWish()
    case 3:
        Mgr.updateWish()
    case 4:
        Mgr.delWish()
    case 5:
        os.Exit(1)
    default:
        println("输入错误,请重新输入!")
    }
}

参考资料:
曲鸟大佬的结合GO+的学生管理系统

写在最后

希望大家都可以愿望成真,如果想对他人祝福,欢迎留言🤭
希望她可以一研为定🤭

“我的Go+语言初体验” | 征文活动进行中......

...全文
1345 5 打赏 收藏 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
叶庭云 社区初级贡献者 2021-12-19
  • 打赏
  • 举报
回复

祝你得偿所愿

秦 羽 社区初级贡献者 2021-12-19
  • 举报
回复
@叶庭云 谢谢
红目香薰 社区中级贡献者 2021-12-18
  • 打赏
  • 举报
回复

相当好啊。

秦 羽 社区初级贡献者 2021-12-19
  • 举报
回复
@红目香薰
秦 羽 社区初级贡献者 2021-12-18
  • 打赏
  • 举报
回复
内容概要:本文研究了计及需求侧响应的日前、日内两阶段鲁棒备用优化方法,旨在应对高比例可再生能源接入背景下电力系统中存在的不确定性问题。通过构建两阶段鲁棒优化模型,将日前调度作为第一阶段决策,日内调整作为第二阶段修正,充分考虑风电、光伏等出力波动以及负荷变化带来的影响。模型引入需求侧响应机制,利用可调节负荷参与系统备用,提升系统的灵活性与鲁棒性。采用列与约束生成(C&CG)算法对两阶段鲁棒优化问题进行求解,并通过Matlab编程实现,结合标准测试系统进行仿真分析,验证了所提方法在降低运行成本、提高可再生能源消纳能力和增强系统可靠性方面的有效性。; 适合人群:具备电力系统优化、运筹学及Matlab编程基础的研究生、科研人员及从事能源系统规划与运行的专业技术人员。; 使用场景及目标:①应用于含高比例可再生能源的电力系统调度决策,提升调度方案的鲁棒性;②为需求侧资源参与电力系统备用提供建模与求解工具;③支撑科研教学中关于两阶段鲁棒优化、C&CG算法实现的学习与实践。; 阅读建议:建议读者结合Matlab代码深入理解模型构建与求解流程,重点关注不确定性集合的刻画方式、需求侧响应的建模方法以及C&CG算法的迭代逻辑,宜配合相关优化理论资料进行系统学习。
内容概要:本文围绕掺铒光纤放大器(EDFA)的分析模型展开深入的模拟研究,重点在于利用Matlab代码实现EDFA工作过程的数值仿真,涵盖其增益特性、噪声系数以及在不同泵浦功率和波长条件下的性能表现。研究通过建立基于速率方程和传输方程的物理模型,精确描述铒离子的能级跃迁、自发辐射、受激辐射及吸收等核心物理机制,进而构建可用于光通信系统级仿真的EDFA模块。该模型不仅能够准确预测单级EDFA的输出光谱和增益平坦度,还支持对多级放大链路的级联效应进行分析与优化,具备良好的实用性、灵活性和可扩展性,为光通信系统的设计与性能评估提供了可靠的理论依据和工具支持。; 适合人群:具备一定光学通信基础知识和Matlab编程能力的研究生或科研人员,尤其适用于从事光纤通信系统仿真、光器件建模与性能优化等相关领域的工程技术人员。; 使用场景及目标:①用于高校及科研机构中关于光放大器原理的教学演示与科研分析;②支撑长距离、大容量光纤传输系统中多级EDFA链路的性能预测、噪声累积分析与优化设计;③作为典型有源光器件建模的学习案例,帮助理解复杂光电器件的数值仿真方法与物理机制。; 阅读建议:建议读者结合光通信相关理论知识,仔细研读模型的数学推导过程,并动手运行与调试所提供的Matlab代码,深入探究泵浦方式、光纤长度、掺杂浓度等关键参数对EDFA性能的影响规律,进一步可尝试将该模型集成至更大规模的光网络仿真平台中进行联合系统分析。

1,099

社区成员

发帖
与我相关
我的任务
社区描述
Go+ 官方开发者社区。我们希望向广大的开发者和数据科学家介绍 Go+ 的定位和意义,并邀请更多开发者一起贡献代码、共建 Go+ 生态。 Go+ 官网:https://goplus.org/
其他 企业社区
社区管理员
  • Go+
  • 杨东杰
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

本社区为 Go+ 官方开发者社区。我们希望向广大的开发者和数据科学家介绍 Go+ 的定位和意义,并邀请更多开发者一起贡献代码、共建 Go+ 生态。

Go+ 官网:https://goplus.org/
GitHub地址:https://github.com/goplus/gop

试试用AI创作助手写篇文章吧