sara_noori
پنج شنبه 18 خرداد 1391, 19:56 عصر
با سلام ببخشید من برنامه دفترچه تلفن را نوشتم اما ویرایش اون را نتونستم بنویسم در ضمن برنامه ام اجرا نداره اگر ممکن است کمکم کنید یکشنبه تحویل دارم هر چه زودتر ممنون
.model small
.stack 64
.data
cr equ 0dh
lf equ 0ah
msg1 db "select1","$",13,10
msg2 db "select2","$",13,10
msg3 db "select3","$",13,10
msg4 db "select4","$",13,10
menu db 0dah,16 dup(0c4h),0bfh,cr,lf
db 0b3h,'enter data ',0b3h,cr,lf
db 0b3h,'edit data ',0b3h,cr,lf
db 0b3h,'display data ',0b3h,cr,lf
db 0b3h,'find data ',0b3h,cr,lf
db 0b3h,'sum ',0b3h,cr,lf
db 0b3h,'exit ',0b3h,cr,lf
db 0c0h,16 dup(0c4h),0d9h,cr,lf,"$"
enter_key equ 13
down_key equ 80
up_key equ 72
esc_key equ 27
color1 equ 71h
color2 equ 17h
page_no equ 00h
page_down equ 81
page_up equ 73
home_key equ 71
end_key equ 79
cr equ 13
ln equ 10
top equ 00
bottom equ 05
left equ 16
col db 00
row db 00
char_attrib db ?
count db ?
len_2 equ 23
topx equ 7
lenn equ 19
cm db ?
len db ?
buf db ?
monitor equ 0001h
write equ 40h
message db cr,ln,cr,ln,09,"select an item , use <up/down aeeow>"
db "andpress enter"
db 13,10,09," press esc to end"
l_message equ $-message ;tole reshte
db 0bah,2 dup(32),'1-print',2 dup(32),0bah
.code
.386
example proc far
mainloop:
call cls
mov row,23 ;gotoxy(23,00)
mov col,00 ;
call gotoxy
mov ah,40h
mov bx,01h
mov cx,l_message
mov dx,offset message
int 21h
call disp_menu
mov col,left+1
mov row,top+1
call gotoxy
mov char_attrib,16h
call set_highlight
call key_input
cmp al,0dh
je mainloop
mov ax,0600h
call cls
mov ax,4c00h
int 21h
ret
example endp
;---------------------------------------disp_menu---------------
disp_menu proc near
mov len,25
mov row,top+1
disp_menu1:
mov col,left+1
call gotoxy
mov ah,09h
mov al,0dbh
mov bh,page_no
mov bh,60h
mov cl,lenn
mov ch,00
int 10h
inc row
cmp row,bottom+2
jne disp_menu1
mov row,top
mov si,offset menu
mov char_attrib,color1
disp_menu2:
mov col,left
mov cl,len
mov count,cl
disp_menu3:
call gotoxy
mov ah,09h
mov al,[si]
mov bh,page_no
mov bl,color1
mov cx,01
int 10h
inc col
inc si
dec count
jnz disp_menu3
inc row
cmp row,bottom+1
jne disp_menu2
ret
disp_menu endp
;---------------key_input---------
key_input proc near
call read_char
cmp ah,down_key
je key_input1
cmp ah,up_key
je key_input2
cmp al,enter_key
jne key_other
cmp row,01
jne enter2
call cls
mov ah,09h
lea dx,msg1
int 21h
call read_char
jmp mainloop
enter2:
cmp row,2
jne enter3
call cls
mov ah,09h
lea dx,msg2
int 21h
call read_char
jmp mainloop
enter3:
cmp row,03
jne enter4
call cls
mov ah,09h
lea dx,msg3
int 21h
call read_char
jmp mainloop
enter4:
cmp row,04
jne enter5
call cls
mov ah,09h
lea dx,msg4
int 21h
call read_char
jmp mainloop
enter5:
jmp mainloop
key_other:
cmp al,esc_key
je key_input_end
cmp ah,page_down
je key_input1
cmp ah,end_key
je key_input2
cmp ah,page_up
je key_input3
cmp ah,home_key
je key_input4
jmp key_input4
key_input1:
mov char_attrib,color1
call set_highlight
inc row
cmp row,bottom-1
jbe key_input5
mov row,top+1
jmp key_input5
key_input2:
mov char_attrib,color1
call set_highlight
dec row
cmp row,top+1
jae key_input5
mov row,bottom-1
jmp key_input5
key_input3:
mov char_attrib,color1
call set_highlight
mov row,bottom-1
jmp key_input5
key_input4:
mov char_attrib,color1
call set_highlight
mov row,top+1
jmp key_input5
key_input5:
call gotoxy
mov char_attrib,color2
call set_highlight
jmp key_input
key_input_end:
ret
key_input endp
;---------------read_char---------------
read_char proc
mov ah,10h
int 16h
ret
read_char endp
;-------------set_highlight--------------
set_highlight proc near
movzx ax,row
mul len
mov si,offset menu+1
add si,ax
mov count,len_2
highlight:
call gotoxy
mov ah,09h
mov al,[si]
mov bh,page_no
mov cx,01
int 10h
inc col
inc si
dec count
jnz highlight
mov col,left+1
call gotoxy
ret
set_highlight endp
;-----------cls---------------------------
cls proc near
mov ax,0600h
mov bh,61h
mov cx,0000
mov dx,184fh
int 10h
ret
cls endp
;----------gotoxy-----------------------
gotoxy proc near
mov ax,02h
mov bh,page_no
mov dh,row
mov dh,topx
mov dl,col
add dl,lenn
int 10h
ret
gotoxy endp
;--------------------------------------
;--------------------------------------
disp proc near
mov bx,monitor
mov ah,write
int 21h
ret
disp endp
;---------------------------------
end example
MostafaMohammadi
جمعه 19 خرداد 1391, 17:14 عصر
کسی نیست جوابمو بده خیلی ضروریه یکشنبه تحویل دارم ممنون میشم
تو که تا به حال سوالی نپرسیدی، دنبال جواب کدوم سوال ات می گردی؟
ابتدا شماره تلفن از ورودی دریافت شود در صورت وجود شماره تلفن در لیست مخاطبین مشخصات فرد نمایش داده شود
پست اولات که سفارش پروژه آخر ترماته و مدیر انجمن بهت لطف کرده که بعد از خوندن اون تاپیک رو حذف نکرده. تازه راهنماییهای مورد نیاز ات رو هم انجام داده!
اگه میخوای پروژه ات رو انجام بدی، شروع کن به نوشتن و هرجا به مشکل برخوردی بپرس، اگر هم قصد ات یادگیری نیست و فقط میخوای پروژه آخر ترمات رو حاضر و آماده پیدا کنی و تحویل بدی، باید بری دست بکنی تو جیب ات و بخریش، اینجا وقت خودت و ما رو تلف نکن.:چشمک:
xman_1365_x
یک شنبه 21 خرداد 1391, 11:17 صبح
کسی نیست جوابمو بده خواهش میکنم
کد شما خطا زیادی داره و ارتباطی با برنامتون نداره! الگوریتم برنامتون واضح هست
یک آرایه از ساختمان ار پیش تعریف شده دارین و یک رکورد خاص رو دارین در اون جستجو میکنید
برای استفاده از struct یا شبیه سازی اون این (http://barnamenevis.org/showthread.php?345006-%D8%AA%D8%B9%D8%B1%DB%8C%D9%81-%D9%88-%D9%81%D8%B1%D8%A7%D8%AE%D9%88%D8%A7%D9%86%DB%8C-struct)صفحه رو ببینید
برای دریافت ورودی هم گفتم از وقفه 21 و تابع 10 استفاده کنید که در سایت مثال کاربردی ازش هست
میمونه تابع جستجو که اونم یک فصل کار با رشته در کتاب داریوش نیکمهر در حد چند صفحه هست دانلود و مطالعه کنید
تا این مراحل رو شروع نکنید نمیتونم بیشتر راهنماییتون کنم ( اگر برنامه نویسی به زبان دیگه رو بلدین برنامه رو با آن پیاده سازی کنید،اینکار رو با نوع داده های مجرد ساده مثل آرایه یک بعدی یا ساختمان انجام بدین،بعد مرحله به مرحله کد رو در اسمبلی پیاده سازی کنید)
ضمنا دوست گرامی اگر پست های اینچنینی بدین مجبور به قفل کردن تاپیک میشم
موفق باشی
tyrant
پنج شنبه 08 تیر 1391, 17:59 عصر
سلام برنامه دفترچه رو من اینجوری نوشتم اما یه error هایی داره :ناراحت:
تابع ویریایش کردن رو کمکم کنید چه جوری انجام بدم اون رو
#include <iostream.h>
#include <conio.h>
#include <string.h>
#include <stdio.h>
int x=1;
struct tell{
char name[20];
char family[20];
int phone;
} list[100];
void add()
{if (x>=100)
cout<<"sory. the fhone book is complete"<<endl;
else
cout<<"input first name :";
cin>>list[x].name;
cout<<"input last name :";
cin>>list[x].family;
cout<<"input phone number :";
cin>>list[x].phone;
clrscr();
x++;}
void search()
{int i,num,p;
char text[20];
cout<<"search by name(1) or tell number(2):";
cin>>p;
if(p==1)
{
cout<<"name:";
cin>>text;
for(i=1;i<=x;i++)
{
if (strcmpi(text,list[i].name)==0)
{
cout<<list[i].name<<endl;
cout<<list[i].family<<endl;
cout<<list[i].phone<<endl;
}
else cout<<"this name not here"<<endl;
}
}
else
if (p==2)
{
cout<<"tell number:";
cin>>num;
for(i=1;i<=x;i++)
{
if (num==list[i].phone)
{
cout<<list[i].name<<endl;
cout<<list[i].family<<endl;
cout<<list[i].phone<<endl;
}
else cout<<"this number not here"<<endl;
}
}
else cout<<"sorry"<<endl;
}
void list_()
{
int i;
for(i=1;i<x;i++)
{cout<<"----------------"<<endl;
cout<<"|"<<list[i].name<<"|";
cout<<"|"<<list[i].family<<"|";
cout<<"|"<<list[i].phone<<"|"<<endl;
cout<<"----------------"<<endl;
}
}
void delet()
{
int a,i,j;
cout<<"enter a fhone number for delete:";
cin>>a;
for(i=1;i<=x;i++)
{if (a==list[i].phone)
{for (j=i;j<=x;j++)
{strcpy(list[j+1].name,list[j].name);
strcpy(list[j+1].family,list[j].family);
list[j+1].phone=list[j].phone;
}
}
else
cout<<"this number not here"<<endl;}}
int main()
{
int c,t,i,y;
long f;
while(1)
{
cout<<"1-Add"<<endl;
cout<<"2-Search"<<endl;
cout<<"3-List"<<endl;
cout<<"4-Delete"<<endl;
cout<<"5-Exit"<<endl<<"insert a number then press enter:";
cin>>c;
switch (c){
case 1:
add();
break;
case 2 :
search();
break;
case 3 :
list_();
break;
case 4 :
delet();
break;
case 5 :
return 0;
break;
}
}
getch();
return 0;
}
tyrant
شنبه 17 تیر 1391, 22:16 عصر
با سلام؛
براي ذخيره شماره تلفن بايد از char استفاده كنيد.
قسمت ويرايش رو هم ميتونيد به دو صورت بنويسيد:
1- شماره ركورد رو دريافت كنيد و اون ركورد رو ويرايش كنيد.
2- يك ورودي دريافت كنيد و در كل ركورد ها جستجو كنيد و در صورتي كه برابر بود، همون ركورد رو ويرايش كنيد.
موفق باشيد.
این قسمت رو char قرار بدم ؟
int phone;
} list[100];
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.