k history123 Ivanov1 2Ivan, 3Ivanovich.
2 mathematics Petrov Petr Petrovich
3 physics Sidorov Sidr Sidorovich
4 IT Alexeev Alexey Alexeevich
помогите написать программу на C# пожалуйста!
и что это значит: еще препод сказал изменить в блок схеме: анализирование строк и разбиение строк на слова - вроде как бы в блок-схеме есть уже изменения
так вот эти записи : анализирование строк и разбиение строк на слова нужно заменить другими словами
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace TP_3_
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public struct sostav_kafedry
{
public string nomer;
public string FIO_Prepodavatelya;
}
private void button1_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();
listBox2.Items.Clear();
string adres;
OpenFileDialog kaf = new OpenFileDialog();
if (kaf.ShowDialog() == DialogResult.OK)
{
adres = kaf.FileName;
}
else
{
return;
}
listBox1.Items.AddRange(File.ReadAllLines(adres));
sostav_kafedry item = new sostav_kafedry();
sostav_kafedry[] arr = new sostav_kafedry[listBox1.Items.Count];
string[] mas = new string[listBox1.Items.Count];
int osh = 0;
for (int i = 0; i < listBox1.Items.Count; i++)
{
mas = (string)listBox1.Items;
string stroka = mas;
int str = 0;
for (int j = 0; j < stroka.Length; j++)
{
if (stroka.Substring(j, 1) == "/")
{
str = str + 1;
}
}
if (str > 2)
{
listBox2.Items.Add("Найдена ошибка в " + (i + 1) + "-й строке - перебор значений.");
osh = 1;
}
string[] mas1 = mas.Split(')');
item.nomer = mas1[0];
item.FIO_Prepodavatelya = mas1[1];
arr = item;
}
for (int i = 0; i < listBox1.Items.Count; i++)
{
int pr_n = 0;
for (int j = 0; j < arr.nomer.Length; j++)
{
string nomer = arr.nomer;
if ((nomer[j] < 0x30) || (nomer[j] > 0x39))
{
if (pr_n == 0)
{
listBox2.Items.Add("Найдена ошибка в значении " + (i + 1) + "-й строки 1-го столбца - недопустимое значение.");
pr_n = 1;
osh = 1;
}
}
}
for (int j = i + 1; j < listBox1.Items.Count; j++)
{
if (arr.nomer == arr[j].nomer)
{
listBox2.Items.Add("Найдена ошибка в 1-м столбце - совпадают значения в " + (i + 1) + "-й и " + (j + 1) + "-й строках.");
osh = 1;
}
}
}
for (int i = 0; i < listBox1.Items.Count; i++)
{
int pr_fio = 0;
for (int j = 0; j < arr.FIO_Prepodavatelya.Length; j++)
{
string FIO_Prepodavatelya = arr.FIO_Prepodavatelya;
if ((FIO_Prepodavatelya[j] < 0x410) || (FIO_Prepodavatelya[j] > 0x44F))
{
if ((FIO_Prepodavatelya[j] != 0x451) && (FIO_Prepodavatelya[j] != 0x20) && (FIO_Prepodavatelya[j] != 0x2E))
{
if (pr_fio == 0)
{
listBox2.Items.Add("Найдена ошибка в значении " + (i + 1) + "-й строки, 2-го столбца - недопустимое значение.");
pr_fio = 1;
osh = 1;
}
}
}
}
}
if (osh == 0)
{
listBox2.Items.Add("Ошибок не найдено.");
}
}
}
}
вот код программы похожего задания, не получается переделать его чтоб выводил не на формуу а на консоль
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace Slova
{
class Program
{
private class FacultyConsist
{
public string numer = string.Empty;
public string topic = string.Empty;
public string FIO = string.Empty;
}
private static void AddItemToList(List<FacultyConsist> FC, string Line)
{
FacultyConsist fc = new FacultyConsist();
int count = 0;
string temp = string.Empty;
for (int idx = 0; idx < Line.Length; idx++)
{
if (Line[idx] != ' ' && count < 3)
{
temp += Line[idx].ToString();
}
else
{
count++;
if (count == 1)
{
fc.numer = temp;
temp = string.Empty;
}
if (count == 2)
{
fc.topic = temp;
temp = string.Empty;
}
if (count > 2)
{
temp += " ";
for (int jdx = idx + 1; jdx < Line.Length; jdx++)
{
temp += Line[jdx];
}
fc.FIO = temp;
FC.Add(fc);
break;
}
}
}
}
private static void FindError(List<FacultyConsist> FC)
{
for (int idx = 0; idx < FC.Count; idx++)
{
Rule1(FC[idx], idx);
Rule2(FC[idx], idx);
Rule3(FC[idx], idx);
Rule4(FC[idx], idx);
}
}
private static void Rule1(FacultyConsist fc, int idx)
{
for (int jdx = 0; jdx < fc.numer.Length; jdx++)
{
if ((int)(fc.numer[jdx]) < 48 || (int)(fc.numer[jdx]) > 57)
{
Console.WriteLine("№ предмета должен содержать только цифры :: Ошибка в строке {0} ", idx+1);
break;
}
}
}
private static void Rule2(FacultyConsist fc, int idx)
{
for (int jdx = 0; jdx < fc.topic.Length; jdx++)
{
if ((int)(fc.topic[jdx]) > 48 && (int)(fc.topic[jdx]) < 57)
{
Console.WriteLine("Название предмета не должно содержать цифр :: Ошибка в строке {0} ", idx + 1);
break;
}
}
}
private static void Rule3(FacultyConsist fc, int idx)
{
for (int jdx = 0; jdx < fc.FIO.Length; jdx++)
{
if ((int)(fc.FIO[jdx]) > 48 && (int)(fc.FIO[jdx]) < 57)
{
Console.WriteLine("ФИО преподавателя не должно содержать цифр :: Ошибка в строке {0} ", idx + 1);
break;
}
}
}
private static void Rule4(FacultyConsist fc, int idx)
{
for (int jdx = 0; jdx < fc.FIO.Length; jdx++)
{
if ((int)(fc.FIO[jdx]) == 44 || (int)(fc.FIO[jdx]) == 46)
{
Console.WriteLine("ФИО преподавателя не должно содержать точек, запятых :: Ошибка в строке {0} ", idx + 1);
break;
}
}
}
static void Main(string[] args)
{
if (File.Exists("data.txt"))
{
List<FacultyConsist> FC = new List<FacultyConsist>();
StreamReader sr = new StreamReader("data.txt");
string Line = string.Empty;
while ((Line = sr.ReadLine()) != null)
{
AddItemToList(FC, Line);
}
FindError(FC);
FC.Clear();
}
else
{
Console.WriteLine("Не могу открыть файл");
}
Console.ReadLine();
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace Slova
{
class Program
{
private class FacultyConsist
{
public string numer = string.Empty;
public string topic = string.Empty;
public string FIO = string.Empty;
}
private static void AddItemToList(List<FacultyConsist> FC, string Line)
{
FacultyConsist fc = new FacultyConsist();
int count = 0;
string temp = string.Empty;
for (int idx = 0; idx < Line.Length; idx++)
{
if (Line[idx] != ' ' && count < 3)
{
temp += Line[idx].ToString();
}
else
{
count++;
if (count == 1)
{
fc.numer = temp;
temp = string.Empty;
}
if (count == 2)
{
fc.topic = temp;
temp = string.Empty;
}
if (count > 2)
{
temp += " ";
for (int jdx = idx + 1; jdx < Line.Length; jdx++)
{
temp += Line[jdx];
}
fc.FIO = temp;
FC.Add(fc);
break;
}
}
}
}
private static void FindError(List<FacultyConsist> FC)
{
for (int idx = 0; idx < FC.Count; idx++)
{
Rule1(FC[idx], idx);
Rule2(FC[idx], idx);
Rule3(FC[idx], idx);
Rule4(FC[idx], idx);
}
}
private static void Rule1(FacultyConsist fc, int idx)
{
for (int jdx = 0; jdx < fc.numer.Length; jdx++)
{
if ((int)(fc.numer[jdx]) < 48 || (int)(fc.numer[jdx]) > 57)
{
Console.WriteLine("№ предмета должен содержать только цифры :: Ошибка в строке {0} ", idx+1);
break;
}
}
}
private static void Rule2(FacultyConsist fc, int idx)
{
for (int jdx = 0; jdx < fc.topic.Length; jdx++)
{
if ((int)(fc.topic[jdx]) > 48 && (int)(fc.topic[jdx]) < 57)
{
Console.WriteLine("Название предмета не должно содержать цифр :: Ошибка в строке {0} ", idx + 1);
break;
}
}
}
private static void Rule3(FacultyConsist fc, int idx)
{
for (int jdx = 0; jdx < fc.FIO.Length; jdx++)
{
if ((int)(fc.FIO[jdx]) > 48 && (int)(fc.FIO[jdx]) < 57)
{
Console.WriteLine("ФИО преподавателя не должно содержать цифр :: Ошибка в строке {0} ", idx + 1);
break;
}
}
}
private static void Rule4(FacultyConsist fc, int idx)
{
for (int jdx = 0; jdx < fc.FIO.Length; jdx++)
{
if ((int)(fc.FIO[jdx]) == 44 || (int)(fc.FIO[jdx]) == 46)
{
Console.WriteLine("ФИО преподавателя не должно содержать точек, запятых :: Ошибка в строке {0} ", idx + 1);
break;
}
}
}
static void Main(string[] args)
{
if (File.Exists("data.txt"))
{
List<FacultyConsist> FC = new List<FacultyConsist>();
StreamReader sr = new StreamReader("data.txt");
string Line = string.Empty;
while ((Line = sr.ReadLine()) != null)
{
AddItemToList(FC, Line);
}
FindError(FC);
FC.Clear();
}
else
{
Console.WriteLine("Не могу открыть файл");
}
Console.ReadLine();
}
}
}
Код:
спасибо большое!
что то не выводит то что надо(((
Цитата: artik
что то не выводит то что надо(((
что у вас в файле и что выводит?
выводит : Не мог открыть файл
Цитата: artik
выводит : Не мог открыть файл
1. вы создайте файл data.txt
2. поместите в файл для проверки
Код:
k history123 Ivanov1 2Ivan, 3Ivanovich.
2 mathematics Petrov Petr Petrovich
3 physics Sidorov Sidr Sidorovich
4 IT Alexeev Alexey Alexeevich
2 mathematics Petrov Petr Petrovich
3 physics Sidorov Sidr Sidorovich
4 IT Alexeev Alexey Alexeevich
4. расположите данный файл в той же папке что и сама программа. Если пишите в Visual studio, то файл должен лежать в папке Debug
сделала все так как сказали, все равно не получается(
вот вам проект от visual studio 2010, пробуйте :)
Благодарю!!!
Цитата: cronya
вот вам проект от visual studio 2010, пробуйте :)
к сожалению ваш проект не открывается((