самая тяжелая болезнь мира-мышление: она неизлечима
задача/*как я ее определила, без исключений*/:
в одном файле инфа о родителях (фамилия возраст_ребенка удаленность от 3 дс )
в другом инфа о д/с (название колво мест для малых, средних и страрших)
файлы
файл1
kindergarden1 junior 0 middle 17 elder 23
kindergarden2 junior 10 middle 15 elder 20
kindergarden3 junior 13 middle 14 elder 29
файл2
parent1 junior 0,5 1,5 2,6
parent2 junior 0,7 1,7 2,9
parent3 middle 1,5 0,7 2,4
parent4 elder 0,1 0,5 3
parent5 elder 0,5 1,5 2,6
parent6 elder 1,5 6,5 2,4
читать дальше
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace ConsoleApplication2
{
class Program
{
static public float min(float a, float b)//пригодится
{
if (a < b) return a;
else return b;
}
public enum KinderAge//вроде понятно
{
junior,
middle,
elder,
}
public class Parent
{
public Parent()//конструктор
{
distance1 = 0.0f;
distance2 = 0.0f;
distance3 = 0.0f;
surname = "";
KA = KinderAge.junior;
kinderGarden = "";
}
public float distance1;
public float distance2;
public float distance3;
public string surname;
public KinderAge KA;
public string kinderGarden;
public void formFile(FileInfo f)//функция доб запись в файл о конкретном родителе
{
StreamWriter SW = f.AppendText();
SW.WriteLine(this.surname+" "+this.KA+" "+this.kinderGarden);
SW.Close();
}
public void formKinderGarden(KinderGarden[] KG)//позор!!!!!!!!!!!!позор, мне стыдно ....я так не пишу, просто времени не было и я не думала
{
float dis = 0.0f;//ф-ия определяющая детский сад
{
if (this.KA == KinderAge.junior)
{
if (KG[0].countJ != 0 && KG[1].countJ != 0 && KG[2].countJ != 0)//pozor!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
dis = min(min(distance1, distance2), distance3);
else
{
if (KG[0].countJ != 0 && KG[1].countJ != 0)
dis = min(distance1, distance2);
if (KG[0].countJ != 0 && KG[2].countJ != 0)
dis = min(distance1, distance3);
if (KG[1].countJ != 0 && KG[2].countJ != 0)
dis = min(distance2, distance3);
else
{
if (KG[0].countJ != 0) dis = distance1;
if (KG[1].countJ != 0) dis = distance2;
if (KG[2].countJ != 0) dis = distance3;
}
}
}
if (this.KA == KinderAge.middle)
{
if (KG[0].countM != 0 && KG[1].countM != 0 && KG[2].countM != 0)//pozor!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
dis = min(min(distance1, distance2), distance3);
else
{
if (KG[0].countM != 0 && KG[1].countM != 0)
dis = min(distance1, distance2);
if (KG[0].countM != 0 && KG[2].countM != 0)
dis = min(distance1, distance3);
if (KG[1].countM != 0 && KG[2].countM != 0)
dis = min(distance2, distance3);
else
{
if (KG[0].countM != 0) dis = distance1;
if (KG[1].countM != 0) dis = distance2;
if (KG[2].countM!= 0) dis = distance3;
}
}
}}
if (this.KA ==KinderAge.elder)
{
if (KG[0].countE != 0 && KG[1].countE != 0 && KG[2].countE != 0)//pozor!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
dis = min(min(distance1, distance2), distance3);
else
{
if (KG[0].countE != 0 && KG[1].countE != 0)
dis = min(distance1, distance2);
if (KG[0].countE != 0 && KG[2].countE != 0)
dis = min(distance1, distance3);
if (KG[1].countE != 0 && KG[2].countE != 0)
dis = min(distance2, distance3);
else
{
if (KG[0].countE != 0) dis = distance1;
if (KG[1].countE != 0) dis = distance2;
if (KG[2].countE != 0) dis = distance3;
}
}
}
if (dis==distance1)
kinderGarden=KG[0].name;
if(dis==distance2)
kinderGarden=KG[1].name;
else kinderGarden=KG[2].name;
}
}
public class KinderGarden
{
public string name;
public int countJ;
public int countM;
public int countE;
}
static public KinderAge convert(string str)//функция для инициализации поля объекта класса (когда из файла читаем)
{
switch (str)
{
case "junior": return KinderAge.junior; break;
case "middle": return KinderAge.middle; break;
case "elder": return KinderAge.elder; break;
default: return 0;
}
}
static void Main(string[] args)
{
Parent[] par = new Parent[10];//массив родителей
for (int j = 0; j < 6; j++)
par[j] = new Parent();
string[] sa;//массив строк для Split
string s = "Dasha";//просто для чтения
FileInfo f = new FileInfo("file2.txt");//файл о родителях
StreamReader sr = f.OpenText();
int i = 0;
try
{
while (!sr.EndOfStream)//читаем и инициализируем элементы массива
{
s = sr.ReadLine();
Console.WriteLine(s);
sa = s.Split(' ');
par[i].surname = sa[0];
par[i].KA = convert(sa[1]);
par[i].distance1 = float.Parse(sa[2]);
par[i].distance2 = float.Parse(sa[3]);
par[i].distance3 = float.Parse(sa[4]);
i++;
}
}
catch (IOException e)
{ Console.WriteLine(e.Message); }
sr.Close();
FileInfo f1 = new FileInfo("file1.txt");//файл о детсадиках
StreamReader sr1 = f1.OpenText();
KinderGarden[] kArray = new KinderGarden[3];//массив д/с
for (int j = 0; j < kArray.Length; j++)
{
kArray[j] = new KinderGarden();
}
i = 0;
try
{
while (!sr1.EndOfStream)//читаем и инициализируем объекты
{
s = sr1.ReadLine();
sa = s.Split(' ');
kArray[i].name = sa[0];
kArray[i].countJ = int.Parse(sa[2]);
kArray[i].countM = int.Parse(sa[4]);
kArray[i].countE = int.Parse(sa[6]);
i++;
}
}
catch (Exception e)
{ Console.WriteLine(e.Message); }
FileInfo outFile = new FileInfo("output.txt");//сформированный файл
try
{
for (int k = 0; k < par.Length;k++ )
{
par[k].formKinderGarden(kArray);//подбир "идеальный вариант"
par[k].formFile(outFile);//запись в файл
/*по шагам не делала, первым 2 родителям определит 100% правильно, остальным вместо 1 выдал 3 что к чему? дело в функции, к-рую мне стыдно перечитыватьь*/
}
}
catch (Exception e)
{ System.Console.WriteLine(e.Message); }
sr1.Close();
}
}
}
в одном файле инфа о родителях (фамилия возраст_ребенка удаленность от 3 дс )
в другом инфа о д/с (название колво мест для малых, средних и страрших)
файлы
файл1
kindergarden1 junior 0 middle 17 elder 23
kindergarden2 junior 10 middle 15 elder 20
kindergarden3 junior 13 middle 14 elder 29
файл2
parent1 junior 0,5 1,5 2,6
parent2 junior 0,7 1,7 2,9
parent3 middle 1,5 0,7 2,4
parent4 elder 0,1 0,5 3
parent5 elder 0,5 1,5 2,6
parent6 elder 1,5 6,5 2,4
читать дальше
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace ConsoleApplication2
{
class Program
{
static public float min(float a, float b)//пригодится
{
if (a < b) return a;
else return b;
}
public enum KinderAge//вроде понятно
{
junior,
middle,
elder,
}
public class Parent
{
public Parent()//конструктор
{
distance1 = 0.0f;
distance2 = 0.0f;
distance3 = 0.0f;
surname = "";
KA = KinderAge.junior;
kinderGarden = "";
}
public float distance1;
public float distance2;
public float distance3;
public string surname;
public KinderAge KA;
public string kinderGarden;
public void formFile(FileInfo f)//функция доб запись в файл о конкретном родителе
{
StreamWriter SW = f.AppendText();
SW.WriteLine(this.surname+" "+this.KA+" "+this.kinderGarden);
SW.Close();
}
public void formKinderGarden(KinderGarden[] KG)//позор!!!!!!!!!!!!позор, мне стыдно ....я так не пишу, просто времени не было и я не думала
{
float dis = 0.0f;//ф-ия определяющая детский сад
{
if (this.KA == KinderAge.junior)
{
if (KG[0].countJ != 0 && KG[1].countJ != 0 && KG[2].countJ != 0)//pozor!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
dis = min(min(distance1, distance2), distance3);
else
{
if (KG[0].countJ != 0 && KG[1].countJ != 0)
dis = min(distance1, distance2);
if (KG[0].countJ != 0 && KG[2].countJ != 0)
dis = min(distance1, distance3);
if (KG[1].countJ != 0 && KG[2].countJ != 0)
dis = min(distance2, distance3);
else
{
if (KG[0].countJ != 0) dis = distance1;
if (KG[1].countJ != 0) dis = distance2;
if (KG[2].countJ != 0) dis = distance3;
}
}
}
if (this.KA == KinderAge.middle)
{
if (KG[0].countM != 0 && KG[1].countM != 0 && KG[2].countM != 0)//pozor!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
dis = min(min(distance1, distance2), distance3);
else
{
if (KG[0].countM != 0 && KG[1].countM != 0)
dis = min(distance1, distance2);
if (KG[0].countM != 0 && KG[2].countM != 0)
dis = min(distance1, distance3);
if (KG[1].countM != 0 && KG[2].countM != 0)
dis = min(distance2, distance3);
else
{
if (KG[0].countM != 0) dis = distance1;
if (KG[1].countM != 0) dis = distance2;
if (KG[2].countM!= 0) dis = distance3;
}
}
}}
if (this.KA ==KinderAge.elder)
{
if (KG[0].countE != 0 && KG[1].countE != 0 && KG[2].countE != 0)//pozor!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
dis = min(min(distance1, distance2), distance3);
else
{
if (KG[0].countE != 0 && KG[1].countE != 0)
dis = min(distance1, distance2);
if (KG[0].countE != 0 && KG[2].countE != 0)
dis = min(distance1, distance3);
if (KG[1].countE != 0 && KG[2].countE != 0)
dis = min(distance2, distance3);
else
{
if (KG[0].countE != 0) dis = distance1;
if (KG[1].countE != 0) dis = distance2;
if (KG[2].countE != 0) dis = distance3;
}
}
}
if (dis==distance1)
kinderGarden=KG[0].name;
if(dis==distance2)
kinderGarden=KG[1].name;
else kinderGarden=KG[2].name;
}
}
public class KinderGarden
{
public string name;
public int countJ;
public int countM;
public int countE;
}
static public KinderAge convert(string str)//функция для инициализации поля объекта класса (когда из файла читаем)
{
switch (str)
{
case "junior": return KinderAge.junior; break;
case "middle": return KinderAge.middle; break;
case "elder": return KinderAge.elder; break;
default: return 0;
}
}
static void Main(string[] args)
{
Parent[] par = new Parent[10];//массив родителей
for (int j = 0; j < 6; j++)
par[j] = new Parent();
string[] sa;//массив строк для Split
string s = "Dasha";//просто для чтения
FileInfo f = new FileInfo("file2.txt");//файл о родителях
StreamReader sr = f.OpenText();
int i = 0;
try
{
while (!sr.EndOfStream)//читаем и инициализируем элементы массива
{
s = sr.ReadLine();
Console.WriteLine(s);
sa = s.Split(' ');
par[i].surname = sa[0];
par[i].KA = convert(sa[1]);
par[i].distance1 = float.Parse(sa[2]);
par[i].distance2 = float.Parse(sa[3]);
par[i].distance3 = float.Parse(sa[4]);
i++;
}
}
catch (IOException e)
{ Console.WriteLine(e.Message); }
sr.Close();
FileInfo f1 = new FileInfo("file1.txt");//файл о детсадиках
StreamReader sr1 = f1.OpenText();
KinderGarden[] kArray = new KinderGarden[3];//массив д/с
for (int j = 0; j < kArray.Length; j++)
{
kArray[j] = new KinderGarden();
}
i = 0;
try
{
while (!sr1.EndOfStream)//читаем и инициализируем объекты
{
s = sr1.ReadLine();
sa = s.Split(' ');
kArray[i].name = sa[0];
kArray[i].countJ = int.Parse(sa[2]);
kArray[i].countM = int.Parse(sa[4]);
kArray[i].countE = int.Parse(sa[6]);
i++;
}
}
catch (Exception e)
{ Console.WriteLine(e.Message); }
FileInfo outFile = new FileInfo("output.txt");//сформированный файл
try
{
for (int k = 0; k < par.Length;k++ )
{
par[k].formKinderGarden(kArray);//подбир "идеальный вариант"
par[k].formFile(outFile);//запись в файл
/*по шагам не делала, первым 2 родителям определит 100% правильно, остальным вместо 1 выдал 3 что к чему? дело в функции, к-рую мне стыдно перечитыватьь*/
}
}
catch (Exception e)
{ System.Console.WriteLine(e.Message); }
sr1.Close();
}
}
}