go经典练习题涉及流程控制-字符串-struct-map的数据类型的处理
one:求1到100之间的质数
package main
import (
"fmt"
)
func isPrime(n int) bool {
var flag = true
for j := 2; j < n; j++ {
if n % j == 0 { //计算质数,如果这个数能被自己整除哪么它就是质数
flag = false
break
}
}
return flag
}
func main() {
var n int = 100
for i := 2; i < n; i++ {
if isPrime(i) {
fmt.Printf("%d is prime\n", i)
}
}
}
two:统计字符串中有哪些单词并统计出出现次数
package main
import (
"fmt"
)
func addWord(wordCount map[string]int, chars []rune) {
words := string(chars)
if len(words) > 0 {
count, ok := wordCount[words]
if !ok {
wordCount[words] = 1
} else {
wordCount[words] = count + 1
}
}
}
func main() {
str := "how are hou! you are welcome!"
var tmp []rune
var wordCount map[string]int = make(map[string]int, 10)
var chars []rune = []rune(str)
for i := 0; i < len(str); i++ {
if str[i] >= 'a' && str[i] <= 'z'|| str[i] >= 'A' && str[i] <= 'Z' {
tmp = append(tmp, chars[i])
} else {
addWord(wordCount, tmp)
tmp = tmp[0:0]
}
}
if len(tmp) > 0 {
addWord(wordCount, tmp)
}
for k,v := range wordCount {
fmt.Printf("key:%s v:%d\n", k, v)
}
}
Three:统计字符串中每一个字符个数
package main
import (
"fmt"
)
func addWord(charCount map[rune]int, char rune) {
count, ok := charCount[char]
if !ok {
charCount[char] = 1
} else {
charCount[char] = count + 1
}
}
func main() {
str := "how are hou! you are welcome!中国"
var charCount map[rune]int = make(map[rune]int, 10)
var chars []rune = []rune(str)
for i := 0; i < len(chars); i++ {
addWord(charCount, chars[i])
}
for k,v := range charCount {
fmt.Printf("key:%c v:%d\n", k, v)
}
}
Four:简易版学生信息管理系统
package main
import (
"os"
"fmt"
)
type Student struct {
Id string
Name string
Age int
Sex string
Score float32
}
func showMenu() {
fmt.Printf("please select:\n")
fmt.Printf("1.添加学生信息\n")
fmt.Printf("2.修改学生信息\n")
fmt.Printf("3.显示学生列表\n")
fmt.Printf("4.退出\n")
}
func getStudentInfo() Student {
var stu Student
fmt.Printf("Please input Id:\n")
fmt.Scanf("%s\n",&stu.Id)
fmt.Printf("Please input name:\n")
fmt.Scanf("%s\n",&stu.Name)
fmt.Printf("Please input Age:\n")
fmt.Scanf("%d\n",&stu.Age)
fmt.Printf("Please input Sex:\n")
fmt.Scanf("%s\n",&stu.Sex)
fmt.Printf("Please input Score:\n")
fmt.Scanf("%f\n",&stu.Score)
return stu
}
func addStudent(allStudent map[string]Student) {
stu := getStudentInfo()
_, ok := allStudent[stu.Id]
if ok {
fmt.Printf("studnet %s is exists\n",stu.Id)
return
}
allStudent[stu.Id] = stu
}
func modifyStudent(allStudent map[string]Student) {
stu := getStudentInfo()
_, ok := allStudent[stu.Id]
if !ok {
fmt.Printf("studnet %s is not exists\n",stu.Id)
return
}
allStudent[stu.Id] = stu
}
func showStudnetList(allStudent map[string]Student) {
for _, val := range allStudent {
fmt.Printf("Id:%s\nName:%s\nAge:%d\nSex:%s\nScore:%f\n", val.Id, val.Name, val.Age, val.Sex, val.Score)
}
}
func main() {
var sallStudent map[string]Student = make(map[string]Student, 10)
for {
showMenu()
var sel int
fmt.Println("-------------------------")
fmt.Scanf("%d\n", &sel)
switch sel {
case 1:
addStudent(sallStudent)
case 2:
case 3:
showStudnetList(sallStudent)
case 4:
os.Exit(0)
}
}
}
塑造ing
浙公网安备 33010602011771号