| نمايش موضوع قبلي :: نمايش موضوع بعدي |
| نويسنده |
پيغام |
|
mirkhalili
کاربر جدید

 وضعيت: آفلاين 23 اسفند ماه ، 1386 تعداد ارسالها: 12 امتياز: 1437 تشکر کرده: 0 تشکر شده 0 بار در 0 پست
محل سكونت: يزد
|
ارسال شده در: يكشنبه، 8 ارديبهشت ماه ، 1387 15:26:00 موضوع مطلب: پروژه دفترچه تلفن |
|
|
دفترچه تلفن:
اين برنامه شامل 17 تابع و 454 خط مي باشد، پيچيدگي زماني برنامه براي هر بخش حداكثر 100 ميباشد.
ويژگيها:
1- قسمت درج خودكار اطلاعات و ايجاد صفحه جديد
2- مرتبسازي برنامه
3- نمايش اطلاعات
4- جستجوي اطلاعات
5- ويرايش اطلاعات
6- پاك نمودن يك شخص از دفترچه
7- پشتيبانگيري از برنامه
8- برگرداندن اطلاعات
9- راهنماي برنامه |
|
|
بازگشت به بالا |
|
|
 |
| تشکرهاي ثبت شده از ايجاد کننده تاپيک : |
|
|
|
|
mirkhalili
کاربر جدید

 وضعيت: آفلاين 23 اسفند ماه ، 1386 تعداد ارسالها: 12 امتياز: 1437 تشکر کرده: 0 تشکر شده 0 بار در 0 پست
محل سكونت: يزد
|
ارسال شده در: يكشنبه، 8 ارديبهشت ماه ، 1387 15:27:13 موضوع مطلب: |
|
|
| :كد |
كد برنامه:
//Address Book Ver 6.02
//Perfessor:Mr.Dehghani
//Stu: Sayed Abolfazl mirkhalili
//ID Stu: 83918893303
#include <fstream>
#include <conio>
#include <iostream>
#include <iomanip>
#include <string>
#include <stdlib>
#include <stdio>
#include <STRING>
//---------------------------- struct
struct personal
{
int ID;
char Family[15], Name[15], Father[15], place[15], Tel[15], Mobile[15], address[100];
}p,q;
FILE *fp;
int end;
// ---------------------------Function
void menu(int choice);
void page();
void print(struct personal);
void add_record(void);
void del_record(void);
void switch_s(int word);
void search(void);
void display_list(void);
void edit_tab(void);
void edit_list(void);
void help(void);
void write_file(struct personal);
void auto_id();
void backup();
void restory();
void box(int r=6,int c=4);
void sort();
بدنه:
// ---------------- Main ----------------
int main()
{
int pass, choice;
char numstr[2];
box(6,7);
cprintf ("Enter Password:");
gotoxy(38,10);
textcolor(0);
textbackground(0);
cscanf("%d",&pass);
textbackground(0);
if (pass!=502)
{
gotoxy(29,12);
cout << " Password not valid ";
getch();
return 0;
}
fp = fopen ("data.dat","a+b");
if (!fp){
box(6,6);
printf("cannot open file.");
}
do
{
clrscr();
system("cls");
textcolor(9);
cprintf ("************** Address Book Ver 6.02 *************");
cprintf ("*************** Mirkhalili ****************");
box(11,3);
cout << "\n";
cout << " 1 - Creat Personal\n";
cout << " 2 - View all Personal\n";
cout << " 3 - Search a personal and Delete or edit\n";
cout << " 4 - Backup Information\n";
cout << " 5 - Restory Backup\n";
cout << " 6 - Help\n";
cout << " 7 - Exit program\n";
cout << "\n";
cout << " Enter choice: ";
cin >> numstr;
choice = atoi(numstr);
menu (choice); // ----------------load menu
} while (choice != 7); //--------Repeat menu
fclose(fp);
return 0;
}
منوي اصلي:
// -----------------------------------Menu
void menu(int choice)
{
switch(choice)
{
case 1:
add_record(); // --------- call function for add
break;
case 2:
display_list(); // -------- call function for veiw
break;
case 3:
search(); // -------------- call function for search
break;
case 4:
backup(); // ---------- call a function for backup
break;
case 5:
restory(); // ----------- call a function for restory
break;
case 6:
help(); // ----------------- call a function for help
break;
case 7: // -----------------call a function for Exit
break;
default :
{
gotoxy(30,30);
choice=0;
cout <<"Invalid choice\n";
}
break;
}
}
تابع افزودن:
//---------------------------------- ADD
void add_record(void)
{
while (1) {
page();
gotoxy(30,16);
printf("Enter for add New Record");
gotoxy(13,5) ;
p.ID=1;
gets(p.Family);
if(!p.Family[0])
break ;
gotoxy(51,5) ;
gets(p.Name) ;
gotoxy(13,7);
gets(p.Father) ;
gotoxy(52,7);
gets(p.place) ;
gotoxy(15,9);
gets(p.Tel);
gotoxy(53,9);
gets(p.Mobile);
gotoxy(14,11);
gets(p.address);
write_file(p);
}
}
تابع ايجاد صفحه خالي:
// --------------------------------Page
void page()
{
system("cls");
clrscr();
textcolor(6);
textbackground(5);
int i;
for (i=1;i<18;i++)
{
gotoxy(2,i);
cprintf(" ");
}
gotoxy(3,1);
cprintf("-------------------------------------------------------------------");
gotoxy(3,2);
cprintf("~~~~~~~~~~~~~~~~~~~~~ Address Book ver 6.02 ~~~~~~~~~~~~~~~~~~~~~~~~");
textcolor(6);
textbackground(9);
gotoxy(5,5);
cprintf("Family:");
gotoxy(45,5);
cprintf("Name:") ;
gotoxy(5,7);
cprintf("Father:");
gotoxy(45,7);
cprintf("Place:");
gotoxy(5,9);
cprintf("Telephon:");
gotoxy(45,9);
cprintf("Mobile:");
gotoxy(5,11);
cprintf("Address:");
gotoxy(3,15);
textcolor(6);
textbackground(5);
cprintf("```````````````````````````````````````````````````````````````````");
gotoxy(3,16);
cprintf("-------------------------------------------------------------------");
} |
|
|
|
بازگشت به بالا |
|
|
 |
|
mirkhalili
کاربر جدید

 وضعيت: آفلاين 23 اسفند ماه ، 1386 تعداد ارسالها: 12 امتياز: 1437 تشکر کرده: 0 تشکر شده 0 بار در 0 پست
محل سكونت: يزد
|
ارسال شده در: يكشنبه، 8 ارديبهشت ماه ، 1387 15:27:48 موضوع مطلب: |
|
|
| :كد |
تابع حذف ركورد:
// ---------------------- DELET
void del_record(void)
{
struct personal s[100];
int i,id=1;
auto_id();
rewind(fp);
fread (s ,sizeof(struct personal), end, fp);
fclose(fp);
for (i=0;i<end-1;i++){
if (p.ID!=s[i].ID){
s[i].ID=id;
id++;
fwrite (&s[i] ,sizeof(struct personal), 1, fp);
}
}
fclose(fp);
fp = fopen ("data.dat","a+b");
box(5,1);
cout <<delete> Edit 2--> Delete 3--> Back Menu -->");
do {
cin >> word;
s = atoi(word);
switch_s(s); // ----------------load menu
} while (s<1>3); //--------Repeat menu
break;
}
}
if (tf)
{
box(6,1);
cout << "Not is name this address book.";
getch();
}
}
void switch_s(int word)
{
switch(word)
{
case 1:
break;
case 2:
del_record(); // -------- call function for del
break;
case 3: // -----------------call a function for Menu
break;
default :
{
gotoxy(30,20);
printf("Try agan: ");
word=0;
}
break;
}
}
تابع نمايش:
// -------------------- DISPLY
void display_list()
{
while (!feof(fp)){
fread (&p ,sizeof(struct personal), 1, fp);
page();
print (p);
gotoxy(55,15);
printf("Record: %d",p.ID);
gotoxy(35,17);
printf("Next Veiw Record Press Enter");
getch();
}
}
تابع چاپ:
//------------------------ PRINT
void print (struct personal)
{
gotoxy(13,5) ;
cout << p.Family;
gotoxy(51,5) ;
cout << p.Name;
gotoxy(13,7);
cout << p.Father;
gotoxy(52,7);
cout << p.place;
cout << p.Tel;
gotoxy(53,9);
cout << p.Mobile;
gotoxy(14,11);
cout << p.address;
}
تابع ويرايش:
//------------------------ Edit_Tab
void edit_tab(void)
{
page();
gotoxy(30,16);
printf("Enter for Edit ");
gotoxy(13,5) ;
gets(p.Family);
gotoxy(51,5) ;
gets(p.Name) ;
gotoxy(13,7);
gets(p.Father) ;
gotoxy(52,7);
gets(p.place) ;
gotoxy(15,9);
gotoxy(53,9);
gets(p.Mobile);
gotoxy(14,11);
gets(p.address);
} |
آخرين ويرايش توسط mirkhalili در تاريخ يكشنبه، 8 ارديبهشت ماه ، 1387 15:39:43; دفعات ويرايش در مجموع : 1 مرتبه |
|
|
بازگشت به بالا |
|
|
 |
|
mirkhalili
کاربر جدید

 وضعيت: آفلاين 23 اسفند ماه ، 1386 تعداد ارسالها: 12 امتياز: 1437 تشکر کرده: 0 تشکر شده 0 بار در 0 پست
محل سكونت: يزد
|
ارسال شده در: يكشنبه، 8 ارديبهشت ماه ، 1387 15:29:04 موضوع مطلب: |
|
|
| :كد |
تابع ويرايش فايل:
//------------------------ EDIT
void edit_list(void)
{
struct personal s[100];
int i;
edit_tab();
auto_id();
rewind(fp);
fclose(fp);
fp = fopen ("data.dat","w+b");
for (i=0;i<end-1;i++){
if (p.ID!=s[i].ID){
fwrite (&s[i] ,sizeof(struct personal), 1, fp);
}
else
fwrite (&p ,sizeof(struct personal), 1, fp);
}
fclose(fp);
box(5,1);
cout << "-- Edit record --";
getch();
}
تابع چاپ راهنماي برنامه:
//----------------------- HELP
void help(void)
{
FILE *hp;
char ch;
hp = fopen ("help.txt","r");
clrscr();
while (!feof(hp)){
fscanf (hp ,"%c", &ch);
cout << ch;
}
fclose(hp);
getch();
}
تابع افزودن به فايل:
// --------------------- WRITE
void write_file(struct personal)
{
auto_id();
p.ID=end;
clrscr();
}
تابع ساخت شماره ركورد:
// --------------------- SEARCH ID
void auto_id()
{
rewind (fp);
while (!feof(fp)){
fread (&q ,sizeof(struct personal), 1, fp);
end=q.ID+1;
}
}
تابع پشتيبانگيري:
// ------------------------- Backup
void backup()
{
FILE *b;
b = fopen ("A:backup.am","w+b");
if (!b){
box(6,2);
printf("Please Disk in the flopy and try agen.");
}
rewind (fp);
while (!feof(fp)){
fwrite (&p ,sizeof(struct personal), 1, b);
}
box(6,3);
printf("Backup information end.");
fclose(b);
getch();
}
تابع بازسازي فايل:
//-------------------------- Restory
void restory()
{
FILE *b;
b = fopen ("A:backup.am","r+b");
if (!b){
box(6,9);
printf("Please Disk in the flopy and try agen.");
}
rewind (b);
fread (&p ,sizeof(struct personal), 1, b);
fwrite (&p ,sizeof(struct personal), 1, fp);
}
box(6,5);
printf("Restory information end.");
fclose(b);
getch();
}
تابع ايجاد جعبه:
// -------------------------- BOX
void box(int r,int c)
{
clrscr();
gotoxy(16,7);
cout << "------------ Address Book Ver 6.02 ------------";
textcolor(4);
textbackground(c);
for (;r>0;r--)
{
cprintf (" ");
}
gotoxy(22,10);
}
تابع مرتب سازي:
//------------------sort
void sort()
{
struct personal s[100];
int i,j;
auto_id();
rewind(fp);
fread (s ,sizeof(struct personal), end, fp);
for (i=0;i<end-1;i++){
for (j=i+1;j<end>s[i].Family){
q=s[i];
s[i]=s[j];
s[j]=q;
}
}
}
for (i=0;i<end;i++)
s[i].ID=i+1;
fclose(fp);
fp = fopen ("data.dat","w+b");
fwrite (s ,sizeof(struct personal), end, fp);
fp = fopen ("data.dat","a+b");
} |
|
|
|
بازگشت به بالا |
|
|
 |
|