PDA

View Full Version : مجموعه برنامه های نوشته شده به زبان C و ++C



صفحه : [1] 2

Nima_NF
چهارشنبه 14 اسفند 1387, 22:04 عصر
کاربران از این به بعد می توانند در این تاپیک سورس کدهای برنامه های خود را قرار دهند تا مجموعه ای مفید از برنامه ها ایجاد شود و همگان بتوانند از آن استفاده کنند.
سورس کدهای کوچک، کاربردی و متداول (مثلا نحوه ایجاد آرایه n بعدی!) نیز مجاز است.

لذا قبل از ارسال پستی در این تاپیک رعایت همه قوانین زیر ضروری است، در غیر این صورت هرچند که ارسال شما مفید باشد بدون تذکر پاک می شود:

1- (مهم) قرار دادن تمرینات و پروژه هایی که بیشتر دانشجویی هستند و معمولا کاربرد دیگری جز دریافت نمره ندارند ممنوع است. (تحت هر عنوانی، حال یادگیری یا آموزش) سایر مواردی که کاربردی هستند یا فقط دانشجویی نیستند و در برنامه های تجاری نیز به کار خواهند آمد مجاز می باشد.

2- درخواست برنامه در این تاپیک ممنوع است. فقط قرار دادن سورس کد برنامه مجاز است.

3- برنامه حتما باید شامل سورس کد باشد، فایل اجرایی به تنهایی حذف خواهد شد.
نکته: در صورتی که کدها کوتاه است به صورت مستقیم قرار دهید، در غیر این صورت به صورت فایل zip

4- در صورتی که سورس کدی از سایتی کپی می شود کپی رایت باید ذکر شود و حتما مرجع آن نیز ذکر شود.

5- قرار دادن سورس کدهای تجاری که مالکیت آن برای فرد دیگری هست (طبق قوانین کلی سایت) ممنوع می باشد.

6- عنوان مناسب و مجزا از سایر توضیحات برای هر برنامه انتخاب کنید تا کاربران به راحتی برنامه مورد نظر خود را بیابند. تا جای ممکن برای عناوین از حالت Bold استفاده کنید.

موفق باشید

kitten
پنج شنبه 15 اسفند 1387, 20:13 عصر
سلام نیما جان
عجب تاپیکی زدی واقعا کیف کردم گفتم من شروع کننده باشم تا بقیه دوستان هم بیاند و کدهاشون را بذارند .......
شاید این کد ها را قبلا گذاشته باشم اما دوست داشتم که تو این تاپیک باشند تا یه مجموعه خوب بشه
این یه برنامه هست که فلدرهای شما را قفل می کنه!!!!
در اول این برنامه از شما پسوورد می خواهد که پسورد آن
Ashiyane.org
است . ضمنا در قسمت دادن ادرس برای قفل کردن کاراکتر '\' یادتون نره و بعد بگید برنامه ات کار نمی کنه
ضمنا امکان تغییر پسوورد هم داره و پسوورد به حروف کوچک و بزرگ حساس است و دیگه این که نیاز به .net framework هم داره تا درست اجرا بشه
برنامه به زبان سی پلاس پلاس است و باید با ویژوال استودیو 2005 کامپایل بشه

kitten
پنج شنبه 15 اسفند 1387, 20:17 عصر
سلام دوستان این برنامه را قبلا گذاشته ام اما حالا ان را با استفاده از تابع gotoxy() بازنویسی کردم تا از delay ان کمتر بشه
این یه برنامه است که با استفاده از ان می تونید یک منوی که با جهت های بالا و پایین حساس است بسازید.
توضیحات اضافی را درخود برنامه گذاشتم......

/* Menu Shower V 1.1
Compile with visual c++ 6
Programmer:Milad Kakoli(Kitten)
E-main:hellcrueldictator@yahoo.com
Weblog:www.kitten.mihanblog.com
yek code besyar sade baraye nemayesh yek menu sade ke omidvaram
dafa'at bad betonam ziba tar va karamad taresh konam.
in code ghabliat shenakht jahhat haye bala va paiine baraye
moshakhas kardan gozine entekhab shode ra darad va ba zadan enter
halghe payan yafte gozine entekhab shode moshakhas mishavad
baraye etela'at bishtar be weblog moraje'e konid.
*/
#include<iostream.h>
#include<string.h>
#include<stdio.h>
#include<conio.h>
#include <windows.h>
int ch; //braye gereftan jahat
int row=0; //moshakhas kardan satr fa'al
#define MAX 40 // bishtarin tedad char moton
char uptext[1][MAX]; // matne balaye menu
bool chi=true;
struct Student
{
int tedad; // tedad gozinehaye ghabel entekhab
char moton[5][MAX]; // moton gozinehaye ghabel entekhab
};Student s;
/*tabe menu ke moton menu ra print mikonad*/
int menu() {
cout<< uptext[0]<<endl;//print matne balaye menu
for (int i=0 ;i < s.tedad;i++)
{
if (i==row) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HA NDLE), 2);
}//taghiir rang baraye moshakhas kardan gozine fa'al
cout<< i+1 <<"-"<<s.moton[i]<<endl;
if (i==row) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HA NDLE), 7);
}//bargardandan rang be halat aval
}
return 0;//payan tabe
}
int main(){
s.tedad=5; // moshakhas kardan tedad gozineha
strcpy(s.moton[0],"Menu Viewer V 1.0");//kopy gozine aval
strcpy(s.moton[1],"hellcrueldictator@yahoo.com");//kopy gozine 2vom
strcpy(s.moton[2],"www.kitten.mihanblog.com");//kopy (http://www.kitten.mihanblog.com");//kopy) gozine 3vom
strcpy(s.moton[3],"Kitten");//kopy gozine 4om
strcpy(s.moton[4],"Movafagh bashid");//kopy gozine 5om
strcpy(uptext[0],"this is my menu");//kopy matn balaye menu
while(chi) {
gotoxy(0,0); // shoro az ebteda
menu(); // >>ejraye tabe menu
ch =getch(); //up=72,down=80, enter=13
switch(ch) {
case 72://up
if (row==0) {
row=s.tedad-1;
}//bargardandan be paiin
else {
row=row-1;
}//bargardandan be bala
break;
case 80://down
if(row==s.tedad-1) {
row=0;
}//bargardandan be bala
else {
row=row+1;
}//bargardandan be paiin
break;
case 13://enter
chi=false;//baraye khoroj az halghe
break;

}
}
/*baraye anjam karhaye badi
gozineye entekhab shode tavasot karbar row+1 ast */
return 0;
}
//shabih saz gotoxy
void gotoxy(int x,int y)
{
COORD pos;
HANDLE hConsole = GetStdHandle ( STD_OUTPUT_HANDLE );
if (INVALID_HANDLE_VALUE != hConsole)
{
pos.X = x;
pos.Y = y;
SetConsoleCursorPosition( hConsole, pos );
}
}

kitten
پنج شنبه 15 اسفند 1387, 20:29 عصر
اینم دوتا کد دیگه
اولی یه متن را اخر هر سطر فایل بازشده اضافه میکنه

#include "stdafx.h"
#include<fstream>
using std::fstream;
#include<iostream>
#include<string.h>
char pass[33];
int n= 0;
int m = 0;
int y =0;
fstream m2("c:\\2.txt");
void neveshtan(char pass[32]) {
m2<<pass<<"matn\n";
}
int main() {
std::cout<<"tedad khotot?\n";
std::cin>>y;
fstream m1("c:\\1.txt");
for (int x = 1; x<=y;x++) {
m1.getline(pass,32);
std::cout << pass << "\n";
neveshtan(pass);
_strset(pass,NULL);
}
return 0;
}

و این هم دومی که از فایل 1.txt می خونه و ان سطرهایی که دقیقا مثل هم هستند را پاک میکنه تا متن های اضافی پاک بشه و فایلی که سطر تکراری نداره را به عنوان 2.txt ذخیره می کنه


#include<iostream>
using std::cin;
using std::cout;
using std::endl;
#include<fstream>
using std::fstream;
#include<string.h>
int khat;
char id[33];
int natije;
char checkid[33];
int cmp;
char getid[33];
int check(char checkid[33]) {
fstream m3("c:\\2.txt");
for (int j = 1; j <=khat;j++) {
m3.getline(getid,32);
cmp = strcmp(checkid,getid);
if (cmp == 0) {
cout<<checkid<<endl;
return 0;
}
}
return cmp;
}
int main () {
fstream m2("c:\\2.txt");
cout<<"tedad khotot?\n";
cin >> khat;
fstream m1("c:\\1.txt");
for (int i = 1; i<=khat;i++) {
m1.getline(id,32);
natije = check(id);
if (natije == 0) {
continue;
}
else {
m2<<id<<endl;
}
}
return 0;
}

Nima_NF
سه شنبه 20 اسفند 1387, 10:56 صبح
عنوان: گرفتن ping سایت ها تنها با کلیک بر روی یک فایل

این یک برنامه کوچک هست که در ویندوز پس از کامپایل باید از فایل اجرایی یک shortcut بسازید، سپس با راست کلیک کردن بر روی آن و انتخاب properties به قسمت Targets بروید. در آن مسیر فایل نوشته شده است، حال فقط کافیست آدرس وب سایت مورد نظر یا IP مورد نظر را در ادامه آن مثلا به شکل زیر داخل " " بنویسید. از این به بعد هرگاه بر روی این shortcut کلیک کنید پنجره کنسول باز می شود و سایت را ping می کند:(به تعداد مورد نظر نیز می توانید shortcut بسازید)



"E:\MyPingApp.exe" "ping www.yahoo.com"

برنامه در کامپایلرهای قدیمی و یا جدید اما در حالت اسکی:



#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main(int agrc, char *argv[])
{
system( argv[1] );

getch();
return 0;
}

در حالت یونیکد (در کامپایلرهای جدید):



int _tmain(int argc, _TCHAR* argv[])
{
_tsystem( argv[1] );

_getch();
return 0;
}

hossein71
سه شنبه 11 فروردین 1388, 15:11 عصر
اطلاعات عمومی دانشجو

خصوصیات برنامه:
1)وارد کردن نمره به تعداد دلخواه
2)بازه نمرات بین 0 تا 100
3)مشخص کردن وضعیت نمرات
4)گرفتن میانگین
5)مشخص کردن تعداد افراد قبول و مردود شده



#include <iostream.h>
#include <conio.h>
int main()
{
float x, counter=1, counterp=0, counterf=0,ave=0,y,m;
cout<<"How many mark? ";
cin>>y;
cout<<"Pass and Fail: ";
cin>>m;
cout<<"#########################################";
cout<<"\n";
while (counter<=y){
cout<<"Mark "<<counter<<": ";
cin>>x ;
counter=counter+1;
ave+=x;
if (x>100){
cout<<"ERROR:FALSE MARK"<<"\n";
cout<<"\n";
cout<<"egain enter the ";
counter=counter-1;
}
else if (x>=m){
cout<<"Pass"<<"\n"<<"*********************"<<"\n"<<"\n";
counterp+=1;
}
else{
cout<<"Fail"<<"\n"<<"*********************"<<"\n"<<"\n";
counterf+=1;
}
}

if (counter=y){
cout<<"Pass number: "<<counterp<<"\n";
cout<<"Fail number: "<<counterf<<"\n";
cout<<"Average: "<<ave/y<<endl;
}

getch();
return 0;
}

zoofa
جمعه 14 فروردین 1388, 14:23 عصر
سلام
اين هم يك بازي به زبان c
در turboc اجرا مي شود

zoofa
جمعه 14 فروردین 1388, 14:26 عصر
اين برنامه تبديل تمامي مبناها از 2 تا 16
در turboc اجرا مي شود

zoofa
جمعه 14 فروردین 1388, 14:27 عصر
اين هم برنامه مربعات جادويي در c

zoofa
جمعه 14 فروردین 1388, 14:31 عصر
اين هم ماشين حساب گرافيكي در c

zoofa
یک شنبه 30 فروردین 1388, 19:29 عصر
operator overloading in class
اوور لودینگ اپراتورها در کلاس در c++




#include <iostream.h>
#include <string.h>
#include <conio.h>
#include <stdio.h>
class string
{
private:
char text[40];
public:
void show()
{
cout << text << "\n";
}
string operator + (string s)
{
string temp;
strcpy(temp.text, text);
strcat (temp.text, s.text);
return temp;
}
string operator + (char s[])
{
string temp;
strcpy(temp.text, text);
strcat (temp.text, s);
return temp;
}
string operator++()
{
char temp[40];
strcpy(temp , text);
strcat(text,temp);
}
friend string operator +(char s[] , string s2)
{
string temp;
strcpy(temp.text , s);
strcat(temp.text , s2.text);
return temp;
}
string operator =(char s[])
{
strcpy(text , s);
}
string operator =(string s)
{
strcpy(text , s.text);
}
};
void main()
{
string s1 , s2 , s3;
clrscr();
s1 = "Ali";
char temp[]={"Ali"};
s2 = temp;
s3 = "Hasan";
s1++;
s1.show(); //show = AliAli
s1 = temp + s3;
s1.show(); // show = AliHasan
s2 = s1;
s2.show(); //show = AliHasan
s2 = s2 + "Majid";
s2.show(); //show = AliHasanMajid
getch();
}

zoofa
چهارشنبه 16 اردیبهشت 1388, 02:56 صبح
سلام
لیست پیوندی در زیان c به زبان ساده
مختصات یک دایره را می گیرد و در لیست قرار می دهد



#include <stdio.h>
#include <stdlib.h>
struct circle
{
int x , y , r;
circle *link;
}*circlestart;
//----------------------------------------------------------------------------
int circleinsert()
{
circle *ptr;
ptr = (circle*) malloc(sizeof(circle)); //creat a memmory for new item
ptr->link = NULL;
printf("Please Enter x y r seprated by space\n");
int x , y , r;
scanf("%d %d %d" , &x , &y , &r);
ptr->x = x;
ptr->y = y;
ptr->r = r;
if (circlestart == NULL) //if the list is empty put the new one on the first position
{
circlestart = ptr;
return 0;
}
circle *p1;
p1 = circlestart;
while ( p1->link != NULL) //searches for the last item in the list
{
p1 = p1->link;
}
p1->link = ptr;
return 0;
}
//----------------------------------------------------------------------------
int circleshow()
{
if (circlestart == NULL) //if the list is empty
{
printf("No Circle Excist To Show\n");
return 0;
}
circle *ptr;
ptr = circlestart;
while (ptr != NULL) //nevigate all of the list and print it
{
printf("X: %d Y: %d R: %d\n" , ptr->x , ptr->y , ptr->r);
ptr = ptr->link;

}

return 0;

}
//----------------------------------------------------------------------------
int circledelete()
{
if (circlestart == NULL)//if the list is empty
{
printf("No circles to delete\n");
return 0;
}
int x , y ,r;
printf("Please Enter x y r seprate by space to delete\n");
scanf("%d %d %d" , &x , &y , &r);
if (circlestart->x == x && circlestart->y == y && circlestart->r == r) //if the item is in the first position
{
circle *p;
p = circlestart;
circlestart = circlestart->link;
free(p);
printf("deleted\n");
return 0;
}
circle *ptr , *preptr;
ptr = circlestart;

while (ptr->link != NULL) // nevigate all the list to find the item and delete it
{
preptr = ptr;
ptr = ptr->link;
if (ptr->x == x && ptr->y == y && ptr->r == r)
{
(*preptr).link = (*ptr).link;
printf("deleted\n");

free(ptr);
return 0;
}

}
printf("Not Found To Delete\n");
return 0;

}
//----------------------------------------------------------------------------
void menu()
{
printf("Please select an item with entering the number of it\n");
printf("1- Creat a new circle\n");
printf("2- Show circles\n");
printf("3- Delete an exicting circle\n");
printf("4- exit\n");
}
//----------------------------------------------------------------------------
int main()
{
int key;
do
{
menu();
scanf("%d" , &key);
switch(key)
{
case 1:
circleinsert();
break;
case 2:
circleshow();
break;
case 3:
circledelete();
break;
case 4:
return 0;
}

}while(1);
return 0;
}

zoofa
جمعه 25 اردیبهشت 1388, 02:57 صبح
عبارتهای جبری در c
این برنامه عبارتهای جبری را می گیرد و نتیجه را نمایش می دهد:
برای مثال عبارات زیر را وارد کنید و نتیجه را ببینید




A*B/C-(D+F+G*(A-V)-D)
A+B*C
V-C+(((C*B-R)-E*F)/K-R+D^E)%N

و یا هر عبارت دیگری



شاید نصف روز و یا بیشتر می نوشتمش
نکاتی در مورد برنامه
1- فاصله در بین عبارت مجاز نمی باشد
2- استفاده از 2 حرف بین یک عملگر مجاز نمی باشد
3- نمی توان عدد وارد کرد و باید حتماً حرف وارد کرد و وقتی حرف وارد کنیم معادل عددی آن را می گیرد
4- ورودی آن تا 100 کاراکتر می باشد که می توان آن را در برنامه بیشتر کرد.
5- پرانتز باز شده حتماً باید بسته شود
6- در این برنامه از پشته استفاده شده و آن هم با لیست پیوندی
7- امیدوارم مورد استفاده دوستان قرار بگیرد
8- اگر نیاز به الگوریتم آن دارید و یا توضیحاتی راجع به آن می خواهید خبرم کنید

با تشکر



#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <string.h>

//************************** stack ****************************************
struct stack
{
char info;
stack *link;
}*ss;
//************************** stack ****************************************
struct stack2
{
long info;
stack2 *link;
}*ss2;
//************************** num ***************************************
struct number
{
long value;
char chr;
number *link;
}*ns;
//************************** check num **********************************
long checknum(char chr)
{
number *ptr;
ptr = ns;
while ( ptr != NULL)
{
if ( ptr->chr == chr) return ptr->value;
ptr = ptr->link;
}
return 0;
}
//************************** insert num **********************************
void insertnum(long value, char chr)
{
number *ptr;
ptr = (number*) malloc(sizeof(number));
ptr->link = ns;
ptr->chr = chr;
ptr->value = value;
ns = ptr;
}
//************************** push ***************************************
void push(char item)
{
stack *ptr;
ptr = (stack*) malloc(sizeof(stack));
ptr->info = item;
ptr->link = ss;
ss = ptr;
}
//************************** pop ****************************************
char pop()
{
stack *ptr;
ptr = ss;
char temp;
temp = ss->info;
ss = ss->link;
free(ptr);
return temp;
}
//************************** push ***************************************
void push2(long item)
{
stack2 *ptr;
ptr = (stack2*) malloc(sizeof(stack2));
ptr->info = item;
ptr->link = ss2;
ss2 = ptr;
}
//************************** pop ****************************************
long pop2()
{
stack2 *ptr;
ptr = ss2;
long temp;
temp = ss2->info;
ss2 = ss2->link;
free(ptr);
return temp;
}
//************************** mid ****************************************
char mid ( char source[] , int position , int count , char destination[])
{
int qcount = 0 , len ;
len = strlen(source);
for ( int i = position - 1 ; i < position + count - 1 && i < len ; i++ , qcount++)
destination[qcount] = source[i];
destination[qcount] = 0;
if ( qcount == 1) return destination[0];
else return 0;
}
//************************** priority **************************************
int priority(char a , char b)
{
if ( a == '^') return 1;
if ( b == '^') return 0;
if ( a == '*' || a == '/' || a == '%' ) return 1;
if ( b == '*' || b == '/' || b == '%' ) return 0;
return 1;
}
//************************** pulish ****************************************
void pulish(char source[] , char dest[] , int len)
{
char temp , temp2[2];
int count = 0;
for ( int i = 0 ; i < len ; i++)
{
temp = mid(source , i + 1 , 1 , temp2);
switch (temp)
{
case '+':
case '-':
case '*':
case '/':
case '^':
case '%':
if (ss->info == '(' || priority(ss->info , temp) == 0 ) push (temp);
else
{
while (ss ->info != '(' && priority(ss->info , temp))
dest[count++] = pop();
push(temp);
}
break;
case '(':
push(temp);
break;

case ')':
while ( ss->info != '(')
dest[count++] = pop();
pop();
break;
default :
if ( temp >= 48 && temp <= 122)
dest[count++] = temp;
}
}
dest[count] = 0;
}
//************************** value ****************************************
long value(char source[] , int len)
{
char temp , temp2[2] ;
long a , b, result;
for ( int i = 0 ; i < len ; i++)
{
temp = mid ( source , i + 1 , 1 , temp2);
if ( temp >= 48 && temp <= 122)
{
a = checknum(temp);
if ( a == 0 )
{
printf("Please Enter %c =" , temp);
scanf("%u" ,&a);
insertnum(a , temp);
push2(a);
}
else push2(a);
}
else
{
b = pop2();
a = pop2();
switch (temp)
{
case '+':
result = a + b;
push2 (result);
break;
case '-':
result = a - b;
push2 (result);
break;
case '*':
result = a * b;
push2 (result);
break;
case '/':
result = a / b;
push2 (result);
break;
case '^':
result = pow(a,b);
push2 (result);
break;
case '%':
result = a % b;
push2 (result);
break;
}
}
}
return pop2();
}
//************************** main ****************************************
int main()
{
char p[102] , q[100];
clrscr();
int len;
scanf("%s" , p);
len = strlen(p);
for ( int i = len ; i > 0 ; i--)
p[i] = p[i-1];
p[0] = '(';
p[len + 1] = ')';
len +=2;
p[len] = 0;
pulish ( p , q , len);
len = strlen(q);
printf("\n%u\n" , value ( q , len));
getch();
return 0;
}

ace.coder
جمعه 25 اردیبهشت 1388, 03:50 صبح
من نمونه برنامه که نه! اما با کدها بازی کردم اینحا هم می زارم!! این کد واسه کامپایل با کامپایلر نیست ماله اینکه خودوتون ببینین و خروجی را بدین!! واسه تمرین درک :


/* Practice-Win32.cpp : Defines the entry point for the console application.
Coded by ace.coder in Visual(C++) Studio 2008 ; { Friday , December 19 , 2008 2:11 AM }
Example #1 - TOO EASY
Our Question -> This Program IF IN RUN HAVE A TRUE OUTPUT? , For Everybody Call To Himself ELITE.
( WithOut By Compiler , just read/write on paper and Trace )
Good Luck
*/
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
static char Z;
int main(int argc, char* argv[])
{

;char joomla[20]="AAce.Coder88"
;{Z='\0';}char temp[20]="AAce.Coder"
;int i=0
;int counter=0
;joomla[*(temp + *(joomla))]=88
;for (;i<20;i++,counter++)
if ( joomla[i]==*(temp+counter)&&joomla[i]!=Z)
cout<<joomla[i]<<" : YES"<<endl
;{getch();}
;return 0
;}

tdkhakpur
جمعه 25 اردیبهشت 1388, 04:17 صبح
سلام:
این الگوریتم کلی و سورس کامل مثلث n عددی:



#include <iostream.h>
int cNum (int k)
{
int val =1;
while( k/10 > 0 )
{
k /=10;
val ++;
}
return val;
}
int cNumCount (int k)
{
int val = 0;
for( int i=k; i>0 && cNum(i)== cNum(k); i--)
val ++;
return val;
}
int main()
{
int n, c, b, j;
cout<<"\n add ro vared konid >";
cin>>n;
c = n*2;
b = 1;
for(int i=0;i<n;i++){
cout<<"\n";
for(j=0;j<c-i-cNumCount(b)*(cNum(i)-1);j++)
cout<<" ";
for( j=1;j<=b;j++)
cout<<j;
for( j=1;j<i+cNum(i);j++)
cout<<j;
b+=1;
}
return 0;
}

tdkhakpur
شنبه 26 اردیبهشت 1388, 23:06 عصر
برنامه ای که داخل فایل(Data.Txt) کلمه ای رو که بیشترین تکرار رو داشته باشه رو برمیگردونه.


#include "iostream.h"
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
void main()
{
clrscr();
FILE *f1;
struct txt
{
char name[20];
int rep;
}list[10];
f1=fopen("Data.txt","rb");
for(int i=0;i<10;i++)
list[i].rep=0;
int j=0;
char A[20];
while(f1 != NULL && !feof(f1))
{
fscanf(f1,"%s",&A);
for(int i=0;i<j;i++)
if( strcmp(list[i].name, A)==0 ){
list[i].rep++;
break;
}else{
strcpy(list[j].name, A);
list[j].rep = 1;
}
j++;
}
fclose(f1);
int max=0;
for(int k=1;k<10;k++)
if(list[k].rep>list[max].rep)
max=k;
cout<<list[max].name;
getch();
}

tdkhakpur
یک شنبه 03 خرداد 1388, 17:59 عصر
سلام:
برنامه کاربردی برای آموزش استفاده از فایل و Structها


#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
#include <string.h>
struct address {
char name[30] ;
char street[30] ;
char city[20] ;
char state[3] ;
char zip[10] ;
struct address *next ;
struct address *prior ;
} list_entry ;
struct address *start ;
struct address *last ;
void enter() , display() , search() ;
void save() , load() , list() , del();
void display(struct address *info, int *row);
struct address *find(char *);
int menu_select();
struct address *store(struct address *, struct address *);
int main ()
{
start = last = NULL ;
for(;;) {
switch(menu_select()) {
case 1: enter(); break ;
case 2 : del(); break ;
case 3: list() ; break ;
case 4: search(); break ;
case 5: save(); break ;
case 6: load(); break ;
case 7: exit(0) ;
}//end of switch
}//end of for
}//end of main
//****************
int menu_select()
{
char s[5];
clrscr() ;
gotoxy(25, 4) ;
printf("1. enter a name ") ;
gotoxy(25, 6) ;
printf("2. delete a name ") ;
gotoxy(25, 8) ;
printf("3. list all files ") ;
gotoxy(25, 10) ;
printf("4. search ") ;
gotoxy(25, 12) ;
printf("5. save the file ") ;
gotoxy(25, 14) ;
printf("6. load the file ") ;
gotoxy(25, 16) ;
printf("7. quit ") ;
do {
gotoxy(20, 18) ;
printf("enter your select--www.gach18.blogfa.ir(1-7):");
gets(s);
} while (atoi(s) < 0 || atoi(s) > 7) ;
return atoi(s) ;
}
//*********************
void enter ()
{
struct address *info ;
int i ;
char ch ;
clrscr() ;
gotoxy(3, 2) ;
printf(" name street city state zip");
gotoxy(3, 3) ;
printf(" ------------ -------- ");
printf("-------- ----- ------- ");
i = 4 ;
for (;;) {
info = (struct address *)malloc(sizeof(list_entry)) ;
if(!info) {
printf("\n out of memory. press a key ") ;
getch();
return ;
}
gotoxy(3, i) ;
gets(info -> name) ;
if (!info -> name[0]) {
gotoxy(15, i + 1) ;
printf("press a key to continue");
getch() ;
break ;
}//end of if
gotoxy(18, i);
gets(info -> street) ;
gotoxy(28, i) ;
gets(info -> city) ;
gotoxy(38, i) ;
gets(info -> state) ;
gotoxy(45, i) ;
gets(info -> zip) ;
i++ ;
start = store(info, start) ;
} /* entry loop */
}
//**************
struct address *store(struct address *i, struct address *top)
{
struct address *old, *p ;
if(last == NULL) {
i -> next = NULL ;
i -> prior = NULL ;
start = i;
last = i ;
return i ;
}
p = top ;
old = NULL ;
while (p != NULL) {
if(strcmp(p -> name, i -> name) < 0) {
old = p ;
p = p -> next ;
}//end of if
else {
if (p -> prior) {
p -> prior -> next=i ;
i -> next=p ;
i -> prior=p -> prior;
p -> prior=i ;
return top ;
}//end of if
i -> next = p ;
i -> prior = NULL ;
p -> prior = i ;
return i ;
}//end of if
} // end of while
old -> next = i ;
i -> next = NULL ;
i -> prior = old ;
last = i ;
return start ;
}
//******************
void del()
{
struct address *info;
char name[80];
gotoxy(20, 20) ;
printf(" enter name for delete : ") ;
gets(name) ;
info = find(name) ;
if(info == NULL) {
gotoxy(10, 20) ;
printf(" name not found! press a key to continue.");
getch() ;
}
if (info)
if (start == info)
{
start = info -> next ;
if(start)
start -> prior = NULL ;
else
last = NULL ;
} //end of if
else {
info -> prior -> next = info -> next;
if(info != last)
info -> next -> prior = info -> prior;
else
last = info -> prior ;
} //end of else
free(info) ;
gotoxy(10,20) ;
printf("name deleted, press a key to continue.");
getch() ;
}
//*******************************
struct address *find(char *name)
{
struct address *info ;
info = start ;
while(info != NULL) {
if (strcmp(name, info -> name) == 0)
return info;
info = info -> next ;
}
return NULL ;
}
//*****************
void list ()
{
struct address *info ;
int i ;
info = start ;
clrscr() ;
gotoxy(3, 2) ;
printf(" name street city state zip");
gotoxy(3, 3) ;
printf(" ------------ -------- -");
printf("------- ----- ------- ");
i = 4 ;
while(info != NULL) {
display(info, &i) ;
info = info -> next ;
}
gotoxy(15, i + 2) ;
printf("press a key to continue.");
getch() ;
}
//*******************
void display(struct address *info, int *row)
{
gotoxy(3, *row) ;
printf("%s", info -> name) ;
gotoxy(18, *row) ;
printf("%s", info -> street) ;
gotoxy(28, *row) ;
printf("%s", info -> city) ;
gotoxy(38, *row) ;
printf(info -> state) ;
gotoxy(47, *row) ;
printf(info -> zip) ;
*row = *row + 1 ;
}
//**************************
void search()
{
char name[40] ;
int i ;
struct address *info;
gotoxy(20, 20) ;
printf(" enter name to find : ");
gets(name) ;
info = find(name) ;
if(info == NULL) {
gotoxy(10, 20) ;
printf(" name not found! press a key to continue.");
getch() ;
}//end of if
else {
clrscr() ;
gotoxy(3, 2) ;
printf(" name street city state zip");
gotoxy(3, 3) ;
printf(" ------------ -------");
printf("- -------- ----- ------- ") ;
i = 4 ;
display(info ,&i) ;
gotoxy(15, i + 2) ;
printf("press a key to continue.");
getch() ;
}//end of else
}
//*********************
void save()
{
struct address *info ;
FILE *fp ;
if((fp = fopen("l.dat","wb")) == NULL) {
printf("\n cannot open file. ") ;
getch();
exit(1) ;
}//end of if
gotoxy(20, 20) ;
printf("<< saving file >>") ;
info = start ;
while(info) {
fwrite(info, sizeof(struct address), 1, fp);
info = info -> next ;
}//end of while
fclose(fp) ;
gotoxy(15, 22) ;
printf("file successfuly saved press a key...") ;
getch() ;
}
//********************
void load ()
{
struct address *info , *temp = NULL;
FILE *fp ;
fp = fopen("l.dat","rb") ;
if(fp == NULL) {
printf("\n cannot open file.");
getch();
exit(1) ;
}
while(start) {
info = start -> next ;
free(info) ;
start = info ;
}
gotoxy(20,20) ;
printf(" << loading file >> ") ;
start = NULL ;
while (!feof(fp)) {
info = (struct address *)
malloc(sizeof(struct address)) ;
if(1 != fread(info, sizeof(struct address), 1, fp))
break ;
if(start == NULL) {
temp = start = info ;
info -> prior = NULL ;
info -> next = NULL ;
}//end of if
else {
info -> next = NULL ;
temp -> next = info ;
info -> prior = temp ;
temp = info;
}
}//end of while
last = temp ;
fclose(fp) ;
gotoxy(15,22) ;
printf("file successfuly loaded press a key ...") ;
getch();
}

---------------------------------------------------------------------------

zoofa
سه شنبه 05 خرداد 1388, 02:19 صبح
سلام
این هم برنامه عبارات جبری بدون محدودیت

در این برنامه می توانید عدد هم بدهید
در این برنامه می توانید چند حرف هم بدهید
حرف ها باید با حروف بزرگ باشند مثلا AB و FG
برای مثال عبارت AB*V-A/(A^32-48+(8*CD%3)-A/5)+805/GFH+Y را وارد کنید




#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <iostream.h>
#include <string.h>
//********************************* Mid *********************************//
int mid ( char source[] , int start , int count , char *dest )
{
//int c = 0;
for ( int i = start ; i < start + count ; i++)
*dest = source[i];
return 0;
}
//********************************* String Stack *********************************//
struct strstack
{
char info;
strstack *link;
}*strs;

int strpush ( char item )
{
strstack *ptr;
ptr = (strstack*) malloc ( sizeof ( strstack ));
ptr->link = strs;
ptr->info = item;
strs = ptr;
return 0;
}

char strpop()
{
strstack *ptr;
char temp;
ptr = strs;
strs = strs->link;
temp = ptr->info;
free( ptr );
return temp;
}
//********************************* Linked List *********************************//
struct pulishstack
{
int id;
char info[10];
pulishstack *link;
}*pulishs;

int pulishpush( char item[] , int id)
{
pulishstack *ptr ;
ptr = ( pulishstack*) malloc (sizeof (pulishstack));
strcpy ( ptr->info , item );
ptr->id = id;
ptr->link = pulishs;
pulishs = ptr;
return 0;
}

int pulishpop(int id , char item[] )
{
pulishstack *ptr;
ptr = pulishs;
while ( ptr != NULL )
{
if ( ptr->id == id )
{
strcpy (item , ptr->info );
return 0;
}
ptr = ptr->link;
}
return 0;
}
//********************************* Priority *********************************//
int priority ( char str1 ,char str2 )
{
if ( str1 == '^' ) return 1;
if ( str2 == '^' ) return 0;
if ( str1 == '*' || str1 == '/' || str1 == '%' ) return 1;
if ( str2 == '*' || str2 == '/' || str2 == '%' ) return 0;
return 1;
}
//********************************* Pulish *********************************//
int pulish( char p[] , int len )
{
char temp[10] , ctemp , ctemp2[2];
int count = 0 , c = 0;
for ( int i = 0 ; i < len ; i++ )
{
mid ( p , i , 1 , &ctemp );
switch (ctemp)
{
case '(' :
strpush( '(' );
break;
case ')' :
if ( count != 0)
pulishpush (temp , c++);
count = 0;
while (strs->info != '(')
{
ctemp2[0] = strpop();
ctemp2[1] = 0x0;
pulishpush ( ctemp2 , c++);
}
strpop();
break;
case '^' :
case '*' :
case '%' :
case '/' :
case '+' :
case '-' :
if ( count != 0)
{
pulishpush (temp, c++);
count = 0;
}
if ( priority ( strs->info , ctemp ))
{
while ( strs->info != '(' && priority ( strs->info , ctemp ))
{
ctemp2[0] = strpop();
ctemp2[1] = 0x0;
pulishpush ( ctemp2 ,c++ );
}
}
strpush(ctemp);
break;
default :
if ( ctemp >= 48 && ctemp <= 122 )
{
temp[count++] = ctemp;
temp[count] = 0x0;
}
}
}
return c-1;
}
//********************************* Long Stack *********************************//
struct lngstack
{
long info;
lngstack *link;
}*lngs;

int lngpush ( long item )
{
lngstack *ptr;
ptr = (lngstack*) malloc ( sizeof ( lngstack));
ptr->info = item;
ptr->link = lngs;
lngs = ptr;
return 0;
}

long lngpop()
{
lngstack *ptr;
ptr = lngs;
lngs = lngs->link;
long temp;
temp = ptr->info;
free (ptr);
return temp;
}
//********************************* Power *********************************//
long power ( long x , long y)
{
long temp = 1;
for ( long i = 0 ; i < y ; i++)
temp *= x;
return temp;
}
//********************************* Char *********************************//
struct mychar
{
char chr[10];
long value;
mychar *link;
}*mychars;

long charexist(char item[])
{
mychar *ptr;
ptr = mychars;
while ( ptr != NULL )
{
if ( strcmp ( item , ptr->chr ) == 0 )
return ptr->value;
ptr = ptr->link;
}
return 0;
}

int charinsert(char item[] , long value)
{
mychar *ptr;
ptr = (mychar*) malloc(sizeof(mychar));
strcpy( ptr->chr , item );
ptr->value = value;
ptr->link = mychars;
mychars = ptr;
return 0;
}
//********************************* Value *********************************//
long value (int count)
{
char temp[10];
long tmp;
long x , y , result;
for ( int i = 0 ; i <= count ; i++)
{
pulishpop ( i , temp );
if ( (temp [0] >= 98 && temp[0] <= 122) || (temp [0] >= 65 && temp[0] <= 90))
{
tmp = charexist ( temp );
if ( tmp == 0 )
{
printf ( "Please Enter The Number For %s " , temp );
cin >> tmp;
lngpush ( tmp);
charinsert ( temp , tmp );
}
else
{
lngpush ( tmp);
}

continue;
}
if ( temp[0] > 47 && temp[0] < 58 )
{
tmp = atol(temp);
lngpush ( tmp);
continue;
}
y = lngpop();
x = lngpop();
if ( temp[0] == '+' )
{
result = x + y;
lngpush(result);
continue;
}
if ( temp[0] == '*' )
{
result = x * y;
lngpush(result);
continue;
}
if ( temp[0] == '/' )
{
result = x / y;
lngpush(result);
continue;
}
if ( temp[0] == '%' )
{
result = x % y;
lngpush(result);
continue;
}
if ( temp[0] == '-' )
{
result = x - y;
lngpush(result);
continue;
}
if ( temp[0] == '^' )
{
result = power(x , y);
lngpush(result);
continue;
}
}
return lngpop();
}
//********************************* Main *********************************//
int main()
{
clrscr();
char p[102];
int len , plen = 0;
printf ( "Algebra Phrases\nPlease Enter The Phrase\n For Example : \nAB*V-A/(A^32-48+(8*CD%3)-A/5)+805/GFH+Y \n" );
scanf ( "%s" , p );
len = strlen( p );
for ( int i = len ; i > 0 ; i--)
{
p [i] = p [i - 1];
if ( p[i] == ')' ) plen++;
if ( p[i] == '(' ) plen--;
if ( plen < 0 )
{
printf ("Error In Phrase\nUnexpected ')' or '(' ");
getch();
return 0;
}
}
if ( plen != 0 )
{
printf ("Error In Phrase\nUnexpected ')' or '(' ");
getch();
return 0;
}
p[ 0 ] = '(' ;
p[ ++len ] = ')' ;
p[ ++len ] = 0x0;
int c;
c = pulish ( p , len );
long result;
result = value(c);
cout << result;
getch();
return 0;
}

fdaliry
دوشنبه 11 خرداد 1388, 15:20 عصر
رسم خط


//www.fdaliry.blogfa.com
#include <graphics.h>
#include<dos.h>
#include<iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include<math.h>
int main(void)
{
clrscr();
int m,n,x,y,xa,xb,ya,yb,color,dx,dy;
cout<<"Enter (xa,ya) And (xb,yb):\n";
cin>>xa>>ya>>xb>>yb>>color;
xa=abs(xa);
ya=abs(ya);
xb=abs(xb);
yb=abs(yb);
if(xa<xb)
{
x=xa;
y=ya;
}
else
{
x=xb;
y=yb;
}
m=(yb-ya)/(xb-xa);
if(m<1)
{
dx=1;
dy=m;
n=abs(xb-xa);
}
else
{
dy=1;
dx=1/m;
n=abs(yb-ya);
}
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver, &gmode, "");
errorcode = graphresult();
if (errorcode != grOk)
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1);
}
for(int i=0;i<n;i++)
{
putpixel(int(x),int(y),color);
x+=dx;
y+=dy;
}
getch();
closegraph();
return 0;
}

ezamnejad
جمعه 22 خرداد 1388, 11:53 صبح
سلام
این برنامه اعمال ریاضی مختلف را بر روی اعداد انجام می دهد .
اعمال ریاضی مختلف مثل + ، * ، - ، / و...
توابع مثلثاتی
تبدیل مبناها شامل :

Dec to Bin
Dec to Oct
Dec to Hex
Bin to Dec
Oct to Dec
Hex to Dec

Netsky
چهارشنبه 27 خرداد 1388, 00:41 صبح
سلام . من تازه سی پلاس پلاس رو شروع کردم . یه برنامه نوشتم که تقدیم میکنم . در این برنامه ابتدا تعداد قرنها رو مینویسید ( مثلا 2 ) . بعد برنامه بهتون میگه که مثلا این 2 قرن : چند دهه ، چند سال ، چند ماه ، چند هفته ، چند روز ، چند ساعت ، چند دقیقه و چند ثانیه است . این کدای برنامه

majidmir
چهارشنبه 03 تیر 1388, 14:03 عصر
دفتر تلفن ساده با کلاس ها
مناسب برای دانشجویان

#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include <string.h>

//=====================================
//=====================================
struct address {
char name[30] ;
char street[30] ;
char city[20] ;
char state[3] ;
char number[14] ;
struct address *next ;
struct address *prior ;
} list_entry ;
//=====================================
//=====================================
struct address *start ;
struct address *last ;

void enter() , display() , search() ;
void list() , del();
void display(struct address *info, int *row);

struct address *find(char *);
int menu_select();
struct address *store(struct address *, struct address *);
//=====================================
//=====================================




//****************

int menu_select()
{
char s[5];
system("cls");
gotoxy(25,4) ;
printf("1. enter a name ") ;
gotoxy(25,6) ;
printf("2. delete a name ") ;
gotoxy(25, 8) ;
printf("3. list all files ") ;
gotoxy(25, 10) ;
printf("4. search ") ;
gotoxy(25, 12) ;
printf("5. quit ") ;
do {
gotoxy(20, 18) ;
printf("enter your select--power By majid (1-5):");
gets(s);
} while (atoi(s) < 0 || atoi(s) > 5) ;
return atoi(s) ;
}
//*********************


void enter ()
{
struct address *info ;
int i ;
char ch ;
system("cls") ;
gotoxy(3, 2) ;
printf(" name street city state number");
gotoxy(3, 3) ;
printf(" ------------ -------- ");
printf("-------- ----- ------- ");
i = 4 ;
for (;;) {
info = (struct address *)malloc(sizeof(list_entry)) ;
if(!info) {
printf("\n out of memory. press a key ") ;
getch();
return ;
}
gotoxy(3, i) ;
gets(info -> name) ;
if (!info -> name[0]) {
gotoxy(15, i + 1) ;
printf("press a key to continue");
getch() ;
break ;
}//end of if
gotoxy(18, i);
gets(info -> street) ;
gotoxy(28, i) ;
gets(info -> city) ;
gotoxy(38, i) ;
gets(info -> state) ;
gotoxy(45, i) ;
gets(info -> number) ;
i++ ;
start = store(info, start) ;
} /* entry loop */
}
//**************


struct address *store(struct address *i, struct address *top)
{
struct address *old, *p ;
if(last == NULL) {
i -> next = NULL ;
i -> prior = NULL ;
start = i;
last = i ;
return i ;
}
p = top ;
old = NULL ;
while (p != NULL) {
if(strcmp(p -> name, i -> name) < 0) {
old = p ;
p = p -> next ;
}//end of if
else {
if (p -> prior) {
p -> prior -> next=i ;
i -> next=p ;
i -> prior=p -> prior;
p -> prior=i ;
return top ;
}//end of if
i -> next = p ;
i -> prior = NULL ;
p -> prior = i ;
return i ;
}//end of if
} // end of while
old -> next = i ;
i -> next = NULL ;
i -> prior = old ;
last = i ;
return start ;
}
//******************


void del()
{
struct address *info;
char name[80];
gotoxy(20, 20) ;
printf(" enter name for delete : ") ;
gets(name) ;
info = find(name) ;
if(info == NULL) {
gotoxy(10, 20) ;
printf(" name not found! press a key to continue.");
getch() ;
}
if (info)
if (start == info)
{
start = info -> next ;
if(start)
start -> prior = NULL ;
else
last = NULL ;
} //end of if
else {
info -> prior -> next = info -> next;
if(info != last)
info -> next -> prior = info -> prior;
else
last = info -> prior ;
} //end of else
free(info) ;
gotoxy(10,20) ;
printf("name deleted, press a key to continue.");
getch() ;
}
//*******************************


struct address *find(char *name)
{
struct address *info ;
info = start ;
while(info != NULL) {
if (strcmp(name, info -> name) == 0)
return info;
info = info -> next ;
}
return NULL ;
}
//*****************


void list ()
{
struct address *info ;
int i ;
info = start ;
system("cls") ;
gotoxy(3, 2) ;
printf(" name street city state number");
gotoxy(3, 3) ;
printf(" ------------ -------- -");
printf("------- ----- ------- ");
i = 4 ;
while(info != NULL) {
display(info, &i) ;
info = info -> next ;
}
gotoxy(15, i + 2) ;
printf("press a key to continue.");
getch() ;
}
//*******************


void display(struct address *info, int *row)
{
gotoxy(3, *row) ;
printf("%s", info -> name) ;
gotoxy(18, *row) ;
printf("%s", info -> street) ;
gotoxy(28, *row) ;
printf("%s", info -> city) ;
gotoxy(38, *row) ;
printf(info -> state) ;
gotoxy(47, *row) ;
printf(info -> number) ;
*row = *row + 1 ;
}
//**************************


void search()
{
char name[40] ;
int i ;
struct address *info;
gotoxy(20, 20) ;
printf(" enter name to find : ");
gets(name) ;
info = find(name) ;
if(info == NULL) {
gotoxy(10, 20) ;
printf(" name not found! press a key to continue.");
getch() ;
}//end of if
else {
system("cls") ;
gotoxy(3, 2) ;
printf(" name street city state number");
gotoxy(3, 3) ;
printf(" ------------ -------");
printf("- -------- ----- ------- ") ;
i = 4 ;
display(info ,&i) ;
gotoxy(15, i + 2) ;
printf("press a key to continue.");
getch() ;
}//end of else
}
//*********************

int main()
{
start = last = NULL ;
for(;;) {
switch(menu_select()) {
case 1: enter(); break ;
case 2 : del(); break ;
case 3: list() ; break ;
case 4: search(); break ;
case 5: exit(0) ;

}//end of switch
}//end of for
}//end of main

majidmir
چهارشنبه 03 تیر 1388, 14:05 عصر
مشخصات دانشجویان با امکان ورود اطلاعات حذف اطلاعات و جستجو

#include <iostream.h>
#include <conio.h>
#include <stdlib.h>


struct student{
char name[20];
char family[25];
int id;
student *next;
};
student *first,*last;
//////////////////////////
void input(){
student *temp=new student;
cout<<"plese enter the id : "<<endl;
cin>>temp->id;
cout<<"plese enter the name : "<<endl;
cin>>temp->name;
cout<<"plese enter the family : "<<endl;
cin>>temp->family;
if (first==NULL){
first=last=temp;
}
else {
temp->next=last;
last=temp;
}
}
/////////////////////////////////
void output(){
student *temp=new student;
temp=first;
while(temp!=NULL){
cout<<temp->id<<endl;
cout<<temp->name<<endl;
cout<<temp->family<<endl;
cout<<"*************************************";
temp=temp->next;
}
cout<<"end of record"<<endl;
}
/////////////////////////////////////
void search(int id){
student *temp=new student;
int find;
temp=first;
while(temp!=NULL){
if (id==temp->id){
cout<<temp->id<<endl;
cout<<temp->name<<endl;
cout<<temp->family<<endl;
find=1;
break;
}
else{
find=0;
temp=temp->next;
}
}
if (find==0){ cout<<"not find record"<<endl;}
}
////////////////////////////////////
void main(){
int stat;
for (;;){
system("cls");
cout<<"***************************************"<<endl;
cout<<"num 1 for input data " <<endl;
cout<<"num 2 for list data " <<endl;
cout<<"num 3 for search data " <<endl;
cout<<"num 4 for exit" <<endl;
cout<<"***************************************"<<endl ;
cin>>stat;
system("cls");
switch(stat){
case 1:
input();
break;
case 2:
output();
break;
case 3:
int key;
cout<<"plese enter id for search : " ;
cin>>key;
search(key);
break;
case 4:
exit(0);
}
}
}

majidmir
چهارشنبه 03 تیر 1388, 14:09 عصر
کتابخانه با امکان ورود - ویرایش- حذف -به امانت گرفتن و پس دادن کتاب

#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>

//===========================
//===========================
class book
{
friend class library;

private:
char book_name[11];
char explain[51];
char aouther[11];
char part;

char user[11];
int reserved;

book *next;

public:
book();
void edit();
void reserv();
void getback();
}
//---------------------------
book::book()
{
clrscr();

cout<<"============ add a new book =================="
<<"\n\nto insert new book ,enter flow informations:"
<<"\n\nbook name?";
gets(book_name);
book_name[10]=NULL;

cout<<"\naouther name?";
gets(aouther);
aouther[10]=NULL;

cout<<"\nany explain?";
gets(explain);
explain[50]=NULL;

part=book_name[0];

reserved=0;

next=NULL;

cout<<"\n\ninformathions set!";
getch();
}
//---------------------------
void book::edit()
{
cout<<"error ";
}
//---------------------------
void book::reserv()
{
clrscr();
cout<<"\n=========== reserving book ===================";

if(reserved==0)
{
cout<<"\n\nuser name?";
gets(user);
user[11]=NULL;

reserved=1;
}

if(reserved==0)
{
cout<<"\n\nsorry! book has been reserved befor"
<<"by user:";
puts(user);
}

getch();
}
//---------------------------
void book::getback()
{
reserved=0;

cout<<"\n\nbook got bak.";
getch();
}
//===========================
//===========================
class library
{
public:
library();
void run_menu();

private:
book *parts[24];
void insert(book*);
void find();
void search();

}
//---------------------------
library::library()
{
for(int i=0;i<=23;i++)
parts[i]=NULL;

}
//---------------------------
void library::run_menu()
{

char ch='n';

while(ch!='4')
{
clrscr();

cout<<"================= LIBRARY =================="
<<"\n\n1:add a new book."
<<"\n2:find a book."
<<"\n3:search a book."
<<"\n4:exit."
<<"press numbers:";


ch=getch();


if(ch=='1')
{
book *n=new book;
insert(n);
}
if(ch=='2')
{
find();
}
if(ch=='3')
{
search();
}

}//while
}
//---------------------------
void library::insert(book *s)
{
int d=s->part-97;

if(parts[d]==NULL)
{
parts[d]=s;
}
else
{
book *p=parts[d],*q;
while(p!=NULL && strcmp(p->book_name,s->book_name)<0)
{
q=p;
p=p->next;
}
q->next=s;
s->next=p;
}

}
//---------------------------
void library::find()
{
clrscr();

cout<<"=========== edit / delete books ============"
<<"\nenter exact book name:";
char name[11];
gets(name);
name[11]=NULL;
int d=name[0]-97;

book *p=parts[d],*q;
while(p!=NULL && strcmp(p->book_name,name)!=0)
{
q=p;
p=p->next;
}
if(p==NULL)
{
cout<<"not found!";
}
if(p!=NULL)
{
cout<<"\n\ndelete it?('d') or edit?('e')"
<<" or reserv?('r') or getback?('g') :";
char ch=getch();
if(ch=='d')
{
q->next=p->next;
delete p;
}
if(ch=='e')
{
p->edit();
}
if(ch=='r')
{
p->reserv();
}
if(ch=='g')
{
p->getback();
}
}
getch();
}
//---------------------------
void library::search()
{
char ch='6';

while(ch!='4')
{
clrscr();
cout<<"================== SEARCH ===================";
cout<<"\n\n1:search for name."
<<"\n2:search for aouther."
<<"\n3:search for explanations."
<<"\n4:back to main menu.(press numbers)";

ch=getch();

if(ch=='1')
{
cout<<"\n\nenter exact name:";
char name[10];
gets(name);
name[11]=NULL;

int d=name[0]-97;
book *p=parts[d];
while(p!=NULL && strcmp(p->book_name,name)!=0)
{
p=p->next;
}
if(p==NULL)
{
cout<<"\nnot founded!";
}
else
{
cout<<"\n\n";
cout<<"name:";puts(p->book_name);
cout<<"aouther:";puts(p->aouther);
cout<<"explain:";puts(p->explain);
if(p->reserved==1)
{
cout<<"RESERVED by:";
puts(p->user);
}
else
{
cout<<"NOT RESERVES";
}
}//else
getch();
}//1
if(ch=='2')
{
cout<<"\n\nenter exact aouther name:";
char name[11];
gets(name);
name[11]=NULL;
int f=0;

for(int i=0;i<=23;i++)
{
book *p=parts[i];
while(p!=NULL)
{
if(strcmp(p->aouther,name)==0)
{
f++;
cout<<"\n"<<f<<":";
cout<<"name:";puts(p->book_name);
cout<<"aouthor:";puts(p->aouther);
cout<<"explain:";puts(p->explain);
if(p->reserved==1)
{
cout<<"RESERVED BY";
puts(p->user);
}
else
{
cout<<"NOT RESERVED";
}
}

p=p->next;
}//while
}
getch();
}//2
if(ch=='3')
{
cout<<"\n\nenter key(15char):";
char name[16];
gets(name);
name[15]=NULL;
int f=0;

for(int i=0;i<=23;i++)
{
book *p=parts[i];
while(p!=NULL)
{
char *tokenptr;
tokenptr=strtok(p->explain," ");
while(tokenptr!=NULL)
{
if(strcmp(tokenptr,name)==0)
{
f++;

cout<<"\n"<<f<<":";
cout<<"name:";puts(p->book_name);
cout<<"aouthor:";puts(p->aouther);
cout<<"explain:";puts(p->explain);
if(p->reserved==1)
{
cout<<"RESERVED BY";
puts(p->user);
}
else
{
cout<<"NOT RESERVED";
}
}
tokenptr=strtok(NULL," ");
}

p=p->next;
}//while
}//for i
getch();
}//3

}

}
//===========================
//===========================
int main()
{
clrscr();

library l1;
l1.run_menu();

return(0);
}

pourghaderi
یک شنبه 07 تیر 1388, 10:01 صبح
اینم 5 تا برنامه فاکتوریل فیبوناچی مثلث ب م م ک م م اعداد منعکس
تویه c نوشتم.

صابر طهماسبی
چهارشنبه 17 تیر 1388, 18:18 عصر
برنامه های زیر را می توانید از آدرس برنامه های ساختمان (http://sabersoft.persiangig.com/downloads.htm) داده ها دانلود کنید. این برنامه ها همگی به زبان سی پلاس پلاس هستند C++
البته اینها بیشتر جنبه ی آموزشی دارند و برای دانشجویان و راهنمایی در پروژه ها ی درسی مناسب هستند:لبخندساده:


پیاده سازی پشته ی چندگانه(مربوط به ساختمان داده ها)
برنامه ی تبدیل میانوند به پسوند(مربوط به ساختمان داده ها)
پیاده سازی میانوند به پیشوند(مربوط به ساختمان داده ها)
پیاده سازی صف معکوس(مربوط به ساختمان داده ها)
پیاده سازی صف ساده(مربوط به ساختمان داده ها)

تمامی برنامه ها به همراه سورس کد هستند.

razavi_university
جمعه 19 تیر 1388, 14:09 عصر
این برنامه تقریبا کار رزرو هتل را به صورت ساده انجام می دهد :


قبل از ورود به برنامه اطلاعات فایل MyFile.Dat را از مسیر C:\ خوانده و کلیه رکوردهای آنرا در یک لیست پیوندی درج کند. بنابراین در طول برنامه کلیه عملیات مربوط به درج، حذف، بروز رسانی و جستجو فقط بر روی لیست صورت می گیرد.
پس از ورود به برنامه منوی زیر ظاهر شود:

1-Set Information

2-Edit Information

3-Delete Information

4-Show Bill

5-Show All

6-Backup File

7-Restore File

8-Exit

(Choice 1..8) :
vبا انتخاب گزینه 1 :
در ابتدا شماره سوئیت از کاربر دریافت می شود:
1-Number Suite :
در صورتی که سوئیت مورد نظر به کسی واگذار نشده باشد اطلاعات زیر دریافت می شود ، در غیر اینصورت به صفحه اصلی بر می گردد.


1-Name And Family :

2-Start Date (yymmdd) :

3-Addres :
(راهنمایی: برای چک کردن سوئیت، یک فیلد وضعیت سوئیت در نظر گرفته، پس از تحویل سوئیت به مشتری آنرا یک نموده و پس از تحویل سوئیت از مشتری آنرا صفر کنید، بنابراین جستجو بر روی نودهایی صورت می گیرد که فیلد وضعیت آنها صفر است.)
پس از دریافت اطلاعات فوق به صورت اتوماتیک یک کد پذیرش انحصاری به مشتری داده می شود.
(راهنمایی: برای بدست آوردن شماره ثبت از این روش استفاده کنید: 1 + کد پذیرش آخرین گره)
vبا انتخاب گزینه 2:

Reception Code Is:
کد پذیرش دریافت شده و اطلاعات دریافت شده در قسمت قبل اصلاح شود.
vبا انتخاب گزینه 3:

Recepion Code Is:
کد پذیرش دریافت شده و گره مربوطه از لیست حذف شود.
vبا انتخاب گزینه 4:
در این قسمت با استفاده از روابط بین اشیاء و آدرس دهی، مسئول پذیرش، اطلاعات مشتری(با توجه به کد پذیرش مشتری) و تعداد شبهای اقامت در هتل را به حسابدار ارسال کرده و حسابدار پس از دریافت اطلاعات، صورتحساب مشتری را به مسئول پذیرش بر می گرداند و مسئول پذیرش اطلاعات نهایی را نمایش می دهد.
(راهنمایی : فرض کنید هزینه هر شب اقامت 110 دلار می باشد.)
vبا انتخاب گزینه 5:
کلیه اطلاعات ثبت شده نمایش داده شود.
vبا انتخاب گزینه 6:

PlZ Input The Name File For New BackUp (*.*) :
ابتدا نام و مسیر فایل پشتیبان دریافت شده و سپس کلیه اطلاعات لیست پیوندی، در فایل مورد نظر ذخیره می گردد.
vبا انتخاب گزینه 7:

PlZ Input The Name File For Restore (*.*) :
ابتدا نام و مسیر فایل دریافت شده و کلیه اطلاعات فایل در لیست پیوندی کنونی جایگزین می گردد.
vبا انتخاب گزینه 8:
کلیه اطلاعات لیست پیوندی در فایل MyFile.Dat ذخیره شده و از برنامه خارج می گردد.

همانگونه که متوجه شدید در این برنامه لیست پیوندی دوطرفه، فایل، زمان و کلاسها استفاده شده است
پروژه ضمیمه شده با VS2008 کامپایل می شود
به دلیل محدودیت حجم ضمیمه مجبور شدم جای دیگه آپلود کنم

دانلود سورس کد (http://www.metaroclub.com/forum/f89/a-229/)

kitten
چهارشنبه 31 تیر 1388, 19:38 عصر
سلام دوستان اینم یه برنامه کوچیک برای لینوکس که با استفاده از اون می تونید فایل grub خودتون را ویرایش کنید

kitten
چهارشنبه 31 تیر 1388, 19:42 عصر
اینم کدی که خیلی ها دنبالش می گردند این کد را که به اول برنامه خودتون اضافه کنید برنامه از قسمت application شما در task manager پاک می شه و به قسمت process ها می ره
این برنامه را چند بار دیگه تو تاپیک های دیگه ای گذاشته بودم اما گفتم اینجا هم بذارم که دم دست باشه


//compile with visual c++ 6


#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

void main() {
HWND hWnd;
AllocConsole();
hWnd = FindWindowA("ConsoleWindowClass",NULL);
ShowWindow(hWnd,0);
}

...StacK...
پنج شنبه 08 مرداد 1388, 04:40 صبح
سلام.

برنامه کوچکی که عملکرد تابع scanf و cscanf رو در خواندن داده ها(رشته ای و عددی) شرح میده و باهم

مقایسه میکنه....

برنامه با ورودی هایی فرضی در قالب توضیح (فارسی) موارد رو شرح میده:

(توجه داشته باشید که تابع cscanf جز c استاندارد نیست.)


#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void clrscr(void)
{system("cls");//in unix os , command is "clear"
}
int main(void){
int x,y;
char t='a';
char m[30],z[30];
for(;;){
printf("\n***************Press Any Key To Start Program********************:");
getch();
clrscr();
t++;
printf("\ntest the scanf function:");
scanf("%d",&x);//agar voroodi be soorate:[1223 5Enter] bashad
printf("\nx=%d",x);//inja [1223] chap mishavad
printf("\n test the cscanf function:");//dar in tabe amale kelidhaye Enter va Space moadele ham ast(yani payane voroodi)
cscanf("%d",&y);//inja [y] az voroodi gerefte mishavad
printf("\ny=%d",y);//[y ]chap mishavad
printf("\n test the scanf function in strings:");
scanf("%s",m);/*dar inja adade [5] dar reshte gharar migirad ,zira dar buffer in etelaat mojood ast:[5Enter](bad az 5 moadele ascii enter ast)
hala tabe scanf adade 5 ra mikhanad va be enter miresad va payane khandan anjam migirad*/
printf("\n m=%s",m);//dar inja charactere 5 chap mishavad !!!
printf("\n test the cscanf function in strings:");
cscanf("%s",z);//kelidhaye space va enter dar in tabe moadele ham ast
printf("\nz=%s",z);//reshte[z] chap mishavad
getch();
}
//barnamenevis.org by ...stack...
}

alisina
چهارشنبه 14 مرداد 1388, 00:07 صبح
پیاده سازی چندتا از توابع کار با رشته مثل strchr,strcat,...

alisina
چهارشنبه 14 مرداد 1388, 00:10 صبح
اینم از بقیه اش

hozouri
پنج شنبه 22 مرداد 1388, 19:02 عصر
یه ضرب ماتریس 2x3 و 4x3 که نتیجش می شه 2x4 نوشتم که استاتیک هست اگر روش کار کنید به راحتی داینامیک میشه فقط باید قوانین مربوط به ضرب ماتریس ها رو توش رعایت کنید ...

اوبالیت به بو
دوشنبه 02 شهریور 1388, 21:12 عصر
مديريت دانشجويان كلاس
سناريو به همراه سورس در فايل ضميمه

khafan_bat
پنج شنبه 12 شهریور 1388, 07:49 صبح
با سلام و خسته نباشید. یک برنامه گرافیکی با استفاده از کلاس تحت توربو سی پلاس پلاس






www.innovation.iranblog.com (http://www.innovation.iranblog.com)

khafan_bat
پنج شنبه 12 شهریور 1388, 07:58 صبح
این برنامه در کنسول متن تابپ شده ی کاربر (حداکثر در 500 حرف) را به باینری (0 و یک) تبدیل کرده و در یک فایل با نام output ذخیره میکند.

دوستان این برنامه جزو برنامه های آرشیوی منه که قدیم نوشتم. دیگه خوبی , بدی ببخشید. ممکنه یک کوچولو الگوریتم هایش شلخته باشند. ولی در کل خوب کار میکنند. هدف من فقط نوشتن برنامه ها بود.




http://www.innovation.iranblog.com (http://www.innovation.iranblog.com/)

khafan_bat
دوشنبه 16 شهریور 1388, 21:12 عصر
این یک برنامه تحت توربو که تعداد ستون و تعداد ردیف ها + عرض هر واحد جدول رو وارد میکنید و اون یک جدول براتون رسم میکنه. بعد از دانلود باید آدرس پوشه گرافیک رو در سیستم خودتون به جای آدرس داده شده در برنامه بگدارید و برنامه رو کامپایل کنید.:لبخندساده:


http://a.imagehost.org/0721/k_9.jpg

www.innovation.iranblog.com (http://barnamenevis.org/forum/www.innovation.iranblog.com)

behnam-s
سه شنبه 17 شهریور 1388, 15:44 عصر
سلام
سورس برنامه دنیای جدولکها
چون مسئله معروفیه زیاد توضیح نمی دم . برنا مه از یک سری جدولک تشکیل میشه که اندازه فضای اونها و تعدادشونو کاربر تعیین می کنه. اونها در 4 جهت حرکت می کنند. عمر دارن. در برخورد با دیواره با احتمالی می میرند. ممکنه دچار جهش شده و در میانه عمر تغییر کنند و اگه دایره زرد رنگ در مرکز اونها باشه امکان تولید مثل داره.
36582

behnam-s
سه شنبه 17 شهریور 1388, 18:53 عصر
بازی LIFE
البته نمی دونم چرا این اسمو روش گذاشتن چون بازی نیست.
صورت برنامه یک جدول n*n هست که تعداد r تای اون پر هست یا به اصطلاح زنده است.
حالا طی هر سیکل
1.خانه های از جدول که زنده نباشه و دقیقاً 3 تا از همسایه هاش زنده باشن زنده می شه.
2.زنده باشه و تعداد بیشتر از 4 یا کمتر 2 ،همسایه هاش زنده باشن می میره.
و تاحدی جلو میره تا به یه سیکل ثابت برسه یا جدول خالی شه.
36591

khafan_bat
چهارشنبه 18 شهریور 1388, 00:05 صبح
سلام ، یک برنامه ساده ولی جالب با استفاده از آرایه های پویا که یک جمله بهش میدید بعد همون جمله رو براتون تایپ میکنه ، توجه کنید دوسان حرف به حرف تایپ میکنه نه اینکه کله جمله رو یه راست به خروجی ببره


http://a.imagehost.org/0721/k_9.jpg (http://www.innovation.iranblgo.com)

khafan_bat
چهارشنبه 18 شهریور 1388, 00:09 صبح
یک برنامه بسیار آموزشی و جالب ، که یک منوی زیبا رو در محیط داس میسازه ، این برنامه کار آقای Vivek Patel هستش. چیز جالبیه حتما دانلود کنید. در ضمن باید آدرس bgi سیستم خودتون رو در سورس قرار بدید.

alihassanabadi
دوشنبه 23 شهریور 1388, 12:28 عصر
برنامه زیر کد مربوط به اجرای یک پیانوی کامپیوتری را نشان میدهد. در این برنامه به جای تابع getch() از پورت 60h برای بدست آوردن یک کلید استفاده شده است.
برای افزایش سرعت وهمچنین به منظور کاهش محاسبات از آرایه دو بعدی
notes[7][12] استغاده شده است.

دست هایی که کمک میکنند مقدس تر از لب هایی هستند که دعا میکنند.کورش کبیر

khafan_bat
جمعه 08 آبان 1388, 20:21 عصر
خوب امروز سه تا سورس دیگه از آرشیو برنامه های نوشته شدم گذاشتم که مطالعه ی سورس این برنامه ها برای کسانی که تازه برنامه نویسی رو شروع کرده اند خیلی مفیده.


در ابتدا چند تا نکته و یاد آوری ریاضی :

1) مقسوم علیه های یک عدد هیچ وقت بزرگتر از خود عدد نیستند.

2) عدد 1 مقسوم علیه تمام اعداد است

3) بزرگترین مقسوم علیه یک عدد به چز خود عدد حداکثر برابر نصف آن عدد است.

4) اعداد اول اعدادی هستند که فقط بر خود و یک بخش پذیر هستند

5) عدد کامل عددی ایست که مجموع مقسوم علیه های آن به جز خود آن عدد برابر با آن عدد است مثل: 6=3+2+1 که 3و2و1 مقسوم علیه های 6 هستند.

6) با کمی جستجو در اینترنت میتوانید اطلاعات زیادی را در این موارد بدست آورید

در این پست سه تا برنامه گذاشتم که به ترتیب:
1) یه ورودی صحیح مثبت میگیرد و تا آن عدد اعداد اول را چاپ میکند
2) یه ورودی صحیح مثبت میگیرد و تا آن عدد اعداد کامل را چاپ میکند
3) یه ورودی میگیرد و مقسوم علیه های آن عدد و مجموع مقسوم علیه های آن را چاپ میکند

نکته: ورودی میتونه یه عدد خیلی بزرگ باشه حتی از میلیارد بیشتر یعنی اینکه اگر عدد 100000000000 صد میلیارد رو وارد کنید تمام اعداد اول تا خود اون عدد رو چاپ میکنه برای همین من متغیر ها رو register unsigned long int گرفتم. دیگه باقیش با خودتون

نکته: برنامه تحت کامپایلر Turbo C++‎‎ هستند و من قبل از آپلود کارکرد اونها رو چک کردم.

نکته: وقت کردین یه سر به بلاگ من بزنید . من در رابطه با روباتیک مینویسم. خوشحال میشم. فعلا بای



www.innovation.iranblog.com (http://www.innovation.iranblog.com)



http://a.imagehost.org/0721/k_9.jpg

khafan_bat
جمعه 08 آبان 1388, 23:13 عصر
قضیه مغلوب یک عدد که میدونید چیه...برنامشو گذاشتم.

khafan_bat
شنبه 09 آبان 1388, 00:32 صبح
این برنامه هم خیلی زیباست. من این رو با سه تا حلقه ی تو در توی for که توی یه If هستش نوشتم. نام برنامه ساعت هستش. بله ساعت.

ابتدا از کاربر سه تا عدد میگیره که به ترتیب ساعت ، دقیقه و ثانیه هستش. قابل توجه که ساعت رو باید بصورت 24 ساعته وارد کنید.

بعدش برنامه ساعت رو نشون میده و شروع به شمارش میکنه و ازای هر چرخش حلقه ی for سوم که ثانیه هستش یک حلقه ی دومی (دقیقه) یه دونه افزایش پیدا میکنه و به ازای چرخش کامل حلقه ی دومی حلقه ی اول (ساعت) یک مقدار افزایش پیدا میکنه.

البته این برنامه رو به صورت دیگری هم میشد نوشت. شاید بعدا براتون گذاشتم.

دستور شرطی اول هم چک میکنه که اعداد رو درست وارد کردید یا نه! مثلا اگه ثانیه رو 70 بزنید. برنامه خطا میده و از کاربر میپرسه آیا دوست دارید دوباره سعی کنید؟ که اگه جواب True f بود مرحله ی اول یه بار دیگه اجرا میشه وگرنه از برنامه خارج میشه.

دوستان میشه طوری این برنامه رو نوشت که ساعت رو از سیستم بگیره و نمایش بده اما اینجا ما به استراکچر برخورد میکنیم که برای تازه کارا یه کوچولو سخته.
نکته: این برنامه تحت کامپایلر turbo C++ Dos هستش قبل از آپلود صحت اون تست شده

تا یادم نرفته برای خروج از برنامه باید کلید های ctr ,Pause Break رو از کیبورد فشار بدید.


www.innovation.iranblog.com (http://www.innovation.iranblog.com)

Salar Ashgi
یک شنبه 17 آبان 1388, 21:25 عصر
تغییر رنگ نوشته متن :

کامپایلر : Borland C++ 5.02
روش اول :



#include <iostream>
#include <conio>
int main(){
for(int i=1;i<=4;i++){
textcolor(i+8);
cprintf("Welcome to C++ World");
cout<<endl;}
getch();
}


روش دوم :



#include <iostream>
#include <conio>
#include <stdlib>
int main(){
for(int i=1;i<=4;i++){
system("color 0A");
cout<<"Welcome to C++ World\n";
}
getch();
}

masoudlotfi
چهارشنبه 20 آبان 1388, 10:13 صبح
این یه برنامه ماشین حسابه که خودم نوشتم، بدک نیست.

masoudlotfi
پنج شنبه 21 آبان 1388, 21:31 عصر
اینم برنامه ی چک کردن پسورده
ابتدا یه رشته 5 کاراکتری میگیره و بعد از شما میخواهد که همونو دوباره وارد کنید اگه درست بود اوکی میده در غیر اینصورت دوباره اجرا میشه
برای خروج هم باید Esc رو بزنید.
در ضمن همون ماشین حساب قبلیم رو هم با این پسورد تلفیق کردم.

masoudlotfi
پنج شنبه 21 آبان 1388, 21:35 عصر
سلام.کد بازی دوز به زبان C++‎‎‎ را می خواهم


شاید این به دردت بخوره
بفرما(البته خودم ننوشتم)

khafan_bat
سه شنبه 26 آبان 1388, 18:02 عصر
این برنامه ای که امروز گذاشتم کلیه ی اعداد سه رقمی (یعنی بین 100 تا کوچکتر از 1000) که اصلا رقم صفر ندارن رو چاپ میکنه مثله 223. برای نوشتن این بنرامه دو تا نکته رو باید توجه کرد :

1 ) رقم صدگان کلیه ی اعداد سه رقمی مخالف صفر هستش پس باید دو رقم دیگر رو بررسی کرد.

2 ) باقیمانده ی حاصل از تقسیم هر عددی بر 10 برابر است با یکان اون عدد.

3 ) باقیش با خودتون ! امیدوارم این برنامه هایی که میزارم برای دوستان تازه کار مفید باشه !

khafan_bat
سه شنبه 26 آبان 1388, 18:39 عصر
خروجی این برنامه جدول کاراکتر های اسکی + شماره ی مربوط به اونهاست.
برای تنوع این یکی رو با C نوشتم.

www.innovation.iranblog.com (http://www.innovation.iranblog.com)

khafan_bat
چهارشنبه 27 آبان 1388, 01:20 صبح
سلام. ساعت نزدیک به دو شب و این هم برنامه ی چاپ جملات دنباله ی فیبوناچی تا اونجایی که کاربر میخواد !

دنباله ی فیبوناچی: دنباله ای که هر جمله برابر است با مجموع دو جمله ی قبلی خودش ! با این قرار داد که جمله ی اول همیشه 0 و جمله ی دوم همیشه 1 است بنا بر این جمله ی سوم می شود مجموع دو جمله ی ماقبل خود یعنی 0+1 که می شود 1. به طور کلی:

f=0,1,1,2,3,5,8....jn


حالا ما برنامه ای می نویسم که n رو از کاربر بگیره و تا جمله ی n ام رو به خروجی ببره !

برای این کار چند تا روش هست که یکیش استفاده از تابع بازگشتی هستش و دیگری استفاده از جابه جایی متغیر ها که من این برنامه رو با روش دوم نوشتم و از یک آرایه از نوع صحیح با دو تا خونه استفاده کردم . شما می تونید به جای این کار دو تا متغیر مثلا a و b بگیرید. در کل امیدوارم این برنامه مفید واقع بشه !!!


www.innovation.iranblog.com (http://www.innovation.iranblog.com)

masoudlotfi
چهارشنبه 27 آبان 1388, 11:23 صبح
1.برنامه جمع و ضرب و تفریق دو ماتریس 3*3
2.برنامه رسم یک شکل سه بعدی زیبا
3.فایل mouse.h برای کار با موس(این فایلو به راحتی نمیتونین پیدا کنید.استادمون برامون فرستاد)
4.نمونه برنامه کار با موس.(فایل mouse.h رو تو شاخه include باید کپی کنید)این برنامه شبیه برنامه paint میمونه

khafan_bat
چهارشنبه 27 آبان 1388, 14:12 عصر
ممنون دوست عزیز ولی ایکاش مینوشتی که اون کتابخونه ای که استاد شما بهتون داده رو طرف با اسمبلی در کامپایلر C نوشته چون ممکنه خیلی از افراد تازه کار تو این قسمت بیان و از این برنامه ها استفاده کنند و با برخورد با اون کد ها یه کوچولو گیج بشن.! بنابر این هر برنامه ای که میاری فقط یه توضیح یه خطی هم براش بزار . با این حال باز ممنون ! احساس می کنم این این تاپیک یکی از بهترین تاپیک ها داره میشه !

(لطفا برای حفظ نظم تاپیک به این نوشته ی من پاسخ ندهید و به آپلود برنامه های خود ادامه دهید.)


www.innovation.iranblog.com (http://www.innovation.iranblog.com)

khafan_bat
پنج شنبه 28 آبان 1388, 02:52 صبح
من با این برنامه خیلی حال میکنم !

یه بار مبلغ 50 هزار تومان رو در خودپرداز وارد کردم و منتظر موندم تا پول رو بگیرم و برم . دیدم که 50 هزار تومان رو به صورت دو تا اسکناس 5 هزار تومانی ، 20 اسکناس 2 هزار تومانی و 10 اسکناس 1000 تومانی به من داد. !! خیلی برام جالب بود و فکر من رو به خودش مشغول کرد از اونجایی که میتونست این پول رو جور دیگه ای هم به من بده ولی نداد. همون لحظه این کار رو برای مبلغ 100 هزار تومان تست کردم دیدم این دفعه یه دونه اسکناس 50 هزار تومانی داد و بقیه رو مثله قبلی ! مطمئن شدم که یه الگوریتم تمیزی پشت این قضیه هستش که با سیستم های الکترونیکی و مکانیکی دستگاه ترکیب و هماهنگ شده و این سیستم رو تشکیل داده تا اینکه امشب این برنامه رو نوشتم !! شما میتونید این برنامه و الگوریتم رو تعمیم بدین و نوع پیشرفته ی اون رو هم بنویسید ! دیگه باقیش با خودتون. این برنامه ای که نوشتم تمام حالاتی رو که میشه یه اسکناس هزار تومانی رو به اسکناس های 500 تومانی ، 200 تومانی ، 100 تومانی ،50 تومانی، 20 تومانی و 10 تومانی خورد کرد محاسبه و چاپ میکنه ! برای مثال دو خط زیر دو تا از هزاران خروجی این برنامه است:

1000= 1*500 + 2*200 + 1*100

یعنی: هزار تومن میشه یه دونه 500 تومنی + دو تا 200 تومنی + یه دونه 100 تومنی

و همچنین :

1000= 0*500 + 4*200+0*100+4*50

شما دقیقا با کار روی این پروژه می تونید اون رو بسط داده و عین دستگاه خودپرداز رو شبیه سازی کنید که مثلا کاربر عدد رو وارد کنه و بر اساس مقدار پولی که می خواد و تعداد اسکناس هایی که از هر مقدار در انبار موجوده خروجی های ممکن رو چاپ کنه !!

این مسئله میتونه کاندیدای طرح شدن در مسابقات ACM نوجوانان باشه (شاید هم تا به حال طرح شده). که هر سال در ایران در شریف برگزار میشه !

شرح برنامه : به تعداد انوع اسکناس ها حلقه ی تو در تو داره یعنی از 6 حلقه ی تو در تو استفاده میکنه. بعد از چاپ هر خروجی یه مکث 500 میلی ثانیه ای گذاشتم که بتونیم خروجی ها رو ببینیم ! همش همین بود !! حالا دفعه های بعد پیشرفته ترش رو میزارم. اصل همین بود



www.innovation.iranblog.com (http://www.innovation.iranblog.com/)

http://a.imagehost.org/0721/k_9.jpg

khafan_bat
پنج شنبه 28 آبان 1388, 03:54 صبح
این هم یه برنامه ی چند خطی اما ابتکاری که من اسمش رو گذاشتم پله ی اعداد که استفاده از حلقه های تو در تو رو به خوبی و قشنگی نشون میده ! خروجی این برنامه تصویر زیر هستش که ملاحضه میفرمایید . !


http://i.imagehost.org/0215/a.jpg

khafan_bat
پنج شنبه 28 آبان 1388, 19:10 عصر
خوب یکی از دوستان چند وقت پیش این سوال رو تو بخش اصلی مطرح کرده بود. و من هم تو یکی دو پست قبل یه نمونه از مسئله ی فیبوناچی رو به روش غیر بازگشتی گذاشتم تا دوستان استفاده کنند ! حالا هم روش بازگشتی رو گذاشتم. زیبایی این برنامه و الگوریتم و قدرت کامپیوتر رو میشه در این برنامه دید. واقعا آدم لذت میبره وقتی به نحوه ی حل این مسئله توسط کامپیوتر دقت میکنه !! کل الگوریتم رو میتوان در نمودار زیر خلاصه کرد:
مثله اینکه نیما جان خوب به این تاپیک میرسن !!


http://i.imagehost.org/0800/ss.jpg

masoudlotfi
جمعه 29 آبان 1388, 19:12 عصر
سلام دوستان
امروز یه سایت انگلیسی زبان پیدا کردم که نمونه کد های c++,c,java,asp,... رو به صورت رایگان در اختیارتون قرار میده.
البته خوب نیست این کد ها رو کپی کنید و به عنوان پروژه تحویل بدید دانشگاه ، بلکه اونا رو خوب نگاه کنید و سعی کنید از اونا ایده بگیرید.
این سایت زمینه هر برنامه نوشته شده رو هم مشخص کرده مثلا گرافیک ، الگوریتم ، بازی ، کار با فایل ، محاسباتی و ...

اینم آدرسش :

www.happycodings.com (http://happycodings.com)

masoudlotfi
دوشنبه 02 آذر 1388, 11:47 صبح
1.برنامه ای که با استفاده از منوی انتخاب رنگ تم طرح کشیده شده را عوض می کند و مانند پنجره های ویندوز با زدن دکمه ضربدر قرمز بالای سمت راست از برنامه خارج می شود.
2.برنامه ای که در هرلحضه موقعیت مکان نما رو چاپ میکنه.برای درک بهتر خود برنامه رو امتحان کنید.
3.برای اجرای این دو برنامه به فایل mouse.h نیاز دارید که باید اونو تو شاخه include سیستم خود کپی کنید.
این فایل تو پست های قبلیم هست.

khafan_bat
دوشنبه 02 آذر 1388, 21:59 عصر
خوب من در این تاپیک دو تا الگوریتم برای فیبوناچی گذاشتم . الگوریتم سوم برای این مسئله یه الگوریتم حرفه ای تر هستش و مشکلات الگوریتم دوم (به روش بازگشتی) رو پوشش میده.

در روش بازگشتی اگه دقت کرده باشید یه سری جمله ها چند بار حساب میشدند و این سرعت محاسبه رو میاره پایین. اما در این روش که از آرایه های پویا استفاده شده جمله ها تو خونه های آرایه ذخیره و هر بار که لازم شد خونده میشن. !

این برنامه اول کاربر عدد n رو وارد میکنه بعد یه آرایه ی پویا به طول n ساخته میشه و بعدش n رو چاپ میکنه.


www.innovation.iranblog.com (http://www.innovation.iranblog.com)

fshb_ 1370
سه شنبه 03 آذر 1388, 18:19 عصر
سلام
این برنامه سرعت و زاویه از کاربر میگیره و در حین حرکت پرتابه شکل اون رو هم رسم میکنه

aminipour
چهارشنبه 04 آذر 1388, 23:23 عصر
سلام تبریک میگم به بچه های این تاپیک در حد خودش خوبه.
تا حالا فکر کردین چه جوری میشه بدون حقه تکرار این کاراکترها رو چاپ کرد.
*
**
***
****
*****
******
*******
******
*****
****
***
**
*
که تعداد بیشترین ستاره(که در خط میانیه)همون مقدار n است که از کاربر میگیره.
اول یکم فکر کنید.....
.
.
.
اینم کدش که با C نوشتم:




#include<conio.h>
#include<stdio.h>
void star(unsigned char);
void newline1(unsigned char);
void newline2(unsigned char,unsigned char);
void main()
{
unsigned char n;
clrscr();
printf("Enter your number:");
scanf("%d",&n);
newline1(n);
newline2(1,n-1);
getch();
}//end main--------------------------------------------------------------------
void newline1(unsigned char n)
{
if(n>1)
newline1(n-1);
star(n);
printf("\n");
}
void newline2(unsigned char i,unsigned char n)
{
if(i<n)
newline2(i+1,n);
star(i);
printf("\n");
}
void star(unsigned char n)
{
if(n>1)
star(n-1);
printf("*");
}

M4st3r_4w4r3
شنبه 28 آذر 1388, 01:40 صبح
یه سرس برای تمرین با کلاس ها رو هاردم پیدا کردم فکر کنم واسه دایتل بود ...
با ++g هم کامپایلش کنید چون رو ویندوز نوشته نشده از getch خبری نیست ! ( خودتون اضافه کنید )
در هر صورت میزارم ایشالله مفید باشه :





/* soal :
classi ba name rational ijad konid ke amale mohasebaty ra rooye adade kasry anjam dahad ...
sepas barname ee benevisid ke az in class estefade konad . azaye dade ee class ebaratand az soorat va makhraje kasr
va tavabe ye ozve class ebaratand az :
*jam'e do kasr
*zarbe do kasr
*tafrighe do kasr
*taghsime do kasr
*chape kasr be soorate kasry
*chape kasr be soorate ashary
*/







#include<iostream>
using namespace std;
class rational {
public:
rational( float=0, float=1, float=0, float=1 );
void setvalues( float, float, float, float );
void mm();
void jam();
void tafrigh();
void zarb();
void taghsim();
void printkasry();
void printashary();
private:
float s;
float m;
float s2;
float m2;
float swap;
float swap2;
};
rational::rational( float a, float b, float c, float d ) {
setvalues( a, b, c, d );
}
void rational::setvalues( float a, float b, float c, float d ) {
s=a;
m=b;
s2=c;
m2=d;
}
void rational::mm() {
if(m!=m2){
if(m > m2) {
if( int(m)%int(m2)==0 ) {
m2=m;
s2*=(m2/m);
}
else {
s*=m2;
s2*=m;
m2*=m;
m=m2;
}
}
else {
if ( int(m2)%int(m)==0 ) {
m=m2;
s*=(m/m2);
}
else {
s*=m2;
s2*=m;
m2*=m;
m=m2;
}
}
}
}
void rational::jam() {
mm();
swap=s+s2;
cout << "command : Jam\nMajmoo: " << swap << "/" << m << endl ;
printkasry();
printashary();
}
void rational::tafrigh() {
mm();
swap=s-s2;
cout << "command : Tafrigh\nTafrigh: " << swap << "/" << m << endl;
printkasry();
printashary();
}
void rational::zarb() {
swap=s*s2;
swap2=m*m2;
cout << "command : Zarb\nZarb: " << swap << "/" << swap2 << endl;
printkasry();
printashary();
}
void rational::taghsim() {
swap=s*m2;
swap2=s2*m;
cout << "command : Taghsim\nTaghsim: " << swap << "/" << swap2 << endl;
printkasry();
printashary();
}
void rational::printkasry() {
cout << "\n--------------------\nPrinting like num/num \n";
cout << endl << "A/B :" << s << "/" << m << endl << "C/D :" << s2 << "/" << m2 << endl;
}
void rational::printashary() {
cout << "\n--------------------\nPrinting like float number \n";
cout << "A/B :" << s/m << "\nC/D :" << s2/m2 << endl;
}


int main()
{
float a,b,c,d;
int com;
cout << "help: A/B , C/D " << endl
<< " Commends:" << endl
<< " 1) Zarb" << endl
<< " 2) Taghsim" << endl
<< " 3) Jam" << endl
<< " 4) Tafrigh\n\n\n\n#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#"
<< "\nNow enter float numbers for A,B,C,D : " << endl;
cin >> a >> b >> c >> d;
rational kasr( a, b, c, d );
cout << "Now enter number of your command : ";
cin >> com;


switch (com) {
case 1 : kasr.zarb(); break;
case 2 : kasr.taghsim(); break;
case 3 : kasr.jam(); break;
case 4 : kasr.tafrigh(); break;
default: cout<<"your entered number for command is wrong ! \n Please replay the program again ..."; break;
}
cout << "\n program ended !\n\n\n\n";
return 0;
}

مرتضی تقدمی
یک شنبه 29 آذر 1388, 11:59 صبح
اینم یه برنامه آموزشی خوب برای اونایی که struct , اشاره گر , فایل و گرافیک رو خیلی خوب بلد نیستند . نظر دادن یادتون نره
موفق باشین :چشمک:

مرتضی تقدمی
یک شنبه 29 آذر 1388, 12:05 عصر
اینم یه برنامه آموزشی توپ که یه ساعته و کلی نکته آموزشی توش هست . ازجمله گرافیک.
نظر دادن یادتون نره
موفق باشین :چشمک:

Salar Ashgi
یک شنبه 29 آذر 1388, 12:13 عصر
برنامه ای که بروش بازگشتی عددی از مبنای 10 رو به هر مبنای تبدیل میکنه :



#include <iostream>
#include <conio>
void Base(int n,int x){
if(n<x)
cout<<n;
else{
Base(n/x,x);
cout<<n%x;
}
}
//=====================
int main(){
int x,n;
cout<<"Enter a number in decimal :\n";
cin>>n;
cout<<"Enter base :\n";
cin>>x;
cout<<"------------------------\n";
Base(n,x);
getch();
}

Salar Ashgi
یک شنبه 29 آذر 1388, 12:16 عصر
برنامه پیدا کردن فاکتوریل یک عدد بروش برنامه نویسی پویا



#include <iostream>
#include <conio>
int main(){
int n;
cout<<"Enter a number :\n";
cin>>n;
int *a = new int[n+1];
a[0] = 1;
for(int i=1;i<=n;i++)
a[i] = i*a[i-1];
for(int i=0;i<=n;i++)
cout<<i<<"! = "<<a[i]<<endl;
getch();
}

Salar Ashgi
یک شنبه 29 آذر 1388, 12:19 عصر
برنامه که بروش بازگشتی تعداد صفرهای سمت راست فاکتوریل یک عدد رو محاسبه میکنه :

(سوال مسابقات ACM )

مثلا 1000 فاکتوریل به چند صفر ختم میشود :



#include <iostream>
#include <conio>
#include <math>
int Fact_zero_count(int n){
if(n==0)
return 0;
else
return floor(n/5)+Fact_zero_count(n/5);
}
//===========================
int main(){
int n;
cout<<"Enter a number :\n";
cin>>n;
cout<<n<<"! has "<<Fact_zero_count(n)<<" zero at end . \n";
getch();
}

mahdi87_gh
سه شنبه 08 دی 1388, 19:19 عصر
سلام

برنامه ای که نوشتم یه تقویم هستش که هم واسه تاریخ شمسی کار میکنه و هم واسه میلادی.

هم میتونه یک ماه رو کامل نشون بده و هم می تونه nامین هفته سال رو نمایش بده.

در ضمن همین برنامه چندین تابغ وجود داره:

تبدیل تاریخ میلادی به شمسی

تبدیل تاریخ شمسی به میلادی

پیدا کردن اینکه یه تاریخ مشخص چند شتبه است؟

امبدوارم برای دوستان مفید واقع شه

qanewaisi
سه شنبه 08 دی 1388, 22:35 عصر
اینم یه برنامه نسبتا خوب در مورد کار با اصول شئ گرایی در ++C هست.
این برنامه مربوط به پیاده سازی نظریه مجموعه ها به زبان ++C هست که امروز با همکاری دوست خوبم mortezamsp (http://www.barnamenevis.org/forum/member.php?u=95032)تکمیلش کردیم.
در این برنامه از سازنده،سازنده کپی،سرباگذاری عملگرهای << و >> و + و - و =+ و = و ^ ،تعریف توابع خارج از کلاس و بعضی موارد دیگر استفاده شده.
تنها مشکلی که این برنامه می تونه داشته باشه اینه که با حافظه پویا پیاده سازی نشده،من چون فعلا وقت ندارم از دوستان می خوام که این کار رو انجام بدن و اگه کسی انجام نداد خودم یه چند روزه دیگه انجامش میدم.
امیدوارم مفید واقع بشه.





#include<iostream.h>
#include<conio.h>
#define maxsize 20
//=================================================
class Intset
{
private:
int ma[maxsize],topindex;
public:
Intset();
void insert(int);
Intset operator+=(Intset);
Intset operator-=(Intset);
int found(int);
void print(ostream & o);
Intset operator+(Intset);
Intset operator^(Intset);
Intset operator-(Intset);
int get(int);
int card();
void makeempty();
friend ostream & operator << (ostream & ,Intset);
};
//=================================================
Intset :: Intset()
{
topindex=-1;
}
void Intset :: insert(int x)
{
if(topindex==maxsize-1)
cout<<"\n=======\ninsert error : stack is full !\n=======\n";
else{
if(!found(x))
ma[++topindex]=x;

}
}

ostream & operator <<(ostream & o ,Intset a)
{
a.print(o);
return o;
}
Intset Intset :: operator+=(Intset b)
{
for(int i=0;i<=b.card()-1;i++)
insert(b.get(i));
return *this ;
}
Intset Intset :: operator-=(Intset b)
{
Intset rezualt ;
for( int i=0 ; i<=topindex ;i++ )
rezualt.insert( get(i) ) ;
makeempty() ;
for( i=0 ;i<=rezualt.topindex ;i++ )
if( !b.found( rezualt.get(i) ) )
insert( rezualt.get(i) ) ;
return rezualt ;
}

void Intset :: print(ostream & o)
{
if(topindex==-1)
o<<"Empty";
else
{
o<<"{";
for(int i=0;i<=topindex;i++)
o<<ma[i]<<",";
o<<"}";
}
}
Intset Intset :: operator+(Intset b)
{
Intset c;
for(int i=0;i<=card()-1;i++)
c.insert(get(i));
for(i=0;i<=b.card()-1;i++)
c.insert(b.get(i));
return c;
}
Intset Intset :: operator^(Intset b)
{
Intset c;
for(int i=0;i<=card()-1;i++)
for(int j=0;j<=b.card()-1;j++)
if(found(get(i)&&b.found(get(i)) ) )
c.insert(get(i));
return c;
}
Intset Intset :: operator-(Intset b)
{
Intset c;
for(int i=0;i<=card()-1;i++)
if(!b.found(get(i)) )
c.insert(get(i));
return c;
}
int Intset :: get(int i)
{
return ma[i];
}
int Intset :: card()
{
return topindex+1;
}
void Intset :: makeempty()
{
topindex=-1;
}
int Intset :: found(int x)
{
int i=( i<topindex? i : topindex );
for( i=0 ; i<=topindex ;i++ )
if(ma[i]==x)
return 1 ;
return 0 ;
}


//=================================================
int main()
{
clrscr();
Intset a,b1;

int b;
cout<<"\n=======Get a{} ";
for(int i=1;i<=5;i++)
{
cout<<"\nEnter number a{"<<i<<"} :";
cin>>b;
a.insert(b);
}
cout<<"\na{} :"<<a<<endl;

cout<<"\n=======Get b1{} :";
for( i=1;i<=3;i++)
{
cout<<"\nEnter number b1{"<<i<<"} :";
cin>>b;
b1.insert(b);
}
cout<<"\nb1{} :"<<b1<<endl;
Intset c;
cout<<"\n=======\nnew intset c :"<<c<<endl<<"press any key";
getch();
c=b1;
cout<<"\n=======\nc=b1 ==>c :"<<c<<endl<<"press any key";
getch();
c+=a;
cout<<"\n=======\nc+=a ==>c :"<<c<<endl<<"press any key";
getch();
c-=a;
cout<<"\n=======\nc-=a ==>c :"<<c<<endl<<"press any key";
getch();
c=a+b1;
cout<<"\n=======\nc=a+b1 ==>c :"<<c<<endl<<"press any key";
getch();

c=a-b1;
cout<<"\n=======\nc=a-b1 ==>c :"<<c<<endl<<"press any key";
getch();

c=a^b1;
cout<<"\n=======\nc=a^b1 ==>c :"<<c<<endl<<"press any key";
getch();


return 0 ;
}

ali_1369
چهارشنبه 09 دی 1388, 15:42 عصر
قابلیت های برنامه:
وارد کردن اطلاعات دانشجویان؛جستجو بر اساس دو فیلد؛خذف دانشجو بر اساس دو فیلد؛ذحیره اطلاعات در فایل؛مرتب کردن اسامی بر اساس الفبای لاتین و.....




#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include<string.h>
#define MAX 100
struct student {
char name[10] ;
float avrage ;
int unit ;
int amount_course ;
int student_number;
} st[MAX];
void first_evalution(void);
void enter(void);
void search(void);
void search2(void);
void del_name(int);
void display(void);
void top_student();
void fail_student();
void show(int *, int);
void title(int *);
int menu_select(void);
int spare_space(void) ;
void save (void);
void load(void);
void in_style(int l);
void delete_main(void);
void delete_name2(void);
void search_main(void);
static int l;
int main(void)
{
char choice ,ans;
first_evalution();
for(;;){
choice = menu_select() ;
switch(choice) {
case 1: enter();in_style(l); break;
case 2: search_main(); break ;
case 3: top_student(); break;
case 4: fail_student(); break ;
case 5: delete_main(); break ;
case 6: save();break;
case 7: load();break;
case 8: display();break;
case 9:{
printf("are you sure you want to quit ?(y/n)");
ans=getche();
clrscr();
if(ans=='y')
exit(0);break; }
}
}
}
void first_evalution(void)
{
register int i ;
for(i = 0; i < MAX; ++i)
st[i].name[0] = '\0' ;
}
int menu_select(void)
{
char s[10];
int g ;

printf("\n\t(1) << enter information >>");
printf("\n\t(2) << search menu >>");
printf("\n\t(3) << show top students >>");
printf("\n\t(4) << show fail students >>");
printf("\n\t(5) << delete menu >>");
printf("\n\t(6)<< save info >>");
printf("\n\t(7)<< load info >>");
printf("\n\t(8)<< display info >>");
printf("\n\t(9)<< quit from program >>");
do {

printf("\n\t Please enter your choice(1-9): ") ;
gets(s);
clrscr();
g = atoi(s);
} while(g < 0 || g > 9) ;
return (g) ;
}
void enter(void)
{
char name3[30];
float grade, sum_grade = 0;
int t, unit, sum_unit = 0 ,j,i;
t = spare_space() ;
if(t == -1){
printf("\n sorry the list is full.....press any key to continue");
getch();
return ;
}
printf("\n\t enter name:") ;
gets(st[t].name) ;
strcpy(name3,st[t].name);
for(i=0;i<t && st[i].name[0] ;i++)
{
if(strcmp(st[i].name,name3)==0){
printf("the similar name is already in the list. contine any way?(y,n)");
if(getche()=='n')
{
clrscr();
st[t].name[0]='\0';
return ;}}
}
l++;
clrscr();
printf("\n\tenter student number:") ;
scanf("%d", &st[t].student_number) ;
clrscr();

printf("\n\tenter number of course:") ;
scanf("%d", &st[t].amount_course) ;
clrscr();
for(j = 1; j <= st[t].amount_course; j++) {

printf("\n\tenter grade for course %d:",j);
scanf("%f", &grade) ;
clrscr();
printf("\n\tenter unit of course %d:", j);
scanf("%d", &unit) ;
clrscr();
sum_grade += grade * unit ;
sum_unit += unit ;
}
st[t].unit=sum_unit;
st[t].avrage = sum_grade / sum_unit ;

}


int spare_space(void)
{
register int i ;
for(i = 0; st[i].name[0] && i< MAX ; ++i);
if(i == MAX) return -1 ;
return i ;
}
void delete_main(void)
{
char c[10];
int h;
do {
printf("how do you want to delete info ?");
printf("\n\t\t\t(1)=base on name");
printf("\n\t\t\t(2)=base on student number");
gets(c);
clrscr();
h=atoi(c);} while(h<0 || h>2);
if(h==1){
delete_name2();}
if(h==2){
del_name(l);}
if(h!=1 && h!=2)
return;
}

void del_name(int l)
{
int i ;
char ans;
printf("\n\tenter record #(0 - %d):",l) ;
scanf("%d", &i) ;
printf("are u sure you want to delete record %d?(y/n)");
ans=getche();
clrscr();
if(ans=='y'){
if( st[i].name[0]){
st[i].name[0]='\0' ;
printf("deleted Successfully !!");}
else if(!st[i].name[0])
printf("this record is not in the list....press any key to continue...."); }
getch();
clrscr();
}
void delete_name2(void)
{
char name2[30],ans;
int i,h,w=0;
printf("\tenter a name to delete");
gets(name2);
printf("are you sure you want to delete %s information?(y/n)",name2);
ans=getche();
clrscr();
if(ans=='y'){
for(i=0;i<MAX;i++)
{
if(strcmp(st[i].name,name2)==0) {
h=i;
w=1; }}
if(w==1){
st[h].name[0]='\0' ;
printf("deleted Successfully !!");
}
if(w==0) {
printf("the one you are looking for is not in the list.press any key to continue.........."); }}
getch();
clrscr();

}
void display(void)
{
int i, r = 0;
;
title(&r) ;
for(i = 0; i < MAX; ++i)
if(st[i].name[0])
show(&r, i);
gotoxy(114,r);

printf("\n\t please press any key to continue ") ;
getch();
clrscr();
gotoxy(29,r+1);
getch();
}
void fail_student(void)
{
int i, r=0 ,a=0;

for(i = 0; i < MAX; ++i){
if(st[i].name[0] && st[i].avrage < 12){
a=1;
title(&r);
show(&r, i) ; }
}
if(a==0){
printf("there is no fail student!");}

gotoxy(25,r+1);
printf(" please press any key to continue ") ;
getch();
clrscr();
}
void top_student(void)
{
int i, r=0 ,a=0;

for(i = 0; i < MAX; ++i){
if(st[i].name[0] && st[i].avrage >= 17){
a=1;
title(&r);
show(&r, i) ; }
}
if(a==0){
printf("there is no top student!");}

gotoxy(25,r+1);
printf(" please press any key to continue ") ;
getch();
clrscr();
}
void title(int *r)
{
*r = 1;
gotoxy(25,*r);
printf(" << all the info in list are: >>");


gotoxy(6,*r+2);
printf(" name avrage ");
printf(" unit amount_course st_no ");
gotoxy(6,*r+3);
printf(" ________ ________ ");
printf(" ______ ______ ____ ");
*r = 4;
}
void show(int *r, int i)
{
gotoxy(14,*r);
printf("%s ", st[i].name) ;
gotoxy(26,*r);
printf("%.2f ", st[i].avrage) ;
gotoxy(40,*r);
printf("%d ", st[i].unit) ;
gotoxy(54,*r);
printf("%d ", st[i].amount_course) ;
gotoxy(70,*r);
printf("%u ", st[i].student_number) ;
(*r) ++ ;
}
void search_main(void)
{
char j[10];
int y;
do {
printf("how do you want to search?");
printf("\n\t\t\t(1)=base on name");
printf("\n\t\t\t(2)=base on student number");
gets(j);
clrscr();
y=atoi(j);} while (y<0 || y>2);
if(y==1){
search();}
if(y==2){
search2();}
if(y!=1 && y!=2)
return ;
}
void search(void)
{
int i,r=0,m=0,t=0;
char name2[30];
printf("enter a name to search");
gets(name2);
clrscr();
for(i=0;st[i].name[0];i++)
{
if(strcmp(name2,st[i].name)==0){
t=i;
m=1; }}
if(m==1){
title(&r) ;
show(&r, t);}
if (m==0)

printf("the one you are looking for is not in the list......press any key to continue");
getch();
clrscr();
}


void save(void)
{
FILE *fp ;
register int i ;
fp = fopen("project", "wb");
if(!fp) {
printf("\n cannot open file press a key ...");
getch() ;
clrscr();
return ;
}
for(i = 0 ; i < MAX ; i++)
if(*st[i].name)
fwrite(&st[i], sizeof(struct student), 1, fp) ;
clrscr() ;
gotoxy(20, 10) ;
printf("data saved.press a key.");
getch() ;
clrscr();
}

void load(void){
FILE *fp ;
register int i ;
fp = fopen("project", "rb");
if(!fp) {
printf("\n cannot open file press a key ...");
getch() ;
clrscr();
return ;
}
for(i = 0 ; i < MAX; i++) {
fread(&st[i], sizeof(struct student), 1, fp);
if(feof(fp)) {
clrscr() ;
gotoxy(20,10) ;
printf("data are loaded.press a key...........");
getch() ;
clrscr();
return ;
}
}

}


void search2(void)
{
int i,num2,r=0,a;
printf("enter the student number for the one you are looking for");
scanf("%d",&num2);
a=0;
for(i=0;i<MAX;i++){
if(st[i].student_number==num2){
a=1;
title(&r);
show(&r,i);}}
if(a==0)
printf("the one you are lookig for is not in the list...press any key to continue...");
getch();
clrscr();
}
void in_style(int l)
{
int i,j;
char name2[30];
struct student st1={0};
for(i=l-1;i>0;i--){
for(j=0;j<i;j++)
if(strcmp(st[j].name,st[j+1].name)>0){
st1=st[j];
st[j]=st[j+1];
st[j+1]=st1;
}


}
return;
}


Salar Ashgi
چهارشنبه 09 دی 1388, 18:48 عصر
کد زیر بروش بازگشتی عناصر یک آرایه رو چاپ میکنه :




#include <iostream>
#include <conio>
void Print_array(int a[],int n){
if(n==1)
cout<<a[n-1]<<" ";
else{
Print_array(a,n-1);
cout<<a[n-1]<<" ";
}
}
//===============================
int main(){
int a[]={2,6,8,5,3};
Print_array(a,5);
getch();
}

Salar Ashgi
چهارشنبه 09 دی 1388, 19:25 عصر
#include <iostream>
#include <conio>
int Rec_Add(int a,int b){
if(b==0)
return a;
else
return Rec_Add(a+1,b-1);
}
//===========================
int Rec_Multiply(int a,int b){
if(b==1)
return a;
else
return a+Rec_Multiply(a,b-1);
}

fshb_ 1370
چهارشنبه 09 دی 1388, 22:33 عصر
تو این برنامه سعی کردم یه چیزی شبیه paint ویندوز بنویسم.
امکانات اون نداره ولی فک کنم ارزش دیدن داشته باشه:لبخندساده:

فایل mouse.h رو در فلدر include ذخیره کنید و project07 رو در bin.

ali_1369
پنج شنبه 10 دی 1388, 12:57 عصر
بزرگترین مقسوم علیه مشترک دو عدد به صورت بازگشتی



#include <conio.h>
#include <iostream.h>
int gcd(int,int);
int main()
{
int x,y;
cout<<"enter amount for x and y:";
cin>>x>>y;
int k=gcd(x,y);
cout<<k;
getch();
return 0;
}
int gcd(int x,int y)
{
if(y==0)
return x;
else
return gcd(y,x&y);
}

ali_1369
پنج شنبه 10 دی 1388, 12:58 عصر
محاسبه توان یک عدد به صورت بازگشتی



#include <iostream.h>
#include <conio.h>
int power(int,int);
int main()
{
int exp,base;
cout<<"enter base,exp:";
cin>>base>>exp;
int h=power(base,exp);
cout<<"it equals by:"<<h;
getch();
return 0;
}
int power(int base,int exp)
{
if(exp==1)
return base;
else

return base*power(base,exp-1);
}

khafan_bat
سه شنبه 15 دی 1388, 03:06 صبح
مدتی نبودم . دارم رو برنامه ی کتابخونه کار می کنم . تا حالا یه 1000 خطی شده ، تموم شد میزارم واسه دانلود !

و اما شما دوست عزیز :

تا به حال دقت کردی توابع strlwr و strupr چگونه کار می کنند ؟
خیلی ساده .... !
- در واقع کاراکتر در ++C عبارت است از یک کد 8 بیتی اسکی
- تابع اول حروفی از یک آرایه رو که بزرگ هستند کوچک و سپس چاپ میکنه
- تابع دوم حروفی از یک آرایه رو که کوچک هستند بزرگ و سپس چاپ میکنه
- این لینک ها هم مفید خواهند بود اگه به دنبال حرفه ای تر از اون چیزی هستی که من واسه دانلود گذاشتم .


http://support.sas.com/documentation/onlinedoc/sasc/doc700/html/lr1/z2056662.htm
http://www.exforsys.com/tutorials/c-language/handling-of-character-strings-in-c.html
http://www.codase.com/search/definition?name=strlwr
http://poli.cs.vsb.cz/c/help/string0.htm
http://www.conman.org/software/amc/docs/html/amc_usersguide-3.html


با تشکر
pouya.taghipour@gmail.com (http://barnamenevis.org/forum/pouya.taghipour@gmail.com)

qanewaisi
شنبه 19 دی 1388, 11:40 صبح
این برنامه رو طبق اصول شئ گرایی نوشتم، البته یه تیکه از برنامه که غیر فعالش کردم کار نمیکنه فکر کنم که باید تابع رو بصورت friend تعریف کنیم.
از اساتید می خوام که یه نگاهی بهش بندازن.



#include"iostream.h"
#include<CONIO.H>

class Complex{

double re,im;

public:
Complex(){re=0,im=0;}
Complex(double r){re=r,im=0;}
Complex(double r,double i){re=r,im=i;}
void setr(double x){re=x;}
void seti(double x){im=x;}
double getr(){return re;}
double geti(){return im;}

void set(double r,double i)
{
re=r;
im=i;
}
void print(ostream &o){
o<<re;
if(im>=0)o<<'+';
o<<im<<'i';
}
Complex operator+(Complex rhs){
Complex h;
h.re=re+rhs.re;
h.im=im+rhs.im;
return h;
}
Complex operator*(Complex rhs){
Complex h;
h.re=re*rhs.re - im*rhs.im;
h.im=im*rhs.re + re*rhs.im;
return h;
}
Complex operator*(double x){
Complex h;
h.re=re*x;
h.im=im*x;
return h;
}
/*
Complex operator *(double x,Complex rhs){
Complex h;
h.setr(x*rhs.getr());
h.seti(x*rhs.geti());

// return c*x;
return h;
}
*/

Complex operator/(Complex rhs){
double d=rhs.re * rhs.re + rhs.im*rhs.im;
Complex h;
h.re=(re*rhs.re + im*rhs.im)/d;
h.im=(im*rhs.re - re*rhs.im)/d;
return h;
}
};
ostream &operator <<(ostream &o,Complex cc){
cc.print(o);
return (o);
}



void main(){
clrscr();
Complex a(2,3),b(-1,4),c;

//a.set(2,3);
//b.set(-1,4);
c=a+b;
cout<<"\t\t\n a + b = "<<c;
c=a*b;
cout<<"\t\t\n a * b = "<<c;
c=a/b;
cout<<"\t\t\n a / b = "<<c;
c=a*2;
cout<<"\t\t\n a* 2 = "<<c;


}

qanewaisi
دوشنبه 21 دی 1388, 20:22 عصر
یه برنامه برای کار با لیست ها که تمام مباحث شئ گرایی توی این برنامه رعایت شده!




#include <iostream.h>
#include <time.h>
#include <stdlib.h>
#define SIZE 200
#define INVALID -1
#ifndef array_list_h
#define array_list_h

class array_list {
public:
array_list(int sz = 0);
~array_list() { clear(); }

bool isEmpty(void) { return (num == 0); }
bool isInList(int sample);
int getLength(void) { return num; }
int getItem(int pos) { return a[pos]; }
void setItem(int pos, int newItem) { a[pos] = newItem; }
void insert(int pos, int newItem);
void remove(int pos);

void bubbleSort(void);
void insertionSort(void);
void selectionSort(void);
void heapSort(void);
void mergeSort(void) { mergeSortStub(0, num-1); }
void quickSort(void) { quickSortStub(0, num-1); }

int sequentialSearch(int key);
int binarySearch(int key) { return binarySearchStub(0, num-1, key); }

void clear() { for (int i = 0; i < SIZE; i++) a[i] = INVALID; num = 0; }
void display() { for (int i = 0; i < num; i++) cout << a[i] << " "; cout << endl; }

private:
void swap(int& x, int& y) { int temp = x; x = y; y = temp; }

int findMin(int curr, int last);

void fixHeap(int heapsize, int root, int k);
void constructHeap(int root);
int deleteMin(void);

void merge(int start, int last);
void mergeSortStub(int start, int last);

int random(int start, int last) { srand(time(NULL)); return start + rand() % (last-start+1); }
int partition(int start, int last);
void quickSortStub(int start, int last);

int binarySearchStub(int start, int last, int key);

int num;
int a[SIZE];
};

array_list::array_list(int sz)
{
int i;
for (i = 0; i < sz; i++)
a[i] = 0;
for (i = sz; i < 200; i++)
a[i] = INVALID;
num = sz;
}

bool array_list::isInList(int sample)
{
bool check = false;
for (int i = 0; i < num; i++)
if (a[i] == sample) {
check = true;
break;
}
return check;
}

void array_list::insert(int pos, int newItem)
{
if (pos > getLength())
return;
for (int i = num; i > pos; i--)
a[i] = a[i-1];
a[pos] = newItem;
num++;
}

void array_list::remove(int pos)
{
if (pos >= getLength())
return;
for (int i = pos; i < num-1; i++)
a[i] = a[i+1];
a[num-1] = INVALID;
num--;
}

//====================== SORTING ==========================//
void array_list::bubbleSort(void)
{
for (int i = 0; i < num-1; i++)
for (int j = i+1; j < num; j++)
if (a[i] > a[j])
swap(a[i], a[j]);
}

void array_list::insertionSort(void)
{
for (int i = 0; i < num; i++) {
int j = i;
while ((j > 0) && (a[j] < a[j-1])) {
swap(a[j], a[j-1]);
j--;
}
}
}

int array_list::findMin(int curr, int last)
{
if (last - curr == 1) {
if (a[curr] < a[last])
return curr;
else
return last;
}
else {
int rest = findMin(curr+1, last);
if (a[curr] < a[rest])
return curr;
else
return rest;
}
}

void array_list::selectionSort(void)
{
for (int i = 0; i < num-1; i++) {
int j = findMin(i, num-1);
swap(a[j], a[i]);
}
}

void array_list::fixHeap(int heapsize, int root, int k)
{
if (2*root+1 > heapsize) // the root has no child
a[root] = k;
else {
int largerSubHeap;
if (2*root+1 == heapsize) // the root has 1 child
largerSubHeap = 2*root+1;
else // the root has 2 children
largerSubHeap = (a[2*root+1] > a[2*root+2]) ? (2*root+1) : (2*root+2);
if (k >= a[largerSubHeap])
a[root] = k;
else {
a[root] = a[largerSubHeap];
fixHeap(heapsize, largerSubHeap, k);
}
}
}

void array_list::constructHeap(int root)
{
int k = a[root];

if (2*root+1 >= num) // the root has no child
return;
else if (2*root+2 == num) // the root has 1 child
constructHeap(2*root+1);
else { // the root has 2 children
constructHeap(2*root+1);
constructHeap(2*root+2);
}

fixHeap(num, root, k);
}

void array_list::heapSort(void)
{
int heapsize;

constructHeap(0);
for (heapsize = num; heapsize >= 2; heapsize--) {
int currentMax = a[0];
int k = a[heapsize-1];
fixHeap(heapsize-1,0, k);
a[heapsize-1] = currentMax;
}
}

void array_list::merge(int start, int last)
{
int i, j, k;
int aux[SIZE];
int mid = (start + last) / 2;

for (i = start; i <= mid; i++)
aux[i] = a[i];
for (i = mid+1; i <= last; i++)
aux[last+mid+1-i] = a[i];
j = start; k = last;
for (i = start; i <= last; i++)
a[i] = (aux[j] < aux[k]) ? aux[j++] : aux[k--];
}

void array_list::mergeSortStub(int start, int last)
{
if (last > start) {
int mid = (last + start) / 2;
mergeSortStub(start, mid);
mergeSortStub(mid+1, last);
merge(start, last);
}
}

int array_list::partition(int start, int last)
{
swap(a[start], a[random(start, last)]);
int pivot = a[start];
int leftwall = start;

for (int i = start+1; i <= last; i++) {
if (a[i] < pivot) {
leftwall++;
swap(a[i], a[leftwall]);
}
}
swap(a[start], a[leftwall]);
return leftwall;
}

void array_list::quickSortStub(int start, int last)
{
if (last > start) {
int pivot = partition(start, last);
quickSortStub(start, pivot-1);
quickSortStub(pivot+1, last);
}
}

//====================== SEARCHING ==============//
int array_list::sequentialSearch(int key)
{
int i = 0;
while ((i < num) && (a[i] != key))
i++;
if (i == num)
return -1;
else
return i;
}

int array_list::binarySearchStub(int start, int last, int key)
{
if (last < start)
return -1;
else {
int mid = (start + last) / 2;
if (key == a[mid])
return mid;
else if (key < a[mid])
return binarySearchStub(start, mid-1, key);
else
return binarySearchStub(mid+1, last, key);
}
}




البته تابع main رو اینجا نمی بینم!! (هر کی خواست،برای برنامه خودش تابع main رو هم بنویسه)

qanewaisi
دوشنبه 21 دی 1388, 20:29 عصر
یه برنامه که طول رشته رو تا رسیدن به Enter حساب میکنه :لبخند:



#include<iostream.h>
#include<conio.h>
void main()
{
clrscr();
char ch;int i=0;
while(cin.get()!='\n')
i++;
cout<<i;
getch();
}

qanewaisi
دوشنبه 21 دی 1388, 20:30 عصر
اینم n جمله اول فیبوناچی رو حساب میکنه !



#include <iostream.h>
#include <conio.h >
main(){
int x=1;
int y=1,z=0;
int n;
cout <<"\n enter number:";
cin >>n;
cout<<x;
cout <<y;
for (int i=2;i<n;i++){
z=x+y;
x=y;
y=z;
cout<<z;
}
getch();
}

qanewaisi
دوشنبه 21 دی 1388, 20:32 عصر
تعداد فاصله هایی که تو رشته هست رو میده!



#include<iostream.h>
#include<conio.h>
void main()
{

clrscr();
int i=1;char ch;
while((ch=cin.get())!='\n')
{
if(ch==' ')
i++;
}
cout<<i;
getch();
}

qanewaisi
دوشنبه 21 دی 1388, 20:34 عصر
خروجی این برنامه بصورت :

*
**
***
****
*****

*n


#include<iostream.h>
#include<conio.h>
void star(int n)
{
if(n!=0)
{star (n-1);
for (int i=1 ; i<=n ; i++)
cout<<"*";
cout <<"\n";
}

}
void main ()
{
clrscr();
int n;
cout <<"enter a number :" ;
cin >> n;
star(n);
getch();
}

qanewaisi
دوشنبه 21 دی 1388, 20:38 عصر
اینم یه برنامه برای برج هانوی که البته بدون گرافیکه فعلا!!



#include <stacks.h>
#include <iostream.h>
TStack <int> s[3];
void transfer(int n,int from ,int to, int temp){
if(n>0){
// move n-1 disks from origin to temporary
transfer(n-1, from,temp,to);
// move n th disk from origin to destination
s[to].Push(s[from].Pop());
//move n-1 disks from temporary to destination
transfer(n-1, temp,to,from);
}
}
void PrintStacks(){
for (int i=0;i<3;i++){
cout << "\n<";
while (!s[i].IsEmpty()){
cout << s[i].Pop()<<',';
}
cout <<']';
}
}
main(){
int n;
cout<<"n:";cin>>n;
for (int i=n;i>0;i--)s[0].Push(i);

transfer(n,0,1,2);
PrintStacks();

}

qanewaisi
دوشنبه 21 دی 1388, 20:40 عصر
این برنامه هم برای محاسبه تابع sin هست که تا اجرا نکنی نمی دونی چیه!



#include<iostream.h>
#include<conio.h>
int pow(int a, int b);
int fact(int a);
double sin(int(*p)(int a,int b),int(*q)(int b),int x);
void main(){
int x;
clrscr();
cout<<"Please Enter Number : ";
cin>>x;
cout<<fact(x)<<endl<<pow(x,x);
//cout<<sin(pow,fact,x);
getch();
}
int pow(int a,int b){
int pow=1;
for (int i=1;i<=b;i++)
pow*=a;
return pow;
}
int fact(int a){
int fact=1;
for(int i=1;i<=a;i++)
fact*=i;
return fact;
}
double sin(int(*p)(int a,int b),int(*q)(int b),int x){
double sum=0;
int b=1;
for(int i=1;i<=15;i+=2){
sum+=(pow)(x,i)/(fact)(i)*b;
b=-b;
}
return sum;}

qanewaisi
سه شنبه 06 بهمن 1388, 21:44 عصر
اینم یه تابع برای محاسبه انتگرال معین یه تابع :



double integral(double (*f)(double),double a,double b,int n)
{
double s=0,dx=fabs((b-a)/n);
for(double i=0;i<n;i++)
s+=(f(a+i*dx)+f(a+(i+1)*dx));
return dx*s/2;
}

qanewaisi
سه شنبه 06 بهمن 1388, 21:48 عصر
اینم یه برنامه برای محاسبه ریشه n ام یک عدد:



double root(double n,double a)
{
double x1=1,x0;
do
{
x0=x1;
x1=(n-1)/n*x0+a/(n*pow(x0,n-1));
}while(fabs(x1-x0)>1e-6);
return x1;
}

Salar Ashgi
چهارشنبه 14 بهمن 1388, 22:17 عصر
برنامه زیر بدون استفاده از هیچ یک از توابع گرافیکی ، نمودار آماری یکسری داده ها (بین 1 تا 20)

رو رسم میکنه ، (نوشته شده در Borland 5.02) ، میتونه برای کاربردهای متفاوتی استفاده

بشه :

http://salarcpp.persiangig.com/Image%201/graph.PNG

* در ابتدا تعداد داده ها و بعد خود داده ها بین 20 - 1 را وارد می کنید .

REZAsys
شنبه 24 بهمن 1388, 15:17 عصر
من هم از این فرصت استفاده می کنم و سه برنامه (تشخیص زوج وفرد،رابطه فیثاغورس و تشخیص بزرگترین عدد)رو آپ می کنم امیدوارم خوشتان بیاد

__Genius__
یک شنبه 25 بهمن 1388, 14:12 عصر
سلام ،
اگه توجه کرده باشید به منظور اینکه بعضی از عملیاتی رو که انجام میدید ممکنه نیاز داشته باشید که به صورت Automate انجام بشن ممکنه نیاز پیدا کنید دسته ای از فایلها رو در یک Directory خاص بخواهید پاک کنید .
این قطعه کد اجازه بهتون میده که با تعیین مسیر Directory کلیه فایلهای موجود در یک دایرکتوری رو پاک کنید .
البته حواستون جمع باشه که یه زمانی برای تست روی یک دایرکتوری حساس این کارو انجام ندین ;)

x.xoma
یک شنبه 02 اسفند 1388, 18:35 عصر
سلام .
برنامه مثلث خیام ؛ پاسکال با بیانی بسیار ساده

SamanS
چهارشنبه 05 اسفند 1388, 20:48 عصر
اینم اولین پست من! برنامه‌ای که تعداد یک‌های یک عدد (چه مثبت و چه منفی) در مبنای ۲ رو می‌شماره مثلاً اگه ۵ وارد کنید خروجی می‌شه ۲:



#include <iostream>

using namespace std;

int main()
{
int n, cnt;

cin >> n;
for (cnt = 0; n; n &= n - 1, cnt++);
cout << cnt << endl;
return 0;
}

peymanjon
یک شنبه 16 اسفند 1388, 18:45 عصر
نقطه زین اسبی مختصات عنصری در ماتریس است که در آن سطر کمترین مقدار و در آن ستون بیشترین مقدار را دارد.

peymanjon
یک شنبه 16 اسفند 1388, 19:12 عصر
یک رشته و یک کاراکتر را دریافت کرده و در طول رشته هر جا که آن کاراکتر باشد را پاک میکند.

peymanjon
یک شنبه 16 اسفند 1388, 19:19 عصر
محل شروع یک رشته را در رشته دیگر پیدا میکند .

peymanjon
یک شنبه 16 اسفند 1388, 19:22 عصر
حذف یک رشته از رشته دیگر.

peymanjon
یک شنبه 16 اسفند 1388, 19:26 عصر
شطرنج به زبان C
بصورت کاملا گرافیکی و کامل.

peymanjon
یک شنبه 16 اسفند 1388, 19:30 عصر
یک عدد را از یک مبنا به مبنای دیگر میبرد.

peymanjon
یک شنبه 16 اسفند 1388, 19:34 عصر
معادله درجه 2 را حل می کند.

peymanjon
یک شنبه 16 اسفند 1388, 19:43 عصر
برنامه ماشین حساب که در این برنامه کار با لیست پیوندی را به راحتی یاد میگیرید زیرا این برنامه تماما بصورت لیست پیوندی میباشد و برای نوشتن آن تو زمان خودش کلی وقت گذاشتم.

khafan_bat
دوشنبه 17 اسفند 1388, 01:29 صبح
سلام به تمام پلاس پلاسی ها ی عزیز !

چند وقتی بود که اینجا سر نزده بودم. خوشبختانه این تاپیک خوب را افتاده ( به لطف کلیه دوستان )

در این پست یه سری لینک گذاشتم که توشون پره از انواع نمونه برنامه های C و C++‎‎

امیدوارم مفید واقع بشه. فعلا بای


http://www.functionx.com/cpp/examples/index.htm (http://www.functionx.com/cpp/examples/index.htm)
http://www.cplusplus.com/src/ (http://www.cplusplus.com/src/)
http://www.josuttis.com/libbook/examples.html (http://www.josuttis.com/libbook/examples.html)
http://www.cs.indiana.edu/~sabry/teaching/intro/fa96/code/index.html (http://www.cs.indiana.edu/%7Esabry/teaching/intro/fa96/code/index.html)
http://www.cplusplus.happycodings.com/Algorithms/index.html (http://www.cplusplus.happycodings.com/Algorithms/index.html)
http://www.brpreiss.com/books/opus4/programs/index.html (http://www.brpreiss.com/books/opus4/programs/index.html)
http://www.kralidis.ca/gis/cPlusPlus/sampleCode/ (http://www.kralidis.ca/gis/cPlusPlus/sampleCode/)
http://people.sc.fsu.edu/~burkardt/cpp_src/cpp_src.html (http://people.sc.fsu.edu/%7Eburkardt/cpp_src/cpp_src.html)
http://www.thefreecountry.com/sourcecode/cpp.shtml (http://www.thefreecountry.com/sourcecode/cpp.shtml)

iman_me
چهارشنبه 18 فروردین 1389, 00:25 صبح
سلام این یه ماشین حساب ساده داخل سی
برای خروج هم بعد از محاسبه کلید e را بزنید

baran_mehr
دوشنبه 13 اردیبهشت 1389, 13:02 عصر
یه منوی ساده:

#include<conio.h>
#include<dos.h>
#include<string.h>

int get_menu(char*,char[]="",int=1,int=15,int=11,int=12,int=1,int=14);

void main(){
int rtn;
do{
clrscr();
rtn=get_menu("Yes,No","Do you exit?",2);
}while(rtn!=1);
}



int get_menu(char *str,char *title,int cho_def,int effect_time,int text_color,int title_color,int border_color,int choice_color){
if(*str=='\0')
return 0;
int j,rtn=1,val_line=0,x_start,y_start,x_size,y_size,y _lines[100];
char ch_key;
struct text_info screen_info;

choice_color+=128;

gettextinfo(&screen_info);

x_start=screen_info.curx;
y_start=screen_info.cury;

x_size=screen_info.curx;
y_size=screen_info.cury;

_setcursortype(_NOCURSOR);

//print text of menu:
textcolor(text_color);
if(*title)
cprintf("\n\n\n");
else
cprintf("\n");
while(*str){
delay(effect_time);
if(val_line==0){
gotoxy(x_start+4,wherey());
val_line++;
y_lines[val_line-1]=wherey();

}
if((*str==',')){
if(*(str+1)==','){
cprintf(",");
str+=2;
}
else{
gotoxy(x_start+4,wherey()+2);
val_line++;
y_lines[val_line-1]=wherey();
str++;
}
}
else{
putch(*str);
str++;
}
x_size=wherex()>x_size ? wherex() : x_size;
}
y_size=wherey()>y_size ? wherey() : y_size;
x_size-=x_start;
y_size-=y_start;
y_size++;
textcolor(title_color);
if(*title){
x_size=strlen(title)+5>x_size ? strlen(title)+5 : x_size;
gotoxy(((x_size+2)-strlen(title)+1)/2,y_start+1);
cprintf("%s",title);
}

//Draw border:
textcolor(border_color);
gotoxy(x_start,y_start);
putch(201);
gotoxy(x_start+x_size,y_start);
putch(187);
for(j=y_start+1;j<y_start+y_size;j++){
delay(effect_time);
if((j==y_start+2)&&(*title!='\0')){
gotoxy(x_start,j);
putch(199);
gotoxy(x_start+x_size,j);
putch(182);
}
else{
gotoxy(x_start,j);
putch(186);
gotoxy(x_start+x_size,j);
putch(186);
}
}
gotoxy(x_start,y_start+y_size);
putch(200);
gotoxy(x_start+x_size,y_start+y_size);
putch(188);
for(j=x_start+1;j<x_start+x_size;j++){
delay(effect_time);
gotoxy(j,y_start);
putch(205);
if(*title!='\0'){
gotoxy(j,y_start+2);
putch(196);
}
gotoxy(j,y_start+y_size);
putch(205);
}
textcolor(choice_color);
if(cho_def>val_line)
rtn=val_line;
else if(cho_def<1)
rtn=1;
else
rtn=cho_def;
do{
gotoxy(x_start+2,y_lines[rtn-1]);
putch(16);
ch_key=getch();
if(ch_key==0)
ch_key=getch();
if((ch_key==72)&&(rtn>1)){
gotoxy(x_start+2,y_lines[rtn-1]);
putch(' ');
rtn--;
gotoxy(x_start+2,y_lines[rtn-1]);
putch(16);
}
else if((ch_key==80)&&(rtn<val_line)){
gotoxy(x_start+2,y_lines[rtn-1]);
putch(' ');
rtn++;
gotoxy(x_start+2,y_lines[rtn-1]);
putch(16);
}

}while(ch_key!=13);
textcolor(choice_color-128);
gotoxy(x_start+2,y_lines[rtn-1]);
putch(4);

gotoxy(x_start,y_start+y_size+1);
normvideo();
_setcursortype(_NORMALCURSOR);
return rtn;

}

LORD AELX
چهارشنبه 15 اردیبهشت 1389, 12:19 عصر
اینم یه برنامه ساده برای پیدا کردن controlrol و keycode کلید های روی صفحه کلید با ++C


http://barnamenevis.org/forum/showthread.php?p=971900#post971900

giootin_tiz
سه شنبه 21 اردیبهشت 1389, 22:36 عصر
سرچ درجی



<!-- /* Font Definitions */ @font-face {font-family:&quot;Cambria Math&quot;; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:0; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:-1610611985 1107304683 0 0 159 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:&quot;&quot;; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:&quot;Times New Roman&quot;,&quot;serif&quot;; mso-fareast-font-family:&quot;Times New Roman&quot;;} p.MsoPlainText, li.MsoPlainText, div.MsoPlainText {mso-style-unhide:no; mso-style-link:&quot;Plain Text Char&quot;; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:&quot;Courier New&quot;; mso-fareast-font-family:&quot;Times New Roman&quot;;} span.PlainTextChar {mso-style-name:&quot;Plain Text Char&quot;; mso-style-unhide:no; mso-style-locked:yes; mso-style-link:&quot;Plain Text&quot;; font-family:&quot;Courier New&quot;; mso-ascii-font-family:&quot;Courier New&quot;; mso-hansi-font-family:&quot;Courier New&quot;; mso-bidi-font-family:&quot;Courier New&quot;;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; font-size:10.0pt; mso-ansi-font-size:10.0pt; mso-bidi-font-size:10.0pt;} @page Section1 {size:8.5in 11.0in; margin:1.0in 65.95pt 1.0in 65.95pt; mso-header-margin:.5in; mso-footer-margin:.5in; mso-paper-source:0;} div.Section1 {page:Section1;} --> insertion_sort ( int arr[ ] , int n )

{

register int i , j , t ;

for ( i = 1 ; i < n ; i++ )

{

t = arr[ i ] ;

for ( j = i ; j > 0 && arr[ j - 1 ] >= t ; j-- )

arr[ j ] = arr[ j - 1 ] ;

arr[ i ] = t ;

}

}

giootin_tiz
سه شنبه 21 اردیبهشت 1389, 22:38 عصر
#include<iostream>
using namespace std;

void swap1(int &a,int &b) //commonly used
{
int temp;
temp=a;
a=b;
b=temp;
}

void swap2(int &a,int &b) //doesnt involve the use of a temporary variable
{
a=a+b;
b=a-b;
a=a-b;
}

int main()
{
int a,b;
cout<<"enter two numbers :";
cin>>a>>b;

swap1(a,b);
cout<<a<<" "<<b;

swap2(a,b);
cout<<a<<" "<<b;

system("pause");
return 0;
}

giootin_tiz
سه شنبه 21 اردیبهشت 1389, 22:41 عصر
pop double stack


#include <stdio.h>
#define MAXSIZE 100


int sp = 0;

double stack[MAXSIZE];


void push(double f)

{

if (sp < MAXSIZE)

stack[sp++] = f;

else

printf("error: stack is full\n");

}


double pop()

{

if (sp > 0)

return stack[--sp];

else

{

printf("error: stack is empty\n");

return 0;

}

}

giootin_tiz
پنج شنبه 23 اردیبهشت 1389, 22:02 عصر
واقعا من خودم این برنامه رو دوست دارم چون تقسیم رو با باقی مانده جواب میده


#include<conio.h>
#include<iostream.h>
#define Max 20
class Poly;
class PolyNode
{
friend Poly;
float Coef;
int Pow;
};
class Poly
{
int n;
PolyNode Data[Max];
public:
void Poly::SortPoly(void);
void ReadPoly(void);
void WritePoly(void);
void AddPoly(Poly a,Poly b);
void SubtractPoly(Poly a,Poly b);
void MulPoly(Poly a,Poly b);
void Poly::ItemPoly(float Coef,int Pow,Poly b);
void Poly::TaghsimPoly(int k,Poly a,Poly b);
};
void Poly::SortPoly(void)
{
int i,j;
PolyNode item;
for(i=n-1;i>0;i--)
for(j=0;j<i;j++)
if(Data[j].Pow<Data[j+1].Pow)
{
item=Data[j];
Data[j]=Data[j+1];
Data[j+1]=item;
}
while(i<n-1)
if(Data[i].Pow==Data[i+1].Pow)
{
Data[i].Coef+=Data[i+1].Coef;
for(j=i+1;j<n-1;j++)Data[j]=Data[j+1];
n--;
}else i++;
}
void Poly::ReadPoly(void)
{
int i;
cout<<"\nPlease enter parts of poly : ";
cin>>n;
cout<<"\nPlease enter Polynomial : \n\n";
for(i=0;i<n;i++)
{
cin>>Data[i].Coef;
cout<<" x^"<<endl;
cin>>Data[i].Pow;
cout<<" +"<<endl;
}
}
void Poly::WritePoly(void)
{
int i;
cout<<"\n";
for(i=0;i<n;i++)cout<<Data[i].Coef<<"X^"<<Data[i].Pow<<" + ";
}
void Poly::AddPoly(Poly a,Poly b)
{
int i,j,k;
i=j=k=0;
while(i<a.n&&j<b.n)
{
if(a.Data[i].Pow>b.Data[j].Pow)
{
Data[k].Coef=a.Data[i].Coef;
Data[k++].Pow=a.Data[i++].Pow;
}
else if(a.Data[i].Pow<b.Data[j].Pow)
{
Data[k].Coef=b.Data[j].Coef;
Data[k++].Pow=b.Data[j++].Pow;
}
else if(a.Data[i].Coef+b.Data[j].Coef)
{
Data[k].Coef=a.Data[i].Coef+b.Data[j].Coef;
Data[k++].Pow=a.Data[i++].Pow;
j++;
}
else
{
i++;
j++;
}
}
while(i<a.n)
{
Data[k].Coef=a.Data[i].Coef;
Data[k++].Pow=a.Data[i++].Pow;
}
while(j<b.n)
{
Data[k].Coef=b.Data[j].Coef;
Data[k++].Pow=b.Data[j++].Pow;
}
n=k;
}
void Poly::SubtractPoly(Poly a,Poly b)
{
int i,j,k;
i=j=k=0;
while(i<a.n&&j<b.n)
{
if(a.Data[i].Pow>b.Data[j].Pow)
{
Data[k].Coef=a.Data[i].Coef;
Data[k++].Pow=a.Data[i++].Pow;
}
else if(a.Data[i].Pow<b.Data[j].Pow)
{
Data[k].Coef=b.Data[j].Coef;
Data[k++].Pow=b.Data[j++].Pow;
}
else if(a.Data[i].Coef-b.Data[j].Coef)
{
Data[k].Coef=a.Data[i].Coef-b.Data[j].Coef;
Data[k++].Pow=a.Data[i++].Pow;
j++;
}
else
{
i++;
j++;
}
}
while(i<a.n)
{
Data[k].Coef=a.Data[i].Coef;
Data[k++].Pow=a.Data[i++].Pow;
}
while(j<b.n)
{
Data[k].Coef=b.Data[j].Coef;
Data[k++].Pow=b.Data[j++].Pow;
}
n=k;
}
void Poly::MulPoly(Poly a,Poly b)
{
int i,j,k;
i=j=k=0;
while(i<a.n)
{
j=0;
while(j<b.n)
{
Data[k].Coef=a.Data[i].Coef*b.Data[j].Coef;
Data[k++].Pow=a.Data[i].Pow+b.Data[j++].Pow;
}
i++;
}
n=k;
}
void Poly::ItemPoly(float Coef,int Pow,Poly b)
{
int j,t;
j=t=0;
while(j<b.n)
{
Data[t].Coef=Coef*b.Data[j].Coef;
Data[t++].Pow=Pow+b.Data[j++].Pow;
}
n=t;
}
void Poly::TaghsimPoly(int k,Poly a,Poly b)
{
Poly d,e;
p:
if(a.Data[0].Pow>=b.Data[0].Pow)
{
Data[k].Pow=a.Data[0].Pow-b.Data[0].Pow;
Data[k].Coef=a.Data[0].Coef/b.Data[0].Coef;
d.ItemPoly(Data[k].Coef,Data[k].Pow,b);
e.SubtractPoly(a,d);
k++;
}
n=k;
if(e.Data[0].Pow>=b.Data[0].Pow)TaghsimPoly(k,e,b);
else
{
cout<<"\nMod Is : \n";
e.WritePoly();
}
}
void main(void)
{
Poly a,b,c;
char Sign;
a.ReadPoly();
a.SortPoly();
cout<<"\nPlease enter sign(+,-,*,/) : ";
cin>>Sign;
b.ReadPoly();
b.SortPoly();
switch(Sign)
{
case'+':
c.AddPoly(a,b);
break;
case'-':
c.SubtractPoly(a,b);
break;
case'*':
c.MulPoly(a,b);
c.SortPoly();
break;
case'/':
c.TaghsimPoly(0,a,b);
break;
}
cout<<"\n\nAnswer Is : \n";
c.WritePoly();
getche();

sasan_vm
جمعه 07 خرداد 1389, 20:18 عصر
این برنامه یک فایل source C را با درج تورفتگی های مناسب مرتب میکند.

sasan_vm
جمعه 07 خرداد 1389, 20:19 عصر
برنامه ساعت analog

sasan_vm
جمعه 07 خرداد 1389, 20:20 عصر
برنامه رسم DFA و مینیمم سازی آن و...

sasan_vm
جمعه 07 خرداد 1389, 20:21 عصر
ادیتور فارسی برای Dos

sasan_vm
جمعه 07 خرداد 1389, 20:22 عصر
فونت ادیت (FontEdit) برای Dos

sasan_vm
جمعه 07 خرداد 1389, 20:23 عصر
برنامه ای برای جابجایی، چرخش و تغیر سایز یک شکل

sasan_vm
جمعه 07 خرداد 1389, 20:24 عصر
رسم منو (Menu)

sasan_vm
جمعه 07 خرداد 1389, 20:26 عصر
پازل جدول 9

sasan_vm
جمعه 07 خرداد 1389, 20:28 عصر
پازل ساختن تصویر بهم ریخته

sasan_vm
جمعه 07 خرداد 1389, 20:30 عصر
شبیه سازی ماشین تورینگ Turing

Shiva.K
پنج شنبه 13 خرداد 1389, 23:38 عصر
چاپ مثلث بالای قطر فرعی
پایینش و ببینید میتونید بنویسید اگه نه براتون بذارم تمرین خوبیه برای آرایه ها! :لبخندساده:



#include<iostream.h>
#include<conio.h>
int main()
{
int n,i,j;
cout<< "Enter num:";
cin>> n;
for(i = n; i >= 1; --i){
for(j = 1; j <= i; ++j)
cout<< '*';
cout<< '\n';
}
getch();
return 0;
}

eshpilen
جمعه 21 خرداد 1389, 00:02 صبح
داشتم فایلهام رو مرور میکردم که این برنامهء قدیمی رو که خیلی وقت پیش نوشته بودم و در یک فروم یکی از دوستان ایدهء نوشتنش رو مطرح کرده بود دیدم.
گفتم بذارم اینجا بد نیست بالاخره از اینکه جایی که کسی بهش دسترسی نداره خاک بخوره بهتره.
این برنامه یک ادیتور متن ساده و آزمایشی هست که با سی و تحت داس نوشته شد.
بنظرم بخش بزرگی از پیچیدگی و حجمش بخاطر اینه که نمایش خطوط طولانی تر از تعداد ستونهای صفحهء نمایش و همینطور عبور از سطر آخر صفحهء نمایش و اینطور چیزها رو مدیریت میکنه. یعنی مثلا وقتی طول خط از 80 ستون بیشتر میشه کاراکترها یکی به سمت چپ میرن و غیره. ضمنا اون دوستی که پیشنهادش رو داده بود نظرش یک ادیتور خیلی ساده تر بود که فقط کاربرد لیست پیوندی رو باهاش نمایش بدیم و تجاوز از ستونها و سطرهای صفحهء نمایش رو مدیریت نکنه، ولی من سعی کردم تاحد امکان از نظر کارایی آزمایشی کامل باشه و ضمنا بیشتر استانداردهاش رو هم سعی کردم از نوتپد ویندوز بگیرم. خلاصه اکثر امکانات ویرایشی پایه مثل select کردن و کپی و پیست و غیره رو داره.
فایل ضمیمه شده شامل سورس (فقط یک فایل سی) و فایل exe هست.
وقتی برنامه رو اجرا کردید کلید F1 رو که بزنید یک Help مختصر میاد که هر کارایی و ترکیب کلید مربوطه رو معرفی کرده. با کلید ESC هم خارج بشید.
متاسفانه بخاطر محدودیت حافظهء داس، حجم فایلهایی که میشه با این برنامه باز کرد یا حجم متنی که میشه تایپ کرد خیلی محدوده؛ البته من یک بار با استفاده از اشاره گرهای بزرگتر یا یه همچین چیزی (زمان زیادی میگذره و یادم رفته دقیقا چی بود :لبخند:) مقدارش رو افزایش دادم اما سورس اون از دست رفت و دیگه هم درستش نکردم.
ضمنا برنامه وقتی با Alt+Enter اون رو به حالت Full screen ببرید خیلی سریعتر کار میکنه و محیطش هم ظاهر مناسبتری داره.

kitten
سه شنبه 25 خرداد 1389, 09:59 صبح
سلام دوستان
یكی از اساتید عزیز یه برنامه در خواست كرده بود كه بنویسیم ، گفته بود كه یه برنامه دیكشنری بنویسید. من هم نوشتم گفتم حالا كه نوشتم بیام بفرستم كه دیگران هم استفاده كنیم.
این برنامه از طریق Ado db و با یك دیتابیس access كار می كنه
اسمش هم گذاشتم Kudos كه یعنی جلال!!!!
(نگید چرا این قدر علامت تعجب گذاشتم، انهایی كه باید بفهمند می فهمند)
این فایل باینری : http://kitten2.persiangig.com/Kudos%20Dic-Bin.rar
و اینم سورس كد به علاوه فایل باینری :
http://kitten2.persiangig.com/Kudos%20Dic.rar
این برنامه با ویژوال سی پلاس پلاس 2005 است.
برای اطلاعات بیشتر به وبلاگ من سر بزنید.
http://kitten2.persiangig.com/kudos%20dic.JPG

matinfar1981
پنج شنبه 10 تیر 1389, 22:00 عصر
سلام
این یه برنامه ساده برای کار با فایله. امیدوارم مفید باشه.

ashkan_d13
سه شنبه 15 تیر 1389, 15:52 عصر
یه بازی 5 مرحله ای! :اشتباه:
فقط با استفاده از کدهای اسکی
net, console application. //

ashkan_d13
شنبه 19 تیر 1389, 16:50 عصر
بازی snake

Shiva.K
سه شنبه 22 تیر 1389, 17:53 عصر
سلام،
یک کد برای ترتیب نزولی بر اساس معدل دانشجو



#include <stdio.h>
#include <conio.h>
#include <string.h>
#define N 4
main()
{
int ave[N],i,j,t;
char name[N][20],str[20];
for(i=0;i<N;i++)
{
printf("Enter Name[%d]: ",i+1);
scanf("%s",name[i]);
printf("Enter Average[%d]: ",i+1);
scanf("%d",&ave[i]);
}
for(j=N;j>0;j--)
for(i=0;i<j-1;i++)
{
if(ave[i]<ave[i+1])
{
t=ave[i];
ave[i]=ave[i+1];
ave[i+1]=t;
strcpy(str,name[i]);
strcpy(name[i],name[i+1]);
strcpy(name[i+1],str);
}
}
printf("\nSorted name acording to ave:\n");
for(i=0;i<N;i++)
{
printf("%s has average %d \n",name[i],ave[i] );
}
getch();

}

Shiva.K
سه شنبه 22 تیر 1389, 17:57 عصر
برنامه ی شاگرد اول


#include <stdio.h>
#include <conio.h>
#define N 4
main()
{
int ave[N],i,saveNo=0,max;
char name[N][20];
for(i=0;i<N;i++)
{
printf("Enter Name[%d]: ",i+1);
scanf("%s",name[i]);
printf("Enter Average[%d]: ",i+1);
scanf("%d",&ave[i]);
}
max=ave[0];
saveNo=0;
for(i=0;i<N;i++) {
if(ave[i]> max) {
saveNo=i;
max=ave[i];
}
}
printf("Best Student=%s with Average=%d",name[saveNo],ave[saveNo]);
getch(); }

Shiva.K
سه شنبه 22 تیر 1389, 18:25 عصر
یک کد برای برنامه:لبخند:
همیشه آشنا
phone book




#include <stdio.h>
#include <conio.h>
#include <string.h>
FILE *fptr;
struct info
{char name[20];
char number[15];
}user;
void meno();
void gereftan_etelaat();
void namayesh();
void jostojou();
/************************************************** ***************************/
int main()
{
fptr=fopen("phonbook.txt","a+");
meno();
fclose(fptr);
return 0;
}
/************************************************** ***************************/
void meno()
{int c;
clrscr();
printf("1- gereftan_etelaat\n2- namayesh\n3- jostojou\n4- khorouj\n");
printf("\nPlease enter your choice's number:");
scanf("%d",&c);
switch(c)
{
case 1 :gereftan_etelaat();break;
case 2 :namayesh(); break;
case 3 :jostojou();break;
case 4 :break;/*exit*/ }
}
/************************************************** ***************************/
void gereftan_etelaat()
{clrscr();
textcolor(11);
cprintf("Please enter the name:");
scanf("%s",user.name);
textcolor(11);
cprintf("Please enter the number:");
scanf("%s",user.number);
fprintf(fptr,"%s : %s\n",user.name,user.number);
clrscr();
textcolor(10);
cprintf("The info has been saved.");
printf("\n");
textcolor(15);
cprintf("If you want to go back to the menu press enter.");
if(getch()=='\r')
meno();
}
/************************************************** ***************************/
void namayesh()
{char c;
clrscr();
rewind(fptr);
while(1)
{c = fgetc(fptr);
if(c!=EOF)
printf("%c",c);
else break;}
printf("\n\n\n");
textcolor(10);
cprintf("If you want to go back to the menu press enter.");
if(getch()=='\r')
meno();
}
/************************************************** ***************************/
void jostojou()
{char s[15],m[15],v[15];
clrscr();
printf("Please enter the name or number for starting to search:\n");
scanf("%s",v);
rewind(fptr);
while(fscanf(fptr,"%s%s%s",s,m,m)!= EOF)
if(strcmpi(s,v)==0||strcmpi(m,v)==0)
{clrscr();
printf("%s:%s",s,m);}
printf("\n\n\n");
textcolor(14);
cprintf("If you want to go back to the menu press enter.");
if(getch()=='\r')
meno();
}
/************************************************** ***************************/

matinfar1981
پنج شنبه 24 تیر 1389, 21:43 عصر
این برنامه یه کتابخونه س که اطلاعات کتاب ها به صورت باینری در فایل نوشته میشه. شامل یه منو برای اضافه کردن ، حذف ، ویرایش ، امانت گرفتن و برگشت دادن کتابه. از بارگذاری عملگرها هم استفاده شده.

Shyan Javani
جمعه 25 تیر 1389, 13:26 عصر
این هم اولین برنامه درست و حسابی من(یه برنامه دیگه هم دارم که یه عدد میگیره میگه اوله یا مرکب .یکی هم ناقصه که بین دو تا عدد اعداد اول رو پیدا میکنه.بخواید اینا رو هم میذارم)
(پیدا کردم جفت اعداد صلح آمیز و اعداد کامل)(en.wikipedia.org/wiki/amicable_pairs)

فایل main.cpp


#include <conio.h>
#include <iostream>
#include <math.h>
#include <stdlib.h>
#include "conticker.h"
#include "conticker.cpp"
using namespace std;
int main(){
char c='y';
do{
int start,end;
int ai=0,pi=0;
bool checked=true;
cout<<"----------------------------------------\n";
cout<<"Enter a number to begin with : ";
cin>>start;
cout<<"Enter a number to finish with : ";
cin>>end;
cout<<"----------------------------------------\n";
if(start>=end){
cout<<"The beginning number must be smaller than the ending one.\n";
continue;}
else{
system("cls");
cout<<"Searching from "<<start<<" to "<<end<<".\n\n";
if(start==1) start=2;
long double a[500][2],p[500];
a[0][0]=0;
p[0]=0;
ConTicker::start();
for (size_t i = 0; i < 200; ++i) {
for(int i=start;i<=end;++i){
int sum1=1,sum2=1;
for(int j=(int)sqrt(i);j>1;--j){
if(i%j==0){
sum1+=j;
sum1+=i/j;
}
}
for(int j=(int)sqrt(sum1);j>1;--j){
if(sum1%j==0){
sum2+=j;
sum2+=sum1/j;
}
}
if(sum2==i){
if(sum1==i){
for(int j=0;p[j]!=0;++j){
if(p[j]==i){
checked=false;
break;}}
if(checked){
p[pi]=i;
++pi;
p[pi]=0;
cout<<"\rI found a perfect number : "<<i<<"\nPlease wait";}
checked=true;}
else{
if(sum1<i){
for(int j=0;a[j][0]!=0;++j){
if(a[j][0]==sum1){
checked=false;
break;}}
if(checked){
a[ai][0]=sum1;
a[ai][1]=i;
++ai;
a[ai][0]=0;
cout<<"\rI found an amicable pair : ("<<sum1<<","<<i<<")\nPlease wait";}
checked=true;}
else if(sum1>i ){
for(int j=0;a[j][0]!=0;++j){
if(a[j][0]==i){
checked=false;
break;}}
if(checked){
a[ai][0]=i;
a[ai][1]=sum1;
++ai;
a[ai][0]=0;
cout<<"\rI found an amicable pair : ("<<i<<","<<sum1<<")\nPlease wait";}
checked=true;}}}
ConTicker::tick();}}
ConTicker::stop();
cout<<"\n----------------------------------------\n";
cout<<"Do you want to continue(y/n)?";
cin>>c;}}
while(c=='y');
return 0;
}


فایل conticker.h


class ConTicker
{
public:
ConTicker() {}
static void start();
static void tick();
static void stop();
private:
static time_t t;
static size_t i;
static const char* c;
};


فایل conticker.cpp




#include <windows.h>
#include <time.h>

time_t ConTicker::t = 0;
size_t ConTicker::i = 0;
void ConTicker::start()
{
time(&ConTicker::t);
i = 0;
}
void ConTicker::tick()
{
if (ConTicker::t) {
time_t t;
time(&t);
if (0.01 < difftime(t,ConTicker::t)) {
ConTicker::t = t;
ConTicker::i = ((ConTicker::i+1)&3);
if(ConTicker::i!=0){
_putch('.');
}
else{
_cputs("\r \rPlease wait");
}
}
}
}
void ConTicker::stop()
{
ConTicker::i = 0;
ConTicker::t = 0;
_cputs("\rDone! \r\n");
cout<<"\a";
}

این یارو conticker چیز جالب و به درد بخوریه البته کار من نیست من فقط از یه بک اسلش چرخون به please wait و سه تا نقطه تغییرش دادم.
این برنامه رو تازه کارا حتما بخونن
امیدوارم خوشتون بیاد

fmostafa
جمعه 25 تیر 1389, 14:59 عصر
سلام
برنامه تبدیل عبارت میانوندی (Infix) به پسوندی (Postfix)

ashkan_d13
شنبه 26 تیر 1389, 15:09 عصر
کلاس Huge Integers و محاسبه ی فاکتوریل اعداد بزرگ

farzad2121
پنج شنبه 14 مرداد 1389, 12:56 عصر
بابا ما جز cچیزدیگه بلد نیستیم اونم به زور و زحمت
این برنامه با کامپایلر بورلند نوشته شده وکتابهایی وارد میکنی و کتابهای قبل از انقلاب را مشخص میکنه.

Salar Ashgi
یک شنبه 17 مرداد 1389, 19:37 عصر
رسم دو لوزی در کنار هم :

http://www.barnamenevis.org/forum/attachment.php?attachmentid=53813&stc=1&d=1281281803


#include <iostream>
#include <conio>
void fasele(int n){
for(int i=1;i<=n;i++)
cout<<" ";
return;
}
//---------------------
int main(){
int n;
cout<<"Enter n\n";
cin>>n;
int a=n,b=n-1,c=n-1;
for(int i=1;i<=2*n-1;i+=2){
fasele(a);
for(int j=1;j<=i;j++)
cout<<"*";
fasele(b);
fasele(c);
for(int k=1;k<=i;k++){

cout<<"*";}
cout<<endl;
a--;
b--;
c--;
}
int d=2,e=1,f=1;
for(int i=2*n-3;i>=1;i-=2){
fasele(d);
for(int j=1;j<=i;j++)
cout<<"*";
fasele(e);
fasele(f);
for(int k=1;k<=i;k++)
cout<<"*";
cout<<endl;
e++;
f++;
d++;
}
cout<<"---------------------------------------------------\n\n";
cout<<" Designer : Salar Ashgi\n";
getch();
}

Salar Ashgi
یک شنبه 17 مرداد 1389, 19:40 عصر
محاسبات منطقی رو داده های دودویی : (OR,AND , XOR) با برنامه نویسی شی گراء



#include <iostream>
#include <conio>
#include <string>
class logic{
private:
char a[200],b[200];
public:
logic(char [],char []);
void OR();
void AND();
void XOR();
};
logic::logic(char r[],char t[]){
int x1=strlen(r),x2=strlen(t);
for(int i=0;i<x1;i++)
a[i]=r[i];
for(int j=0;j<x2;j++)
b[j]=t[j];
}
void logic::OR(){
int f=strlen(a);
char c[200];
for(int i=0;i<f;i++){
if(a[i]=='1' && b[i]=='1')
c[i]='1';
else if(a[i]=='0' && b[i]=='0')
c[i]='0';
else if(a[i]=='1' && b[i]=='0')
c[i]='1';
else if(a[i]=='0' && b[i]=='1')
c[i]='1';}
for(int j=0;j<f;j++)
cout<<c[j];
}
void logic::AND(){
int f=strlen(a);
char c[200];
for(int i=0;i<f;i++){
if(a[i]=='0' && b[i]=='0')
c[i]='0';
else if(a[i]=='1' && b[i]=='1')
c[i]='1';
else if(a[i]=='1' && b[i]=='0')
c[i]='0';
else if(a[i]=='0' && b[i]=='1')
c[i]='0';}
for(int j=0;j<f;j++)
cout<<c[j];
}
void logic::XOR(){
int f=strlen(a);
char c[200];
for(int i=0;i<f;i++){
if(a[i]=='0' && b[i]=='0')
c[i]='0';
else if(a[i]=='1' && b[i]=='1')
c[i]='0';
else if(a[i]=='0' && b[i]=='1')
c[i]='1';
else if(a[i]=='1' && b[i]=='0')
c[i]='1';}
for(int j=0;j<f;j++)
cout<<c[j];
}

int main(){
char a[200],b[200];
cout<<"Enter Two Bit Strings\n";
cin.getline(a,200);
cin.getline(b,200);
cout<<"_________________________________\n";
logic f(a,b);
cout<<"OR: ";
f.OR();
cout<<endl;
cout<<"AND: ";
f.AND();
cout<<endl;
cout<<"XOR: ";
f.XOR();
getch();
}

Salar Ashgi
یک شنبه 17 مرداد 1389, 20:48 عصر
پیدا کردن ورژن سیستم عامل :



#include <windows.h>
#include <iostream>
#include <dos.h>
#include <string.h>
#include <conio>
int main(void)

{
OSVERSIONINFO osver;
osver.dwOSVersionInfoSize = sizeof(osver);
if (GetVersionEx(&osver))

{
if (osver.dwPlatformId == VER_PLATFORM_WIN32s)
cout <<"Win32 ";
else if (osver.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)

{
if (osver.dwMinorVersion == 0 && (strchr(osver.szCSDVersion,'B') == NULL)
&& (strchr(osver.szCSDVersion,'C') == NULL))
cout <<"Windows 95 ";
else if (osver.dwMinorVersion == 0 && (strchr(osver.szCSDVersion,'B') != NULL))
cout <<"Windows 95 OSR 2 ";
else if (osver.dwMinorVersion == 0 && (strchr(osver.szCSDVersion,'C') != NULL))
cout <<"Windows 95 OSR 2.5 ";
else if (osver.dwMinorVersion == 10 && (strchr(osver.szCSDVersion,'A') == NULL))
cout <<"Windows 98 ";
else if (osver.dwMinorVersion == 10 && (strchr(osver.szCSDVersion,'A') != NULL))
cout <<"Windows 98 Second Edition ";
else if (osver.dwMinorVersion == 90)
cout <<"Windows Millenium Edition ";
else
cout<<"Unknown Windows ";
}
else if (osver.dwPlatformId == VER_PLATFORM_WIN32_NT)
cout <<"Windows NT ";
cout <<osver.dwMajorVersion<<"."<<osver.dwMinorVersion<<"."
<<(osver.dwBuildNumber & 0xffff)<<osver.szCSDVersion<<endl;
}
else


{
cout <<"Cannot gain version information."<<endl;
}
system("pause");
getch();
}


منبع : http://www.cplusplus.happycodings.com/code_snippets/code19.html

Salar Ashgi
یک شنبه 17 مرداد 1389, 21:19 عصر
پیدا کردن ورژن سیستم عامل بصورت خیلی ساده تر و کاربردی تر (توسط خودم) :



#include <iostream>
#include <conio>
#include <stdlib>
int main(){
system("ver");
getch();
}

behroz1992
دوشنبه 18 مرداد 1389, 16:00 عصر
سلام
کسی برنامه ضرب دو عدد صحیح خیلی بزرگ رو کامل داره؟(هر زبانی می تونه باشه)
سلام دوست عزیز به این تاپیک مراجعه کن:

http://www.barnamenevis.org/forum/showthread.php?t=112354

http://barnamenevis.org/forum/showthread.php?t=164466&highlight=%D8%B6%D8%B1%D8%A8+%D8%B9%D8%AF%D8%AF+%D 8%A8%D8%B2%D8%B1%DA%AF

http://barnamenevis.org/forum/showthread.php?t=202764&highlight=%D8%B6%D8%B1%D8%A8+%D8%B9%D8%AF%D8%AF+%D 8%A8%D8%B2%D8%B1%DA%AF

موفق باشید

majid.nasirinejad
یک شنبه 24 مرداد 1389, 04:04 صبح
این برنامه یک بازی ساده است و برای آشنایی مفاهیم پایه...
برای شروع برنامه نویسی بسیار مفیده...

majid.nasirinejad
یک شنبه 24 مرداد 1389, 04:06 صبح
این هم بازی معروف Chinese Checker که برای درک آرایه ها بسیار مفیده...

saied-jackson
یک شنبه 31 مرداد 1389, 12:43 عصر
سلام . یه برنامه که هر کاراکتر رو به صورت star رسم میکنه اسمشو گذاشتم startext
فقط حروفات انگلیسی .

http://aks98.com/images/a1257nrvqk4f5ncwbfi.jpg

دانلود (http://aks98.com/images/6jc4kroydbma2qbe7xjt.rar)

dominic programmer
شنبه 06 شهریور 1389, 13:15 عصر
این سورس کد از سایت GPwiki برداشت شده و آن را در اینجا گذاشتم تا همه برنامه نویسان ++C از آن استفاده کنند.

این سورس کد فایل های 8 بیت و 24 بیت RGB با پسوند bmp را در ++C بار گذاری می کند.



// BMP Loader - Codehead 08/11/04
//
#include <iostream>
#include <fstream>
#include <memory.h>

#define IMG_OK 0x1
#define IMG_ERR_NO_FILE 0x2
#define IMG_ERR_MEM_FAIL 0x4
#define IMG_ERR_BAD_FORMAT 0x8
#define IMG_ERR_UNSUPPORTED 0x40

class BMPImg
{
public:
BMPImg();
~BMPImg();
int Load(char* szFilename);
int GetBPP();
int GetWidth();
int GetHeight();
unsigned char* GetImg(); // Return a pointer to image data
unsigned char* GetPalette(); // Return a pointer to VGA palette

private:
unsigned int iWidth,iHeight,iEnc;
short int iBPP,iPlanes;
int iImgOffset,iDataSize;
unsigned char *pImage, *pPalette, *pData;

// Internal workers
int GetFile(char* szFilename);
int ReadBmpHeader();
int LoadBmpRaw();
int LoadBmpRLE8();
int LoadBmpPalette();
void FlipImg(); // Inverts image data, BMP is stored in reverse scanline order
};


BMPImg::BMPImg()
{
pImage=pPalette=pData=NULL;
iWidth=iHeight=iBPP=iPlanes=iEnc=0;
}


BMPImg::~BMPImg()
{
if(pImage)
{
delete [] pImage;
pImage=NULL;
}

if(pPalette)
{
delete [] pPalette;
pPalette=NULL;
}

if(pData)
{
delete [] pData;
pData=NULL;
}
}


int BMPImg::Load(char* szFilename)
{
int iRet;

// Clear out any existing image and palette
if(pImage)
{
delete [] pImage;
pImage=NULL;
}

if(pPalette)
{
delete [] pPalette;
pPalette=NULL;
}

// Get the file into memory
iRet=GetFile(szFilename);

if(iRet!=IMG_OK)
return iRet;

// Process the header
iRet=ReadBmpHeader();

if(iRet!=IMG_OK)
return iRet;

if(iBPP<8) // We'll only bother with 8 bit and above
return IMG_ERR_UNSUPPORTED;

// Get the image data
switch(iEnc)
{
case 0: // Uncompressed
iRet=LoadBmpRaw(); // 8 / 24 Bit. (24 bit is in BGR order)
break;

case 1: // RLE 8 (Indexed 256 colour only)
iRet=LoadBmpRLE8();
break;

case 2: // RLE 4 (16 Colour indexed, Outdated, not covered here)
return IMG_ERR_UNSUPPORTED;

case 3: // Bitfields (16/32 bit only, Rare, not covered here)
return IMG_ERR_UNSUPPORTED;

default:
return IMG_ERR_UNSUPPORTED;
}

if(iRet!=IMG_OK)
return iRet;

// Flip image to correct scanline reversal
FlipImg();

// Load palette if present
iRet=LoadBmpPalette();

if(iRet!=IMG_OK)
return iRet;

// Free the file data
delete [] pData;
pData=NULL;

return IMG_OK;
}


int BMPImg::GetFile(char* szFilename)
{
using namespace std;
ifstream fIn;
unsigned long ulSize;

// Open the specified file
fIn.open(szFilename,ios::binary);

if(fIn==NULL)
return IMG_ERR_NO_FILE;

// Get file size
fIn.seekg(0,ios_base::end);
ulSize=fIn.tellg();
fIn.seekg(0,ios_base::beg);

// Allocate some space
// Check and clear pDat, just in case
if(pData)
{
delete [] pData;
pData=NULL;
}

pData=new unsigned char[ulSize];

if(pData==NULL)
{
fIn.close();
return IMG_ERR_MEM_FAIL;
}

// Read the file into memory
fIn.read((char*)pData,ulSize);

fIn.close();

return IMG_OK;
}


int BMPImg::ReadBmpHeader()
{
int iInfo;

if(pData==NULL)
return IMG_ERR_NO_FILE;

if(pData[0x0]!='B' || pData[0x1]!='M') // BMP ID Bytes, should be 'BM'
return IMG_ERR_BAD_FORMAT;

memcpy(&iImgOffset,&pData[0xA],4); // Offset to image data

memcpy(&iInfo,&pData[0xE],4); // Info header size, should be 0x28
if(iInfo!=0x28)
return IMG_ERR_BAD_FORMAT;

memcpy(&iWidth,&pData[0x12],4); // Image width
memcpy(&iHeight,&pData[0x16],4); // Image height
memcpy(&iPlanes,&pData[0x1A],2); // Colour planes
memcpy(&iBPP,&pData[0x1C],2); // BPP
memcpy(&iEnc,&pData[0x1E],4); // Encoding

iDataSize=(iWidth*iHeight*(iBPP/8)); // Calculate Image Data size

return IMG_OK;
}


int BMPImg::LoadBmpRaw()
{
if(pImage)
{
delete [] pImage;
pImage=NULL;
}

// Allocate space for the image data
pImage=new unsigned char[iDataSize];

if(pImage==NULL)
return IMG_ERR_MEM_FAIL;

memcpy(pImage,&pData[iImgOffset],iDataSize);

return IMG_OK;
}


int BMPImg::LoadBmpRLE8()
{
unsigned char bOpCode,bVal;
unsigned char *pSrc;
int iDcode=1,iCount,iPos,iIndex;

// Allocate space for the image
if(pImage)
delete [] pImage;

pImage=new unsigned char[iDataSize];

if(pImage==NULL)
return IMG_ERR_MEM_FAIL;

// Get the start of the RLE data
pSrc=&pData[iImgOffset];

iPos=0;
iIndex=0;

while(iDcode)
{
// Stay on even bytes
while(iPos%2)
{
iPos++;
}

bOpCode=pSrc[iPos];
bVal=pSrc[iPos+1];
iPos+=2;

if(bOpCode>0) // Run mode, Repeat 'bVal' 'OpCode' times
{
for(iCount=0;iCount!=bOpCode;iCount++)
{
pImage[iIndex]=bVal;
++iIndex;
}
}
else // Absolute Mode (Opcode=0), various options
{
switch(bVal)
{
case 0: // EOL, no action
break;

case 1: // EOF, STOP!
iDcode=0;
break;

case 2: // Reposition, Never used
break;

default: // Copy the next 'bVal' bytes directly to the image
for(iCount=bVal;iCount!=0;iCount--)
{
pImage[iIndex]=pSrc[iPos];
++iIndex;
++iPos;
}
break;
}

}
if(iIndex>iDataSize) // Stop if image size exceeded.
iDcode=0;
}

return IMG_OK;
}


int BMPImg::LoadBmpPalette()
{
int iIndex;
unsigned char *pPalPos, *pDatPos;

if(pPalette)
{
delete [] pPalette;
pPalette=NULL;
}

if(iBPP>8) // NULL Palette for RGB images
return IMG_OK;

// Create space for palette
pPalette=new unsigned char[768];

if(pPalette==NULL)
return IMG_ERR_MEM_FAIL;

// Set starting position for pointers
pPalPos=pPalette;
pDatPos=&pData[0x36];

// Get colour values, skip redundant 4th value
for(iIndex=0;iIndex!=256;++iIndex)
{
pPalPos[0]=pDatPos[2]; // Red
pPalPos[1]=pDatPos[1]; // Green
pPalPos[2]=pDatPos[0]; // Blue

pPalPos+=3;
pDatPos+=4;
}

return IMG_OK;
}


void BMPImg::FlipImg(void)
{
unsigned char bTemp;
unsigned char *pLine1, *pLine2;
int iLineLen,iIndex;

iLineLen=iWidth*(iBPP/8);
pLine1=pImage;
pLine2=&pImage[iLineLen * (iHeight - 1)];

for( ;pLine1<pLine2;pLine2-=(iLineLen*2))
{
for(iIndex=0;iIndex!=iLineLen;pLine1++,pLine2++,iI ndex++)
{
bTemp=*pLine1;
*pLine1=*pLine2;
*pLine2=bTemp;
}
}

}


int BMPImg::GetBPP()
{
return iBPP;
}


int BMPImg::GetWidth()
{
return iWidth;
}


int BMPImg::GetHeight()
{
return iHeight;
}


unsigned char* BMPImg::GetImg()
{
return pImage;
}


unsigned char* BMPImg::GetPalette()
{
return pPalette;
}

majid.nasirinejad
یک شنبه 07 شهریور 1389, 04:20 صبح
این برنامه دانشجویی هست اما برای آموزش کلاس ها و ارث بری و وکتور بسیار مفیده...
اگر دوستان می بینند خلاف مقررات هست حذفش کنم...
این برنامه قابلیت اضافه/ویرایش/حذف 100 دانشجو و استاد به همراه گزارش گیری کامل و جستجو داره...
امیدوارم مفید باشه

ashkan_d13
چهارشنبه 10 شهریور 1389, 11:21 صبح
برنامه‌ی n وزیر

eshpilen
سه شنبه 16 شهریور 1389, 20:33 عصر
یه بازی ساده که با فریمورک Qt نوشته شده که تحت سی++ هست:
کد منبع: http://www.4shared.com/file/121873212/9f9bcd0a/qtcannon-src.html
کامپایل شده برای ویندوز: http://www.4shared.com/file/121872586/f4c7c3ba/qtcannon-bin.html

بازیش یه بازی گرافیک دو بعدی هست. یک توپ که از پشت یه مانع شلیک میکنه و گلوله هاش باید به هدفها اثبات کنن. حرکت گلوله ها از نوع بالستیکی هست.
البته بازیش تمامش از خودم نیست و مثال و تمرین خودآموز Qt بوده، ولی بهش امکانات و تزیینات متعددی اضافه کردم که در قسمت about لیست کردم.

هم دانشگاهی
پنج شنبه 13 آبان 1389, 21:33 عصر
سلام دوستان!

من کد بازی Minesweeper رو نوشتم ( نوشته بودم ) البته میدونم یکم دیر شد
ولی باز هم به هر حال میزارمش تا همه استفاده کنند!

البته ناگفته نماند در یک قسمت از کدم از کد ashkan_d13 استفاده کردم!


Enjoy it NOW

Salar Ashgi
پنج شنبه 13 آبان 1389, 22:09 عصر
یک مثال خیلی ساده از کار با API ها :



#include <windows.h>
void main(){
MessageBox(0,"Hello From API","C++ API",MB_OK | MB_ICONINFORMATION);
}


متاسفانه منبع و مرجع کاملی از لیست API ها وجود ندارد و اکثر برنامه نویسان در اثر تجربه به آنها
آگاهی پیدا کرده اند .

ویکی API (http://en.wikipedia.org/wiki/API)

voiceoffox
چهارشنبه 19 آبان 1389, 21:12 عصر
این برنامه سن شما رو بر حسب سال و ماه می گیره و میگه چند ثانیه یا چند دقیقه یا چند ساعت یا چند روز یا چند هفته یا چند ماه یا چند ساله !
البته برنامه ی ساده ایه و در شان شما نیست ولی خوب جالبه و استفاده ازش خالی از لطف نیست !

voiceoffox
چهارشنبه 19 آبان 1389, 21:44 عصر
این یکی سن رو به روز می گیره و به هفته و ماه و................................................ ..............
تبدیل می کنه !:تشویق:

voiceoffox
چهارشنبه 19 آبان 1389, 21:46 عصر
و این هم بهتون نمی گم چی می کشه ! :شیطان:
فقط بدونین که یک شکل جالب و توپ می کشه !! :لبخند:

voiceoffox
جمعه 21 آبان 1389, 17:14 عصر
مثل اینکه دیگه کسی نمیخواد برنامه بذاره ! :بامزه:
پس برنامه بعدی رو هم من می ذارم ! :لبخند:
این برنامه یه جورایی همه کارس ! براتون 5 تا کار مختلف انجام میده و خلاصه خیلی جالبه ! نیاز به محیط گرافیکی هم نداره ! :تشویق:
هر تیکه ای ش رو از یجا آوردم و از کد های دوستان هم استفاده کردم اما خودم هم خیلی روش زحمت کشیدم ! :لبخندساده:
تا بعد خداحافظ ! :چشمک:

r00tkit
دوشنبه 24 آبان 1389, 11:48 صبح
برنامه زیر از تابع مستند نشدهی NtQueryInformationProcess استفاده می کنه و نکات جالبی توش هستش خوندنش رو به همه توصیه می کنم
چون خط به خطش نکته داره
ورودی: PID یه پروسس هستش

خروجی : command line همون پروسس



#include <windows.h>
#include <stdio.h>

typedef NTSTATUS (NTAPI *_NtQueryInformationProcess)(
HANDLE ProcessHandle,
DWORD ProcessInformationClass,
PVOID ProcessInformation,
DWORD ProcessInformationLength,
PDWORD ReturnLength
);

typedef struct _UNICODE_STRING
{
USHORT Length;
USHORT MaximumLength;
PWSTR Buffer;
} UNICODE_STRING, *PUNICODE_STRING;

typedef struct _PROCESS_BASIC_INFORMATION
{
LONG ExitStatus;
PVOID PebBaseAddress;
ULONG_PTR AffinityMask;
LONG BasePriority;
ULONG_PTR UniqueProcessId;
ULONG_PTR ParentProcessId;
} PROCESS_BASIC_INFORMATION, *PPROCESS_BASIC_INFORMATION;

PVOID GetPebAddress(HANDLE ProcessHandle)
{
_NtQueryInformationProcess NtQueryInformationProcess =
(_NtQueryInformationProcess)GetProcAddress(
GetModuleHandleA("ntdll.dll"), "NtQueryInformationProcess");
PROCESS_BASIC_INFORMATION pbi;

NtQueryInformationProcess(ProcessHandle, 0, &pbi, sizeof(pbi), NULL);

return pbi.PebBaseAddress;
}

int wmain(int argc, WCHAR *argv[])
{
int pid;
HANDLE processHandle;
PVOID pebAddress;
PVOID rtlUserProcParamsAddress;
UNICODE_STRING commandLine;
WCHAR *commandLineContents;

if (argc < 2)
{
printf("Usage: getprocesscommandline [pid]\n");
return 1;
}

pid = _wtoi(argv[1]);

if ((processHandle = OpenProcess(
PROCESS_QUERY_INFORMATION | /* required for NtQueryInformationProcess */
PROCESS_VM_READ, /* required for ReadProcessMemory */
FALSE, pid)) == 0)
{
printf("Could not open process!\n");
return GetLastError();
}

pebAddress = GetPebAddress(processHandle);

/* get the address of ProcessParameters */
if (!ReadProcessMemory(processHandle, (PCHAR)pebAddress + 0x10,
&rtlUserProcParamsAddress, sizeof(PVOID), NULL))
{
printf("Could not read the address of ProcessParameters!\n");
return GetLastError();
}

/* read the CommandLine UNICODE_STRING structure */
if (!ReadProcessMemory(processHandle, (PCHAR)rtlUserProcParamsAddress + 0x40,
&commandLine, sizeof(commandLine), NULL))
{
printf("Could not read CommandLine!\n");
return GetLastError();
}

/* allocate memory to hold the command line */
commandLineContents = (WCHAR *)malloc(commandLine.Length);

/* read the command line */
if (!ReadProcessMemory(processHandle, commandLine.Buffer,
commandLineContents, commandLine.Length, NULL))
{
printf("Could not read the command line string!\n");
return GetLastError();
}

/* print it */
/* the length specifier is in characters, but commandLine.Length is in bytes */
/* a WCHAR is 2 bytes */
printf("%.*S\n", commandLine.Length / 2, commandLineContents);
CloseHandle(processHandle);
free(commandLineContents);

return 0;
}

voiceoffox
شنبه 29 آبان 1389, 20:31 عصر
اسم این برنامه رو گذاشتم MessageMaster ! :قهقهه:

این برنامه می تونه به طور کامل استفاده از تابع MessageBox رو به کسایی که اونو یاد ندارن آموزش بده ولی حتی کسایی که یاد دارن هم دانلود کنن و ازش استفاده کنن ! خیلی با حاله ! :تشویق: با هاش می شه هر پیغامی رو که فکر می کنی بسازی !

به نظر خورم ارزش دانلودو داره ! :چشمک:

هرچند خیلی پیچیده نیست ولی ایده خوبییه ! امیدوارم خوشتون بیاد ! :بامزه:

خداحافظتا بعد !

bazyar
یک شنبه 30 آبان 1389, 16:54 عصر
كد برنامه بازي به زبان سي پلاس پلاس
اين برنامه بازي تانك مي باشد كه با كليد جهت نما سمت راست و چپ براي رفتن به سمت راست صفحه و سمت چپ صفحه مي باشد و همين طور كليد space كه براي تير زدن به سمت بالا مي باشد، اميدوارم كه خوشتان بيايد

لطفا نظر بدهيد

با تشكر

ژوپیتر
یک شنبه 21 آذر 1389, 11:46 صبح
این کد رو میتونید به برنامه خودتون اضافه کنید و متوجه بشید در کجای کد حافظه رو تخصیص دادید و در پایان آزاد نکردید. در کدهای بزرگ خیلی به درد می خوره.

yaseriran
پنج شنبه 25 آذر 1389, 13:27 عصر
درود!

برنامه ای که ماتریس مجاورت گراف را می سازد.
توضیح:
نخست طول آرایه تک بعدی را می دهیم. بعد سطر و ستون ماتریس را می دهیم.
اعداد(0 یا 1) بالا مثلثی را وارد و بعد برنامه ماتریس مجاورت را می دهد.

می دونم که خوب توضیح ندادم. ولی برنامه رو اجرا کنید متوجه می شوید...

#include <iostream.h>
#include <conio.h>
int main(){
int i,j,k,ar[10],arr[5][5],num,a,b,c;

cout<<"please enter columns number for A matrix[]=";
cin>>a;

cout<<"please enter columns and rows number for B matrix[][]=";
cin>>b;
c=b;



for(i=1;i<=a;i++)
{
cout<<"enter matA["<<i<<"]=";
cin>>num;
ar[i]=num;
}

k=1;
for(i=1;i<=b;i++)

for(j=1;j<=c;j++)
{
if (i==j)
arr[i][j]=0;

else if(i<j)
arr[i][j]=arr[j][i]=ar[k++];

}
cout<<endl;
for(i=1;i<=b;i++)
cout<<"\t"<<"matB["<<i<<"]";


for(i=1;i<=b;i++){
cout<<endl<<"matB["<<i<<"]";
for(j=1;j<=c;j++)
cout<<"\t"<<arr[i][j];
}

getch();
return 0;
}


من حسین وقت و نا اهلان یزید و شمر من* روزگارم جمله عاشورا و منزل کربلا* سایه از ما وامگیر ای سایه لطف خدا...

melina_007
دوشنبه 29 آذر 1389, 14:36 عصر
یک ماشین حساب ساده که دو عدد صحیح و یک کاراکتر را میگیرد و اگر + بود مجموع ، اگر - تفاضل ، اگر * حاصل ضرب ، اگر / حاصل تقسیم و اگر % بود باقیمانده تقسیم را چاپ میکند .
( با استفاده از دستورالعمل switch )

#include<iostream.h>
#include<conio.h>
int main()
{
int d,a;
float s;
char ch;
cout<<"please enter two integer numbers and one operator:";
cin>>d>>a>>ch;
switch(ch)
{
case '+': s=d+a; break;
case '-': s=d-a; break;
case '*': s=d*a; break;
case '/': s=d/a; break;
case '%': s=d%a; break;
}
cout<<"\n s="<<s;
getch();
clrscr();
return 0 ;
}

melina_007
دوشنبه 29 آذر 1389, 14:37 عصر
عددی از ورودی گرفته و با استفاده از یک حلقه while مجموع مربعات اعداد متوالی تا ان عدد را پیدا کند :


#include<iostream.h>
main()
{
int s=1,n,sum=0;
cout<<"please enter a number:";
cin>>n;
while(s<=n)
{
sum+=s*s;
s++;
}
cout<<"sum="<<sum;
return 0;
}

melina_007
دوشنبه 29 آذر 1389, 14:38 عصر
برنامه اجرای بازی سنگ کاغذ قیچی


#include<iostream.h>
#include<conio.h>
main()
{
enum play{s,k,g};
play p1=s,p2=k,p3=g;
char f1,f2;
int m1,m2;
cout<<"\n please enter S for sang and K for kaghaz and G for gheychi";
cout<<"\n PLAYER 01:please enter S or K or G:";
cin>>f1;
if(f1=='s'||f1=='S')m1=0;
else if(f1=='k'||f1=='K')m1=1;
else if(f1=='g'||f1=='G')m1=2;
cout<<"\n PLAYER 02:please enter S or K or G:";
cin>>f2;
if(f1==f2)cout<<"\n error:please try again";
if(f1=='s'||f2=='S')m2=0;
else if(f2=='k'||f2=='K')m2=1;
else if(f2=='g'||f2=='G')m2=2;
if((m1==p2)&&(m2==p1)) cout<<"\n barande: PLAYER01";
if((m1==p1)&&(m2==p3)) cout<<"\n barande: PLAYER01";
if((m1==p3)&&(m2==p2)) cout<<"\n barande: PLAYER01";
if((m1==p1)&&(m2==p2)) cout<<"\n barande: PLAYER02";
if((m1==p3)&&(m2==p1)) cout<<"\n barande: PLAYER02";
if((m1==p2)&&(m2==p3)) cout<<"\n barande: PLAYER02";
getch();
clrscr();
return 0;
}

melina_007
دوشنبه 29 آذر 1389, 14:38 عصر
برنامه اجرای بازی سنگ کاغذ قیچی با استفاده از دستور switch !


#include<iostream.h>
#include<conio.h>
main()
{
enum play{s,k,g};
play p1=s,p2=k,p3=g;
char f1,f2;
int m1,m2;
cout<<"\n please enter S for sang and K for kaghaz and G for gheychi";
cout<<"\n PLAYER01:please enter S or K or G:";
cin>>f1;
switch(f1)
{
case's':m1=0;break;
case'k':m1=1;break;
case'g':m1=2;break;
}
cout<<"\n PLAYER02:please enter S or K or G:";
cin>>f2;
if(f1==f2)cout<<"\n error:please try again";
switch(f2)
{
case's':m2=0;break;
case'k':m2=1;break;
case'g':m2=2;break;
}
if((m1==p2)&&(m2==p1))cout<<"\n barande: PLAYER01";
if((m1==p1)&&(m2==p3))cout<<"\n barande: PLAYER01";
if((m1==p3)&&(m2==p2))cout<<"\n barande: PLAYER01";
if((m1==p1)&&(m2==p2))cout<<"\n barande: PLAYER02";
if((m1==p3)&&(m2==p1))cout<<"\n barande: PLAYER02";
if((m1==p2)&&(m2==p3))cout<<"\n barande: PLAYER02";
getch();
clrscr();
return 0;
}

Arcsinos
جمعه 03 دی 1389, 21:06 عصر
سلام دوستان منم یه ماشین حساب نوشتم که عبارات ریاضی رو میگیره بدون فاصله و اونا رو بر اساس اولویت عملگر محاسبه و در خروجی مینویسه : (فعلا فقط عملگرهای +و*و/و- و اعداد صحیح میخوام گسترشش بدم تا بتونه sin, cos, log رو هم محاسبه کنه اگه میشه راهنمایی کنید ) توان(^) هم اضافه شد ، پرانتز گذاری رو هم میفهمه :
ورودی :

10-9^2*2-81-10خروجی :

-243برنامه :

// stake solution.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "iostream"
#include "conio.h"
using namespace std;

struct node
{
char info;
node *left;
node *right;
};

node *getnode()
{
node* q;
q= new struct node;
return q;
}

void push(node * &top,char item)
{
node *p;
p=getnode();
p->info=item;
p->left=top;
top->right=p;
top=p;
top->right =NULL;
}

int power(int a1,int a2)
{
int x=a1;
for(int i=1;i<a2;i++)
a1=a1*x;
return a1;
}
char pop(node * &top)
{
char x;
if(top->left!=NULL)
{
node *p;
p=getnode();
x =top->info;
p=top;
top=top->left;
delete(p);
return x;
}
else
return '#';
}

int _tmain(int argc, _TCHAR* argv[])
{
char n1ch[100];
char n2ch[100];
char n3ch[100];
int n3[10];
for(int u=0;u<10;u++)
n3[u]=0;
node *top;
top=getnode();
top->left=NULL;
int i=0,k=0;
int a1=1,a2=1;
char ch;
cout<<"\nplease enter equation : ";
cin.getline(n1ch,98);
while(n1ch[i]!=NULL)
i++;
int s=0;
int t=-1;
int r=-1;
int y=0;
int ss=0;
bool zz=false;
for(int g=0;g<=i;g++)
{
if(n1ch[g]=='(')
ss++;
if(n1ch[g]==')')
ss--;
if(ss<0)
{
zz=true;
break;
}
}
for(int q=0;q<i;q++)
{
if(int(n1ch[q])>=48 && int(n1ch[q])<=57)
{
t++;
r++;
if(n3[s]!=0)
n3[s]=n3[s]*10+(int(n1ch[q])-48);
else
n3[s]=int(n1ch[q])-48;
}
else if(n1ch[q]=='(' || n1ch[q]==')')
y++;
else
{
if(s>1)
r=r+s-1;
n1ch[s+t-r+y]='p';
t++;
s++;
r=0;
}
}
if(s>1)
r=r+s-1;
int v=0;
n1ch[s+t-r+y]='p';

for(int g=0;g<i;g++)
if(!(int(n1ch[g])>=48 && int(n1ch[g])<=57))
{
n3ch[v]=n1ch[g];
v++;
}
while(true)
{
if(s==0)
{
cout<<"hade aghal 2 adad va 1 amalgar vared konid!";
break;
}
else if(zz==true||ss!=0)
{
cout<<"prantez gozari dorost nist ";
break;
}
else
{
for(int j=0;j<i;j++)
{
if(n3ch[j]=='(')
push(top,n3ch[j]);
else if(n3ch[j]=='p')
{
n2ch[k]=n3ch[j];
k++;
}
else if(n3ch[j]=='+' || n3ch[j]=='-' || n3ch[j]=='/' || n3ch[j]=='*'|| n3ch[j]=='^')
{
while((n3ch[j]=='*' || n3ch[j]=='/') && (top->info=='*' || top->info=='/' || top->info=='^' ))
{
n2ch[k]=pop(top);
k++;
}
while((n3ch[j]=='^') && (top->info=='^'))
{
n2ch[k]=pop(top);
k++;
}
while((n3ch[j]=='+' || n3ch[j]=='-') && (top->info=='*' || top->info=='/' || top->info=='^' || top->info=='+' || top->info=='-'))
{
n2ch[k]=pop(top);
k++;
}
push(top,n3ch[j]);
}
else if(n3ch[j]==')')
{
while(top->info!='(')
{
n2ch[k]=pop(top);
k++;
}
pop(top);
}
}
while(top->left!=NULL)
{
n2ch[k]=pop(top);
k++;
}
//for(int f=0;f<k;f++)
// cout<<n2ch[f];
for(int d=0;d<k;d++)
{
if(n2ch[d]=='(')
{
for(int f=d;f<k-1;f++)
n2ch[f]=n2ch[f+1];
k--;
}
}
cout<<"\n";
//for(int f=0;f<k;f++)
// cout<<n2ch[f];
int a=0;
int h=0;
while(n2ch[k-1]!='n')
{
int z=0;
int p=0;
a=0;
int n4[10];
while(true)
{
if(n2ch[a]=='+' || n2ch[a]=='*' || n2ch[a]=='^' || n2ch[a]=='/' || n2ch[a]=='-')
break;
a++;
}
for(h=0;h<a;h++)
{
if(n2ch[h]=='p')
{
p=h;
z++;
}
}
a1=n3[z-2];
a2=n3[z-1];
switch(n2ch[a])
{
case '+':n3[z-2]=a1+a2;
n2ch[p]='0';
n2ch[a]='n';
for(int d=z;d<=s;d++)
n3[d-1]=n3[d];
s--;
break;
case '-':n3[z-2]=a1-a2;
n2ch[p]='0';
n2ch[a]='n';
for(int d=z;d<=s;d++)
n3[d-1]=n3[d];
s--;
break;
case '*':n3[z-2]=a1*a2;
n2ch[p]='0';
n2ch[a]='n';
for(int d=z;d<=s;d++)
n3[d-1]=n3[d];
s--;
break;
case '/':n3[z-2]=a1/a2;
n2ch[p]='0';
n2ch[a]='n';
for(int d=z;d<=s;d++)
n3[d-1]=n3[d];
s--;
break;
case '^':n3[z-2]=power(a1,a2);
n2ch[p]='0';
n2ch[a]='n';
for(int d=z;d<=s;d++)
n3[d-1]=n3[d];
s--;
break;
}
}
}
cout<<"\nAnswer is : ";
cout<<n3[0];
break;
}
getch();
return 0;
}

ali najafi
چهارشنبه 08 دی 1389, 22:03 عصر
برنامه ای که بورد گرافیکی سیستم را تشخیص داده و محدوده ی وجه گرافیکی آن را تایین میکند.

کتاب آموزش برنامه نویسی به زبان سی،مهندس عین ا.. جعفر نژاد قمی

#include "graphics.h"
#include "stdio.h"
int main(void)
{
int driver,mode;
int far *high,*low ;
driver=DETECT;
initgraph(&driver,&mode,"") ;
getmoderange(driver,low,high);
printf("\nmode range: %d-%d",low,high);
return 0;
}

ali najafi
پنج شنبه 09 دی 1389, 10:43 صبح
برنامه ای که تعداد رنگ های قابل استفاده در وجه گرافیکی تایین شده توسط ()initgraph را مشخص میکند.
کتاب آموزش برنامه نویسی به زبان سی،مهندس عین ا.. جعفر نژاد قمی

#include "graphics.h"
#include "stdio.h"
#include "conio.h"
int main(void)
{
int driver,mode;
struct palettetype p;
driver=DETECT;
mode=0;
initgraph(&driver,&mode," ");
getpalette(&p);
printf("\n number of color in ") ;
printf(" palette:%d",p.size);
getch();
restorecrtmode();
return 0;
}

ali najafi
پنج شنبه 09 دی 1389, 10:48 صبح
برنامه ای که مفسر کامل بیسیک را پیاده سازی میکند
کتاب آموزش برنامه نویسی به زبان سی،مهندس عین ا.. جعفر نژاد قمی

#include <stdlib.h>
#include <conio.h>
#include <setjmp.h>
#include <math.h>
#include <ctype.h>
#include <stdio.h>
#include <string.h>

#define NUM_LAB 100
#define LAB_LEN 10
#define FOR_NEST 25
#define SUB_NEST 25
#define PROG_SIZE 10000
#define DELIMITER 1
#define VARIABLE 2
#define NUMBER 3
#define COMMAND 4
#define STRING 5
#define QUOTE 6

#define PRINT 1
#define INPUT 2
#define IF 3
#define THEN 4
#define FOR 5
#define NEXT 6
#define TO 7
#define GOTO 8
#define EOL 9
#define FINISHED 10
#define GOSUB 11
#define RETURN 12
#define END 13
int load_program(char *p ,char *fname);
char get_token();
void assignment();
int get_next_label(char *s);
int iswhite(char c);
int isdelim(char c);
char look_up(char *s);
int find_var(char *s);
char *gpop();
char *find_label(char *s);
struct for_stack fpop() ;
void print() , scan_labels() , find_eol(),exec_goto() ;
void exec_if() , exec_for(), next() ,fpush(struct for_stack i) ,input() ;
void gosub() , greturn() , gpush(char *s) , label_init() ;
void putback() , serror(int) , get_exp(int *) , primitive(int *result) ;
void level2(int *), level3(int *), level4(int *), level5(int *), level6(int *);
void arith(char o , int *r , int *h) , unary(char o , int *r) ;

char *prog ;
jmp_buf e_buf ;
int variable[26] = {0} ;
struct commands {
char commands[20] ;
char tok ;
} table[] = {
"print", PRINT, "input", INPUT, "if",IF,
"then", THEN, "goto", GOTO, "for", FOR ,
"next", NEXT , "to", TO , "gosub", GOSUB ,
"return", RETURN , "end", END , "", END } ;
char token[80], token_type, tok ;
struct label {
char name[LAB_LEN] ;
char *p ;
} ;
struct label label_table[NUM_LAB] ;

struct for_stack {
int var ;
int target ;
char * loc ;
} fstack[FOR_NEST] ;
char *gstack[SUB_NEST] ;
int ftos, gtos ;

int main(int argc, char *argv[])
{
char in[80] ;
int answer ;
char *p_buf , *t ;
clrscr();
if(argc != 2)
{
printf("\n usage : run < filename > ") ;
getch() ;
exit(1) ;
}
p_buf = (char *) malloc(PROG_SIZE) ;
if(!p_buf)
{
printf("\n allocation failure ") ;
getch() ;
exit(1) ;
}
if(!load_program(p_buf, argv[1]))
{
printf("\n file not loaded ") ;
getch() ;
exit(1) ;
}
if(setjmp(e_buf))
exit(1) ;
prog = p_buf ;
scan_labels() ;
ftos = 0 ;
gtos = 0 ;
do {
token_type = get_token() ;
if(token_type == VARIABLE) {
putback() ;
assignment() ;
}
else
switch(tok) {
case PRINT :
print() ; break ;
case GOTO :
exec_goto() ; break ;
case IF :
exec_if() ; break ;
case FOR :
exec_for() ; break ;
case NEXT :
next() ; break ;
case INPUT :
input() ; break ;
case GOSUB :
gosub() ; break ;
case RETURN :
greturn() ; break ;
case END :
exit(0) ;
}
} while (tok != FINISHED) ;
free(p_buf) ;
return 0;
}
//************
int load_program(char *p , char *fname)
{
FILE *fp ;
int i = 0 ;
fp = fopen(fname, "rb") ;
if(!fp)
return 0 ;
i = 0 ;
do {
*p = getc(fp) ;
p++ ; i++ ;
} while(!feof(fp) && i < PROG_SIZE) ;
*(p - 2) = '\0' ;
fclose(fp) ;
return 1 ;
}
//****************
void assignment()
{
int var , value ;
get_token() ;
if(!isalpha(*token)) {
serror(4) ;
return ;
}
var = toupper(*token) - 'A';
get_token() ;
if(*token != '=') {
serror(3) ;
return ;
}
get_exp(&value) ;
variable[var]=value ;
}
//****************
void print()
{
int answer , len=0 , spaces ;
char last_delim ;
do {
get_token() ;
if(tok == EOL || tok == FINISHED)
break ;
if(token_type == QUOTE) {
printf(token) ;
len += strlen(token) ;
get_token() ;
}
else {
putback() ;
get_exp(&answer) ;
get_token() ;
len += printf("%d",answer) ;
}
last_delim=*token ;
if(*token == ';') {
spaces = 8 - (len % 8) ;
len += spaces ;
while(spaces) {
printf(" ") ;
spaces -- ;
}
}
else if(*token == ',') ;//do nothing
else if(tok != EOL && tok != FINISHED)
serror(0) ;
} while(*token == ';' || *token == ',') ;
if(tok == EOL || tok == FINISHED) {
if(last_delim != ';' && last_delim !=',')
printf("\n") ;
}
else serror(0) ;
}
//*************************
void scan_labels()
{
int addr ;
char *temp ;
label_init() ;
temp = prog ;
get_token() ;
if(token_type == NUMBER) {
strcpy(label_table[0].name, token) ;
label_table[0].p = prog ;
}
find_eol() ;
do {
get_token() ;
if(token_type == NUMBER) {
addr = get_next_label(token) ;
if(addr == -1 || addr == -2) {
(addr == -1) ? serror(5) : serror(6) ;
} //end of if
strcpy(label_table[addr].name , token) ;
label_table[addr].p = prog ;
}//end of if
if(tok !=EOL)
find_eol() ;
} while(tok != FINISHED) ;
prog = temp ;
}
//******************
void find_eol()
{
while(*prog != '\n' && *prog != '\0')
++prog ;
if(*prog)
prog ++ ;
}
//******************
int get_next_label(char *s)
{
register int t ;
for(t = 0 ; t < NUM_LAB ; t++) {
if(label_table[t].name[0] == 0)
return t ;
if(!strcmp(label_table[t].name,s))
return -2 ;
} //end of for
return -1 ;
}
//*********************
char *find_label(char *s)
{
register int t ;
for(t = 0 ; t < NUM_LAB ; t++)
if(!strcmp(label_table[t].name, s))
return label_table[t].p ;
return '\0' ;
}
//******************
void exec_goto()
{
char *loc ;
get_token() ;
loc = find_label(token) ;
if(loc == '\0')
serror(7) ;
else prog = loc ;
}
//*******************
void label_init()
{
register int t ;
for(t = 0 ; t < NUM_LAB ; t++)
label_table[t].name[0] = '\0' ;
}
//*********************
void exec_if()
{
int x , y , cond ;
char op ;
get_exp(&x) ;
get_token() ;
if(!strchr("=<>", *token)) {
serror(0) ;
return ;
}
op = *token ;
get_exp(&y) ;
cond = 0 ;
switch(op) {
case '<' :
if(x < y) cond=1 ;
break ;
case '>' :
if(x > y) cond=1 ;
break ;
case '=' :
if(x == y) cond=1 ;
break ;
}//end of switch
if(cond) {
get_token() ;
if(tok != THEN) {
serror(8) ;
return ;
}
}//end of if
else find_eol() ;
}
//********************
void exec_for()
{
struct for_stack i ;
int value ;
get_token() ;
if(!isalpha(*token)) {
serror(4) ;
return ;
}
i.var = toupper(*token) - 'A' ;
get_token() ;
if(*token != '=') {
serror(3) ;
return ;
}
get_exp(&value) ;
variable[i.var] = value ;
get_token() ;
if(tok != TO) serror(9) ;
get_exp(&i.target) ;
if(value >= variable[i.var]) {
i.loc = prog ;
fpush(i) ;
}
else
while(tok!=NEXT) get_token() ;
}
//***************************
void next()
{
struct for_stack i ;
i = fpop() ;
variable[i.var]++ ;
if(variable[i.var] > i.target) return ;
fpush(i);
prog = i.loc ;
}
//***********************
void fpush(struct for_stack i)
{
if(ftos > FOR_NEST)
serror(10) ;
fstack[ftos] = i ;
ftos++ ;
}
//*********************
struct for_stack fpop()
{
ftos -- ;
if(ftos < 0) serror(11);
return(fstack[ftos]);
}
//***********************
void input()
{
char str[80], var ;
int i , ch , digit = 0 ;
get_token() ;
if(token_type == QUOTE) {
printf(token) ;
get_token() ;
if(*token != ',') {
serror(1) ;
}
get_token() ;
}
else printf("?") ;
var = toupper(*token) - 'A' ;
while(1) {
ch = getche() ;
if(ch <= 57 && ch >= 48) {
ch = ch - 48 ;
digit = (digit * 10) + ch ;
}
else if(ch == 13)
break ;
else {
printf("\Redo from start ?\n") ;
continue ;
}
}//end of while
variable[var]=digit ;
}
//**************
void gosub()
{
char *loc ;
get_token() ;
loc = find_label(token) ;
if(loc == '\0')
serror(7) ;
else {
gpush(prog) ;
prog = loc ;
}//end of else
}
//********************
void greturn()
{
prog = gpop() ;
}
//**************
void gpush(char *s)
{
gtos++ ;
if(gtos == SUB_NEST) {
serror(12) ;
return ;
}
gstack[gtos] = s ;
}
//*******************
char *gpop()
{
if(gtos == 0) {
serror(13) ;
return 0 ;
} //end of return
return(gstack[gtos --]) ;
}
//*****************
void putback()
{
char *t ;
t = token ;
for(; *t ; t++)
prog -- ;
}
//*****************
void serror(int error)
{
static char *e[] = {
"syntax error ",
"un balanced parantheses",
"no expressoin present" ,
"equals sign expexted" ,
"not a variable" ,
"label table full" ,
"dulicate label" ,
"undifined label" ,
"THEN expected" ,
"TO expected" ,
"too many nested FOR loops" ,
"NEXT without FOR" ,
"too many nested GOSUB",
"RETURN without GOSUB" } ;
printf("\n %s \n", e[error]) ;
longjmp(e_buf , 1) ;
}
//*****************
char get_token()
{
register char *temp ;
token_type = 0 ;
tok = 0 ;
temp = token ;
if(*prog == '\0') {
*token = 0 ;
tok = FINISHED ;
return(token_type = DELIMITER) ;
}//end of if
while(iswhite(*prog))
++ prog ;
if(*prog == '\r') {
++ prog ;
++ prog ;
tok = EOL ;
*token = '\r' ;
token[1] = '\n' ;
token[2] = 0 ;
return(token_type = DELIMITER) ;
}
if(strchr("+-*^/%=;(),><" , *prog)) {
*temp=*prog ;
prog ++ ;
temp ++ ;
*temp = 0 ;
return(token_type = DELIMITER) ;
}
if(*prog == '"') {
prog ++ ;
while(*prog != '"' && *prog != '\r')
*temp ++ = *prog ++ ;
if(*prog == '\r')
serror(1) ;
prog ++ ;
*temp = 0 ;
return(token_type = QUOTE) ;
} //end of if
if(isdigit(*prog)) {
while(!isdelim(*prog))
*temp ++= *prog ++ ;
*temp='\0' ;
return(token_type=NUMBER) ;
}
if(isalpha(*prog)) {
while(!isdelim(*prog))
*temp ++= *prog ++ ;
token_type = STRING ;
}
*temp='\0' ;
if(token_type == STRING) {
tok = look_up(token) ;
if(!tok)
token_type = VARIABLE ;
else
token_type = COMMAND ;
}
return token_type ;
}
//******************
char look_up(char *s)
{
register int i , j ;
char *p ;
p = s ;
while(*p) {
*p = tolower(*p) ;
p ++ ;
}
for( i= 0 ; *table[i].commands ; i++)
if(!strcmp(table[i].commands , s))
return table[i].tok ;
return 0 ;
}
//************
int isdelim(char c)
{
if(strchr(" ;,+-<>/*%^=()",c) || c == 9 ||
c=='\r' || c==0)
return 1 ;
return 0 ;
}
//**************
int iswhite(char c)
{
if(c == ' ' || c == '\t')
return 1 ;
else
return 0 ;
}
//***********************
void get_exp(int *result)
{
get_token() ;
if(!*token) {
serror(2) ;
return ;
}
level2(result) ;
putback() ;
}
//**********************
void level2(int *result)
{
register char op ;
int hold ;
level3(result) ;
while((op = *token) == '+' || op == '-') {
get_token() ;
level3(&hold) ;
arith(op , result , &hold) ;
}//end of while
}
//***************************
void level3(int * result)
{
register char op ;
int hold ;
level4(result) ;
while((op = *token) == '*' || op == '/' || op == '%')
{
get_token() ;
level4(&hold) ;
arith(op , result , &hold) ;
} //end of while
}
//******************
void level4(int * result)
{
int hold ;
level5(result) ;
if(*token == '^') {
get_token() ;
level4(&hold) ;
arith('^' , result , &hold) ;
}
}
//********************
void level5(int *result)
{
register char op ;
op = 0 ;
if((token_type == DELIMITER) && *token == '+' || *token == '-')
{
op = *token ;
get_token() ;
}
level6(result) ;
if(op)
unary(op , result) ;
}
//*******************************
void level6(int *result)
{
if((*token == '(') &&(token_type == DELIMITER))
{
get_token() ;
level2(result) ;
if(*token != ')')
serror(1) ;
get_token() ;
}
else
primitive(result) ;
}
//***********************
void primitive(int *result)
{
switch(token_type) {
case VARIABLE :
*result = find_var(token) ;
get_token() ;
return ;
case NUMBER :
*result = atoi(token) ;
get_token() ;
return ;
default :
serror(0) ;
}//end of switch
}
//*********************
void arith(char o , int *r , int *h)
{
register int t , ex ;
switch(o) {
case '-' :
*r = *r - *h ;
break ;
case '+' :
*r=*r + *h ;
break ;
case '*' :
*r=*r * *h ;
break ;
case '/' :
*r=(*r) / (*h) ;
break ;
case '%' :
t = (*r) / (*h) ;
*r = *r - (t * (*h)) ;
break ;
case '^' :
ex = *r ;
if(*h == 0) {
*r = 1 ;
break ;
}
for(t = *h - 1 ; t > 0 ; -- t)
*r=(*r) * ex ;
break ;
}//end of switch
}
//*************************
void unary(char o , int *r)
{
if(o == '-')
*r = -(*r) ;
}
//***************
int find_var(char *s)
{
if(!isalpha(*s)) {
serror(4) ;
return 0 ;
}
return variable[toupper(*token)-'A'] ;
}
//**********************

V0RTEX
شنبه 11 دی 1389, 14:05 عصر
اگه x-o نیست این هم x-o که با کامپیوتر هم میشه بازی کنه کامپالر هم VS 2010 می باشد


#include <iostream>
#include <time.h>
#include <stdlib.h>
#include <string>
#include <vector>
using namespace std;

void DisplayBoard(char BoardArray[]);
int CheckGameOver(char BoardArray[]);
void ResetBoard(char* BoardArray[]);
int could_win(char BoardArray[],char Player);
int AI_Move(char BoardArray[],char AI,char player);//A.I
int main()
{
int Player1Move = 0;
int Player2Move = 0;
char BoardArray[9] = {' ',' ',' ',' ',' ',' ',' ',' ',' '};
char BoardNumbers[9] = {'0','1','2','3','4','5','6','7','8'};
system("cls");
cout << "if you want AI move instead of you press 9"<<endl;
system("pause");
while(true)
{
system("cls");
DisplayBoard(BoardNumbers);
DisplayBoard(BoardArray);

cout << "X:";
cin >> Player1Move;
if(Player1Move ==9)
Player1Move =AI_Move(BoardArray,'X','O');

if((Player1Move >= 0 && Player1Move <=8) && BoardArray[Player1Move] == ' ')
{
BoardArray[Player1Move] = 'X';
}
else
{
cout << "Error in move...Press enter\n";
system("PAUSE > NULL");
continue;
}

system("cls");
DisplayBoard(BoardNumbers);
DisplayBoard(BoardArray);

switch(CheckGameOver(BoardArray))
{
case 0:
break;
case 1:
cout << "TIE! Press enter to play again!";
system("PAUSE > NULL");
for(int n = 0; n <= 8; n++)
{
BoardArray[n] = ' ';
}
continue;
case 2:
cout << "X wins! Press enter to play again!";
system("PAUSE > NULL");
for(int n = 0; n <= 8; n++)
{
BoardArray[n] = ' ';
}
continue;
case 3:
cout << "O wins! Press enter to play again!";
system("PAUSE > NULL");
for(int n = 0; n <= 8; n++)
{
BoardArray[n] = ' ';
}
continue;
}

cout << "O:";
Player2Move=AI_Move(BoardArray,'O','X');
// cin >> Player2Move;

if((Player2Move >= 0 && Player2Move <=8) && BoardArray[Player2Move] == ' ')
{
BoardArray[Player2Move] = 'O';
}
else
{
cout << "Error in move...Press enter\n";
system("PAUSE > NULL");
continue;
}

DisplayBoard(BoardArray);

switch(CheckGameOver(BoardArray))
{
case 0:
break;
case 1:
cout << "TIE! Press enter to play again!";
system("PAUSE > NULL");
for(int n = 0; n <= 8; n++)
{
BoardArray[n] = ' ';
}
continue;
case 2:
cout << "X wins! Press enter to play again!";
system("PAUSE > NULL");
for(int n = 0; n <= 8; n++)
{
BoardArray[n] = ' ';
}
continue;
case 3:
cout << "O wins! Press enter to play again!";
system("PAUSE > NULL");
for(int n = 0; n <= 8; n++)
{
BoardArray[n] = ' ';
}
continue;
}

}
return 0;
}
void DisplayBoard(char BoardArray[])
{
cout << " | | \n";
cout << " " << BoardArray[0] << " | " << BoardArray[1] << " | " << BoardArray[2] << "\n";
cout << "____|____|____\n";
cout << " | | \n";
cout << " " << BoardArray[3] << " | " << BoardArray[4] << " | " << BoardArray[5] << "\n";
cout << "____|____|____\n";
cout << " | | \n";
cout << " " << BoardArray[6] << " | " << BoardArray[7] << " | " << BoardArray[8] << "\n";
cout << " | | \n\n";
}
int CheckGameOver(char BoardArray[])
{
bool Tie = false;
bool Player1Win = false;
bool Player2Win = false;
int ErrorCode = 0;

for(int n = 0; n <= 8; n++)
{
if(BoardArray[n] == ' ')
{
Tie = false;
break;
}
else
{
Tie = true;
}
}

if(BoardArray[0] == 'X' && BoardArray[3] == 'X' && BoardArray[6] == 'X')
{
Player1Win = true;
}
if(BoardArray[0] == 'X' && BoardArray[1] == 'X' && BoardArray[2] == 'X')
{
Player1Win = true;
}
if(BoardArray[2] == 'X' && BoardArray[5] == 'X' && BoardArray[8] == 'X')
{
Player1Win = true;
}
if(BoardArray[6] == 'X' && BoardArray[7] == 'X' && BoardArray[8] == 'X')
{
Player1Win = true;
}
if(BoardArray[0] == 'X' && BoardArray[4] == 'X' && BoardArray[8] == 'X')
{
Player1Win = true;
}
if(BoardArray[2] == 'X' && BoardArray[4] == 'X' && BoardArray[6] == 'X')
{
Player1Win = true;
}
if(BoardArray[1] == 'X' && BoardArray[4] == 'X' && BoardArray[7] == 'X')
{
Player1Win = true;
}
if(BoardArray[3] == 'X' && BoardArray[4] == 'X' && BoardArray[5] == 'X')
{
Player1Win = true;
}


if(BoardArray[0] == 'O' && BoardArray[3] == 'O' && BoardArray[6] == 'O')
{
Player2Win = true;
}
if(BoardArray[0] == 'O' && BoardArray[1] == 'O' && BoardArray[2] == 'O')
{
Player2Win = true;
}
if(BoardArray[2] == 'O' && BoardArray[5] == 'O' && BoardArray[8] == 'O')
{
Player2Win = true;
}
if(BoardArray[6] == 'O' && BoardArray[7] == 'O' && BoardArray[8] == 'O')
{
Player2Win = true;
}
if(BoardArray[0] == 'O' && BoardArray[4] == 'O' && BoardArray[8] == 'O')
{
Player2Win = true;
}
if(BoardArray[2] == 'O' && BoardArray[4] == 'O' && BoardArray[6] == 'O')
{
Player2Win = true;
}
if(BoardArray[1] == 'O' && BoardArray[4] == 'O' && BoardArray[7] == 'O')
{
Player2Win = true;
}
if(BoardArray[3] == 'O' && BoardArray[4] == 'O' && BoardArray[5] == 'O')
{
Player2Win = true;
}

if(Player1Win == true)
{
ErrorCode = 2;
}
else
{
if(Player2Win == true)
{
ErrorCode = 3;
}
else
{
if(Tie == true)
{
ErrorCode = 1;
}
else
{
ErrorCode = 0;
}
}
}
return ErrorCode;
}
//=========================================Artificia l==intelligence=================================== =====
int could_win(char BoardArray[],char Player,int StartPoint)
{
int p;
if(Player=='X')
p=2;
else if(Player=='O')
p=3;
char Board[9];
for(int i=0;i<9;i++)
Board[i]=BoardArray[i];

for(int i=StartPoint;i<9;i++)
{
for(int i=0;i<9;i++)
Board[i]=BoardArray[i];
if(Board[i]==' ')
{
Board[i]=Player;
if(CheckGameOver(Board)==p)
return i;

}
}

return 10;
}
int AI_Move(char BoardArray[],char AI,char player)
{
char Board[9];
for(int i=0;i<9;i++)
Board[i]=BoardArray[i];
//-------------
srand(time(0));
//=============
int Move=abs((rand() % 9)-1);
Check:
if(Move==0 || Move==2 || Move==6 || Move==8)
goto Passed;
while(Board[Move]==' ')
if(Move!=0 || Move!=2 || Move!=6 || Move!=8)
{
Move=abs((rand() % 9)-1);
goto Check;
}
Passed:
// AI_score
int counter=0;
bool BAQQO=false;
for(int i=0;i<9;i++)
if(BoardArray[i]==' ')
counter++;
if(BoardArray[4]==' ')
BAQQO=true;
else if(counter==8)
return Move;
if(counter==8 && BAQQO)
return 4;
//------------------------------------------Manual-----------------------------------
if((BoardArray[0]==player && BoardArray[8]==player && counter==6) || (BoardArray[2]==player && BoardArray[6]==player) && counter==6)
if(BoardArray[1]==' ')
return 1;
else if(BoardArray[7]==' ')
return 7;
//========================
if(BoardArray[4]==player && BoardArray[0]==player && BoardArray[8]==AI && counter==6)
return 6;
else if(BoardArray[4]==player && BoardArray[8]==player && BoardArray[0]==AI && counter==6)
return 2;
else if(BoardArray[4]==player && BoardArray[2]==player && BoardArray[6]==AI && counter==6)
return 8;
else if(BoardArray[4]==player && BoardArray[6]==player && BoardArray[2]==AI && counter==6)
return 0;
//------------------------------------------------------------------------------------

for(int i=0;i<9;i++)
Board[i]=BoardArray[i];

int score=-10;
int ai_p=could_win(BoardArray,AI,0);
int player_p=could_win(BoardArray,player,0);
if(ai_p < 9)
return ai_p;
else if(player_p < 9)
return player_p;
else
{
for(int i=0;i<9;i++)
{
for(int j=0;j<9;j++)
Board[j]=BoardArray[j];
if(Board[i]==' ')
{
Board[i]=AI;
ai_p=could_win(Board,AI,0);
if(ai_p <9)
if(score <2 )
{
score=2;///========---MAX-SCORE---==========
Move =i;
}
if(score >10)
score=INT_MAX;
ai_p=could_win(Board,AI,ai_p+1);
if(ai_p <9 && score < 5)//------Check-if-it-is-better-move-------
{
score=4;
Move=i;
}
Board[i]=player;
player_p =could_win(Board,player,0);
if(player_p <9)
if(score <1)//------Check-if-it-is-better-move-------
{
score=1;
Move =i;
}
player_p=could_win(Board,player,player_p+1);
if(player_p <9 && score <INT_MAX)//------Check-if-it-is-better-move-------
{
score+=10;
score=3;
if(score <10)
Move=i;
}
}
}
}
return Move;
}

V0RTEX
سه شنبه 14 دی 1389, 21:30 عصر
برنامه ای که یه رشته ای را به عنوان ورودی بگیرد تعداد تکرار هر یک از کاراکترها را چاپ کند در زبان ++c

البته این برنامه فقط تعداد کارکترهای حروف english رو حساب می کنه علامت ها رو نمی شماره اگه خواستید اوون ها هم بشماره باید یک خورده تغییرش بدین:لبخندساده:



/*
by V0RTEX :D
*/
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> char_count(26);
char s=' ';
while(s!='\r' && s!='\n' )
{
s=cin.get();
if(s>='A' && s <='z')
if(s<='Z')
char_count[(s+32)-97]++;
else if(s>='a')
char_count[s-97]++;
}
for(int i=0;i<26;i++)
cout << char(i+65) << " = " << char_count[i]<<"\t";
cout <<endl;
system("pause");
}

voiceoffox
دوشنبه 20 دی 1389, 10:26 صبح
سلام و درود دوباره بر شما عزیزان پس از یک غیبت طولانی !!! :قهقهه:

این دیگه پروژه نیس ... :بامزه:

بلکه یه PDF هس که توش 120 تا پروژه ساده رو توضیح داده و گفته ... و صد البت این پروژه ها دانشجویی نیستن ... در من پروژه ها برخی از نکات و دستورات ساده هم توضیح داده شده ... :لبخند:

تا بعد خداحافظ ...

Arcsinos
سه شنبه 21 دی 1389, 13:23 عصر
یه دفتر چه تلفن با قابلیت ( اضافه کردن ، حذف ، مرتب سازی ، جست و جو ، نمایش ، ذخیره سازی در فایل ) :

// Count.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "iostream"
#include "fstream"
#include "string.h"
#include "conio.h"
using namespace std;

struct PhoneBookObject
{
char FirstName[20];
char LastName[20];
char PhoneNumber[20];
};

void Add(PhoneBookObject PhoneBook[],int &NumObject,bool &Change)
{
cout<<"\nFirst Name : ";
cin.getline(PhoneBook[NumObject].FirstName,19);

cout<<"\nLast Name : ";
cin.getline(PhoneBook[NumObject].LastName,19);

cout<<"\nPhon Number : ";
cin.getline(PhoneBook[NumObject].PhoneNumber,19);

NumObject++;

Change=1;
}

void Sort(PhoneBookObject PhoneBook[],int NumObject,bool &Change)
{
PhoneBookObject Temp;

for(int i=0;i<NumObject;i++)
for(int j=0;j<NumObject-i-1;j++)
if(strncmp(PhoneBook[j].LastName ,PhoneBook[j+1].LastName,19)>0)
{
Temp=PhoneBook[j];
PhoneBook[j]=PhoneBook[j+1];
PhoneBook[j+1]=Temp;
}

Change=1;
}

void Show(PhoneBookObject PhoneBook[],int NumObject)
{
for(int i=0;i<NumObject;i++)
cout<<"\n"<<i<<") "<<PhoneBook[i].FirstName<<" "<<PhoneBook[i].LastName<<"\tTel: "<<PhoneBook[i].PhoneNumber;
}

int Search(PhoneBookObject PhoneBook[],int NumObject)
{
char Input[20];
int Index=-1;
cout<<"\nLast Name : ";
cin.getline(Input,19);

for(int i=0;i<NumObject;i++)
if(strstr(PhoneBook[i].LastName,Input))
{
Index=i;
break;
}

if(Index!=-1)
{
cout<<"\nFirst Name: "<<PhoneBook[Index].FirstName<<"\tLast Name: "<<PhoneBook[Index].LastName<<"\tTel: "<<PhoneBook[Index].PhoneNumber;
return Index;
}
else
{
cout<<"\n\""<<Input<<"\" Not Find!";
return Index;
}
}
void Save(PhoneBookObject PhoneBook[],int NumObject,bool &Change)
{
ofstream ofile;
ofile.open("c:\\PhoneBook.txt");

if(Change==1)
{
ofile<<NumObject;
for(int i=0;i<NumObject;i++)
ofile<<"\n"<<PhoneBook[i].FirstName<<"\n"<<PhoneBook[i].LastName<<"\n"<<PhoneBook[i].PhoneNumber;

cout<<"\nSaved!";

Change=0;
}
else
cout<<"\nPhone Number Save befor!";
}


void Delete(PhoneBookObject PhoneBook[],int &NumObject,bool &Change)
{
int Find;
char Sure;
Find=Search(PhoneBook,NumObject);

if(Find!=-1)
{
cout<<"\nAre You Sure to Delete this Number(yes/no)?";
Sure=getch();
switch(Sure)
{
case 'y':
{
for(int i=Find;i<NumObject-1;i++)
PhoneBook[i]=PhoneBook[i+1];

NumObject--;
Change=1;

break;
}

case 'n':
break;

default : cout<<"\nWrong Character!";
}
}

}

void Exit(char &Input,PhoneBookObject PhoneBook[],int NumObject,bool &Change)
{
char Sure;
if(Change==1)
{
cout<<"\nDo you want to seva the phone Number before Exit on Program(yes/no)?";
Sure=getch();
switch(Sure)
{
case 'y':
{
Save(PhoneBook,NumObject,Change);
break;
}
case 'n':
break;
default : cout<<"\nWrong Character!";
}
}

cout<<"\nAre you sure to exit on program(yes/no)?";
Sure=getch();
switch(Sure)
{
case 'y':
break;

case 'n':
Input='0';
break;
default : cout<<"\nWrong Character!";
}
}


void main()
{
PhoneBookObject PhoneBook[20];
int NumObject=0;
bool Change=1;
char Input=0;

ifstream ifile;
ifile.open("c:\\PhoneBook.txt");
ifile>>NumObject;

for(int i=0;i<NumObject;i++)
{
ifile>>PhoneBook[i].FirstName;
ifile>>PhoneBook[i].LastName;
ifile>>PhoneBook[i].PhoneNumber;
}

cout<<" *---* Welcome to your Phone Book *---*";

while(Input!='7')
{
cout<<"\n1)Add\n2)Delete\n3)Sort\n4)Show\n5)Search\n6)Sav e\n7)Exit";

cout<<"\nPlease enter number of your act : ";

Input=getch();

switch(Input)
{
case '1':Add(PhoneBook,NumObject,Change);
break;

case '2':Delete(PhoneBook,NumObject,Change);
break;

case '3':Sort(PhoneBook,NumObject,Change);
break;

case '4':Show(PhoneBook,NumObject);
break;

case '5':Search(PhoneBook,NumObject);
break;

case '6':Save(PhoneBook,NumObject,Change);
break;

case '7':Exit(Input,PhoneBook,NumObject,Change);
break;

default:cout<<"\n *---* The input character is wrong!*---*\n\n";
}
}
}

voiceoffox
جمعه 24 دی 1389, 01:42 صبح
سلام :لبخند:
اینم بازی "سنگ - کاغذ - قیچی" هست ! اما با بازی سنگ و کاغذ و قیچی که چند صفحه قبل یکی نوشته بود فرق هایی داره! :متفکر:

این بازیتک نفره اس و فقط شمایین با کامپیوتر ! یه جورایی هوشمنده ! :شیطان:


#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
int mantegh(int,int);
main()
{
randomize();
int pcp=0,hup=0,mon=0,sel=0,pcsel=0,ans=0;
error1:
cout<<"Choose your round mode by pressing the number of mode wich you want :"<<"\n";
cout<<"(This will be the number of rounds wich you play)"<<"\n";
cout<<"0. <1>Round"<<"\n"<<"1. <3>Rounds"<<"\n"<<"2. <5>Rounds"<<"\n";
cout<<"3. <10>Rounds"<<"\n"<<"4. <15>Rounds"<<"\n"<<"5. <20>Rounds"<<"\n";
cout<<"6. <25>Rounds"<<"\n"<<"7. <50>Rounds"<<"\n"<<"8. <75>Rounds"<<"\n";
cout<<"9. <100>Rounds"<<"\n";
cout<<"Now ! insert the numbr of your mode :"<<"\n";
mon=getche();
if(mon=='0')
mon=1;
else if(mon=='1')
mon=3;
else if(mon=='2')
mon=5;
else if(mon=='3')
mon=10;
else if(mon=='4')
mon=15;
else if(mon=='5')
mon=20;
else if(mon=='6')
mon=25;
else if(mon=='7')
mon=50;
else if(mon=='8')
mon=75;
else if(mon=='9')
mon=100;
else
{
clrscr();
cout<<"Just press the number of mode , nothing else ! OK ?"<<"\n";
goto error1;
}
cout<<"\n"<<"Ok !"<<" Remmember that you must reach to htis point !"<<"\n";
cout<<"press any key to start the game ..."<<"\n";
getch();
clrscr();
for(int i=1;i<=mon;i++)
{
error2:
cout<<"Press the number of the thing that you wantb to use :"<<"\n";
cout<<"1. Sang"<<"\n"<<"2. Kaghaz"<<"\n"<<"3. Gheychi"<<"\n";
sel=getch();
if(sel=='1')
{
clrscr();
cout<<"******************************"<<"\n";
cout<<"Your selection : <SANG>"<<"\n";
}
else if(sel=='2')
{
clrscr();
cout<<"******************************"<<"\n";
cout<<"Your selection : <KAGHAZ>"<<"\n";
}
else if(sel=='3')
{
clrscr();
cout<<"******************************"<<"\n";
cout<<"Your selection : <GHEYCHI>"<<"\n";
}
else
{
clrscr();
cout<<"You are just aloud to enter numbers 1 or 2 or 3 ! OK ?"<<"\n";
goto error2;
}
pcsel=((rand()%3)+1);
if(pcsel==1)
cout<<"Computer selection : <GHEYCHI>"<<"\n";
else if(pcsel==2)
cout<<"Computer selection : <SANG>"<<"\n";
else
cout<<"Computer selection : <KAGHAZ>"<<"\n";
ans=mantegh(pcsel,sel);
if(ans==1)
{
cout<<"====="<<"\n"<<"No added point !"<<"\n";
cout<<"Computer points : "<<pcp<<"\n"<<"Human points : "<<hup<<"\n";
}
else if(ans==2)
{
cout<<"====="<<"\n"<<"Player gained the point !"<<"\n";
++hup;
cout<<"Computer points : "<<pcp<<"\n"<<"Human Points : "<<hup<<"\n";
}
else if(ans==3)
{
cout<<"====="<<"\n"<<"Computer gained the point !"<<"\n";
++pcp;
cout<<"Computer points : "<<pcp<<"\n"<<"Human Points : "<<hup<<"\n";
}
else
{
clrscr();
goto error2;
}
cout<<"******************************"<<"\n";
}
if(pcp==hup)
{
clrscr();
cout<<"##########################################"<<"\n";
cout<<"# There wasn't any winner in this game ! #"<<"\n";
cout<<"##########################################"<<"\n";
cout<<" *Computer points : "<<pcp<<"\n"<<" *Player points : "<<hup<<"\n";
}
else if(pcp>hup)
{
clrscr();
cout<<"##########################################"<<"\n";
cout<<"# Computer won this game ! #"<<"\n";
cout<<"##########################################"<<"\n";
cout<<" *Computer points : "<<pcp<<"\n"<<" *Player points : "<<hup<<"\n";
}
else if(hup>pcp)
{
clrscr();
cout<<"##########################################"<<"\n";
cout<<"# Player won this game ! #"<<"\n";
cout<<"##########################################"<<"\n";
cout<<" *Computer points : "<<pcp<<"\n"<<" *Player points : "<<hup<<"\n";
}
else
getch();
}
int mantegh(int com,int man)
{
if((com==2 && man=='1')||(com==3 && man=='2')||(com==1 && man=='3'))
return 1;
//No one didn't take the point !
else if((com==1 && man=='1')||(com==2 && man=='2')||(com==3 && man=='3'))
return 2;
//Human took the point !
else if((com==1 && man=='2')||(com==2 && man=='3')||(com==3 && man=='1'))
return 3;
//Computer took the point !
else
return 0;
}

کامپایل شده تحت Turbo C++ 4.5

voiceoffox
سه شنبه 28 دی 1389, 15:47 عصر
سلام ... من این دفعه با یه برنامه جدید و تقریبا در حد آسون اومدم ! :تشویق:

این برنامه یه عدد میگیره و میگه اول هس یا نه و بعد تمام مقسوم علیه ها و همچنین مقسوم علیه های اول عدد رو به کاربر میگه ... :متفکر:


#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
int isprime(int);
main()
{
int n=0,div[999],sh=0,pdiv[999],count=0,s=0;
error:
cout<<"Please insert a number : "<<"\n";
cin>>n;
if(n<=0)
{
clrscr();
cout<<"You are just aloud to enter numbers wich are bigger than 0 (zero) ! Please try again . OK ?"<<"\n";
n=0;
goto error;
}
for(int i=1;i<=n;i++)
{
if((n%i)==0)
{
div[sh]=i;
sh++;
}
}
if(sh==2)
{
cout<<"**************************************************"<<"\n";
cout<<"This number is prime and has 2 divisors :"<<"\n "<<char(26)<<" {1 , "<<n<<"}"<<"\n";
cout<<"**************************************************"<<"\n";
getch();
exit(1);
}
else if(sh==1)
{
cout<<"**************************************************"<<"\n";
cout<<"This number has ony 1 divisor :"<<"\n "<<char(26)<<" {1}"<<"\n";
cout<<"**************************************************"<<"\n";
getch();
exit(1);
}
else
{
cout<<"**************************************************"<<"\n";
cout<<"This number is not prime and has "<<(sh)<<" divisors :"<<"\n "<<char(26)<<" {";
for(int j=0;j<sh;j++)
{
if(j==(sh-1))
{
cout<<div[j]<<"}"<<"\n";
goto con;
}
cout<<div[j]<<" , ";
}
}
con:
for(int k=0;k<sh;k++)
{
s=isprime(div[k]);
if(s!=0)
{
pdiv[count]=s;
s=0;
count++;
}
else
s=0;
}
cout<<" "<<char(26)<<" Prime divisors : {";
for(int u=0;u<count;u++)
{
if(u==(count-1))
{
cout<<pdiv[u]<<"}"<<"\n";
cout<<"**************************************************"<<"\n";
getch();
exit(1);
}
cout<<pdiv[u]<<" , ";
}
}
//================================================== ============================
int isprime(int a)
{
int pri=0;
for(int r=1;r<=a;r++)
{
if((a%r)==0)
pri++;
}
if(pri==2)
return a;
else
return 0;
}

voiceoffox
سه شنبه 28 دی 1389, 17:08 عصر
حدس گلدباخ

این برنامه برنامه خوب و جالبیه ... :تشویق: این برنامه درستی حدس گلدباخ رو درباره عددی که شما بهش میدین نشون میده ... :گیج:
اما اگه کسی نمیدونه حدس گلدباخ چیه ... :قهقهه:

==========
حدس گلدباخ :
هر عدد زوج بزرگتر از 4 رو میتوان به صورت مجموع 2 عدد اول (2 عدد تکراری و یا غیر تکرارای) نوشت .
هر عدد فرد بزرگتر از 5 را میتوان به صورت مجموع 3 عدد اول (3 عدد تکراری و با غیر تکراری) نوشت .
==========

حالا برنامه چی کار میکنه ... :متفکر:
این برنامه یک عدد بزرگتر از 5 از شما میگیره و بعد اون عدد شما رو اگر فرد باشه بصورت حاصلجمع 3 عدد اول ، و اگر زوج باشه به صورت حاصلجمع 2 عدد اول می نویسه و به شما میگه ... (به توضیحات بالا توجه کنن ! :چشمک:) :بامزه:


#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
main()
{
int co=0,w=0,q=0,pn[999],a=0,num=0,e=0;
error:
cout<<"Please insert a number (Please attention that it must be bigger than 5) : "<<"\n";
cin>>num;
if(num<=5)
{
clrscr();
cout<<"The number you enter must be 6 or bigger to continue ! OK ?"<<"\n";
num=0;
goto error;
}
for(long int i=2;i<=num;i++)
{
for(long int j=1;j<=i;j++)
{
if((i%j)==0)
co++;
}
if(co==2)
{
pn[a]=i;
co=0;
a++;
}
else
co=0;
}
if((num%2)==0)
{
for(int u=0;u<=a;u++)
{
for(int o=0;o<=u;o++)
{
w=pn[u];
q=pn[o];
if((w+q)==num)
{
cout<<"********************"<<"\n"<<w<<" + "<<q<<" = "<<num<<"\n";
getch();
exit(1);
}
}
}
}
else
{
for(int u=0;u<=a;u++)
{
for(int o=0;o<=u;o++)
{
for(int p=0;p<=o;p++)
{
w=pn[u];
q=pn[o];
e=pn[p];
if((w+q+e)==num)
{
cout<<"********************"<<"\n"<<w<<" + "<<q<<" + "<<e<<" = "<<num<<"\n";
getch();
exit(1);
}
}
}
}
}
}




در ضمن یادتون نره که این برنامه یکم سنگینه و سعی کنن عدد های خیلی گنده بهش ندن ...

کامپایل رفته تحت Turbo C++ 4.5 !

ghasemweb
پنج شنبه 30 دی 1389, 20:17 عصر
دفترچه تلفن با روش فايلينگ همراه امكاناتي چون درج ويرايش حذف جستجو ليست كردن و ...

هم دانشگاهی
شنبه 02 بهمن 1389, 12:39 عصر
سلام دوستان !

برنامه غلط یاب توسط درخت trie :


برنامه در ابتدا یک فایل source داره و بعد به کمک این source اشکالات فایل statement را مشخص میکند !


try it NOW

Salar Ashgi
شنبه 02 بهمن 1389, 18:30 عصر
تشخیص متقارن بودن پارانتزها (به ازای هر پارانتز باز ، یک پارانتز بسته وجود دارد) با استفاده از پشته ها (STL) :



#include <iostream>
#include <conio>
#include <stack>
#include <string>
#include <vector>
using namespace std;
int main(){
string str = "(2+3*(5+6/2))+(3/(6+7*3))";
stack<char,vector<char>> s;
for(int i=0;i<str.size();i++){
if(str[i]=='(')
s.push('(');
if(str[i]==')')
s.pop();}
if(s.empty())
cout<<"True \n";
else
cout<<"False \n";
getch();
}

Salar Ashgi
شنبه 02 بهمن 1389, 18:32 عصر
مرتب کردن عناصر یک Vector :



#include <iostream>
#include <conio>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
int main(){
vector<string> v;
v.push_back("salar");
v.push_back("ali");
v.push_back("hossain");
v.push_back("reza");
//----------------------
sort(v.begin(),v.end());
//----------------------
for(int i=0;i<v.size();i++)
cout<<v[i]<<endl;
getch();
}

aznaee
شنبه 02 بهمن 1389, 23:25 عصر
این برنامه 12 عدد از کاربر میگیره نمودار خطی و میله ای رسم میکنه ترسیم خط بروش dda

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <string.h>
#include <iostream.h>
// Algoritm DDA
void linedda(int x1,int y1,int x2, int y2,int c)
{
int dx=x2-x1;
int dy=y2-y1;
float x=x1;
float y=y1;
float xi,yi,step,k;

if (fabs(dx)>fabs(dy))
step=abs(dx);
else
step=abs(dy);
xi=dx/step;
yi=dy/step;

for(k=0;k<=step;k++)
{
putpixel(floor(x),floor(y),c);
x+=xi;
y+=yi;
}
}
void gui()
{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode;

/* initialize graphics mode */
initgraph(&gdriver, &gmode, "");

/* read result of initialization */
errorcode = graphresult();

if (errorcode != grOk) /* an error occurred */
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1); /* return with error code */
}

}

int guie()
{
getch();
closegraph();
return 0;
}
void bound(int x,int y,int f,int b)
{
int cu=getpixel(x,y);
if (cu!=b)
if(cu!=f)
{
putpixel(x,y,f);
bound(x+1,y,f,b);
bound(x,y+1,f,b);
bound(x,y-1,f,b);
bound(x-1,y,f,b);
}
}

void bar(int b,int c)
{
linedda(c,440,c,b,5);
linedda(c+10,440,c+10,b,5);
linedda(c,b,c+10,b,5);
linedda(c,440,c+10,440,5);
bound(c+1,439,10,5);
}

int main(void)
{
const n=12;
int v[n],i,j,x,x1;
char *s;


/* draw a line */
for (i=0;i<n;i++)
{
printf("Please enter number (%d): ",i+1);
cin>>x;
if (x<=100)
v[i]=x;
else
v[i]=x%100;
}
gui();
cleardevice();
outtextxy(250,10,"In The Name of God");
outtextxy(400,470,"(Zalaghi,Bonyadi,Mahdavi)");

// bar diagram
for(i=240,j=100;i<=420;i+=20,j-=10)
{
linedda(100,i,100,i+20,10);
linedda(98,i,102,i,15);
switch (j)
{
case 100:s="100";
break;
case 90 :s="90";
break;
case 80:s="80";
break;
case 70 :s="70";
break;
case 60:s="60";
break;
case 50 :s="50";
break;
case 40:s="40";
break;
case 30 :s="30";
break;
case 20:s="20";
break;
case 10 :s="10";
break;
}

outtextxy(70,i-3,s);
}
linedda(98,440,102,440,15);
outtextxy(70,437,"0");
linedda(100,440,400,440,10);
for(i=0,j=130;i<n;i++,j+=20)
{
x=v[i]/10*20+(v[i]%10)*2;
bar(440-x,j);
}

// Linear Diagram
for(i=20,j=100;i<=200;i+=20,j-=10)
{
linedda(100,i,100,i+20,10);
linedda(98,i,102,i,15);
switch (j)
{
case 100:s="100";
break;
case 90 :s="90";
break;
case 80:s="80";
break;
case 70 :s="70";
break;
case 60:s="60";
break;
case 50 :s="50";
break;
case 40:s="40";
break;
case 30 :s="30";
break;
case 20:s="20";
break;
case 10 :s="10";
break;
}

outtextxy(70,i-3,s);
}
linedda(98,220,102,220,15);
outtextxy(70,217,"0");
linedda(100,220,400,220,10);
for(i=0,j=130;i<n-1;i++,j+=20)
{
x=(v[i]/10)*20+(v[i]%10)*2;
x1=(v[i+1]/10)*20+(v[i+1]%10)*2;
//putpixel(j,220-x,15);
linedda(j,220-x,j+20,220-x1,15);


}

/* clean up */
guie();
}

beginner1010
شنبه 09 بهمن 1389, 14:53 عصر
این برنامه تمام جایگشت های یک لیست عدد رو می ده




#include <iostream>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <set>
#include <string>
#include <sstream>
#include <stack>
#include <queue>
#include <map>
#include <numeric>
#include <cstdlib>
#include <cstring>
#include <utility>
#include <functional>
#include <cstdio>
#include <ctime>
using namespace std ;
int main () {
//freopen ("in.in","r",stdin) ;
int n ; cin >> n ;// number of inputs
vector <int> v (n) ;
for(int i = 0 ; i < n;i ++) cin >> v [i] ;
sort (v.begin(),v.end()) ;
do {
for(int i = 0 ; i < n;i ++){
if (i) printf (" ") ;
printf ("%d",v [i]) ;
}
printf ("\n");
}while (next_permutation (v.begin(),v.end())) ;
}

kitten
یک شنبه 01 اسفند 1389, 18:45 عصر
سلام دوستان
طبق درخواست شما یه برنامه کوچیک و جمع و جور برای شناسایی درایوهای ویندوز نوشتم امیدوارم که از این برنامه خوشتون بیاد ، خیلی می گفتند که چه طوری فلش ها را شناسایی کنیم که فلش ها تو این برنامه خودشون از نوع فلاپی ها هستند و چون درایوهای فلاپی همیشه a یا b هستند پس بقیه شون فلش به حساب می ایند.
منابع : اینترنت و با اجازه تون یه کمم خودم
لینک :
http://kitten2.persiangig.com/VDI.rar

برای اطلاعات بیشتر به وبلاگم سر بزنید
فعلا

kitten
یک شنبه 01 اسفند 1389, 18:48 عصر
سلام دوستان
بعد از چند ماه امروز با نسخه جدید kudos که با استفاده از کتابخانه Qt ان را به صورت گرافیکی بازنویسی کردم اومدم


http://kitten2.persiangig.com/Kudos.JPG
البته هنوز هم از ado db در برنامه استفاده می کنم و امکان اضافه کردن کلمه وجود داره
برنامه با ویژوال استودیو نوشته شده است.
لینک کد برنامه + باینری :
http://kitten2.persiangig.com/Kudos%20Dic%20v%200.2.rar

لینک باینری :
http://kitten2.persiangig.com/Kudos%20Dic%20v%200.2%20-%20bin.rar
اطلاعات بیشتر در وبلاگ

فعلا

amirrezas
سه شنبه 03 اسفند 1389, 13:15 عصر
موضوع پروژه: لیست پیوندی (Linked List)

این یک پروژه ی بسیار ساده در حد آموزشی است.

1- کد نوشته شده کامنت ندارد. ( به جای آن مستندات برنامه در یک فایل pdf نوشته شده است )
2- برای وارد شدن به واسط کاربری باید x را وارد کنید.
3- لیست پیوندی با عدد کار می کند که البته می توان به راحتی کار کردن با string ها را به آن اضافه نمود
4- دو نوع روش sort در نظر گرفته شده است. پر سرعت ترین مرتب سازی ها Recursive Merge Sort می باشد تابع آن داخل کلاس تعریف شده است.

برای اطلاعات بیشتر اینکه لیست پیوندی چیست می توانید به اینجا (http://en.wikipedia.org/wiki/Linked_list) مراجعه کنید.

موفق باشید

66667

Arcsinos
جمعه 06 اسفند 1389, 16:51 عصر
یه برنامه ی تقریبا ساده که اعداد رو تو مبناها ی مختلف میگیره و اونها رو جمع و تفریق و ضرب و تقسیم و تبدیل به مبناهای دیگه میکنه .

http://www.4shared.com/file/AxOhdFpP/Base.html

baran_mehr
شنبه 20 فروردین 1390, 17:41 عصر
تا حالا سعی کرديد توی ويژوال سی رنگ پس زمينه رو عوض کنيد و رنگ دلخواهتون رو براش تعيين کنيد ؟

اين کار مستقيما توی ويزارد نيست اما با يک خط کد نويسی قابل انجام هستش !

پوزه شما ۲ تا فايل cpp اصلی داره که عبارتند از projectname.cpp و projectnameDlg.cpp که منظور از projectname نام پروژه ای هستش که انتخاب کرديد.

توی فايل projectname.cpp قبل ار دستور;() int nResponse = dlg.DoModal کافيه اين يک خط رو بنويسيد :


;(( SetDialogBkColor(RGB(255,0,123),RGB(12,56,212

RGB اول رنگ پس زمينه را مشخص ميکنه و RGB دوم رنگ متن ديالوگ رو تعيين می کنه .

منبع (http://visualc6.persianblog.com)

baran_mehr
شنبه 20 فروردین 1390, 17:47 عصر
برنامه ساده که يوزر و پسورد و شماره تلفن بگيره و خودش به اينترنت وصل بشه

اول که بايد يه پروژه جديد بسازيد و ۳ تا edit box برای اطلاعات يوزر و پسورد و شماره تلفن.
اولين کاری که بايد کنيد اينه که ۱-۲ کلاس رو به پروژه اضافه کنيد که با ۲خط زير انجام ميديد:


#include "ras.h"
#include "raserror.h"
حالا ۲ تا دکمه بگذاريد برای وصل شدن و قطع ارتباط.
برای وصل شدن از چند خط ساده زير استفاده کنيد که هر خط رو جداگانه توضيح ميدم:


RASDIALPARAMS rdParams;// متغييری(شئی) است برای دادن اطلاعات مورد نياز برای کانکت به اينترنت
rdParams.dwSize = sizeof(RASDIALPARAMS);
rdParams.szEntryName[0] = '\0';
lstrcpy( rdParams.szPhoneNumber, m_strPhoneNumber );//در اين قسمت شماره تلفن را مقدار دهی ميکنيم
rdParams.szCallbackNumber[0] = '\0';
lstrcpy( rdParams.szUserName, m_strUserName );//در اين قسمت يوزررا مقدار دهی ميکنيم
lstrcpy( rdParams.szPassword, m_strPassword );//در اين قسمت پسورد را مقدار دهی ميکنيم
rdParams.szDomain[0] = '\0';

HRASCONN hRasConn = NULL;//اين متغيير برای نسبت دادن يک هندل به اين کانکشن در صورت موفقيت خوهد بود که بتوان در آينده از آن استفاده کرد مثلا آنرا قطع کرد
DWORD dwRet = RasDial( NULL, NULL, &rdParams, 0L, NULL, &hRasConn );//در اين قسمت شروع به شماره گيری ميکند و نتيجه شماره گيری بازگردانده می شود که در صورت موفقيت صفر و در غير اين صورت شماره خطلا خواهد بود
if ( dwRet == 0 ) return true;
char szBuf[256];
if ( RasGetErrorString( (UINT)dwRet, (LPSTR)szBuf, 256 ) != 0 )//اگر منجر به خطا شد با استفاده از شماره خطا متن خطا را بدست آمرده نمايش می دهيم و کانکشن را می بنديم
wsprintf( (LPSTR)szBuf, "Undefined RAS Dial Error (%ld).", dwRet );
RasHangUp( hRasConn );
MessageBox( (LPSTR)szBuf, "Error", MB_OK | MB_ICONSTOP );
return false;



تا ايجا نحوه خيلی ساده اتصال رو ديديم. حالا بايد در صورت نياز امکان قطع کردن رو هم فراهم کنيم که اونم به سادگی کد زير هستش:


RASCONN ras[20];
DWORD dSize, dNumber;
char szBuf[256];

connected=false;
ras[0].dwSize = sizeof( RASCONN );
dSize = sizeof( ras ); // Get active RAS - Connection
DWORD dwRet = RasEnumConnections( ras, &dSize, &dNumber );
if ( dwRet != 0 )
{
if ( RasGetErrorString( (UINT)dwRet, (LPSTR)szBuf, 256 ) != 0 )
wsprintf( (LPSTR)szBuf, "Undefined RAS Enum Connections error (%ld).", dwRet );
MessageBox( (LPSTR)szBuf, "RasHangUp", MB_OK | MB_ICONSTOP );
return false;
}
bool bOK = true;
for( DWORD dCount = 0; dCount < dNumber; dCount++ )
{ // Hang up that connection
HRASCONN hRasConn = ras[dCount].hrasconn;
DWORD dwRet = RasHangUp( hRasConn );
if ( dwRet != 0 )
{
char szBuf[256];
if ( RasGetErrorString( (UINT)dwRet, (LPSTR)szBuf, 256 ) != 0 )
wsprintf( (LPSTR)szBuf, "Undefined RAS HangUp Error (%ld).", dwRet );
MessageBox( (LPSTR)szBuf, "RasHangUp", MB_OK | MB_ICONSTOP );
bOK = false;
}
}
return bOK;

با اين ۲ تابع ساده ميتونيد به اينترنت متصل شيد. اما نکاتی که هست اينه که :
اولا اصلا کانکشن ويندوزی ساخته نميشه.
دوماً اينکه ايکون اتصال هم نمايش داده نميشه و دست شمارو باز ميگذاره که هرجور دوست داريد اعمال سليقه کنيد.
منبع (http://visualc6.persianblog.com)

kitten
دوشنبه 22 فروردین 1390, 07:38 صبح
سلام دوستان
اینم یه برنامه که یه پشته را پیاده سازی می کنه و یه سری اطلاعات را داخلش میریزه و بعدش دوباره اونها را خارج می کنه (برای اموزش خوبه)
#include <stdio.h>
#include <conio.h>
int top;
struct stack
{
int data;
struct stack *next;
};
bool isempty(struct stack *x)
{
if(!top) return true;
else return false;
}

int pop(struct stack *x,bool rm)
{ if(!isempty(x))
{
struct stack *y=x;
for(int i=0;i<top-1;i++) x = x->next;
int data = x->data;
if(rm)
{
for(int i=0;i<top-2;i++) y = y->next;
y->next = NULL;
x = y;
top--;
}
return data;
}else
{
printf("It is Empty!");
return 0;
}
}
void push(struct stack *x,int data)
{
for(int i = 0;i<top;i++) x = x->next;
x->data = data;
x->next = new struct stack;
top++;
}
int main()
{
top = 0;
struct stack *t = new struct stack;
push(t,1);
push(t,2);
push(t,3);
printf("%d",pop(t,true));
printf("%d",pop(t,false));
printf("%d",pop(t,true));
printf("%d",pop(t,false));
printf("%d",pop(t,false));
getch();
return 0;
}

FastCode
سه شنبه 30 فروردین 1390, 15:26 عصر
این هم یدونه از طرف من.
یکی از دوستام گفت که یه برنامه بده ک اعداد اول رو حساب کنه.
باید یه چیزی مینوشتم که توی sms جا بشه.
نخندید.
#include "stdio.h"
#include "malloc.h"
#define U unsigned int
int main(){U S,E,m=1,c=1,V;printf("S? E?");scanf("%u %u",&S,&E);if(S>E)return 1;if((E>1)&&(S<2))printf("%u\n",2);U* L=(U*)malloc(6542*sizeof(U));L[0]=2;bool D=0;for(U n=2;n!=E;n++){for(U t=0;t!=c;t++)if((n%(V=L[t]))==0)goto x;if((V*V<n)&&((n%(V=L[c++]))==0))goto x;if(n>S)printf("%u\n",n);if(!D){L[m++]=n;if(n*n>E){D=1;if(n<S){while((V*V)<S)V=L[c++];n=S;}}}x:;}free(L);return 0;}

با gcc روی دبییان x86_64, armel و vc++ 6 روی ویندوز x86 کامپایل میشه.

kitten
چهارشنبه 31 فروردین 1390, 08:09 صبح
سلام دوستان
این هم یه برنامه ساده برای نشان دادن چگونگی کار با لینک لیستها
#include <stdio.h>
#include <conio.h>

struct linklist
{
int data;
struct linklist *next;
};

struct linklist *createNode() {
struct linklist *tmp = new struct linklist;
return tmp;
}
int main() {
struct linklist *mylist,*T;
mylist = new struct linklist;
T = mylist;
mylist->data = 0;
mylist->next = createNode();
mylist = mylist->next;
mylist->data = 1;
mylist->next = createNode();
mylist = mylist->next;
mylist->data = 2;
mylist->next = NULL;
mylist = T;
while(mylist)
{
printf("%d\n",mylist->data);
mylist = mylist->next;
}
getch();
return 0;
}

sodabeh
یک شنبه 04 اردیبهشت 1390, 18:12 عصر
برنامه ی مغلوب عدد طبیعی n

#include<iostream.h>
Main()
{
Int n,d,s=0;
Cout<<”please inter n”;
Cin>>n;
While(n>0){
D=n%10;
N=n\10;
S=s*10+d;
}cout<<s;
}
[[/LTR_INLINE][/LTR_INLINE][/LEFT]

albaloo2009
یک شنبه 18 اردیبهشت 1390, 00:45 صبح
برنامه بازی حدس عدد به زبان c# باشه لطفان
که اول کاربر اول عدد رو وارد میکنه
سپس کار بر دوم حدس میزنه
اگه عدد بزرگتر بود پیغام بزرگتر و اگر کوچیکتر بود پیغام کوچیکتر نمایش بده
تا 10 عدد بیشتر نتونه وارد کنه در ضمن اگر کار بر بجای عدد کاراکتر وارد کرد برنامه پیغام خطا بده و این کار تا زمانی که عدد رو وارد نکرده ادامه داشته باشه
با do while باشه

میشه برنامه قبی رو هم به صورتی انجام داد که بعد از اتمام ازش بپرسه میخواد ادامه بده بعد اگر میخوادy وارد کنه اگر نمیخواد n
میشه اینو چندین مرحلهای کرد ؟ که تو هر مرحله تعدا اعدادی که میتونی حدس بزنه کمتر باشه

میدونم این برنامه زیادی مشکل داره شما به بزرگواریتون ببخشید و ممنون میشم کمکم کنید
--------------------------------------------------------------------------------------------------------


#include<stdio.h>
include<conio.h>#
Main()
{
int h1,h2.i=1;
print f ("p1:enter a number:")
scanf("%d",h1);
clrscr();
while(i<=10)
{
printf("p2 rountd%dwhat is your guess?');
if(h2>h1)
printf("adad bozorgtaras mojadad adad ra vared konid/n);
else
if(h2<h1)
printf('adad kochiktar ast dobare talash konid /n);
else
printf("you win";
breek;
}
i++
}
if(i==11(;
printf(you loos"(
{

Arcsinos
دوشنبه 26 اردیبهشت 1390, 13:42 عصر
این هم چند برنامه ی ساده برای درس ساختمان داده ها و الگوریتم ها . فایل زیر حاوی این برنامه هاست :
array و Binary search و Bubble Sort و پیاده سازی صف Queue و Insertion sort و merge sort و Quick sort و selection sort و پیاده سازی پشته stack و چند برنامه ی دیگر .

برای دانلود اینجا (http://www.4shared.com/file/sziMQJ9X/File_Structures.html) و برای توضیحات بیشتر به وبلاگم یعنی اینجا (http://arcsinos.blogfa.com/post-144.aspx) کلیک کنید .

Arcsinos
یک شنبه 15 خرداد 1390, 15:09 عصر
سلام
یه فایل 460 مگابایتی رو تو سیستم تورنت قرار دادم که شامل 4000 کد سی و سی پی پی و ویژوال بیسیک هست که در مورد همه ی مباحث برنامه نویسی از الگوریتم گرفته تا برنامه های کاربردی کوچیک و بزرگ .که میتونید اونو به راحتی دانلود کنید . اگه با تورنت آشنایی ندارید اینجا (http://arcsinos.blogfa.com/post-33.aspx) کلیک کنید و بعد از آشنایی با تورنت فایل تورنت که در زیر قرار دادم رو با نرم افزار utorrent باز کنید و فایل 460 مگابایتی rar. رو بعد از دانلود اکسترک کنید و ازش استفاده کنید . نرم افزار تورنت رو هم در زیر قرار دادم .

موفق باشید .

saber187518
دوشنبه 16 خرداد 1390, 23:27 عصر
با سلام
دوستان عزیز برنامه زیر مقدار لاگرانژ رو محاسبه میکنه

#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
void main()
{
float xi[100],fi[100],temp,li[100],x,p;
int i,n,j;
cout <<"enter number of sentences:\t";
cin >>n;
cout <<"enter value of x:\t";
cin >>x;
for (i=0;i<n;i++)
{
cout <<"enter xi["<<i<<"] :\t";
cin >>xi[i];
cout <<"enter fi["<<i<<"] :\t";
cin >>fi[i];
}//end of for
for (i=0;i<n;i++)
{
li[i]=1;
for (j=0;j<n;j++)
{
if(i==j)
continue;
li[i]*=(x-xi[j])/(xi[i]-xi[j]);
}//end of for
}//end of for
clrscr();
for (i=0;i<n;i++)
li[i]=li[i]*fi[i];
p=0;
for (i=0;i<n;i++)
p+=li[i];
cout <<"P"<<n-1<<"=\t"<<p;
getch();
}//end of program

par4parvaz
یک شنبه 22 خرداد 1390, 19:34 عصر
پروِه بازی زیر دریایی
71066

Arcsinos
سه شنبه 31 خرداد 1390, 01:09 صبح
اینم یه برنامه که عدد هارو به شکل زیر چاپ میکنه

71421

rezaheidarida
پنج شنبه 09 تیر 1390, 10:12 صبح
یه برنامه هست که یه شکل با ضلع های مشخص را با استفاده از کاراکتر مشخص طی زمان مشخص پر می کنه ... خوشگله :لبخند: با ویژوال 2010 ران کردم!

#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <windows.h>

using namespace std;
void gotoxy(int x,int y){

COORD pos;
HANDLE hConsole = GetStdHandle ( STD_OUTPUT_HANDLE );
if (INVALID_HANDLE_VALUE != hConsole)
{
pos.X = x;
pos.Y = y;
SetConsoleCursorPosition( hConsole, pos );
}
}

int main() {
// maghadir m , n andazeh zele shekl mored nazar hast, anha ra taghir dahid va natigeh ra bebinid
//baray aroom tar kardan ya sari tar kardan meghadar 10 ra dar ha tabeh Sleep taghir bedahid
int n= 50, m=50 ,s=0;
while ( m && n){
for (int i=s ; i<= n ; i++){
gotoxy(i , s );
cout<<"#";
Sleep(10);
}

for (int i=1 ; i <= m ; i++){
gotoxy(n , i );
cout<<"#";
Sleep(10);
}

for (int i=n-1 ; i >= 0 ;i--){
gotoxy(i , m );
cout<<"#";
Sleep(10);
}

for (int i=m-1 ; i > 0 ; i--){
gotoxy(s , i );
cout<<"#";
Sleep(10);
}

n--;
m--;
s++;
}


getch();
return 0 ;
}

rezaheidarida
پنج شنبه 09 تیر 1390, 13:27 عصر
اینم یه نوع تغییر داده شده برنامه ی بالای دوستمون!



#include <iostream>
#include <conio.h>
#include <stdio.h>

using namespace std;

int main() {



for (int i=1 ; i <= 9 ; i++){

for (int j=i ; j <= 8 ; j++) {
cout<<" ";
}

for (int k=1 ; k<=i ; k++){

cout<<k<<" ";
}

for (int l=i-1 ; l >0 ; l--){
cout<<l<<" ";
}

for (int j=i ; j <= 8 ; j++) {
cout<<" ";
}
cout<<endl;
}
for (int i=8 ; i >0 ; i--){

for (int j=1 ; j <= 9-i ; j++) {
cout<<" ";
}

for (int k=1 ; k<=i ; k++){

cout<<k<<" ";
}

for (int l=i-1 ; l >0 ; l--){
cout<<l<<" ";
}

for (int j=1 ; j <= 9-i ; j++) {
cout<<" ";
}
cout<<endl;
}
getch();
return 0 ;
}

ruhollah2009
جمعه 17 تیر 1390, 15:33 عصر
مثلث خیام را در برخی منابع به ندرت «مثلث خیام-پاسکال-نیوتن» نیز می‌گویند. این مثلث در زبان‌های گوناگون نام‌های دیگری نیز دارد در زبان انگلیسی «مثلث پاسکال»، ایتالیایی «مثلث تارتالیا» و در زبان چینی «مثلث یانگ هویی» نام گرفته‌است.
من امروز مسئله مثلث خیام را با c++ و یه آرایه دو بعدی 6*6 حل کردم که شما دوستان میتونید اندازه اون را به دلخواه زیاد کنید
امیدوارم بتونه در زمینه مسئله خیام به شما کمک کنه http://www.vasva3.com/images/smilies/1.gif
==============================

#include<iostream.h>
int main()
{
int khayam[6][6],i,j;
for(i=0 ; i<=5 ; i++)
khayam[0][i]=khayam[i][0]=1;
for(i=1 ; i<=5 ; i++)
for(j=1 ; j<=5 ; j++)
khayam[i][j]=khayam[i][j-1]+khayam[i-1][j];
for(i=0 ; i<=5 ; i++)
{
for(j=0 ; j<=5 ; j++)
cout<<khayam[i][j]<<"\t";
cout<<endl;
}
}

sana t
شنبه 25 تیر 1390, 17:30 عصر
کلاس چند جمله ای ها به زبان c++:
#include<conio.h>
#include<iostream.h>
#define Max 20
class Poly;
class PolyNode
{
friend Poly;
float Coef;
int Pow;
};
class Poly
{
int n;
PolyNode Data[Max];
public:
void equal(Poly a,Poly b);
void moshtaghpoly(void);
void search(void);
void SortPoly(void);
void ReadPoly(void);
void WritePoly(void);
void AddPoly(Poly a,Poly b);
void SubtractPoly(Poly a,Poly b);
};
void Poly::SortPoly(void)
{
int i,j;
PolyNode item;
for(i=n-1;i>0;i--)
for(j=0;j<i;j++)
if(Data[j].Pow<Data[j+1].Pow)
{
item=Data[j];
Data[j]=Data[j+1];
Data[j+1]=item;
}
while(i<n-1)
if(Data[i].Pow==Data[i+1].Pow)
{
Data[i].Coef+=Data[i+1].Coef;
for(j=i+1;j<n-1;j++)Data[j]=Data[j+1];
n--;
}else i++;
}
void Poly::ReadPoly(void)
{
int i;
cout<<"\nPlease enter parts of poly : ";
cin>>n;
cout<<"\nPlease enter Polynomial : \n\n";
for(i=0;i<n;i++)
{
cin>>Data[i].Coef;
cout<<" x^";
cin>>Data[i].Pow;
cout<<" +"<<endl;
}
}
void Poly::WritePoly(void)
{
int i;
cout<<"\n";
for(i=0;i<n;i++)cout<<Data[i].Coef<<"X^"<<Data[i].Pow<<" + ";
}
void Poly::AddPoly(Poly a,Poly b)
{
int i,j,k;
i=j=k=0;
while(i<a.n&&j<b.n)
{
if(a.Data[i].Pow>b.Data[j].Pow)
{
Data[k].Coef=a.Data[i].Coef;
Data[k++].Pow=a.Data[i++].Pow;
}
else if(a.Data[i].Pow<b.Data[j].Pow)
{
Data[k].Coef=b.Data[j].Coef;
Data[k++].Pow=b.Data[j++].Pow;
}
else if(a.Data[i].Coef+b.Data[j].Coef)
{
Data[k].Coef=a.Data[i].Coef+b.Data[j].Coef;
Data[k++].Pow=a.Data[i++].Pow;
j++;
}
else
{
i++;
j++;
}
}
while(i<a.n)
{
Data[k].Coef=a.Data[i].Coef;
Data[k++].Pow=a.Data[i++].Pow;
}
while(j<b.n)
{
Data[k].Coef=b.Data[j].Coef;
Data[k++].Pow=b.Data[j++].Pow;
}
n=k;
}
void Poly::SubtractPoly(Poly a,Poly b)
{
int i,j,k;
i=j=k=0;
while(i<a.n&&j<b.n)
{
if(a.Data[i].Pow>b.Data[j].Pow)
{
Data[k].Coef=a.Data[i].Coef;
Data[k++].Pow=a.Data[i++].Pow;
}
else if(a.Data[i].Pow<b.Data[j].Pow)
{
Data[k].Coef=b.Data[j].Coef;
Data[k++].Pow=b.Data[j++].Pow;
}
else if(a.Data[i].Coef-b.Data[j].Coef)
{
Data[k].Coef=a.Data[i].Coef-b.Data[j].Coef;
Data[k++].Pow=a.Data[i++].Pow;
j++;
}
else
{
i++;
j++;
}
}
while(i<a.n)
{
Data[k].Coef=a.Data[i].Coef;
Data[k++].Pow=a.Data[i++].Pow;
}
while(j<b.n)
{
Data[k].Coef=b.Data[j].Coef;
Data[k++].Pow=b.Data[j++].Pow;
}
n=k;
}
void Poly::moshtaghpoly(void){
int i;
for(i=0;i<n;++i){
Data[i].Coef*=Data[i].Pow;
Data[i].Pow--;}}
void Poly::search(void){
int x;
cout<<"\nenter a number for search:";
cin>>x;
for(int i=0;i<n;++i){
if(x==Data[i].Coef)
cout<<"\nThe number founded!";
break;}
cout<<"\nThe number not found";
}
void Poly::equal(Poly a,Poly b){
if(a.n!=b.n)
cout<<"not equal";
for(int i=0;i<a.n;++i)
if(a.Data[i].Pow!=b.Data[i].Pow||a.Data[i].Coef!=b.Data[i].Coef)
cout<<"equql!";
else
cout<<"not equal!";}

void main(void)
{
Poly a,b,c;
char Sign;
a.ReadPoly();
a.SortPoly();
cout<<"\nPlease enter sign(+,-) : ";
cin>>Sign;
b.ReadPoly();
b.SortPoly();
b=a;
b.WritePoly();
switch(Sign)
{
case'+':
c.AddPoly(a,b);
break;
case'-':
c.SubtractPoly(a,b);
break;}
c.SortPoly();
cout<<"\n\nAnswer Is : \n";
c.WritePoly();
a.moshtaghpoly();
cout<<"\nmoshtaghe a is:";
a.WritePoly();
cout<<"in a:";
a.search();
getche();
}

ahmad-hagh
یک شنبه 02 مرداد 1390, 12:31 عصر
ديکشنري با ساختار Trie
[Trie Dictionary]
هدف: آشنايي دوستان با ساختار Trie
توضيح مختصر: شما يک سري کلمات رو به ديکشنري تون اضافه ميکنين و بعد يه متن وارد ميکنين. با انتخواب take effect برنامه اون کلماتي رو که با ديکشنري مچ بوده (درست بوده) رو چاپ ميکنه
اگه خواستين کلماتي که داخل ديکشنري نيست رو چاپ کنه خط 163 رو به if(!(t->Search(str))) تغيير بدين

masterprogrammer
شنبه 05 شهریور 1390, 02:32 صبح
من خیلی با تاپیک آشنایی ندارم اگر برنامه تکراریه میتونید حذفش کنید

محاسبه ماتریس معکوس n*n به زبان سی ++
بسیار مفید برای تمرین با کار کردن با آرایه های داینامیک دو بعدی



#include <iostream>
using namespace std;
double determinant( double** matrix, int size);
int adjoint(double** matrix, double** temp, int row, int col, int size);
void inversion(double **matrix, int size, double **inverse);
int negative = 0 ;

///////////////////////////// Main Methode \\\\\\\\\\\\\\\\\\\\\\\\\\\

int main (){

int size ;
cout << "size: " <<endl ;
cin>>size;
double ** matrix = new double* [size];
for (int i=0 ; i<size ; i++ )
matrix[i] = new double [size];

for (int i=0 ; i<size ; i ++){
for (int j=0 ; j<size ; j++){
cout << "matrix[" <<i << "][" <<j<<"]:" ;
cin >> matrix [i][j];
}
}

double ** res = new double* [size];
for (int i=0 ; i<size ; i++ )
res[i] = new double [size];

inversion (matrix , size , res) ;

if (negative == 1 )
cout << "No Inverse " <<endl;
else {
for (int i=0 ; i<size ; i ++){
for (int j=0 ; j<size ; j++){
cout << res [i][j] <<" ";
}
cout <<endl ;
}

}
for(int i=0;i<size;i++)
delete [] matrix[i];
delete [] matrix;

for(int i=0;i<size;i++)
delete [] res[i];
delete [] res;
return 0 ;
}

///////////////////////////// Inversion Methode \\\\\\\\\\\\\\\\\\\\\\\\\\\

void inversion(double **matrix, int size, double **inverse)
{

if (determinant(matrix,size) ==0 ){
negative = 1 ;
return ;
}

double det = 1.0 / determinant(matrix,size);
double *temp = new double[(size-1)*(size-1)];
double ** temp2 = new double*[size-1];
for(int i=0;i<size-1;i++)
temp2[i] = temp+(i*(size-1));

for(int j=0;j<size;j++)
{
for(int i=0;i<size;i++)
{
adjoint(matrix,temp2,j,i,size);
inverse[i][j] = det*determinant(temp2,size-1);
if( (i+j)%2 == 1)
inverse[i][j] = -inverse[i][j];
}
}
delete [] temp;
delete [] temp2;
}

///////////////////////////// Determinant Methode \\\\\\\\\\\\\\\\\\\\\\\\\\\

double determinant( double** matrix, int size){
double sum =0 ;
int k ;

if( size == 1 )
return matrix[0][0];

double ** temp ;
temp = new double* [size-1];
for(int i=0; i<size-1;i++)
temp[i] = new double [size - 1];

for(int i = 0; i < size; i++ )
{
adjoint( matrix, temp, 0, i , size);
if (i%2 == 1 )
k = -1 ;
else
k = 1;

sum += k * matrix[0][i] * determinant (temp,size-1);
}
for(int i=0;i<size-1;i++)
delete [] temp[i];
delete [] temp;
return sum;
}

///////////////////////////// Adjoint Methode \\\\\\\\\\\\\\\\\\\\\\\\\\\

int adjoint(double** matrix, double** temp, int row, int col, int size){

int colCount=0,rowCount=0;
for(int i = 0; i < size; i++ )
{
if( i != row )
{
colCount = 0;
for(int j = 0; j < size; j++ )
{ if( j != col )
{
temp [rowCount][colCount] = matrix[i][j];
colCount++;
}
}
rowCount++;
}
}
return 1;
}
منبع
(http://www.daneshju.ir/forum/f577/%D9%85%D8%AD%D8%A7%D8%B3%D8%A8%D9%87-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%D8%B3-%D9%85%D8%B9%DA%A9%D9%88%D8%B3-%D8%A8%D8%A7-c-126263.html)

V0RTEX
یک شنبه 13 شهریور 1390, 16:26 عصر
برنامه ی بسط دوجمله‌ای
نمونه ورودی:
(3x+2y)^4
compiler:visual studio 2010
#include <iostream>
#include <vector>
#include <string>
using namespace std;
unsigned long long bin(int n,int k);
int conv(char c);
int main()
{
system("color e0");
int n(0),x(1),y(1);
char xx('x'),yy('y');
bool p(true);
string str;
getline(cin,str);
//( -/'' num/'' char -/+ num/'' char)^num
//0 1 2 3 4 5 6 7
int ind=1;
if(str[ind]=='-')
{
x*=-1;
ind++;
}
if(conv(str[ind]) >=0 && conv(str[ind]) <= 9)
{
vector<int> ss;
for(int i=ind;(conv(str[i]) >=0 && conv(str[i]) <= 9);i++)
ss.push_back(conv(str[i]));
bool xim=true;
if(x==-1)
xim=false;
x=0;
for(int k=ss.size()-1,t=0;k>=0;k--,t++)
x+=ss[k]*powl(10,t);
if(!xim)
x=-x;
ind+=ss.size();
xx=str[ind];
}
else
xx=str[ind];
ind++;
if(str[ind]=='-')
p=false;
ind++;
if(conv(str[ind]) >=0 && conv(str[ind]) <= 9)
{
vector<int> ss;
for(int i=ind;(conv(str[i]) >=0 && conv(str[i]) <= 9);i++)
ss.push_back(conv(str[i]));
bool xim=true;
if(y==-1)
xim=false;
y=0;
for(int k=ss.size()-1,t=0;k>=0;k--,t++)
y+=ss[k]*powl(10,t);
if(!xim)
y=-y;
ind+=ss.size();
yy=str[ind];
}
else
yy=str[ind];
ind+=3;
int tlo;
for(tlo=ind;tlo<str.size();tlo++);
for(int k=tlo-1,t=0;k>=ind;k--,t++)
n+=conv(str[k])*powl(10,t);
//--------------------------------------------
system("cls");
cout << str << "=";
long long r=x*y;
bool qwe=false;
for(int i=0;i<=n;i++)
{
unsigned long long s=bin(n,i);
r=powf(x,n-i)*powf(y,i);
long long g=s*r;
cout << "(";
if(g!=1 && g!=-1 && i!=n && i!=0)
cout << g;
else if(i==n && powf(y,i)!=1)
cout << powf(y,i);
else if(i==0 && powf(x,n-i)!=1)
cout << powf(x,n-i);
if(g==-1)
cout << "-";
if(n-i != 0 && n-i!=1)
cout << xx <<"^" << n-i;
else if(n-i ==1)
cout << xx;
else
cout << "";
if( i != 0 && i!=1)
cout << yy << "^" << i;
else if( i ==1)
cout << yy;
cout << ")";
if(i != n && p)
cout << "+";
else if(i != n && !p)
{
char show=qwe?'+':'-';
cout << show;
qwe=!qwe;
}
}
cout << endl;
system("pause");
return 0;
}
unsigned long long bin(int n,int k)
{
vector<vector<unsigned long long> > b;
vector<unsigned long long> em;
for(int i=0;i<=n;i++)
{
b.push_back(em);
for(int j=0;j<=min(i,k);j++)
if(j==0 || j==i)
if(j >= int(b[i].size()))
b[i].push_back(1);
else
b[i][j]=1;
else
if(j >= int(b[i].size()))
b[i].push_back(b[i-1][j-1]+b[i-1][j]);
else
b[i][j]=b[i-1][j-1]+b[i-1][j];
}
return b[n][k];
}
int conv(char c)
{
return c - '0';
}

tahere-20
سه شنبه 17 آبان 1390, 18:18 عصر
من هم یه برنامه ارم که با ++c نوشتم. درباره فروش بلیط اتوبوس هست. جالبه
#include <iostream>
#include <conio.h>
#include <stdlib.h>
using namespace std;
int main ()
{
char bus[46]={'\0'} ;
int av=0,men=0,women=0,option,req=0 ;
int x,y,z ;
while (1)
{

cout<<"\n 1-Buy New Ticket\t2-View Sold Seats\t3-Exit\n" ;
cout<<" ----------------------------------------------------\n" ;
cout<<" Select Your Operation : " ;
cin>>option ;
switch (option)
{
case 1 :
{
/*clrscr() ;*/
for (int i=0 ; i<46 ; ++i)
{
if (bus[i]=='\0')
{
av=i ;
break;
}
}
cout<<"\n "<<45-av<<" tickets are available\n" ;
if (45-av==0)
{
getch() ;
break ;
}
cout<<"\n Enter the number of tickets you want : " ;
cin>>req ;
if (45-av<req)
{
cout<<"\n The tickets are not available !!! " ;
getch() ;
break ;
}
cout<<"\n Enter the number of men & women by the pattern " ;
cin>>men>>women ;
if (av==0)
{
x=av;
for (y=0 ; y<women ; ++y,++x)
{
bus[x]='f' ;
}
for (z=0 ; z<men ; ++z,++x)
{
bus[x]='m' ;
}
break;
}
if (av>=40)
{
///
if (av==40)
{
x=av;
for (y=0 ; y<women ; ++y,++x)
{
bus[x]='f' ;
}
for (z=0 ; z<men ; ++z,++x)
{
bus[x]='m' ;
}
break;
}
///
if (men>0 && women>0)
{
if (bus[av-1]=='f')
{
x=av;
for (y=0 ; y<women ; ++y,++x)
{
bus[x]='f' ;
}
for (z=0 ; z<men ; ++z,++x)
{
bus[x]='m' ;
}
break;
}
if (bus[av-1]=='m')
{
x=av;
for (y=0 ; y<men ; ++y,++x)
{
bus[x]='m' ;
}
for (z=0 ; z<women ; ++z,++x)
{
bus[x]='f' ;
}
break;
}
}
//////
if (men==0 ||women==0)
{
x=av ;
if (men==0)
{
if (bus[av-1]=='f')
{
for (z=0 ; z<women ; ++z,++x)
{
bus[x]='f' ;
}
}
else
{
cout<<"\n This Seat is not available !!" ;
getch() ;
break ;
}
}
if (women==0)
{
if (bus[av-1]=='m')
{
for (y=0 ; y<men ; ++y,++x)
{
bus[x]='m' ;
}
}
else
{
cout<<"\n This Seat is not available !!" ;
getch() ;
break;
}
}
break ;
}
}
if (men>0 && women>0)
{
if (bus[av-1]=='f')
{
x=av;
for (y=0 ; y<women ; ++y,++x)
{
bus[x]='f' ;
}
for (z=0 ; z<men ; ++z,++x)
{
bus[x]='m' ;
}
break;
}
if (bus[av-1]=='m')
{
x=av;
for (y=0 ; y<men ; ++y,++x)
{
bus[x]='m' ;
}
for (z=0 ; z<women ; ++z,++x)
{
bus[x]='f' ;
}
break;
}
}
if(men==0 || women==0)
{
if (av%4==0)
{
x=av;
if (women==0)
{
for (y=0 ; y<men ; ++y,++x)
{
bus[x]='m' ;
}
}
if (men==0)
{
for (z=0 ; z<women ; ++z,++x)
{
bus[x]='f' ;
}
}
break ;
}
//
if (av==2 ||av%4==2)
{
x=av;
if (women==0)
{
for (y=0 ; y<men ; ++y,++x)
{
bus[x]='m' ;
}
}
if (men==0)
{
for (z=0 ; z<women ; ++z,++x)
{
bus[x]='f' ;
}
}
break;
}
//
if (av==1 || av==3 || av%4==1 || av%4==3)
{
x=av;
if (women==0)
{
if (bus[av-1]=='m')
{
for (y=0 ; y<men ; ++y,++x)
{
bus[x]='m' ;
}
}
else
{
cout<<"\n This Seat is not available !!" ;
getch() ;
break;
}
}
if (men==0)
{
if (bus[av-1]=='f')
{
for (z=0 ; z<women ; ++z,++x)
{
bus[x]='f' ;
}
}
else
{
cout<<"\n This Seat is not available !!" ;
getch() ;
break ;
}
}
break;
}
//
}
break;
}
case 2 :
{
/*clrscr() ;*/
for (int j=0 ; j<45 ; ++j)
{
if (j<=40)
{
if (j%4==0)
cout<<"\n " ;
if (bus[j]!='\0')
cout<<bus[j] ;
else
cout<<"0" ;
if (j==1 || j%4==1)
cout<<" " ;
}
else
{
if (bus[j]!='\0')
cout<<bus[j] ;
else
cout<<"0" ;
}
}
getch() ;
break ;
}
case 3 :
{
exit(1) ;
}
}
}
return 0 ;
}

fa.mk244
پنج شنبه 19 آبان 1390, 04:06 صبح
سلام بچه ها
من سورس برنامه برج هانوی رو میخواستم
نمیدونم باید کجا این در خواستمو مطرح میکردم،ولی اگه جاش همینجاس کمکم کنید اگر هم باید جای دیگه این درخواستمو مطرح میکردم بهم بگین؟
ممنون

اینم سورس حل معمای hanoi

fa.mk244
پنج شنبه 19 آبان 1390, 04:13 صبح
بازی snake

rezaheidarida
شنبه 21 آبان 1390, 11:01 صبح
بازی دوز!

خیلی ساده است!
فقط باید مختصات بدید
مثلا وقتی مختصات اول ازتون خواسته میشه
عدد اول وارد کنید بعدش
Enter
بزنید بعد خودش کاما می زاره
بعدش عدد دوم وارد کنید بعد دوباره
Enter
بزنید!

77779

milad7091
پنج شنبه 26 آبان 1390, 21:35 عصر
برنامه Paint
دوستان من خیلی وقته تو این سایت مشکلاتمو حل می کردم. اما اصلا یه پست مفید تو این سایت ندارم. از امروز می خوام تو این سایت یه فعالیت هایی رو داشته باشم. هر چند کوچیک.
این پروژه هایی که می زارم خیلی هاشون به عنوان پروژه دانشجویی به اساتید داده شدن. اگه اشکالاتی داشتن شرمنده.

یه paint با امکانات جالب.(این پروژه تا حالا بالای 5 بار به عنوان پروژه دوستام دادنش :چشمک:.)


77993

hodong
چهارشنبه 02 آذر 1390, 09:52 صبح
برنامه ای که n عدد اول سری فیبوناچی را تولید کند

#include <iostream.h>
#include <conio.h>

void main ()
{
clrscr ();
unsigned int f1=1,f2=1,fn,n,i;
cout<<"Please enter n for serie Fibonacci: ";
cin>>n;
if(n>0)
{
cout<<f1<<" "<<f2;
for (i=1; i<=n-2; i++)
{
fn=f1+f2;
cout<<" "<<fn;
f1=f2;
f2=fn;
}
}
else
cout<<"Error: Invalid Number. Please try again";
getch ();
}

shahmohammadi
جمعه 25 آذر 1390, 18:22 عصر
سلام.
این هم یه برنامه که با توابع gdi توی win32 نوشتم. (با dev cpp)
یه تابعی رو رسم می کنه:
79274
#include <windows.h>
#include <math.h>


LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);


char szClassName[ ] = "WindowsApp";

int WINAPI WinMain (HINSTANCE hThisInstance,
HINSTANCE hPrevInstance,
LPSTR lpszArgument,
int nFunsterStil)

{
HWND hwnd;
MSG messages;
WNDCLASSEX wincl;


wincl.hInstance = hThisInstance;
wincl.lpszClassName = szClassName;
wincl.lpfnWndProc = WindowProcedure;
wincl.style = CS_DBLCLKS;
wincl.cbSize = sizeof (WNDCLASSEX);


wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
wincl.lpszMenuName = NULL;
wincl.cbClsExtra = 0;
wincl.cbWndExtra = 0;

wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND+1;


if (!RegisterClassEx (&wincl))
return 0;


hwnd = CreateWindowEx (
0,
szClassName,
"Windows App",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
544,
375,
HWND_DESKTOP,
NULL,
hThisInstance,
NULL
);


ShowWindow (hwnd, nFunsterStil);

PAINTSTRUCT ps;
HDC hdc = BeginPaint(hwnd, &ps);
for(float j=-6.28;j<6.28;j+=0.0001)
SetPixel(hdc, 40*j+265, -40*sin(10/j)+150, RGB(255-j*30,j*30,j*20));


while (GetMessage (&messages, NULL, 0, 0))
{

TranslateMessage(&messages);

DispatchMessage(&messages);
}


return messages.wParam;
}




LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_DESTROY:
PostQuitMessage (0);
break;
default:
return DefWindowProc (hwnd, message, wParam, lParam);
}

return 0;
}

shahmohammadi
جمعه 25 آذر 1390, 20:04 عصر
این هم یکی دیگه:
79283
:لبخندساده:اگه رنگشو نپسندیدید می تونید خودتون هم رنگهای دیگه رو امتحان کنید.

#include <windows.h>
#include <math.h>


LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);


char szClassName[ ] = "WindowsApp";

int WINAPI WinMain (HINSTANCE hThisInstance,
HINSTANCE hPrevInstance,
LPSTR lpszArgument,
int nFunsterStil)

{
HWND hwnd;
MSG messages;
WNDCLASSEX wincl;


wincl.hInstance = hThisInstance;
wincl.lpszClassName = szClassName;
wincl.lpfnWndProc = WindowProcedure;
wincl.style = CS_DBLCLKS;
wincl.cbSize = sizeof (WNDCLASSEX);


wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
wincl.lpszMenuName = NULL;
wincl.cbClsExtra = 0;
wincl.cbWndExtra = 1000;

wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND+1;


if (!RegisterClassEx (&wincl))
return 0;


hwnd = CreateWindowEx (
0,
szClassName,
"Windows App",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
544,
375,
HWND_DESKTOP,
NULL,
hThisInstance,
NULL
);


ShowWindow (hwnd, nFunsterStil);



while (GetMessage (&messages, NULL, 0, 0))
{

TranslateMessage(&messages);

DispatchMessage(&messages);
}


return messages.wParam;
}




LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{

PAINTSTRUCT ps;
HDC hdc;
float fix;
switch (message)
{


case WM_PAINT:
//for(float j=0.98;j<6.42;j+=0.0001)
hdc = BeginPaint(hwnd, &ps);
for(int i=0;i<=544;i++){
fix=-100*cos((float)i/100)*sin(100/((float)i/100))+150;
for(int j=0;j<375;j++)
if((float)j>fix)
SetPixel(hdc,i,j, RGB(255*j/375,-255*i/544,255));
else
SetPixel(hdc,i,j, RGB(-255*i/544,255*i/544,0));
//SetPixel(hdc, 100*j-100, -100*cos(j)*sin(100/j)+150, RGB(255,0,0));
}
break;
case WM_DESTROY:
PostQuitMessage (0);
break;
default:
return DefWindowProc (hwnd, message, wParam, lParam);
}

return 0;
}

amir-tahani
جمعه 16 دی 1390, 13:16 عصر
با سلام
این برنامه ای که برای شما قرار دادم تبدیل مبنای اعداد به یکدیگر است.
به این صورت که یک عدد رو از شما دریافت کرده و مبنای اون رو می پرسه و در مرحله آخر مبنای مورد نظر را پرسیده و عدد را به آن مبنا تبدیل می کند.:لبخندساده:
80249

amir-hpr
سه شنبه 27 دی 1390, 23:49 عصر
با سلام.من تازه در این انجمن عضو شدم.تجربه زیادی در برنامه نویسی ندارم ولی انگیزم برای یادگیری زیاده. اینم اولین برنامه ای که خودم نوشتم.

sherminsh
جمعه 07 بهمن 1390, 13:59 عصر
سلام به همگی این کدی که که میذارم خیلی توپپپپه:قهقهه:
تاریخ امروز و تاریخ تولدت رو میگیره و توسط اون عددی که میده شما میتونید بفهمید چند شنبه به دنیا اومدین:تشویق::تشویق::تشویق:
کافیه فقط بدونید امروز چند شنبه اس
مثلا امروز دوشنبه اس بعد از انجام شدن برنامه. برنامه به شما یه عدد میده مثلا2 پس شما دوروز بعد از دوشنبه به دنیا اومدین یعنی 4شنبه....:قهقهه::قلب::قهقهه:


#include "stdafx.h"

int kabise(int y)
{
int res = y % 33;
if( res==1 || res==5 || res==9 || res==13 || res==17 || res==22 || res==26 || res==30)
return(1);
return(0);
}

void next_day(int y,int m,int d,int *yy,int *mm,int *dd)
{ int yyy=y,mmm=m,ddd=d;
d++;
if (d==32 && 1<=m && m<=6){
d=1;
m++;
}
if (d==31 && 7<=m && m<=11){
d=1;
m++;
}
if(d==32 && m==12 && kabise(y)==1||d==31 && m==12 &&kabise(y)==0)
{d=1;
m=1;
y++;
}
*yy=y;
*mm=m;
*dd=d;
}
int DaysInterval(int ys,int ms, int ds, int ye, int me, int de)
{
// start must be before end
int count=0;
int yy=ys,mm=ms,dd=ds;
int yyy,mmm,ddd;

while(yy!=ye || mm!=me || dd!=de)
{
next_day(yy,mm,dd,&yyy,&mmm,&ddd);
yy=yyy;
mm=mmm;
dd=ddd;
count++;
}

return(count);
return 0;
}

int _tmain(int argc, _TCHAR* argv[])
{int j;


j = DaysInterval(1372,7,1,1390,11,8);

printf("%d",j%7);


scanf("%d",j);
return 0;
}

qwerty2012
چهارشنبه 26 بهمن 1390, 20:46 عصر
#include<conio.h>
#include<stdio.h>
void main()
{
clrscr();
int coin[8];
printf("please enter weight coins:\n");
for(int i=0;i<8;i++)
{
zokaeehamid@fastmail.fm Page 5
printf("coin[%d]=",i);
scanf("%d",&coin[i]);
}
printf("press key...\n");
getch();
if(coin[0]+coin[1]!=coin[2]+coin[3])//1
if(coin[0]==coin[2])//2
if(coin[1]==coin[2])//3
printf("coin[3]=%d",coin[3]);
else
printf("coin[1]=%d",coin[1]);
else
if(coin[0]==coin[3])
printf("coin[2]=%d",coin[2]);
else
printf("coin[0]=%d",coin[0]);
else
if(coin[4]==coin[6])
if(coin[5]==coin[6])
printf("coin[7]=%d",coin[7]);
else
printf("coin[5]=%d",coin[5]);
else
if(coin[4]==coin[7])
printf("coin[6]=%d",coin[6]);
else
printf("coin[4]=%d",coin[4]);
getch();
}

amin1softco
یک شنبه 30 بهمن 1390, 22:13 عصر
برای بچه هایی که علاقه به برنامه نویسی سوکت در کنسول و هدر ویندوزی دارند یک مثال خیلی ساده و جمع و جور در فایل ضمیمه هست با ویژوال استادیو.... به نظرم خیلی واضح و گویاست امید وارم مفید باشه....

دانلود (http://s1.picofile.com/file/7307594836/client_server.zip.html)


منبع (http://www.codeproject.com/Articles/20947/Hello-world-application-for-socket-programming-in)

25farshid
پنج شنبه 04 اسفند 1390, 15:34 عصر
سلام
برنامه گرفتن اطلاعات دانشجو با استفاده از لیست پیوندی :
(Add
Del
Show
Count)

http://www.4shared.com/rar/sh-yVU8A/Link_List_2.html

mohammadpmf
شنبه 12 فروردین 1391, 21:13 عصر
این کد برای حل 2 معادله 2 مجهول.
توضیح این که:
ax+by=c
dx+ey=f
شما به ترتیب در سطر اول آ و ب و ث و در خط دوم دی و ای و اف رو وارد میکنید.
جوابی که بهتون نشون میده به ترتیب x و y هستن.




#include <iostream>
using namespace std;
double calculate_determinant(double a, double b, double c, double d);


int main(){
double a[2], b[2], c[2], x[2];// a va b zarayebe majhoolat hastand. c adade sabet. va x ham javabe moadelat.
for (int i=0; i<2; i++){
cout<<"Zarayebe moadeleye "<<i+1<<" va pasokhe an ra be tartib vared konid:";
cin>>a[i]>>b[i]>>c[i];
}
// Halle moadele be raveshe keramer.
double determinant_of_makhraj;// chon baraye hameye x[i] ha sabete, dg array nemigiram.
double determinant_of_soorat[2];// chon baraye har x[i] i in meghdar fargh darad.
determinant_of_makhraj=calculate_determinant(a[0], b[0], a[1], b[1]);
determinant_of_soorat[0]=calculate_determinant(c[0], b[0], c[1], b[1]);
determinant_of_soorat[1]=calculate_determinant(a[0], c[0], a[1], c[1]);
for (int i=0; i<2; i++){
x[i]=determinant_of_soorat[i]/determinant_of_makhraj;
}
for (int i=0; i<2; i++){
cout<<"x["<<i<<"]="<<x[i]<<endl;
}
cout<<endl;
return 0;
}

double calculate_determinant(double a, double b, double c, double d) {
return (a*d)-(b*c);
}

mohammadpmf
شنبه 12 فروردین 1391, 21:20 عصر
BigNumber
این کد برای جمع کردن 2 عدد خیلی بزرگ (حداکثر 1000 رقمی) نوشته شده.
کاری که با ماشین حساب معمولی نمیشه انجام داد.


#include<iostream>
#include<string.h>
using namespace std;

void read_number(char num1[],char num2[]);
char* add_number(char num1[],char num2[],char num3[]);

#define SIZE 1000

int main(){
char *num1,*num2,*num3;
num1=new char[SIZE];
num2=new char[SIZE];
num3=new char[SIZE];
int n;//baraye tedad barhaye anjame amale jam.
cout<<"Chand bar mikhahid amale jam kardane 2 adad ra anjam dahid?";
cin>>n;
for(int i=0;i<n;i++){
read_number(num1,num2);
add_number(num1,num2,num3);
cout<<num3<<endl;
}
delete []num1;
delete []num2;
delete []num3;
return 0;
}
void read_number(char num1[],char num2[]){
cout<<"2 adad ra vared konid:";
cin>>num1>>num2;
}
char* add_number(char num1[],char num2[],char num3[]){
int carry=0;//baraye zakhire kardane raghame naghli.
int digit;//baraye zakhire kardane yek raghame az reshteye avval va dovvom va majmoo'eshan.
int len1,len2;//baraye zakhire kardane toole reshteha.
len1=strlen(num1);
len2=strlen(num2);
int max,min;//max baraye zakhire kardane toole reshteye bozorgtar va min baraye reshteye koochakter ast.
max=len1>len2?len1:len2;
min=len1<len2?len1:len2;
int i,j,k=0;//i o j shomarandeye halghe va k baraye ta'yine khaneye morede nazar az string hastand.
if(len1>=len2){
for(i=max-1,j=min-1;i>=0;i--){
if(j>=0){
digit=(int)(num1[i]-48+num2[j]-48+carry);
if(digit>9){
digit-=10;
carry=1;
}
else{//digit<=9
carry=0;
}
num3[k]=digit+48;
k++;
}
else{
digit=(int)(num1[i]-48+carry);
if(digit>9){
digit-=10;
carry=1;
}
else{//digit<=9
carry=0;
}
num3[k]=digit+48;
k++;
}
j--;
}
}
else{//len1<len2
for(i=max-1,j=min-1;i>=0;i--){
if(j>=0){
digit=(int)(num2[i]-48+num1[j]-48+carry);
if(digit>9){
digit-=10;
carry=1;
}
else{//digit<=9
carry=0;
}
num3[k]=digit+48;
k++;
}
else{
digit=(int)(num2[i]-48+carry);
if(digit>9){
digit-=10;
carry=1;
}
else{//digit<=9
carry=0;
}
num3[k]=digit+48;
k++;
}
j--;
}
}
if(carry==1){
num3[k]=1+48;//ya num3[k]=49;
k++;
num3[k]=NULL;
}
num3[k]=NULL;
char *komaki=new char[strlen(num3)];
strcpy(komaki,num3);
for(i=0,j=strlen(num3)-1;num3[i];i++){
num3[i]=komaki[j];
j--;
}
return num3;
}
char* mul_number(char num1[],char num2[],char num3[]){
int len1,len2;//baraye zakhire kardane toole 2 reshte.
int carry=0;//baraye zakhire kardane raghame naghliye hasel az zarbe yek ragham dar adad.
len1=strlen(num1);
len2=strlen(num2);
return num3;
}

V0RTEX
یک شنبه 13 فروردین 1391, 01:39 صبح
این هم یه کد برای این که وقتی از ()system استفاده می کنید پنجره ای نشون نده
void ExecuteProcess(string PathToExe,bool hidden)
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory(&si,sizeof(si));
si.cb = sizeof(si);
if(hidden)
{
si.dwFlags= STARTF_USESHOWWINDOW || STARTF_USESTDHANDLES;
si.wShowWindow=SW_HIDE;
}
ZeroMemory(&pi,sizeof(pi));
if(!CreateProcess( NULL,(LPSTR)PathToExe.c_str(),NULL,NULL,FALSE,0,NU LL,NULL,&si,&pi))
{
cout << "CreateProcess failed:" << GetLastError() << endl;
return;
}
WaitForSingleObject( pi.hProcess, INFINITE );
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
}

void System(string cmd)
{
string cm="cmd /c \"" + cmd + "\"";
ExecuteProcess(cm.c_str(),true);
}

V0RTEX
یک شنبه 13 فروردین 1391, 01:43 صبح
این هم یه class هست برای threading خوبیش اینه که در هر ورژن از ویندوز کار میکنه
85019

revilsee
شنبه 20 خرداد 1391, 11:49 صبح
این کد یک منوی گرافیکی ادیتور فایل به صورت گرافیکی است که اولش با یک دمو شروع میشه
Download (http://uplod.ir/ydzcdirgs9bq-del-jykq6yonvv/menu.rar)

Ananas
دوشنبه 22 خرداد 1391, 16:09 عصر
کد تشخیص اینکه یک نقطه داخل یک مثلث یا یک چند ضلعی محدب، هست یا نه :

#ifndef SELRCT2D_NGOB_DEFINED
#define SELRCT2D_NGOB_DEFINED

#include <cmath>

using namespace std;

typedef struct TVec2D
{
public:

TVec2D() {};
TVec2D(const float x_, const float y_)
{
x = x_;
y = y_;
};
void SetVal(const float x_, const float y_)
{
x = x_;
y = y_;
};
void SetNormalVal(const float x_, const float y_)
{
float l = sqrtf(x_ * x_ + y_ * y_);
x = x_ / l;
y = y_ / l;
};
void Normalize()
{
float l = sqrtf(x * x + y * y);
x /= l;
y /= l;
};
void NormalBetween2Point(const TVec2D from_vec, const TVec2D to_vec)
{
x = to_vec.x - from_vec.x;
y = to_vec.y - from_vec.y;
float l = sqrtf(x * x + y * y);
x /= l;
y /= l;
};
float x, y;
} *PVec2D;

float V2DDot(const TVec2D v1, const TVec2D v2)
{
return (v1.x * v2.x + v1.y * v2.y);
};

bool V2DIsInTriangle(const TVec2D V, const TVec2D * aV)
{
TVec2D v0, v1, v2, v3;
v1.SetNormalVal(aV[2].x - aV[0].x,aV[2].y - aV[0].y);
v2.SetNormalVal(aV[1].x - aV[0].x,aV[1].y - aV[0].y);
v3.SetNormalVal(V.x - aV[0].x,V.y - aV[0].y);
if (V2DDot(v1,v2) > V2DDot(v1,v3))
{
return false;
}
else
{
v0 = v2;
v1.SetVal(-v1.x,-v1.y);
v2.SetNormalVal(aV[1].x - aV[2].x,aV[1].y - aV[2].y);
v3.SetNormalVal(V.x - aV[2].x,V.y - aV[2].y);
if (V2DDot(v1,v2) > V2DDot(v1,v3))
{
return false;
}
else
{
v2.SetNormalVal(-v1.x,-v1.y);
v3.SetNormalVal(V.x - aV[0].x,V.y - aV[0].y);
v1 = v0;
return (V2DDot(v1,v2) < V2DDot(v1,v3));
};
};
};

int FloorBy(const int x, const int LoopValue)
{
return (x % LoopValue);
};

bool V2DIsInNGon(const TVec2D V, const TVec2D * aV, const int edgeCount)
{
if (edgeCount < 3)
{
return false;
};
TVec2D v0, v1, v2, v3;
for (int i = 0; i < edgeCount; i++)
{
v0.NormalBetween2Point(V, aV[FloorBy(i + 1, edgeCount)]);
v1.NormalBetween2Point(aV[FloorBy(i, edgeCount)], aV[FloorBy(i + 1, edgeCount)]);
v2.NormalBetween2Point(aV[FloorBy(i + 2, edgeCount)], aV[FloorBy(i + 1, edgeCount)]);
if (V2DDot(v2, v1) > V2DDot(v0, v1))
{
return false;
}
}
return true;
};

#endif


این فایل هدر رو به برنامه اضافه کنید و مثلث یا چند ضلعی تون رو به شکل آرایه ای از نقاط (رئوس چند ضلعی) بسازید یعنی آرایه ای از TVec2D بعد با استفاده از توابع V2DIsInTriangle برای مثلث و V2DIsInNGon برای بیشتر از سه ضلعی میتونید تشخیص بدید که نقطه داخل شکل هست یا نه.

aidinMC
سه شنبه 23 خرداد 1391, 13:49 عصر
سعی کنید ضلع رو بزرگتر از 26 انتخاب نکنید:


#include<iostream.h>
void main () {
int x;
cout << "size azla ra vared konid : ";
cin >> x;
for (int j=0 ; j<x ; j++) {
for (int i= 1 ; i < (x-j) ; i++)
cout << " ";
for (int k=0 ; k<j+i ;k++)
cout << "* ";
cout << endl;
}
}

aidinMC
شنبه 27 خرداد 1391, 23:37 عصر
رسم مستطیل یا مربع تو خالی در C++‎‎ :

#include<iostream.h>
void main () {

int tool,arz;

cout << "tool mostatil ra vared konid : " << endl;
cin >> tool;

cout << "\narze mostatil ra vared konid : " << endl;
cin >> arz;

for (int i=0 ; i < tool ; i++)
cout << "* ";

cout << endl;

for (int j=0 ; j <arz-2 ; j++ ) {
cout << "* ";
for(int k =0 ; k < tool-2 ; k++)
cout << " ";
cout << "* ";
cout << endl;
}

for (int c=0 ; c < tool ; C++‎‎)
cout << "* ";

}

aidinMC
پنج شنبه 01 تیر 1391, 22:48 عصر
سلام دوستان یه برنامه نوشتم که معادله زیر رو حل میکنه ، نظرتون برام خیلی مهمه....
تشکر


http://avt.netau.net/photos/b2e203234df6.jpg

//aidinMC Program

#include <iostream.h>
void main () {

int tavan=3,tedad,temp,tempx,tempy;
long int x,y,faktor;
double natije , natijeFaktor=0;

cout << "Lotfan tedad donbale ra varedkonid : ";
cin >> tedad ;

while (tedad > 7) {
cout << endl;
cout <<"DORE bayad kochaktar az 8 bashad!"<<endl;
cin >> tedad ;
}

cout << "X ra vared konid : ";
cin >> x;

while (x>5) {
cout << endl;
cout <<"X bayad kochaktar az 5 bashad!"<<endl;
cin >> x ;
}
natije=x;
tempy=y=-x;
tempx=x;

cout << "---------*****----------"<<endl;
cout <<" X = " << x<<endl;
cout << "---------*****----------"<<endl;
while ( tedad > 0 ) {
faktor = temp = tavan;
for (int i=1 ; i< tavan ; i++)
y=y*x;
cout << " x^"<<tavan<<" = "<< y << endl;
for (int j=1 ; j<tavan ; j++)
faktor *=(temp-j);
cout << " " << tavan << " Faktoriel = " << faktor<<endl;
natijeFaktor += (double)(faktor);
cout << " (" << y << "/" << natijeFaktor << ") = " << (y/natijeFaktor) <<endl;
natije += (y/natijeFaktor);
natijeFaktor = 0;
if (tempy > 0)
y=x=tempy=tempx* -1;
else if (tempy < 0)
y=x=tempy=tempx;
tavan+=2;
tedad--;
cout << "---------*****----------"<<endl;
}
cout << " natije Kol = "<< natije << endl;
}
البته مقدار x و دنباله محدود شده.....

MustafaJF
چهارشنبه 07 تیر 1391, 11:35 صبح
برنامه دریافت 20 درس از ۱۱ دانشجو و ذخیره - ویرایش - حذف و نمایش اونها
با کامپایلر gcc و minGW سازگار هستش


#include <iostream>
#include <cstdlib>
//#include <conio.h>

using namespace std;

void mainMenu();
void showData(int index,int showScores);
long getID(char *str);
int searchID(long goal);
void secondMenu();
void sortByID();
void sortByAverage();
void sortByTops();
void sortByFamily();
void storeStd(int seek);
void clrscr();
int std_count = 0, choice = 1;
long goal = 0;

struct student
{
long ID;
char name[10], family[15], tel[12];
float sum;
struct book
{
char name[15];
float score;
int multiple;
}books[20];
}students[11], reset_std, second_std;

int main (int argc, char *argv[])
{
mainMenu();
return 0;
}

void mainMenu()
{
cout << "\n [1]- Create a new student" << "\n [2]- Edit student" << "\n [3]- Delete student" << "\n [4]- Show student" << "\n [5]- Quit" << "\n" ;
cout << "\n Choose a number between 1 to 5 : ";
cin >> choice;
switch (choice)
{
case 1:
{
storeStd(std_count);
mainMenu();
break;
}
case 2:
{
clrscr();
int index = searchID(getID("Enter the ID to EDIT : "));
if (index != -1)
{
cout << "Student Found\n";
showData(index,1);
storeStd(index);
}
else
cout << "Student Not Found\n";
mainMenu();
break;
}
case 3:
{
clrscr();
int index = searchID(getID("Enter the student`s NAME to DELETE : "));
if (index != -1)
{
students[index] = reset_std;
cout << "Student deleted successfully";
}
else
cout << "Student Not Found\n";
mainMenu();
break;
}
case 4:
{
clrscr();
secondMenu();
break;
}
case 5: exit(0);
default:
{
mainMenu();
break;
}
}
}

void showData(int index,int showScores)
{
cout << "\n ID : " << students[index].ID;
cout << "\n Name : " << students[index].name;
cout << "\n Family : " << students[index].family;
cout << "\n ";
if (students[index].tel[0] == '0' && students[index].tel[1] == '9')
cout << "Mobile : ";
else
cout << "Tel number: 0831-";
cout << students[index].tel;
cout << "\n Average : " << students[index].sum;
cout << "\n";
if (showScores == 1)
{
for(int i = 0; i <= 19; i++)
{
cout << "\n Book : " << students[index].books[i].name;
cout << "\n Grade :" << students[index].books[i].score;
cout << "\n Rate : " << students[index].books[i].multiple << "\n";
}
}
}

void sortByID()
{
for (int i = 0; i <=10; i++)
{
for (int j = i; j <= 10; j++)
{
if(students[i].ID > students[j].ID)
{
second_std = students[i];
students[i] = students[j];
students[j] = second_std;
}
}
showData(i,0);
}
}

void sortByAverage()
{
for (int i = 0; i <=10; i++)
{
for (int j = i; j <= 10; j++)
{
if(students[i].sum < students[j].sum)
{
second_std = students[i];
students[i] = students[j];
students[j] = second_std;
}
}
showData(i,0);
}
}

void sortByFamily()
{
for (int i = 0; i <=10; i++)
{
for (int j = i; j <= 10; j++)
{
if(students[i].family[0] > students[j].family[0])
{
second_std = students[i];
students[i] = students[j];
students[j] = second_std;
}
}
showData(i,0);
}
}

void sortByTops()
{
for (int i = 0; i <=10; i++)
{
for (int j = i; j <= 10; j++)
{
if(students[i].sum < students[j].sum)
{
second_std = students[i];
students[i] = students[j];
students[j] = second_std;
}
}
}
showData(0,0);
showData(1,0);
showData(2,0);
}

long getID(char *str)
{
int id;
cout << "\n " << str;
cin >> id;
return id;
}

int searchID(long goal)
{
for(int i=0; i <= 10; i++)
{
if (students[i].ID == goal)
{
return i;
}
}
return -1;
}

void secondMenu()
{
cout << "\n [1]- Show the list sorted by Family" << "\n [2]- Show the list sorted by ID" << "\n [3]- Show the list sorted by Grade" << "\n [4]- Show 3 best students" << "\n [5]- Exit" << "\n" ;
cout << "\n Choose a number between 1 to 5 : ";
cin >> choice;
switch (choice)
{
case 1:
{
sortByFamily();
secondMenu();
break;
}
case 2:
{
sortByID();
secondMenu();
break;
}
case 3:
{
clrscr();
sortByAverage();
secondMenu();
break;
}
case 4:
{
sortByTops();
secondMenu();
break;
}
case 5:
{
mainMenu();
break;
}
default:
{
clrscr();
secondMenu();
break;
}
}
}

void storeStd(int seek)
{
float x = 0;
long multiple = 0;
clrscr();
cout << " Enter ID : ";
cin >> students[seek].ID;
cout << "\t Enter Name : ";
cin >> students[seek].name;
cout << "\t Enter Family : ";
cin >> students[seek].family;
cout << "\t Enter Tel : ";
cin >> students[seek].tel;
for(int i = 0; i <= 19; i++)
{
cout << "\n Enter the Book`s Name : ";
cin >> students[seek].books[i].name;
cout << "\t Enter Grade : ";
cin >> students[seek].books[i].score;
cout << "\t Enter Rate : ";
cin >> students[seek].books[i].multiple;
multiple += students[seek].books[i].multiple;
x += (students[seek].books[i].score * students[seek].books[i].multiple);
}
students[seek].sum = x / multiple;
if (seek >= std_count)
std_count ++;
}

void clrscr()
{
for (int i = 0; i < 60; i++)
cout << endl;
}

amir200h
پنج شنبه 15 تیر 1391, 22:56 عصر
این هم پروژه برنامه نویسی پیشرفته 2 من. دستورات خوبی توش هست واسه مبتدی ها خیلی خوبه
کار با فایل هم توش هست

amir200h
جمعه 16 تیر 1391, 17:59 عصر
دوست من پسوند فایل هرچیزی میتونه باشه. نوع دخیره کردن اصلاعات تو فایل شما از نوع باینری میباشد واسه همین اصلاعات به این شکل نمایش داده میشه

sepehr.3b
شنبه 04 شهریور 1391, 18:42 عصر
تمام واحد ها به هم تیدیل می کنه.

sepehr.3b
شنبه 04 شهریور 1391, 23:15 عصر
این برنامه اسم سال میگه.
مثل موش و اسب و ...

sepehr.3b
شنبه 04 شهریور 1391, 23:17 عصر
بازی گل یا پوچ

sepehr.3b
شنبه 04 شهریور 1391, 23:26 عصر
:متفکر:این برنامه سودکو 3*3 که یک جواب داشته باشه حل میکنه.
باید در برنامه از اعداد 1 و 2 و 3 استفاده کنید.
این برنامه شی گرا هست از یک الگوریتم بسیار جالب استفاده می کنه.
با استفاده از ماتریس این کارو میکنه.(قطر اصلی و فرعی).

sepehr.3b
شنبه 04 شهریور 1391, 23:31 عصر
:بوس:همون برنامه قبلی هست با یک الگوریتم ساده تر.
شی گرا هست.
ورودی هایی که به این برنامه مب تونید بدبد هم قرار دادم.
سودوکو 3*3 درجه اول همین 18تا هست.

FastCode
سه شنبه 21 شهریور 1391, 02:17 صبح
این هم یدونه از طرف من.
یکی از دوستام گفت که یه برنامه بده ک اعداد اول رو حساب کنه.
باید یه چیزی مینوشتم که توی sms جا بشه.
نخندید.
#include "stdio.h"
#include "malloc.h"
#define U unsigned int
int main(){U S,E,m=1,c=1,V;printf("S? E?");scanf("%u %u",&S,&E);if(S>E)return 1;if((E>1)&&(S<2))printf("%u\n",2);U* L=(U*)malloc(6542*sizeof(U));L[0]=2;bool D=0;for(U n=2;n!=E;n++){for(U t=0;t!=c;t++)if((n%(V=L[t]))==0)goto x;if((V*V<n)&&((n%(V=L[C++‎]))==0))goto x;if(n>S)printf("%u\n",n);if(!D){L[m++]=n;if(n*n>E){D=1;if(n<S){while((V*V)<S)V=L[C++‎];n=S;}}}x:;}free(L);return 0;}

با gcc روی دبییان x86_64, armel و vC++‎ 6 روی ویندوز x86 کامپایل میشه.
#include "stdio.h"
#include "malloc.h"
int main(){
unsigned int Start, End, CurrentMemo = 1, CurrentTest = 1, SquareRoot;
printf("S? E?");
scanf("%u %u", &Start, &End);
if(Start > End)
return 1;
if((End > 1) && (Start < 2))
printf("%u\n", 2);
unsigned int* List = (unsigned int*)malloc(6542 * sizeof(unsigned int));
List[0] = 2;//CurrentMemo is Zero, we can use it here and change the initial value instead
bool DoneWithMemo = 0;
for(unsigned int Counter = 2;Counter != End;Counter++) {
for(unsigned int TestCounter = 0;TestCounter != Counter;TestCounter++)
if((Counter % (SquareRoot = List[TestCounter])) == 0)
goto Next;
if((SquareRoot * SquareRoot < Counter) && ((Counter % (SquareRoot = List[CurrentTest++‎])) == 0))
goto Next;

if(Counter > Start)//It`s prime
printf("%u\n", n);

if(!DoneWithMemo) {
List[CurrentMemo++] = Counter;//we need this prime
if(Counter * Counter > End) {
DoneWithMemo = 1;
if(Counter < Start) {
while((SquareRoot * SquareRoot) < Start) //find the least needed SquareRoot
SquareRoot = List[CurrentTest++‎];
Counter = Start;
}
}
}
Next:;
}
free(L);
return 0;
}

اون موقع میفهمیدم این کد چکار میکنه.
الان هم میفهمم ولی با اینکه مرتبش کردم نمیدونم چطوری

matinfar1981
شنبه 29 مهر 1391, 01:16 صبح
HASH SORT



#include <iostream.h>
#include <conio.h>
#include <string.h>
#include <fstream.h>
#include <stdlib.h>
struct Student{
char del;
char edit;
char name[20];
char family[30];
long id;
};
struct fhash{
char family[30];
long id;
};

struct idhash{
long id;
long adrs;
};
int GetRecordCount(void){
long pos;
int result;
fstream file;
file.open("student.txt",ios::in|ios::binary);
file.seekg(0,ios::end);
pos=file.tellg();
result=pos/sizeof(Student);
file.close();
return result;
}
int ExistID(int index,Student* st){
if(index==-1)
return 0;
idhash hash;
Student st_temp;
int result;
long pos=index*sizeof(hash);
fstream file,idhfile;
idhfile.open("idhash.txt",ios::in|ios::binary);
idhfile.seekg(pos,ios::beg);
idhfile.read((char*)&hash,sizeof(hash));
idhfile.close();
file.open("student.txt",ios::in|ios::binary);
file.seekg(hash.adrs,ios::beg);
file.read((char*)&st_temp,sizeof(st_temp));
file.close();
if(st_temp.del=='0')
result=1;
else
result=0;
*st=st_temp;
return result;
}
void IDInFile(int index,long* id){
idhash hash;
long pos=index*sizeof(hash);
fstream idhfile;
idhfile.open("idhash.txt",ios::in|ios::binary);
idhfile.seekg(pos,ios::beg);
idhfile.read((char*)&hash,sizeof(hash));
idhfile.close();
*id=hash.id;
}
int BinarySearchID(long value,int low,int high){
int mid,result;
long x;
if(high<low)
result=-1;
else{
mid=low+((high-low)/2);
IDInFile(mid,&x);
if(x>value)
result=BinarySearchID(value,low,mid-1);
else if(x<value)
result=BinarySearchID(value,mid+1,high);
else // if x=value
result=mid;
}
return result;
}
void FamilyInFile(int index,char* str){
fhash hash;
long pos=index*sizeof(hash);
fstream fhfile;
fhfile.open("fhash.txt",ios::in|ios::binary);
fhfile.seekg(pos,ios::beg);
fhfile.read((char*)&hash,sizeof(hash));
fhfile.close();
strcpy(str,hash.family);
}
int BinarySearchFamily(char* value,int low,int high){
int mid,result;
char x[30]={"0"};
if(high<low)
result=-1;
else{
mid=low+((high-low)/2);
FamilyInFile(mid,x);
if(strcmp(x,value)>0) // x>value
result=BinarySearchFamily(value,low,mid-1);
else if(strcmp(x,value)<0) // x<value
result=BinarySearchFamily(value,mid+1,high);
else // if x=value
result=mid;
}
return result;
}
void Insert(Student st,int low,int high){
int mid,i,l,h,test;
char x1[30]={"0"};
long x2;
fstream file,fhfile,idhfile;
fhash fh,fhtemp;
idhash idh,idhtemp;
file.open("student.txt",ios::app |ios::binary);
file.seekg(0,ios::end);
idh.id=st.id;
idh.adrs=file.tellg();
fh.id=st.id;
strcpy(fh.family,st.family);
file.write((char*)&st,sizeof(st));
file.close();
l=low;
h=high;
if(high==-1){
fhfile.open("fhash.txt",ios::app|ios::binary);
fhfile.seekg(0,ios::end);
fhfile.write((char*)&fh,sizeof(fh));
fhfile.close();
idhfile.open("idhash.txt",ios::app|ios::binary);
idhfile.seekg(0,ios::end);
idhfile.write((char*)&idh,sizeof(idh));
idhfile.close();
}
else{
FamilyInFile(high,x1);
if(strcmp(x1,fh.family)<0){
fhfile.open("fhash.txt",ios::app|ios::binary);
fhfile.seekg(0,ios::end);
fhfile.write((char*)&fh,sizeof(fh));
fhfile.close();
}//bozorgtar az high
else{
test=0;
mid=low;
while(low<high){
mid=low+((high-low)/2);
FamilyInFile(mid,x1);
if(strcmp(x1,fh.family)>0)
high=mid;
else if(strcmp(x1,fh.family)<0){
low=mid+1;
mid=low;
}//else if
else{
test=1;
break;
}//else
}//while
fhfile.open("fhash.txt",ios::in | ios::out|ios::binary);
if(test==0){
for(i=h;i>=mid;i--){
fhfile.seekg(i*sizeof(fh),ios::beg);
fhfile.read((char*)&fhtemp,sizeof(fhtemp));
fhfile.seekg((i+1)*sizeof(fh),ios::beg);
fhfile.write((char*)&fhtemp,sizeof(fhtemp));
}//for
}//if test
fhfile.seekg(mid*sizeof(fh),ios::beg);
fhfile.write((char*)&fh,sizeof(fh));
fhfile.close();
}//else
low=l;
high=h;
IDInFile(high,&x2);
if(x2<idh.id){
idhfile.open("idhash.txt",ios::app |ios::binary);
idhfile.seekg(0,ios::end);
idhfile.write((char*)&idh,sizeof(idh));
idhfile.close();
}
else{
test=0;
mid=low;
while(low<high){
mid=low+((high-low)/2);
IDInFile(mid,&x2);
if(x2>idh.id)
high=mid;
else if(x2<idh.id){
low=mid+1;
mid=low;
}
else{
test=1;
break;
}
}
idhfile.open("idhash.txt",ios::in | ios::out|ios::binary);
if(test==0){
for(i=h;i>=mid;i--){
idhfile.seekg(i*sizeof(idh),ios::beg);
idhfile.read((char*)&idhtemp,sizeof(idhtemp));
idhfile.seekg((i+1)*sizeof(idh),ios::beg);
idhfile.write((char*)&idhtemp,sizeof(idhtemp));
}
}
idhfile.seekg(mid*sizeof(idh),ios::beg);
idhfile.write((char*)&idh,sizeof(idh));
idhfile.close();
}
}
}
long GetIDofFamily(int founded){
fhash hash;
long pos=founded*sizeof(hash);
fstream fhfile;
fhfile.open("fhash.txt",ios::in |ios::binary);
fhfile.seekg(pos,ios::beg);
fhfile.read((char*)&hash,sizeof(hash));
fhfile.close();
return hash.id;
}
void Delete(int founded){
idhash hash;
Student st_temp;
long pos=founded*sizeof(hash);
fstream file,idhfile;
idhfile.open("idhash.txt",ios::in |ios::binary);
idhfile.seekg(pos,ios::beg);
idhfile.read((char*)&hash,sizeof(hash));
idhfile.close();
file.open("student.txt",ios::in | ios::out |ios::binary);
file.seekg(hash.adrs,ios::beg);
file.read((char*)&st_temp,sizeof(st_temp));
st_temp.del='1';
file.seekg(hash.adrs,ios::beg);
file.write((char*)&st_temp,sizeof(st_temp));
file.close();
}
void Edit(int founded){
idhash hash;
Student st_temp;
long pos=founded*sizeof(hash);
fstream file,idhfile;
idhfile.open("idhash.txt",ios::in|ios::binary);
idhfile.seekg(pos,ios::beg);
idhfile.read((char*)&hash,sizeof(hash));
idhfile.close();
file.open("student.txt",ios::in | ios::out |ios::binary);
file.seekg(hash.adrs,ios::beg);
file.read((char*)&st_temp,sizeof(st_temp));
st_temp.edit='1';
file.seekg(hash.adrs,ios::beg);
file.write((char*)&st_temp,sizeof(st_temp));
file.close();
file.open("student.txt",ios::in | ios::out |ios::binary);
file.seekg(hash.adrs,ios::beg);
st_temp.edit='0';
cout << "enter new name : ";
cin >> st_temp.name;
file.write((char*)&st_temp,sizeof(st_temp));
file.close();
}
int main(){
Student st1,st2;
fhash fh;
idhash idh;
int quit=0,select,count=0,founded;
long id;
char family[30]={"0"};
fstream file,fhfile,idhfile;
file.open("student.txt",ios::in | ios::out |ios::binary);
file.close();
fhfile.open("fhash.txt",ios::in | ios::out |ios::binary);
fhfile.close();
idhfile.open("idhash.txt",ios::in | ios::out |ios::binary);
idhfile.close();
count=GetRecordCount();
while(!quit){
system("cls");
cout << "1: insert" << endl;
cout << "2: search by id" << endl;
cout << "3: search by family" << endl;
cout << "4: delete" << endl;
cout << "5: edit" << endl;
cout << "6: list not complete edited records" << endl;
cout << "7: quit" << endl;
cout << endl;
cout << "enter your select : ";
cin >> select;
cout << endl;
switch(select){
case 1:
cout << "enter id : ";
cin >> st1.id;
founded=BinarySearchID(st1.id,0,count-1);
if(!ExistID(founded,&st2)){
cout << "enter name : ";
cin >> st1.name;
cout << "enter family : ";
cin >> st1.family;
st1.del='0';
st1.edit='0';
Insert(st1,0,count-1);
count++;
}
else{
cout << "ID already exists!";
getch();
}
break;
case 2:
cout << "enter id : ";
cin >> id;
founded=BinarySearchID(id,0,count-1);
if(ExistID(founded,&st1)){
cout << "name : " << st1.name << " - "
<< "family : " << st1.family;
getch();
}
else{
cout << "ID not exists!";
getch();
}
break;
case 3:
cout << "enter family : ";
cin >> family;
founded=BinarySearchFamily(family,0,count-1);
id=GetIDofFamily(founded);
founded=BinarySearchID(id,0,count-1);
if(ExistID(founded,&st1)){
cout << "id : " << st1.id << " - "
<< "name : " << st1.name << " - "
<< "family : " << st1.family;
getch();
}
else{
cout << "family not exists!";
getch();
}
break;
case 4:
cout << "enter id : ";
cin >> id;
founded=BinarySearchID(id,0,count-1);
if(ExistID(founded,&st1)){
cout << "name : " << st1.name << " - "
<< "family : " << st1.family << endl;
Delete(founded);
cout << "deleted!";
getch();
}
else{
cout << "ID not exists!";
getch();
}
break;
case 5:
cout << "enter id : ";
cin >> id;
founded=BinarySearchID(id,0,count-1);
if(ExistID(founded,&st1)){
cout << "name : " << st1.name << " - "
<< "family : " << st1.family << endl;
Edit(founded);
}
else{
cout << "ID not exists!";
getch();
}
break;
case 6:
cout << "--------------------------------" << endl;
file.open("student.txt",ios::in|ios::binary);
file.read((char*)&st1,sizeof(st1));
while(!file.eof()){
if(st1.edit=='1')
cout << st1.id << " - " << st1.name << " - " << st1.family << endl;
file.read((char*)&st1,sizeof(st1));
}
file.close();
cout << "--------------------------------" << endl;
getch();
break;
case 7:
quit=1;
}
}
return 0;
}

MohsenBN
چهارشنبه 17 آبان 1391, 16:36 عصر
سورس کد کامل بازی تیک تاک تو با استفاده از سی پلاس پلاس و OpenGL به صورت دو نفره:


http://codeblog.ir/466/برنامه-بازی-دوز.html

MohsenBN
چهارشنبه 17 آبان 1391, 16:41 عصر
الگوریتم و سورس کامل برنامه پیدا کردن نقاط برخورد بین خطوط در صفحه مختصات در سی پلاس و OpenGL
به همراه توضیحات کامل آن:


http://codeblog.ir/251/پیدا-کردن-نقطه-تلاقی-دو-پاره-خط.html

MohsenBN
چهارشنبه 17 آبان 1391, 16:45 عصر
برنامه آموزشی بازی مار به صورت غیر گرافیکی مناسب دانشجویان تازه وارد با زبان سی پلاس پلاس:


http://codeblog.ir/209/snake-برنامه-بازی.html

MohsenBN
چهارشنبه 17 آبان 1391, 16:53 عصر
الگوریتم های رسم انواع دایره (توپر، توخالی، ممتد) در سی پلاس پلاس به همراه توضیحات مربوطه:


http://codeblog.ir/229/drawing-circles-using-opengl.html

Ananas
پنج شنبه 23 آذر 1391, 23:48 عصر
سلام دوستان عزیز.
فایل هدر برای محاسبات صحیح بزرگتر از 64 بیت :
IntX.h
چند تا نوع صحیح هم تعریف کردم با اندازه های 128 و 256 و 512 و 1024و 2048 بیت که می تونید بجای اینها از یک تکه از حافظه مثل آرایه ای از بیتها ، با اندازه ی دلخواه خودتون هم استفاده کنید و توابع جمع و تفریق و ضرب و تقسیم و عملیات بیتی همشون با گرفتن اشاره گر کار میکنن و سایز عددتون رو هم می پرسن. پس با هر اندازه ای می تونید محاسبات انجام بدید ولی باید دو تا عددی که مثلا با هم جمع یا ضرب میشن از نظر سایز حافظه اندازه ی هم باشن.

114561

فایل یونیت دلفی IntX.pas :
http://barnamenevis.org/showthread.php?370537-%D8%B3%D9%88%D8%B1%D8%B3-%D9%85%D8%AD%D8%A7%D8%B3%D8%A8%D8%A7%D8%AA-%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF-%D8%B5%D8%AD%DB%8C%D8%AD-%D8%A8%D8%B2%D8%B1%DA%AF%D8%AA%D8%B1-%D8%A7%D8%B2-64-%D8%A8%DB%8C%D8%AA

danial pepsi
چهارشنبه 06 دی 1391, 18:19 عصر
رسم خط


//www.fdaliry.blogfa.com
#include <graphics.h>
#include<dos.h>
#include<iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include<math.h>
int main(void)
{
clrscr();
int m,n,x,y,xa,xb,ya,yb,color,dx,dy;
cout<<"Enter (xa,ya) And (xb,yb):\n";
cin>>xa>>ya>>xb>>yb>>color;
xa=abs(xa);
ya=abs(ya);
xb=abs(xb);
yb=abs(yb);
if(xa<xb)
{
x=xa;
y=ya;
}
else
{
x=xb;
y=yb;
}
m=(yb-ya)/(xb-xa);
if(m<1)
{
dx=1;
dy=m;
n=abs(xb-xa);
}
else
{
dy=1;
dx=1/m;
n=abs(yb-ya);
}
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver, &gmode, "");
errorcode = graphresult();
if (errorcode != grOk)
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1);
}
for(int i=0;i<n;i++)
{
putpixel(int(x),int(y),color);
x+=dx;
y+=dy;
}
getch();
closegraph();
return 0;
}


--------------------------------------------------------------
سلام ممنون این کد رو لازم داشتم فقط یه سوال.من میخوام تو محیط کنسول اجراش کنم و از گرافیک استفاده نکنم.چه طوری باید تفییرش بدم که گرافیکی نباشه؟:متفکر:

dashkeyvan
چهارشنبه 21 فروردین 1392, 23:18 عصر
برنامه اعداد
JollyJumper
&
Variance (http://www.olumcomputer.ir/forum/index.php?f=4&t=8&rb_v=viewtopic)


/*Jollyjumper*/
/*9122360017*/
# include <stdio.h>
main()
{
int i ,Counter ,Tafazol[3000] ,Number[3000] ;
bool shart=true;

printf("*** Enter your numbers ***\n");
scanf("%d",&Number[1]);
Counter=Number[1];

for(i=0;i<Counter;i++)
scanf("%d",&Number[i]);
for(i=1;i<Counter;i++)
{
Tafazol[i]=Number[i]-Number[i+1];
if(Tafazol[i]<0)
Tafazol[i]=Tafazol[i]*(-1);
}
for(i=1;i<Counter;i++)
{
if(Tafazol[i]<Tafazol[i+1] || Tafazol[i]-Tafazol[i+1]!=1)
shart=false;
break;
}
if(shart==true)
printf("Jolly\n");
else if(shart==false)
printf("Not Jolly\n");
}
/*Variance*/
/*9122360017*/
# include <stdio.h>
main()
{
int i;
int x[15];
double Avg,Var,Siqma=0,Sum=0;
printf("*** Enter 15 numbers ***\n");
for(i=0;i<15;i++)
{
scanf("%d",&x[i]);
Sum=Sum+x[i];
}
Avg=Sum/15;
for(i=0;i<15;i++)
Siqma=Siqma+((x[i]-Avg)*(x[i]-Avg));
Var=Siqma/14;
printf("Variance= %f",Var);
}

Moslem_Pc
شنبه 11 خرداد 1392, 11:30 صبح
سطح: مبتدی



توسط این کد، برنامه پس از اجرا شدن نمرات 5دانش آموز رو به ترتیب دریافت کرده و آنها را به ما نشان میدهد.
اهداف:
1- آشنایی بیشتر با آرایه ها
2- آشنایی بیشتر با حلقه for
کامپایلر برنامه Visual C++‎ 2012

#include "stdafx.h"
#include <iostream>
using namespace std;

int main()
{
shoroo:
int adad[5];
int i(0);
for (i=0 ; i<5 ; i++)
{
cout<<"nomreye danesh amuze shomare " << i+1 << "ra vared konid.\n";
cin>>adad[i];
}
cout<<"\nshomare\t\tnomre\n-------------------------\n";
for(i=0;i<5;i++)
{
cout<<i+1 <<"\t\t" << adad[i] << "\t|\n";
}
cout<<"-------------------------\n\n";
goto shoroo;
}

هرگونه مشکل یا سوالی بود در خدمتم.:لبخندساده:

Moslem_Pc
شنبه 11 خرداد 1392, 11:32 صبح
سطح: مبتدی

این کد پس از اجرا مقدار حافظه ای که توسط متغیر های مشخص شده اشغال میشود را به ما نشان می دهد.

کد سادست و توضیحات لازم بین کد ها ذکر شده.
کامپایلر برنامه Visual C++‎‎ 2012


#include "stdafx.h"
#include <iostream> //baraye in estefade mishe ke betunim az dastoorati manande cout va cin estefade konim.
using namespace std; //baraye ine ke az dastoorati mesle (std::cout) beshe be in shekl estefade kard: (cout)
int main()
{
cout << "The size of an int is:\t\t" << sizeof(int) <<" bytes.\n";
cout << "The size of a short int is:\t" << sizeof(short) <<" bytes.\n";
cout << "The size of a long int is:\t" << sizeof(long) <<" bytes.\n";
cout << "The size of a char is:\t\t" << sizeof(char) <<" bytes.\n";
cout << "The size of a float is:\t\t" << sizeof(float) <<" bytes.\n";
cout << "The size of a double is:\t" << sizeof(double) <<" bytes.\n";
cin.get(); //age in dastoor nabashe barname be mahze ejra va anjame dastoorat, kharej mishe.
}
هرگونه مشکل یا سوالی بود در خدمتم.:لبخندساده:

MRmoon
یک شنبه 12 خرداد 1392, 19:04 عصر
گل يا پوچ ساده.

اين گل يا پوچ خيلي سادست نياز به توپيح نداره.

گرافيكشم ضعيفه چون زياد گرافيك بلد نيستم.
#include <dos.h>;
#include <iostream.h>;
#include <conio.h>;
#include <stdlib.h>;
#include <graphics.h>;
#include <stdio.h>;
int getkey(void )
{
int key,low,high;
key=getch();
return (key) ? key : getch()+256;
}
void main()
{
int gd = DETECT, gm;
initgraph(&gd,&gm,"C:\\TC\\BGI");
int x=20;
while(x<140)
{
x+=20;
rectangle(x,x,600-x,450-x);
delay(500);
}
outtextxy(255,190,"WRITTEN BY ") ;
delay(500);
outtextxy(240,240,"M") ;
delay(500);
outtextxy(240,240,"Mo") ;delay(500);
outtextxy(240,240,"Moh") ;delay(500);
outtextxy(240,240,"Moha") ;delay(500);
outtextxy(240,240,"Moham") ;delay(500);
outtextxy(240,240,"Mohamm") ;delay(500);
outtextxy(240,240,"Mohamma") ;delay(500);
outtextxy(240,240,"Mohammad") ;delay(500);
outtextxy(240,240,"Mohammad Mahdi") ;
delay(1000);
clrscr();
x=20;
while(x<140)
{
x+=20;
rectangle(x,x,600-x,450-x);
delay(500);
}
outtextxy(255,190,"Bazie Gol ya Pooch") ;delay(500);
clrscr();
int i=1;
do{
int gol = random(2);
if(gol == 0) gol = 2;
int pgol;
outtextxy(50,100,"fek mikony Gol too kodoome?\n") ;
ellipse(100,220,0,360,50,50);
outtextxy(100,220,"1");
ellipse(300,220,0,360,50,50);
outtextxy(300,220,"2");
pgol = getkey();
cout<<pgol;
if(pgol == 48)
{
i=0;
}
if(pgol == 49)
pgol = 1;
if(pgol == 50)
pgol = 2;
if(pgol == gol){
if(gol == 1){outtextxy(100,240,"Bordy") ;}
else{outtextxy(300,240,"Bordy") ;}
delay(750);
}else if(pgol!= gol){ if(pgol!=48){
if(gol == 2){outtextxy(300,240,"Backhty\ngol to in bood");}
else{outtextxy(100,240,"Backhty\ngol to in bood");
}
delay(750);}
}
clrscr();
}while(i!=0);
}

اين برنامه نوشته شده در turbo C++‎ هست.

فايل exe و cpp :
105043

Arash Moghaddas
چهارشنبه 29 خرداد 1392, 00:54 صبح
با سلام خدمت همه دوستان من در حال حاضر مشغول نوشتن برنامه ای برای یک رستوران به زبان ++C هستم که قرار شامل بانک اطلاعاتی و غیره باشد. برای اینکه از باری از روی دوشم کم کنم و هم اینکه زودتر کار را تحویل بدم دنبال سورس آماده برنامه رستوران به زبان ++C هستم تا تغییرات لازم را بر آن اعمال کنم ولی فقط سورس این برنامه به زبان #C را پیدا کردم این شد که اینجا پست گذاشتم تا کسی سورس این برنامه رو داره بهم بده.
پینوشت1: برنامه رستوران اطلاعات غذا و مواد اولیه رو گرفته و در فایل ذخیره میکند.
پینوشت2: پیش از این تاپیکی در همین مورد زده بودم که مدیران با برداشت اینکه درخواست من حل تمرین است تاپیک را بستند که امیدوارم با همان سوءتدبیر این پست را پاک نکنند.

notepad
یک شنبه 02 تیر 1392, 08:57 صبح
سلام به همه‌ي دوستان
اينم يه برنامه‌ي خيلي سادس كه دو تا مجوعه از كاربر به صورت پويا ميگيره ، عناصر تكراري شو حذف مي‌كنه و
اجتماع شو هم حساب مي‌كنه و نشون ميده

106008
:لبخندساده:

hamed3033
پنج شنبه 03 مرداد 1392, 14:16 عصر
سلام خدمت دوستان این برنامه مساحت و محیط اشکال هندسی رو محاسبه میکنه برنامه ساده ای هستش ولی برای آموزش استفاده از switch خوبه.
برای استفاده باید یکی از اعداد که برای انتخاب نوع شکل مورد نظر هستش رو بزنید و Enter کنید بعد مقادیر لازم رو وارد کنید.

(با برنامه ++ DEV C ) نوشتم

فایل برنامه :

107896

elnaz_100
پنج شنبه 17 مرداد 1392, 13:35 عصر
با سلام
این مجموعه بسیار عالی هست از دوستان می خواهم اگر کسی می تواند برای من برنامه معکوس و ضرب و جمع و ترانهاده ماتریس n*n با زبان c در vs 2010 را در این مجموعه قرار دهند.
با تشکر

armanzei
دوشنبه 21 مرداد 1392, 15:34 عصر
#include <iostream.h>
#include <conio.h>
#include <vector.h>

int main()
{
vector <char> num1,num2,result;
cout<<"Enter tow huge integer numbers to get the sum of them.\n";
cout<<"Enter number one and press enter key.\n\n";
char ch;
while((ch=getch())!=13)
{
if(ch>='0'&& ch<='9')
{
cout.put(ch);
ch-=48;
num1.push_back(ch);
}
}
cout<<"\n+"<<endl;
while((ch=getch())!=13)
{
if(ch>='0'&& ch<='9')
{
cout.put(ch);
ch-=48;
num2.push_back(ch);
}
}
cout<<"\n="<<endl;
int min_size;
min_size = num1.size() < num2.size() ?
num1.size() : num2.size();
bool carry=0;
while(min_size>0)
{
if(num1.back()+num2.back()+carry<10)
{
result.push_back(num1.back()+num2.back()+carry);
num1.pop_back();
num2.pop_back();
carry=0;
}
else
{
result.push_back((num1.back()+num2.back()+carry)%1 0);
num1.pop_back();
num2.pop_back();
carry=1;
}
min_size--;
}
while(num1.size()!=0)
{
if(num1.back()+carry<10)
{
result.push_back(num1.back()+carry);
num1.pop_back();
carry=0;
}
else
{
result.push_back((num1.back()+carry)%10);
num1.pop_back();
carry=1;
}
}
while(num2.size()!=0)
{
if(num2.back()+carry<10)
{
result.push_back(num2.back()+carry);
num2.pop_back();
carry=0;
}
else
{
result.push_back((num2.back()+carry)%10);
num2.pop_back();
carry=1;
}
}
if(carry==1)
result.push_back(1);
while(result.size()>0)
{
cout.put(result.back()+48);
result.pop_back();
}
cout<<endl;
return 0;
}
//end

armanzei
دوشنبه 21 مرداد 1392, 15:36 عصر
#include <iostream.h>
#include <conio.h>

void main()
{
int x1[99]={0}, x2[99]={0}, out[99]={0},i=-1,i2=-1,count;
char temp[99];
cout<<"Enter the first number:"<<endl; //get 1st number
do //get it using getche()
{
i++;
temp[i]=getche();
}while(temp[i]!=13);
i--;
int ii=i;
for(int c=0;c<=i;c++) //convert 1st number from char to int
{
x1[c]=temp[ii]-48;
ii--;
}

ii=i;
cout<<"\n\nFirst number: ";
for(;ii>=0;ii--)
cout<<x1[ii];
cout<<endl;

cout<<"\nEnter the second number:"<<endl; //get 2nd number
do //get it using getche()
{
i2++;
temp[i2]=getche();
}while(temp[i2]!=13);
i2--;
ii=i2;
for(c=0;c<=i2;c++) //convert 2nd number from char to int
{
x2[c]=temp[ii]-48;
ii--;
}


cout<<"\n\nSecond number: ";
ii=i2;
for(;ii>=0;ii--)
cout<<x2[ii];

count=(i>i2)?i:i2; //recognize biggest array
int ex=0, temp2, temp3; //define some vars for temporary number and the extra
for(ii=0;ii<=count;ii++) //+ the arrays
{
temp2=(x1[ii]+x2[ii]);
temp2+=ex;
if(temp2<10)
out[ii]=temp2;
else
{
temp3=(temp2/10);
ex=temp3;
temp3*=10;
out[ii]=(temp2-temp3);
}

}

cout<<"\n\nResult:"<<endl;

for(;count>=0;count--)
cout<<out[count];


}

armanzei
دوشنبه 21 مرداد 1392, 15:38 عصر
برنامه محاسبه ب م م
#include <conio.h>
#include <iostream.h>
int gcd(int,int);
int main()
{
int x,y;
cout<<"enter amount for x and y:";
cin>>x>>y;
int k=gcd(x,y);
cout<<k;
getch();
return 0;
}
int gcd(int x,int y)
{
if(y==0)
return x;
else
return gcd(y,x&y);
}//end

alimirzae
سه شنبه 05 شهریور 1392, 11:56 صبح
سلام دوستان.من یه پروژه ای ساختم به نام : ارتباط سریال با میکرو از طریق RS232

که از کامپیوتر اطلاعات رو میدیم و میکرو روی ال سی دی 2*16 نمایش میده
الان فقط یه مشکل دارم.تو برنامه کلیدی برای پاک کردن چیزی که مینویسیم و جابجایی بین دو سطر تعریف نشده و مجبورم برای پاک کردن چیزی که مینویسم از RESET میکرو استفاده کنم.الان هم من فقط فایل HEX رو دارم.چجوری میشه این تغیر رو اعمال کرد؟ آیا این HEX رو میشه به C تبدیل کرد یا کسی برنامه این پروژه رو سراغ داره ؟

یه سوال دیگه ! برای اینکه کلیدی برای پاک کردن (Clear) کردن تعریف کنم از چه آرایه ای باید استفاده کنم ؟