Min uppgift är att skapa en tippsmaskin som tipsar om böcker ur en textfil. Jag fick det att fungera men läraren menar att fileloader som min metod heter ska vara en importerings klass, jag har försökt att fixa detta men stöter på massa problem. Kanske kan någon trevlig som kan ge bra råd om hur jag kan lösa detta. Jag kan även lägga in texten när jag ändrar vilka fel jag får!
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace Tipsmaskinen
{
public partial class Form1 : Form
{
List<Bok> Biblotek = new List<Bok>();public Form1()
{
InitializeComponent();
Fileloader(); //anropar metod för att ladda upp från textfil
}private void Button1_Click(object sender, EventArgs e)
{
Bok randomBok = getRandomBok();
TipsBox.Text = randomBok.ToString(); //i tipsbox returneras strängen
}public Bok getRandomBok()
{
Random rand = new Random(); //skapar en random för att slumpa tal eller strängarreturn Biblotek[rand.Next(Biblotek.Count)]; //next slumpar enligt hur många element det finns i biblotek
}public void Fileloader()
{
if (File.Exists("texter.txt"))
{
var itemSaver = new List<string>(); //Skapa lista där böcker ska sparas
StreamReader reader = new StreamReader("texter.txt", Encoding.Default, true);
string item = "";while ((item = reader.ReadLine()) != null)
{
itemSaver.Add(item);
}foreach (string a in itemSaver)
{
string[] vektor = a.Split(new string[] { "###" }, StringSplitOptions.None);switch (vektor[2])
{
case "Novellsamling":
Biblotek.Add(new Novellsamling(vektor[0], vektor[1], vektor[2]));
break;
case "Roman":
Biblotek.Add(new Roman(vektor[0], vektor[1], vektor[2]));
break;
case "Tidskrift":
Biblotek.Add(new Tidskrift(vektor[0], vektor[1], vektor[2]));
break;
default:
break;
}
}
}
}
private void TipsBox_TextChanged(object sender, EventArgs e)
{}
private void Tipsmaskinen(object sender, EventArgs e)
{}
private void Button2_Click(object sender, EventArgs e)
{
Application.Exit();
}
}
}public class Bok // Class Bok som har tre egenskaper
{
public string title; //titel
public string author; //Författare
public string typ; //Vilken typprotected Bok(string title, string author, string typ) //declarerar konstruktion i klassen
{
this.title = title;
this.author = author;
this.typ = typ;
}
public override string ToString()
{
return title + " " + author + " " + typ;
}
public string GetTitle() //Get metod för att returnera värde
{
return title; //returnerar titel
}
}class Novellsamling : Bok //Subclass Novellsamling som ärver från Mainclassen bok
{
public Novellsamling(string title, string author, string typ) : base(title, author, typ)
{
typ = "Novellsamling";
}
public override string ToString() //override ger ett nytt beteende genom arv
{
return title + " " + "skriven av " + author + " " + " " + "(" + typ + ")." + " Novellsamlingar finns på hylla N.";
}
}class Roman : Bok //Subclass Roman som ärver egenskaper från Mainclassen Bok
{
public Roman(string title, string author, string typ) : base(title, author, typ)
{
typ = "Roman";
}
public override string ToString()
{
return title + " " + "skriven av " + author + " " + " " + "(" + typ + ")." + " Roman böcker finns på hylla R.";
}
}class Tidskrift : Bok //subclass Tidskrift som ärver egenskaper från Mainclassen Bok
{
public Tidskrift(string title, string author, string typ) : base(title, author, typ)
{
typ = "Tidskrift";
}
public override string ToString()
{
return title + " " + "skriven av " + author + " " + " " + "(" + typ + ")." + " Tidskrifter finns på hylla T."; ;
}
}