Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 18.05.2017, 21:07   #1
Robeeert
Новичок
Джуниор
 
Регистрация: 18.05.2017
Сообщений: 1
Радость Перевод С# - C++

Помогите перевести код с C# на C++ пожалуйста:
Код:
public class Graph
{public ZedGraphControl DisplayGrahpics(Panel panel, int[] x, int[] y, int[] pareto_x, int[] pareto_y)
{var control = new ZedGraphControl();
control.Width = panel.Width;
control.Height = panel.Height;
GraphPane myPane = control.GraphPane;

myPane.Title.IsVisible = false;
//myPane.Title.Text = title;
myPane.XAxis.Title.IsVisible = false;
myPane.YAxis.Title.IsVisible = false;
myPane.YAxis.Scale.MaxAuto = true;
myPane.Legend.IsVisible = false;
PointPairList list1 = new PointPairList();
for (int i = 0; i < x.Length; i++)
list1.Add(x[i], y[i]);
LineItem curve1 = myPane.AddCurve("label", list1, Color.Black, SymbolType.Circle);
curve1.Symbol.Fill = new Fill(Color.Black);
curve1.Symbol.Size = 7;
curve1.Line.IsVisible = false;
PointPairList list2 = new PointPairList();
for (int i = 0; i < pareto_x.Length; i++)
list2.Add(pareto_x[i], pareto_y[i]);
LineItem curve2 = myPane.AddCurve("label", list2, Color.Red, SymbolType.Circle);
curve2.Symbol.Fill = new Fill(Color.Red);
curve2.Symbol.Size = 7;
curve2.Line.IsVisible = false;
// Fill the axis background with a color gradient
myPane.Chart.Fill = new Fill(Color.White, Color.FromArgb(255, 255, 166), 45.0F);
control.AxisChange();
// expand the range of the Y axis slightly to accommodate the labels
myPane.YAxis.Scale.Max += myPane.YAxis.Scale.MajorStep;
return control;}}
public class File{
private StreamWriter writer;
private StreamReader reader;
public void WriteData(List<List<int>> y, string fileName){
writer = new StreamWriter(new FileStream(fileName, FileMode.Create, FileAccess.Write));
writer.WriteLine(y.Count.ToString()+ " " + y[0].Count.ToString());
for (int i = 0; i < y.Count; i++){for (int j = 0; j < y[i].Count; j++)
{writer.Write(y[i][j].ToString() + " "); }
writer.WriteLine();}
writer.Close();}
public List<List<int>> ReadData(string fileName)
{List<List<int>> y = new List<List<int>>();
int n,m;
reader = new StreamReader(new FileStream(fileName, FileMode.Open, FileAccess.Read));
while (!reader.EndOfStream)
{char[] separator = { ' ' };
string[] vals = reader.ReadLine().Split(separator, StringSplitOptions.RemoveEmptyEntries);
n = Convert.ToInt32(vals[0]);
m = Convert.ToInt32(vals[1]);
for (int i = 0; i < n; i++)
{List<int> list = new List<int>();
vals = reader.ReadLine().Split(separator, StringSplitOptions.RemoveEmptyEntries);
for (int j = 0; j < m; j++)
{list.Add(Convert.ToInt32(vals[j]));}
y.Add(list);}}
reader.Close();
return y;}}
public partial class SolutionsView : Form
{public SolutionsView(List<List<int>> list)
{InitializeComponent();
int n = list[0].Count;
int m = list.Count;
dataGridView2.ColumnCount = n;
dataGridView2.RowCount = m;
for (int i = 0; i < m; i++)
{for (int j = 0; j < n; j++)
dataGridView2[j, i].Value = list[i][j];}}}
partial class GraphView : Form{
public GraphView(){
InitializeComponent();}
public Panel GetPanel(){
return panel1;}}
public partial class MainView : Form
{private int n, m, krit, comp, var;
private List<List<int>> y;
private List<int> paretoSet;
private List<int> paretoSet2;
private Pareto pareto;
public MainView(){
InitializeComponent();
InitComboboxes(2, 20, 1);
y = new List<List<int>>();
paretoSet = new List<int>();
dataGridView1.AllowUserToAddRows = false;
dgA.AllowUserToAddRows = false;
dgK.AllowUserToAddRows = false;
dgX.AllowUserToAddRows = false;}
private void InitComboboxes(int minimum, int maximum, int step){
for (int i = minimum; i < maximum; i+=step)
{comboBox1.Items.Add(i);
comboBox2.Items.Add(i);
comboBox3.Items.Add(i);
comboBox4.Items.Add(i);
comboBox5.Items.Add(i);}}
private void button1_Click(object sender, EventArgs e){
n = Convert.ToInt32(comboBox1.Text);
m = Convert.ToInt32(comboBox2.Text);
dataGridView1.ColumnCount = n;
dataGridView1.RowCount = m;
for (int i = 0; i < n; i++)
dataGridView1.Columns[i].Name = "k" + (i+1).ToString();}
private void GetValuesFromGrid(){
y = new List<List<int>>();
if (tabControl1.SelectedIndex == 0)
{for (int i = 0; i < m; i++)
{var list = new List<int>();
for (int j = 0; j < n; j++)
list.Add(Convert.ToInt32(dataGridView1[j, i].Value.ToString()));
y.Add(list);}}
else if (tabControl1.SelectedIndex == 1){
for (int i = 0; i < var; i++){
var list = new List<int>();
for (int j = 0; j < krit; j++){
int sum = 0;
for (int k = 0; k < comp; k++){
int ai = Convert.ToInt32(dgA[k, j].Value.ToString());
int ki = Convert.ToInt32(dgK[k, j].Value.ToString());
int xi = Convert.ToInt32(dgX[k, i].Value.ToString());
sum += ai * Convert.ToInt32(Math.Pow((double)xi, (double)k));}
list.Add(sum);}
y.Add(list);}}}
private void button2_Click(object sender, EventArgs e)
{textBox1.Text = "";
paretoSet = new List<int>();

if (y.Count == 0)
GetValuesFromGrid();
pareto = new Pareto(); 
paretoSet = pareto.GetPareto(y);
paretoSet2 = pareto.GetPareto2(y);
WriteList("метод1: ",paretoSet);
WriteList(" метод2: ", paretoSet2);
SolutionsView solView = new SolutionsView(pareto.GetParetoList(y));
solView.Show();
if (krit == 2 || n==2)
DrawGraph();}
private void WriteList(string text, List<int> set)
{textBox1.Text += text;
foreach (int val in set)
textBox1.Text += (val+1).ToString() + "; ";}
private void InitGrid(){
krit = Convert.ToInt32(comboBox3.Text);
var = Convert.ToInt32(comboBox4.Text);
comp = Convert.ToInt32(comboBox5.Text);
dgA.ColumnCount = comp;
dgK.ColumnCount = comp;
dgX.ColumnCount = comp;
dgA.RowCount = krit;
dgK.RowCount = krit;
dgX.RowCount = var;}
private void button3_Click(object sender, EventArgs e)
{InitGrid();
for (int q = 0; q < comp; q++)
{dgK.Columns[q].Name = (q + 1).ToString();
dgA.Columns[q].Name = (q + 1).ToString();
dgX.Columns[q].Name = (q + 1).ToString();}}
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{}
// Двумерный случай/ графическое представление
private void DrawGraph()
{GraphView form2 = new GraphView();
form2.Show();
GetValuesFromGrid();
int cnt;
if (m == 0)
cnt = var;
else cnt = m;

int[] x_ = new int[cnt - paretoSet.Count];
int[] y_ = new int[cnt - paretoSet.Count];
for (int i = 0; i < cnt - paretoSet.Count; i++)
{x_[i] = y[pareto.deleted[i]][0];
y_[i] = y[pareto.deleted[i]][1];}
cnt = paretoSet.Count;
int[] pareto_x = new int[cnt];
int[] pareto_y = new int[cnt];
for (int i = 0; i < cnt; i++)
{pareto_x[i] = y[paretoSet[i]][0];
pareto_y[i] = y[paretoSet[i]][1];}
panel1 = form2.GetPanel();
var control = new Graph().DisplayGrahpics(panel1, x_,y_, pareto_x, pareto_y);
panel1.Controls.Clear();
panel1.Controls.Add(control);
panel1.Invalidate();}
// Random values
private void button2_Click_1(object sender, EventArgs e)
{Random random = new Random();
if (tabControl1.SelectedIndex == 0)
{for (int i = 0; i < m; i++)
{for (int j = 0; j < n; j++)
{dataGridView1[j, i].Value = random.Next(20);}}}
else if (tabControl1.SelectedIndex == 1)
{for (int i = 0; i < comp; i++)
{for (int j = 0; j < krit; j++)
{dgA[i, j].Value = random.Next(5);
dgK[i, j].Value = random.Next(5);}
for (int q = 0; q < var; q++)
{dgX[i, q].Value = random.Next(5);}}}}
private void сохранитьКакToolStripMenuItem_Click(object sender, EventArgs e)
{if (this.saveFileDialog1.ShowDialog() == DialogResult.OK)
{if (y.Count == 0)
GetValuesFromGrid();
new File().WriteData(y, this.saveFileDialog1.FileName);}}
private void открытьToolStripMenuItem_Click(object sender, EventArgs e)
{if (this.openFileDialog1.ShowDialog() == DialogResult.OK)
{y = new File().ReadData(this.openFileDialog1.FileName);
FillGridFromList(y);}}
private void FillGridFromList(List<List<int>> list) 
{n = list[0].Count;
m = list.Count;
dataGridView1.ColumnCount = n;
dataGridView1.RowCount = m;
comboBox1.Text = n.ToString();
comboBox2.Text = m.ToString();
for (int i = 0; i < m; i++)
{for (int j = 0; j < n; j++)
dataGridView1[j, i].Value = list[i][j];}}}}

Последний раз редактировалось Вадим Мошев; 19.05.2017 в 05:26.
Robeeert вне форума
Старый 18.05.2017, 21:13   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Вы не перепутали "помогите" и "сделайте за меня"?

Назовите нормально тему, покажите свои наработки, конкретные вопросы и т.п.

Или в раздел Фриланс если вы не хотите ничего делать, а ищете кого-то, кто выполнит ваши задачи за вознаграждение.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод на С++ spinogryz_ua Помощь студентам 2 25.12.2012 06:52
Перевод с С++ Vovchik123 C# (си шарп) 0 15.11.2011 23:50
Перевод с ЯД в ВМ. Abuhamed Свободное общение 16 21.06.2011 19:05
перевод з С++ на С Zewer Помощь студентам 2 13.01.2011 16:51
Перевод из Кб в Мб и т.д. okgo Паскаль, Turbo Pascal, PascalABC.NET 8 18.11.2008 21:03