Пишу курсовую. Помогите с заданием, не получается.
Выдать на экран список студентов, заданной группы, зачисленных на стипендию.
Алгоритм зачисления
а)Студент, получивший все оценки 5 и уч. в общественной работе, зачислен на повышенную стипендию с доплатой 50%.
б)Студент получивший все оценки 5 и не уч. в общественной работе, зачислен на повышенную стипендию с доплатой 25%.
Сам код выполнен в 2 классах
C# |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
| using System;
using System.IO;
namespace ConsoleApplication1
{
class Student : IComparable<Student>
{
private string ngr;
private string fam;
private string name;
private string ochestvo;
private int[] oc; // оценки
private int rez;
private int raboti;
public Student(string ngr, string fam, string name, string ochestvo, int[] oc,int rez,int raboti)
{
this.ngr = ngr;
this.fam = fam;
this.name = name;
this.ochestvo = ochestvo;
this.oc = new int[5];
for (int i = 0; i < 5; i++)
this.oc[i] = oc[i];
this.rez = rez;
this.raboti = raboti;
}
public Student()
{
this.fam = "nofam";
this.name = "noname";
this.oc = new int[5];
}
public String getfam() { return fam; }
public void setfam(String fam1) { fam = fam1; }
public void input()
{
Console.Write("№ группы: ");ngr = Console.ReadLine();
Console.Write("Фамилия: "); fam = Console.ReadLine();
Console.Write("Имя: "); name = Console.ReadLine();
Console.Write("Очество: "); ochestvo = Console.ReadLine();
Console.WriteLine("Оценки за 5 экзаменов: ");
for (int i = 0; i < 5; i++)
{
bool fl = true;
do
{
Console.Write(" oc[" + (i + 1) + "] = ");
oc[i] = int.Parse(Console.ReadLine());
if (oc[i] >= 0 && oc[i] <= 5)
fl = false;
else Console.WriteLine("Оценка должна быть от 0 до 5! \nПовторите ввод оценки: ");
} while (fl);
}
Console.Write("Результыты сдачи 5 зачетов (1 - сдан, 0 - не сдан) : ");
bool f1 = true;
do
{
rez = int.Parse(Console.ReadLine());
if (rez >= 0 && rez <= 1)
{
f1 = false;
}
else Console.WriteLine("Нужно поставить 1 или 0! \nПовторите ввод: ");
} while (f1);
Console.Write("Участие в общественной работе (1 - учавстие, 0 - неучастие) : ");
do
{
raboti = int.Parse(Console.ReadLine());
if (raboti >= 0 && raboti <= 1)
{
f1 = false;
}
else Console.WriteLine("Нужно поставить 1 или 0! \nПовторите ввод: ");
} while (f1);
}
public void output()
{
string str = String.Format("{0,-15}{1,-15}\n", fam, name);
Console.Write(str);
}
public int CompareTo(Student obj)
{
return fam.CompareTo(obj.getfam());
}
public void diskOut(StreamWriter sw)
{
sw.WriteLine(fam);
sw.WriteLine(name);
for (int i = 0; i < 5; i++)
sw.WriteLine(oc[i]);
}
public void diskIn(StreamReader sr)
{
fam = sr.ReadLine();
name = sr.ReadLine();
for (int i = 0; i < 5; i++)
{
oc[i] = int.Parse(sr.ReadLine());
if (oc[i] < 0 || oc[i] > 5)
throw new Exception("Ошибка в содержимом файла: Оценка должен быть от 0 до 5!");
}
}
}
} |
|
C# |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
| using System;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int p = 0; int n = 0; Student[] st = null;
bool ff = true;
try
{
do
{
Console.WriteLine("Введите: ");
Console.WriteLine("1 - Ввод списка студентов и запись в файл");
Console.WriteLine("2 - Чтение списка студентов из файла");
Console.Write(">");
p = int.Parse(Console.ReadLine());
if (p == 1)
{
ff = false;
Console.Write("Введите кол-во студентов: ");
n = int.Parse(Console.ReadLine());
st = new Student[n];
for (int i = 0; i < st.Length; i++)
{
st[i] = new Student();
st[i].input();
}
StreamWriter sw = new StreamWriter("E:\\Student.txt", false,
System.Text.Encoding.Default);
sw.WriteLine(n);
for (int i = 0; i < n; i++)
st[i].diskOut(sw);
sw.Close();
}
if (p == 2)
{
ff = false;
Console.Write("Введите имя файла: ");
string file_name = Console.ReadLine();
StreamReader sr = new StreamReader("E:\\" + file_name,
System.Text.Encoding.Default);
n = int.Parse(sr.ReadLine());
st = new Student[n];
for (int i = 0; i < n; i++)
{
st[i] = new Student();
st[i].diskIn(sr);
}
sr.Close();
}
} while (ff);
Array.Sort(st);
Console.WriteLine("Список студентов: ");
Console.Write("{0,-15}{1,-15}{2,-10}\n", "Фамилия", "Имя", "Рейтинг");
for (int i = 0; i < st.Length; i++)
st[i].output();
}
catch (FormatException e)
{ Console.WriteLine(e.Message + " чтение или ввод не числа!!!"); }
catch (Exception e)
{ Console.WriteLine(e.Message); }
Console.ReadKey();
}
}
} |
|