ps-naloga5/cmd/redovalnica.go
2025-12-01 22:33:35 +01:00

77 lines
2 KiB
Go

package main
import (
"context"
"fmt"
"log"
"os"
"github.com/urfave/cli/v3"
"git.fri.uni-lj.si/zs7976/ps-naloga5/redovalnica"
)
func main() {
cmd := &cli.Command{
Name: "redovalnica",
Usage: "Student grade management system",
Flags: []cli.Flag{
&cli.IntFlag{
Name: "stOcen",
Usage: "Minimum number of grades required for positive evaluation",
Value: 3,
},
&cli.IntFlag{
Name: "minOcena",
Usage: "Minimum possible grade",
Value: 1,
},
&cli.IntFlag{
Name: "maxOcena",
Usage: "Maximum possible grade",
Value: 10,
},
},
Action: func(ctx context.Context, cmd *cli.Command) error {
minStOcen := int(cmd.Int("stOcen"))
minOcena := int(cmd.Int("minOcena"))
maxOcena := int(cmd.Int("maxOcena"))
fmt.Printf("=== Sistem Redovalnica ===\n")
fmt.Printf("Parametri: minStOcen=%d, minOcena=%d, maxOcena=%d\n\n",
minStOcen, minOcena, maxOcena)
// Ustvari mapo študentov
studenti := make(map[string]redovalnica.Student)
// Dodaj študente
redovalnica.DodajStudenta(studenti, "63210001", "Ana", "Novak")
redovalnica.DodajStudenta(studenti, "63210002", "Boris", "Kralj")
redovalnica.DodajStudenta(studenti, "63210003", "Janez", "Novak")
// Dodaj ocene
redovalnica.DodajOceno(studenti, "63210001", 10)
redovalnica.DodajOceno(studenti, "63210001", 9)
redovalnica.DodajOceno(studenti, "63210001", 8)
redovalnica.DodajOceno(studenti, "63210002", 6)
redovalnica.DodajOceno(studenti, "63210002", 7)
redovalnica.DodajOceno(studenti, "63210002", 5)
redovalnica.DodajOceno(studenti, "63210002", 8)
redovalnica.DodajOceno(studenti, "63210003", 4)
redovalnica.DodajOceno(studenti, "63210003", 5)
// Izpiši vse ocene
redovalnica.IzpisVsehOcen(studenti)
fmt.Println()
// Izpiši končni uspeh
redovalnica.IzpisiKoncniUspeh(studenti, minStOcen, minOcena, maxOcena)
return nil
},
}
if err := cmd.Run(context.Background(), os.Args); err != nil {
log.Fatal(err)
}
}