//ladda alla frågor vid licensiering public List <frågor> LagraAllaFrågorLicensierad() { string vägen = Server.MapPath("Licenstest.xml"); XmlDocument Frågorna = new XmlDocument(); Frågorna.Load(vägen); XmlNodeList Frågedetaljer = Frågorna.SelectNodes("frågor/fråga"); foreach (XmlNode nod in Frågedetaljer) { frågor Fråga = new frågor(); Fråga.Del = nod["del"].InnerText; Fråga.Nummer = nod["nummer"].InnerText; Fråga.Text = nod["text"].InnerText; Fråga.Alternativ1 = nod["alternativett"].InnerText; Fråga.Alternativ2 = nod["alternativtvå"].InnerText; Fråga.Alternativ3 = nod["alternativtre"].InnerText; Fråga.Svar = nod["svar"].InnerText; Fråga.Svar2 = nod["svartvå"].InnerText; AllaFrågorL.Add(Fråga); räkna++; } return(AllaFrågorL); }
public void rättandet(int a, int b, int c, out double d, out double e, out double f) { int delett = 0; int deltvå = 0; int deltre = 0; if ((bool)Session["anställd"] == true) { string vägen = Server.MapPath("Licenstest.xml"); XmlDocument Frågorna = new XmlDocument(); Frågorna.Load(vägen); XmlNodeList Frågedetaljer = Frågorna.SelectNodes("frågor/fråga"); foreach (XmlNode nod in Frågedetaljer) { frågor Fråga = new frågor(); Fråga.Del = nod["del"].InnerText; if (Fråga.Del == "Produkter och hantering av kundens affärer") { delett++; } else if (Fråga.Del == "Ekonomi – nationalekonomi, finansiell ekonomi och privatekonomi") { deltvå++; } else if (Fråga.Del == "Etik och regelverk") { deltre++; } } } else if ((bool)Session["anställd"] == false) { string vägen = Server.MapPath("ÅKU.xml"); XmlDocument Frågorna = new XmlDocument(); Frågorna.Load(vägen); XmlNodeList Frågedetaljer = Frågorna.SelectNodes("frågor/fråga"); foreach (XmlNode nod in Frågedetaljer) { frågor Fråga = new frågor(); Fråga.Del = nod["del"].InnerText; if (Fråga.Del == "Produkter och hantering av kundens affärer") { delett++; } else if (Fråga.Del == "Ekonomi – nationalekonomi, finansiell ekonomi och privatekonomi") { deltvå++; } else if (Fråga.Del == "Etik och regelverk") { deltre++; } } } double max = 100; double ab = a; double bb = b; double cb = c; double ett = ab / delett; double procentett = ett * max; double två = bb / deltvå; double procenttvå = två * max; double tre = cb / deltre; double procenttre = tre * max; d = procentett; e = procenttvå; f = procenttre; }
//rättning protected void Button3_Click(object sender, EventArgs e) { //detta är svaren som står skrivna i xml-dokumentet List <string> rättsvar = new List <string>(); //detta är svaren som användaren gett i testet List <string> licensieradesvar = (List <string>)Session["Lsvar"]; List <string> åkusvar = (List <string>)Session["Åsvar"]; List <frågor> felsvar = (List <frågor>)Session["felsvar"]; int rätt = 0; int fel = 0; int rättpådelett = 0; int rättpådeltvå = 0; int rättpådeltre = 0; int nummer = 0; int del = 0; if ((bool)Session["anställd"] == true) { string vägen = Server.MapPath("Licenstest.xml"); XmlDocument Frågorna = new XmlDocument(); Frågorna.Load(vägen); XmlNodeList Frågedetaljer = Frågorna.SelectNodes("frågor/fråga"); foreach (XmlNode nod in Frågedetaljer) { frågor Fråga = new frågor(); Fråga.Svar = nod["svar"].InnerText; Fråga.Svar2 = nod["svartvå"].InnerText; Fråga.Text = nod["text"].InnerText; Fråga.Del = nod["del"].InnerText; if (Fråga.Del == "Produkter och hantering av kundens affärer") { del = 1; } else if (Fråga.Del == "Ekonomi – nationalekonomi, finansiell ekonomi och privatekonomi") { del = 2; } else if (Fråga.Del == "Etik och regelverk") { del = 3; } string rättformat = del + "; " + nummer + "; " + Fråga.Svar + ", " + Fråga.Svar2 + ": " + Fråga.Text; rättsvar.Add(rättformat); nummer++; } //här kollas varje svar vid licensieringstestet int nyttnummer = 0; foreach (string item in licensieradesvar) { //här plockas strängen som hör till frågan, nyttnummer är indexnumret string detsomsvarats = licensieradesvar[nyttnummer].ToString(); //delar upp svaret så att det går att använda string[] splittad = rättsvar[nyttnummer].Split(';'); string[] detkorrektasvaret = splittad[2].Split(','); if (detkorrektasvaret[1].StartsWith(" :") == true) { detkorrektasvaret[1] = ""; } string[] ingenfrågamedisvaret = detkorrektasvaret[1].Split(':'); //här vill jag plocka ut bara strängen, och spara delnumret i en ny sträng. string[] delen = detsomsvarats.Split(';'); string[] frågan = rättsvar[nyttnummer].Split(':'); if (delen[2] == detkorrektasvaret[0] || delen[2] == ingenfrågamedisvaret[0]) { if (delen[0] == "1") { rättpådelett++; } else if (delen[0] == "2") { rättpådeltvå++; } else if (delen[0] == "3") { rättpådeltre++; } rätt++; nyttnummer++; } else if (delen[2] != detkorrektasvaret[0] || delen[2] != detkorrektasvaret[1]) { //här ska det felaktiga svaret lagras i nåt så att användaren kan läsa vad som är fel på rättningssidan frågor nyttfelsvar = new frågor(); nyttfelsvar.Text = frågan[1]; nyttfelsvar.användarsvar = delen[2]; nyttfelsvar.Svar = detkorrektasvaret[0]; if (detkorrektasvaret[1] != null) { nyttfelsvar.Svar2 = detkorrektasvaret[1]; } if (nyttfelsvar.Svar2.Contains(":")) { nyttfelsvar.Svar2 = nyttfelsvar.Svar2.Remove(nyttfelsvar.Svar2.LastIndexOf(":")); } felsvar.Add(nyttfelsvar); fel++; nyttnummer++; } } } //åkudelen if ((bool)Session["anställd"] == false) { string vägen = Server.MapPath("ÅKU.xml"); XmlDocument Frågorna = new XmlDocument(); Frågorna.Load(vägen); XmlNodeList Frågedetaljer = Frågorna.SelectNodes("frågor/fråga"); foreach (XmlNode nod in Frågedetaljer) { frågor Fråga = new frågor(); Fråga.Svar = nod["svar"].InnerText; Fråga.Svar2 = nod["svartvå"].InnerText; Fråga.Text = nod["text"].InnerText; Fråga.Del = nod["del"].InnerText; if (Fråga.Del == "Produkter och hantering av kundens affärer") { del = 1; } else if (Fråga.Del == "Ekonomi – nationalekonomi, finansiell ekonomi och privatekonomi") { del = 2; } else if (Fråga.Del == "Etik och regelverk") { del = 3; } string rättformat = del + "; " + nummer + "; " + Fråga.Svar + ", " + Fråga.Svar2 + ": " + Fråga.Text; rättsvar.Add(rättformat); nummer++; } //här kollas varje svar vid licensieringstestet int nyttnummer = 0; foreach (string item in åkusvar) { //här plockas strängen som hör till frågan, nyttnummer är indexnumret string detsomsvarats = åkusvar[nyttnummer].ToString(); //delar upp svaret så att det går att använda string[] splittad = rättsvar[nyttnummer].Split(';'); string[] detkorrektasvaret = splittad[2].Split(','); if (detkorrektasvaret[1].StartsWith(" :") == true) { detkorrektasvaret[1] = ""; } string[] ingenfrågamedisvaret = detkorrektasvaret[1].Split(':'); //här vill jag plocka ut bara strängen, och spara delnumret i en ny sträng. string[] delen = detsomsvarats.Split(';'); string[] frågan = rättsvar[nyttnummer].Split(':'); if (delen[2] == detkorrektasvaret[0] || delen[2] == ingenfrågamedisvaret[0]) { if (delen[0] == "1") { rättpådelett++; } else if (delen[0] == "2") { rättpådeltvå++; } else if (delen[0] == "3") { rättpådeltre++; } rätt++; nyttnummer++; } else if (delen[2] != detkorrektasvaret[0] || delen[2] != detkorrektasvaret[1]) { //här ska det felaktiga svaret lagras i nåt så att användaren kan läsa vad som är fel på rättningssidan frågor nyttfelsvar = new frågor(); nyttfelsvar.Text = frågan[1]; nyttfelsvar.användarsvar = delen[2]; nyttfelsvar.Svar = detkorrektasvaret[0]; if (detkorrektasvaret[1] != null) { nyttfelsvar.Svar2 = detkorrektasvaret[1]; } felsvar.Add(nyttfelsvar); fel++; nyttnummer++; } } } Session["rätt"] = rätt; Session["fel"] = fel; Session["rättpådelett"] = rättpådelett; Session["rättpådeltvå"] = rättpådeltvå; Session["rättpådeltre"] = rättpådeltre; Response.Redirect("rättning.aspx"); }