سورس دفترچه تلفن به زبان سی شارپ (Console Application)
#1
Note 
سلام
سورس دفترچه تلفن به زبان سی شارپ رو براتون گذاشتم

محتویات کلاس ها:
PhoneBookApp.cs

[CSHARP]// PhoneBookApp.cs
//
// Written by Liong Ng

using System;

namespace PhoneBook
{
class PhoneBookApp
{
static void Main(string[] args)
{
PhoneBookAccess phoneBookAccess = new PhoneBookAccess();
for(;Wink
{
//--- Display menu ---
Console.WriteLine( "" );
Console.WriteLine( "Enter 1 to enter a new phone book entry" );
Console.WriteLine( "Enter 2 to view the number for a name" );
Console.WriteLine( "Enter 3 to list all the entries" );
Console.WriteLine( "Enter 4 to delete an entry" );
Console.WriteLine( "Enter 5 to quit." );

//--- Get input ---
byte byInput;
try
{
byInput = Convert.ToByte( Console.ReadLine() );
}
catch
{
Console.WriteLine( "Invalid selection, try again." );
continue;
}

switch( byInput )
{
case 1: // New entry
Person person = Person.ReadPerson();
PhoneNumber number = PhoneNumber.ReadNumber();

BookEntry bookEntry = new BookEntry( person, number );
phoneBookAccess.AddEntry( bookEntry );
break;
case 2: // View entry
Person someone = Person.ReadPerson();
BookEntry entry = phoneBookAccess.GetEntry( someone );
if( entry == null )
Console.WriteLine( someone + " was not found. ");
else
Console.WriteLine( "The number for "+ someone +
" is " + phoneBookAccess.GetEntry(someone).GetNumber());
break;
case 3: // list entries
phoneBookAccess.List();
break;
case 4: // Delete entry
person = Person.ReadPerson();
phoneBookAccess.DeleteEntry( person );
break;
case 5: // quit
phoneBookAccess.Save();
Console.WriteLine("Ending program.");
return;
default:
Console.WriteLine( "Invalid selection, try again." );
break;
}
}
}
}
}
[/CSHARP]


BookEntry.cs

[CSHARP]// BookEntry.cs
//
// Written by Liong Ng

using System;
using System.Runtime.Serialization;

[Serializable]
class BookEntry
{
public BookEntry( Person person, PhoneNumber number )
{
this.person = person;
this.number = number;
}

public Person GetPerson()
{
return person;
}

public PhoneNumber GetNumber()
{
return number;
}

public override string ToString()
{
return person.ToString() + "\t" + number.ToString();
}

private Person person;
private PhoneNumber number;
}[/CSHARP]



Person.cs

[CSHARP]// Person.cs
//
// Written by Liong Ng

using System;
using System.Runtime.Serialization;

[Serializable]
class Person
{
public Person( string firstName, string lastName )
{
this.firstName = firstName;
this.lastName = lastName;
}

public string FirstName
{
get
{
return firstName;
}
}

public string LastName
{
get
{
return lastName;
}
}

public override string ToString()
{
return firstName + " " + lastName;
}

public override Boolean Equals( Object obj )
{
if ( obj == null ) return false;

if ( this.GetType() != obj.GetType() ) return false;

Person person = (Person) obj;

if ( !Object.Equals( firstName, person.FirstName ) ) return false;
if ( !Object.Equals( lastName, person.LastName ) ) return false;

return true;
}

public override int GetHashCode()
{
return firstName.GetHashCode() ^ lastName.GetHashCode();
}

//--- Read a person from the keyboard ---
public static Person ReadPerson()
{
Console.Write( "Enter last name: " );
string readLastName = Console.ReadLine();
Console.Write( "Enter first name: " );
string readFirstName = Console.ReadLine();

return new Person( readLastName, readFirstName );
}

private string firstName;
private string lastName;

}[/CSHARP]

PhoneBookAccess.cs

[CSHARP]// PhoneBookAccess.cs
//
// Written by Liong Ng

using System;
using System.IO;
using System.Collections;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;


[Serializable]
class PhoneBookAccess
{
public PhoneBookAccess()
{
Stream s = null;
try
{
s = File.Open("Phone.bin", FileMode.Open, FileAccess.Read);
BinaryFormatter b = new BinaryFormatter();
table = (Hashtable) b.Deserialize(s);
}
catch( FileNotFoundException )
{
table = new Hashtable();
}
finally
{
if ( s != null ) s.Close();
}
}

public void AddEntry(BookEntry entry)
{
table.Add( entry.GetPerson(), entry );
}

public BookEntry GetEntry(Person key)
{
return (BookEntry) table[key];
}

public void DeleteEntry(Person key)
{
table.Remove( key );
}

public PhoneNumber GetNumber(Person key)
{
return GetEntry(key).GetNumber();
}

public void List()
{
foreach( DictionaryEntry d in table )
Console.WriteLine( "{0}", d.Value );
}

public void Save()
{
Stream s = null;
try
{
s = File.Open("Phone.bin", FileMode.Create, FileAccess.ReadWrite);
BinaryFormatter b = new BinaryFormatter();
b.Serialize(s, table);
}
finally
{
if ( s != null ) s.Close();
}
}

private Hashtable table;
}[/CSHARP]

PhoneNumber.cs

[CSHARP]// PhoneNumber.cs
//
// Written by Liong Ng

using System;
using System.Runtime.Serialization;

[Serializable]
class PhoneNumber
{
public PhoneNumber( string areaCode, string number )
{
this.areaCode = areaCode;
this.number = number;
}

public string AreaCode
{
get
{
return areaCode;
}
set
{
areaCode = value;
}
}

public string Number
{
get
{
return number;
}
set
{
number = value;
}
}

public override string ToString()
{
return areaCode + " " + number;
}

// Read a person from the keyboard
public static PhoneNumber ReadNumber()
{
Console.Write( "Enter area code: " );
string readAreaCode = Console.ReadLine();
Console.Write( "Enter number: " );
string readNumber = Console.ReadLine();

return new PhoneNumber( readAreaCode, readNumber );
}

string areaCode;
string number;
}[/CSHARP]

آپدیت شد
دانلود پروژه با لینک مستقیم
موفق باشید Heart

پاسخ
#2
Note 
با سلام خدمت شما استاد گرامی
لینک دانلود پروژه کار نمیکنه لطفا پیگیری کنید

پاسخ
#3
Note 
ir_sakhtafzar نوشته است:با سلام خدمت شما استاد گرامی
لینک دانلود پروژه کار نمیکنه لطفا پیگیری کنید
سلام عزیز
سورس کد به صورت کامل گذاشته شده
لینک هم اصلاح شد میتونید دانلود کنید.

پاسخ
ایجاد موضوع جدید   پاسخ به موضوع  

موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Note کتاب آموزش Parse کردن یک خبر خوان وردپرسی برای ویندوزفون The Arrow 0 979 23-04-2015 ساعت 09:24
آخرین ارسال: The Arrow
Note سوال ساخت تقویم فارسی در ویندوز 8.1 The Arrow 2 993 16-01-2015 ساعت 00:32
آخرین ارسال: The Arrow
Note دیتابیس SQLite در سی شارپ The Arrow 3 2,433 07-11-2014 ساعت 22:40
آخرین ارسال: VBProgrammer
Note FileAssociation در سی شارپ The Arrow 1 567 05-11-2014 ساعت 12:32
آخرین ارسال: SOFTAFZAR
Note آموزش کامل سی شارپ (ویدئو) xMAN 2 682 02-10-2014 ساعت 12:50
آخرین ارسال: xMAN
Note explorer سی شارپ cMan 1 485 30-08-2014 ساعت 12:07
آخرین ارسال: SOFTAFZAR
Note پیدا کردن متن در سی شارپ arfanz 7 879 27-08-2014 ساعت 01:10
آخرین ارسال: The Arrow
Note برنامه نویسی موازی با سی شارپ xMAN 0 450 05-08-2014 ساعت 12:01
آخرین ارسال: xMAN
Note جستجو در یک متن در سی شارپ arfanz 12 2,242 16-07-2014 ساعت 09:32
آخرین ارسال: Stack OverFlow
Note مخفف کنترلهای سی شارپ mshayan 2 849 15-07-2014 ساعت 13:32
آخرین ارسال: mshayan

کاربرانِ درحال بازدید از این موضوع:   1 مهمان