بازی snake
بازی دوز!
خیلی ساده است!
فقط باید مختصات بدید
مثلا وقتی مختصات اول ازتون خواسته میشه
عدد اول وارد کنید بعدش
Enter
بزنید بعد خودش کاما می زاره
بعدش عدد دوم وارد کنید بعد دوباره
Enter
بزنید!
Doooz.rar
برنامه Paint
دوستان من خیلی وقته تو این سایت مشکلاتمو حل می کردم. اما اصلا یه پست مفید تو این سایت ندارم. از امروز می خوام تو این سایت یه فعالیت هایی رو داشته باشم. هر چند کوچیک.
این پروژه هایی که می زارم خیلی هاشون به عنوان پروژه دانشجویی به اساتید داده شدن. اگه اشکالاتی داشتن شرمنده.
یه paint با امکانات جالب.(این پروژه تا حالا بالای 5 بار به عنوان پروژه دوستام دادنش .)
PHOTO.zip
برنامه ای که 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 ();
}
آخرین ویرایش به وسیله hodong : چهارشنبه 02 آذر 1390 در 16:52 عصر
سلام.
این هم یه برنامه که با توابع gdi توی win32 نوشتم. (با dev cpp)
یه تابعی رو رسم می کنه:
#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;
}
این هم یکی دیگه:
اگه رنگشو نپسندیدید می تونید خودتون هم رنگهای دیگه رو امتحان کنید.
#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;
}
آخرین ویرایش به وسیله shahmohammadi : شنبه 26 آذر 1390 در 12:08 عصر
با سلام
این برنامه ای که برای شما قرار دادم تبدیل مبنای اعداد به یکدیگر است.
به این صورت که یک عدد رو از شما دریافت کرده و مبنای اون رو می پرسه و در مرحله آخر مبنای مورد نظر را پرسیده و عدد را به آن مبنا تبدیل می کند.
mabna1.rar
با سلام.من تازه در این انجمن عضو شدم.تجربه زیادی در برنامه نویسی ندارم ولی انگیزم برای یادگیری زیاده. اینم اولین برنامه ای که خودم نوشتم.
سلام به همگی این کدی که که میذارم خیلی توپپپپه
تاریخ امروز و تاریخ تولدت رو میگیره و توسط اون عددی که میده شما میتونید بفهمید چند شنبه به دنیا اومدین
کافیه فقط بدونید امروز چند شنبه اس
مثلا امروز دوشنبه اس بعد از انجام شدن برنامه. برنامه به شما یه عدد میده مثلا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;
}
#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();
}
سلام
برنامه گرفتن اطلاعات دانشجو با استفاده از لیست پیوندی :
(Add
Del
Show
Count)
http://www.4shared.com/rar/sh-yVU8A/Link_List_2.html
این کد برای حل 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);
}
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;
}
این هم یه کد برای این که وقتی از ()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);
}
این هم یه class هست برای threading خوبیش اینه که در هر ورژن از ویندوز کار میکنه
Threading.zip
این کد یک منوی گرافیکی ادیتور فایل به صورت گرافیکی است که اولش با یک دمو شروع میشه
Download
کد تشخیص اینکه یک نقطه داخل یک مثلث یا یک چند ضلعی محدب، هست یا نه :
#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 برای بیشتر از سه ضلعی میتونید تشخیص بدید که نقطه داخل شکل هست یا نه.
سعی کنید ضلع رو بزرگتر از 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;
}
}
رسم مستطیل یا مربع تو خالی در 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 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 و دنباله محدود شده.....
برنامه دریافت 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;
}
این هم پروژه برنامه نویسی پیشرفته 2 من. دستورات خوبی توش هست واسه مبتدی ها خیلی خوبه
کار با فایل هم توش هست
دوست من پسوند فایل هرچیزی میتونه باشه. نوع دخیره کردن اصلاعات تو فایل شما از نوع باینری میباشد واسه همین اصلاعات به این شکل نمایش داده میشه
تمام واحد ها به هم تیدیل می کنه.
این برنامه اسم سال میگه.
مثل موش و اسب و ...
این برنامه سودکو 3*3 که یک جواب داشته باشه حل میکنه.
باید در برنامه از اعداد 1 و 2 و 3 استفاده کنید.
این برنامه شی گرا هست از یک الگوریتم بسیار جالب استفاده می کنه.
با استفاده از ماتریس این کارو میکنه.(قطر اصلی و فرعی).
همون برنامه قبلی هست با یک الگوریتم ساده تر.
شی گرا هست.
ورودی هایی که به این برنامه مب تونید بدبد هم قرار دادم.
سودوکو 3*3 درجه اول همین 18تا هست.
#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;
}
اون موقع میفهمیدم این کد چکار میکنه.
الان هم میفهمم ولی با اینکه مرتبش کردم نمیدونم چطوری
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;
}
سورس کد کامل بازی تیک تاک تو با استفاده از سی پلاس پلاس و OpenGL به صورت دو نفره:
الگوریتم و سورس کامل برنامه پیدا کردن نقاط برخورد بین خطوط در صفحه مختصات در سی پلاس و OpenGL
به همراه توضیحات کامل آن:
برنامه آموزشی بازی مار به صورت غیر گرافیکی مناسب دانشجویان تازه وارد با زبان سی پلاس پلاس:
الگوریتم های رسم انواع دایره (توپر، توخالی، ممتد) در سی پلاس پلاس به همراه توضیحات مربوطه:
سلام دوستان عزیز.
فایل هدر برای محاسبات صحیح بزرگتر از 64 بیت :
IntX.h
چند تا نوع صحیح هم تعریف کردم با اندازه های 128 و 256 و 512 و 1024و 2048 بیت که می تونید بجای اینها از یک تکه از حافظه مثل آرایه ای از بیتها ، با اندازه ی دلخواه خودتون هم استفاده کنید و توابع جمع و تفریق و ضرب و تقسیم و عملیات بیتی همشون با گرفتن اشاره گر کار میکنن و سایز عددتون رو هم می پرسن. پس با هر اندازه ای می تونید محاسبات انجام بدید ولی باید دو تا عددی که مثلا با هم جمع یا ضرب میشن از نظر سایز حافظه اندازه ی هم باشن.
IntX_cpp.zip
فایل یونیت دلفی IntX.pas :
https://barnamenevis.org/showthread.p...A8%DB%8C%D8%AA
آخرین ویرایش به وسیله Ananas : یک شنبه 08 دی 1392 در 02:10 صبح
برنامه اعداد
JollyJumper
&
Variance
/*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);
}
سطح: مبتدی
توسط این کد، برنامه پس از اجرا شدن نمرات 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;
}
هرگونه مشکل یا سوالی بود در خدمتم.