5.
Startmodul
I startmodulen ligger givetvis huvudprogrammet.
Metoden startSystem() anropas varje gång användare börjar köra programmet samt
då denne önskar fortsätta. Slutmodulen har som nämnts tidigare endast system
underhållare tillgång till för uppdatering eller revidering.
void
main()
{
/* Huvudprogrammet */
IF ("Starta system") THEN
start_module.weight = 1000;
IF ("Lägga in ny diagnos") THEN
CBS.weight := 900;
WHILE (getNextExpertModule());
weight :=0;
/*Returnerar
och kör den modul med högst vikt. Är vikten 0 returneras NULL och villkoret :=
FALSE*/
ångraVal();
/*
Metod som anropas då användaren ångrar ett eller flera val. Rensar fälten och
går tillbaka ett steg.*/
fortsättSystem();
/* Metod
som anropas då användaren valt att fortsätta.*/
exitSytem()
{
/*exitSystem() är en metod som avslutar systemet.*/}
5.1 Regelbas (Start)
systemStart()
/*Variablerna
kräkning, diarré med mera väljs på skärmen då användaren startat systemet (Se
bild ovan). Man kan välja att ange ett, fler eller inget alternativ (AND/OR),
gå direkt till en viss modul, avsluta, ångra val med mera.*/
private
Boolean prickar, diarré, hosta, snuva, klåda, magsmärtor, blåsor, halsont,
utslag, fläckar, förstoppning;
private
String barnsjukdomar, hudåkommor, förkylningsåkommor, magtarmåkommor,
nydiagnos, ångra;
{
/*Välj
symtom nedan.*/
IF (first_time) THEN ställ_fråga (initiering);
IF
(ställ_frågor(Frågamage1)=True) THEN kräks:=True;
IF
(ställ_frågor(Frågamage 2)=True) THEN diarré:=True;
IF
(ställ_frågor(Frågamage 3)=True) THEN buksmärta:=True;
IF
(ställ_frågor(Frågamage 4)=True) THEN förstoppning:=True;
IF
(kräks, diarré, buksmärta, förstoppning,) THEN ModulM.weight :=900
}
ELSE {
IF
(ställ_frågor(Frågaförkylning1)=True) THEN snuva:=True;
IF
(ställ_frågor(Frågaförkylning2)=True) THEN hosta:=True;
IF
(ställ_frågor(Frågaförkylning3)=True) THEN halsont=:True;
IF (snuva, hosta, halsont) THEN ModulF.weight
:=800;
}
ELSE {
IF (ställ_frågor(Frågahud1)=True)
THEN klåda := True;
IF
(ställ_frågor(Frågahud2)=True) THEN utslag := True;
IF
(ställ_frågor(Frågahud3)=True) THEN blåsor := True;
IF
(ställ_frågor(Frågahud4)=True) THEN fläckar := True;
IF
(ställ_frågor(Frågahud5)=True) THEN prickar := True;
IF
(klåda, prickar, blåsor, fläckar, utslag) THEN ModulH.weight :=700;
}
ELSE {
IF
NOT (kräks, diarré, förstoppning) AND (ställ_fråga (Frågabarnsjukdom1)=True)
THEN barnsjukdom:=True;
IF (barnsjukdom) THEN ModulB.weight :=600;
}
ELSE DO {
/*Välj
åkomma för att starta respektive modul M, F, H eller B direkt vid start*/
IF (magtarmåkommor) THEN ModulM.weight :=500;
ELSE
IF (hudåkommor) THEN ModulH.weight :=400;
ELSE
IF (förkylningsåkommor) THEN ModulF.weight
:=300;
ELSE
IF (barnsjukdomar) THEN ModulB.weight :=200;
ELSE
IF (nydiagnos) THEN ModulCBS.weight :=100;
ELSE
IF
(avsluta) THEN GOTO exit_system(); /*Avslutar systemet*/
ELSE
IF
(fortsätt) THEN GOTO startSystem(); /*Repeterar hela tiden till användaren
väljer att sluta*/
ELSE
IF (ångra)
THEN ("Rensa fältet och gå tillbaka ett steg");
weight :=0;
}}
5.2 Frågeträd (Start)
frågeträdet skall förutom
nedanstående frågor finnas med avsluta program, ångra val med mera. Här har jag
endast tagit upp de specifika frågorna.
·
Frågamage 1: Kräks barnet? : alternativ: (Välj ett alternativ nedan);
·
Ja (True)
·
Nej (False)
·
Frågamage 2: Har barnet diarré? : alternativ: (Välj ett alternativ nedan);
·
Ja (True)
·
Nej (False)
·
Frågamage 3: Har barnet ont i magen? : alternativ: (Välj ett
alternativ nedan);
·
Ja (True)
·
Nej (False)
·
Frågaförkylning 3: Har barnet ont i halsen? : alternativ: (Välj ett
alternativ nedan);
·
Ja (True)
·
Nej (False)
·
Frågaförkylning 1: Är barnet snuvigt? : alternativ: (Välj ett alternativ nedan);
·
Ja (True)
·
Nej (False)
·
Frågaförkylning 2: Hostar barnet? : alternativ: (Välj ett alternativ nedan);
·
Ja (True)
·
Nej (False)
·
Frågahud 1: Har barnet klåda? : alternativ: (Välj ett alternativ nedan);
·
Ja (True)
·
Nej (False)
·
Frågamage 4: Är barnet förstoppat? : alternativ: (Välj ett
alternativ nedan);
·
Ja (True)
·
Nej (False)
·
Frågahud 2: Har barnet utslag? : alternativ: (Välj ett alternativ nedan);
·
Ja (True)
·
Nej (False)
·
Frågahud 3: Har barnet blåsor? : alternativ: (Välj ett alternativ nedan);
·
Ja (True)
·
Nej (False)
·
Fågahud 4: Har barnet fläckar? : alternativ: (Välj ett alternativ nedan);
·
Ja (True)
·
Nej (False)
·
Frågahud 5: Har barnet prickar? : alternativ: (Välj ett alternativ nedan);
·
Ja (True)
·
Nej (False)
·
Frågabarnsjukdom 1: Har barnet en barnsjukdom? : alternativ: (Välj ett
alternativ nedan);
·
Ja (True)
·
Nej (False)