ОБСУЖДЕНИЕ

где взять хорошую инфу по Си шарп...?

25 ответов 23,1 тыс.
Статус
Закрыто для дальнейших ответов.
Спасибо, Секретчик, Aliaksandr. Уже слил по ссылкам из комментов. Только ADO.NET слить не смог.
 
Меня тоже интересует книга Петцольда по C#. У меня тоже проблема, не могу найти росийский прокси, а книга нужна. Если не сложно сбросьте линки( на 2 тома) на адрес yaser@ua.fm

ЗЫ. Заранее благодарен.
 
<!--QuoteBegin-Aliaksandr+27:01:2005, 17:11 -->
<span class="vbquote">(Aliaksandr @ 27:01:2005, 17:11 )</span><!--QuoteEBegin-->Скачал Cprogr.zip ctom1.zip ctom2.zip Microsoft_NET_Framework.zip Proect_razr.zip Progr_Microsoft_NET.zip 185 мегов.
Кто готов у себя разместить? Еще чего интересного?
[snapback]15879" rel="nofollow" target="_blank[/snapback]​
[/quote]

У тебя Microsoft_NET_Framework.zip, случайно, не осталась? С медиго эту книгу удалили, если дашь ссылку или кинешь на мыло буду жутко благодарен
 
Уважаеммые программисты, помогите написать программу на си шарпе правильно, вроде пишу и вставляю что надо а понять почему выводит не не могу
где ошиька я выделила красным цветом, помогите пожалуйста, нужно для экзамена.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace консоль
{
public abstract class Employee // абстрактный базовый класс
{
private String first_name; // имя
private String last_name; // фамилия
private double wage; // заработная плата
public Employee(String first_name, String last_name, double wage)
{
this.first_name = first_name;
this.last_name = last_name;
this.wage = wage;
}
public abstract double CalculatePay(); // расчет зарплаты - абстрактный метод
public abstract double CalculateBonus(); // расчет премии - абстрактный метод
public double getWage() // метод-аксессор
{
return wage;
}
public String getFirstName() // метод-аксессор
{
return first_name;
}
public String getLastName() // метод-аксессор
{
return last_name;
}
public void PrintPaycheck() // печать чека
{
String full_name = first_name + " " + last_name + " - "; // полное имя
Console.WriteLine("Oплата: " + full_name + " $" + CalculatePay());
}
} ///////////// конец класса Employee ////////////////////
public class HourlyEmployee : Employee // Класс - служащий с почасовой оплатой
{
private int hours; // отслеживание количества отработанных часов
public HourlyEmployee(String first_name, String last_name, double wage) :
base(first_name, last_name, wage)
{
}
public override double CalculatePay()
{
return getWage() * hours;
}
public override double CalculateBonus() // размер премии для почасово оплачиваемых служащих
{
return 100.00;
}
public void AddHours(int hours) // определение количества отработанных часов
{
this.hours = this.hours + hours;
}
public int getHours() // метод-аксессор
{
return hours;
}
public void resetHours() // метод-мутатор (сброс)
{
hours = 0;
}
} /////////////конец класса HourlyEmployee /////////////////////
public class CommissionedEmployee : Employee // Класс - служащий с комис-ной оплатой
{
private double commission; // количество долларов за единицу товара
private int units; // отслеживание количества проданных единиц товара
public CommissionedEmployee(String first_name, String last_name, double wage, double
commission)
: base(first_name, last_name, wage)
{
this.commission = commission;
}
public override double CalculatePay()
{
return getWage() + (commission * units);
}
public override double CalculateBonus() // вычисление премии за проданные единицы товара
{
return 100.00 * getSales();
}
public void AddSales(int units) // определение количества проданных единиц товара
{
this.units = this.units + units;
}
public int getSales() // метод-аксессор
{
return units;
}
public void resetSales() // метод-мутатор (сброс)
{
units = 0;
}
} ////////////конец класса CommissionedEmployee //////////////////

public class Payroll // Класс Платежная ведомость
{
private int total_hours; // итого отработано часов
private int total_sales; // итого продано единиц товара
private double total_pay; // итого выплачено всем служащим
/* Полиморфизм включения (с.143) ЛУЧШЕ, чем перегрузка методов / с.168, но см. с. 192 /,
так как при любом количестве служащих необходим только один метод PayEmployees().
Перегрузка м-да RecordEmployeeInfo() (см. ниже) ХУЖЕ тем, что с появлением нового
служащего необходимо прибавлять новый м-д, то есть осуществлять перегрузку метода*/
public void PayEmployees(Employee[] emps)
{ // emps - полиморфная переменная базового класса, она хранит данные различных служащих
for (int i = 0; i < emps.Length; i++)
{
Employee emp = emps;
total_pay += emp.CalculatePay();
emp.PrintPaycheck();
}
}
public void CalculateBonus(Employee[] emps)
// Премия служащих с разной оплатой труда. Полиморфизм включения
{
for (int i = 0; i < emps.Length; i++)
{
Employee emp = emps;
Console.WriteLine("Размер премии " + emp.getFirstName() + " " + emp.getLastName() + "$" + emp.CalculateBonus());
}
}
public void RecordEmployeeInfo(CommissionedEmployee emp)
// перегрузка метода. М-д служ-го с комиссион-й оплатой.
{ // Благодаря перегрузке этот м-д явл-ся полиморфным.
total_sales += emp.getSales(); // определение количества проданных единиц товара
}
public void RecordEmployeeInfo(HourlyEmployee emp)
// Перегрузка метода. М-д служ-го с почасовой оплатой
{ // Благодаря перегрузке этот м-д явл-ся полиморфным
total_hours += emp.getHours(); // определение количества отработанных часов
}
public void PrintReport()
{
Console.WriteLine("ПЛАТЕЖНАЯ ВЕДОМОСТЬ:");
Console.WriteLine("Итого отработано часов: " + total_hours);
Console.WriteLine("Итого продано единиц товара: " + total_sales);
Console.WriteLine("Итого выплачено всем служащим: $" + total_pay);
}
} //////////////////////////////конец класса Payroll//////////////////////////////////////////
/* Начальный класс EmployeeDriver создает экземпляры классов
CommissionedEmployee и HourlyEmployee и испытывает их.*/
public class PayrollDriver
{
public static void Main(String[] args)
{
{
Console.WriteLine("Введите Ваше имя"); // вывод строки на экран
string name;
name = Console.ReadLine(); // ввод строки с клавиатуры
if (name == "продавец")
Console.WriteLine("Г-н", "Продавец", 25000.00, 1000.00);
else
Console.WriteLine("Г-жа", "Продавщица", 25000.00, 1000.00);
name = Console.ReadLine();
}

Payroll payroll = new Payroll(); // создать систему платежной ведомости
// создать и модифицировать служащих с комиссионной оплатой
CommissionedEmployee emp1 = new CommissionedEmployee("Г-н", "Продавец", 25000.00, 1000.00);
CommissionedEmployee emp2 = new CommissionedEmployee("Г-жа", "Продавщица", 25000.00, 1000.00);
emp1.AddSales(7);
emp2.AddSales(5);
// создать и модифицировать служащих с почасовой оплатой
HourlyEmployee emp3 = new HourlyEmployee("Продавец", "с минимальной зарплатой", 6.50);
HourlyEmployee emp4 = new HourlyEmployee("Продавщица", "с минимальной зарплатой", 6.50);
emp3.AddHours(40);
emp4.AddHours(46);
payroll.RecordEmployeeInfo(emp1); // используем перегруженные (overloaded) методы
payroll.RecordEmployeeInfo(emp2); // -- ” -- //
payroll.RecordEmployeeInfo(emp3); //-- ” –//
payroll.RecordEmployeeInfo(emp4); //-- ” --//
/* запомним всех служащих в массиве emps.
emps - это полиморфная переменная базового класса, она может хранить объекты
различных /производных/ типов (то есть разные служащие) */
Employee[] emps = new Employee[4];
emps[0] = emp1; emps[1] = emp2; emps[2] = emp3; emps[3] = emp4;
payroll.PayEmployees(emps); // расчет зарплаты, выплаченной всем служащим
Console.WriteLine();
payroll.PrintReport(); // печать платежной ведомости
Console.WriteLine();
payroll.CalculateBonus(emps); // расчет премии, выплаченной всем служащим
Console.ReadLine();
} ////////конец класса EmployeeDriver//////////////////////
}
}
 
Статус
Закрыто для дальнейших ответов.