-
مجموعه برنامه های نوشته شده به زبان C و ++C
کاربران از این به بعد می توانند در این تاپیک سورس کدهای برنامه های خود را قرار دهند تا مجموعه ای مفید از برنامه ها ایجاد شود و همگان بتوانند از آن استفاده کنند.
سورس کدهای کوچک، کاربردی و متداول (مثلا نحوه ایجاد آرایه n بعدی!) نیز مجاز است.
لذا قبل از ارسال پستی در این تاپیک رعایت همه قوانین زیر ضروری است، در غیر این صورت هرچند که ارسال شما مفید باشد بدون تذکر پاک می شود:
1- (مهم) قرار دادن تمرینات و پروژه هایی که بیشتر دانشجویی هستند و معمولا کاربرد دیگری جز دریافت نمره ندارند ممنوع است. (تحت هر عنوانی، حال یادگیری یا آموزش) سایر مواردی که کاربردی هستند یا فقط دانشجویی نیستند و در برنامه های تجاری نیز به کار خواهند آمد مجاز می باشد.
2- درخواست برنامه در این تاپیک ممنوع است. فقط قرار دادن سورس کد برنامه مجاز است.
3- برنامه حتما باید شامل سورس کد باشد، فایل اجرایی به تنهایی حذف خواهد شد.
نکته: در صورتی که کدها کوتاه است به صورت مستقیم قرار دهید، در غیر این صورت به صورت فایل zip
4- در صورتی که سورس کدی از سایتی کپی می شود کپی رایت باید ذکر شود و حتما مرجع آن نیز ذکر شود.
5- قرار دادن سورس کدهای تجاری که مالکیت آن برای فرد دیگری هست (طبق قوانین کلی سایت) ممنوع می باشد.
6- عنوان مناسب و مجزا از سایر توضیحات برای هر برنامه انتخاب کنید تا کاربران به راحتی برنامه مورد نظر خود را بیابند. تا جای ممکن برای عناوین از حالت Bold استفاده کنید.
موفق باشید
-
2 ضمیمه
نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C
سلام نیما جان
عجب تاپیکی زدی واقعا کیف کردم گفتم من شروع کننده باشم تا بقیه دوستان هم بیاند و کدهاشون را بذارند .......
شاید این کد ها را قبلا گذاشته باشم اما دوست داشتم که تو این تاپیک باشند تا یه مجموعه خوب بشه
این یه برنامه هست که فلدرهای شما را قفل می کنه!!!!
در اول این برنامه از شما پسوورد می خواهد که پسورد آن
Ashiyane.org
است . ضمنا در قسمت دادن ادرس برای قفل کردن کاراکتر '\' یادتون نره و بعد بگید برنامه ات کار نمی کنه
ضمنا امکان تغییر پسوورد هم داره و پسوورد به حروف کوچک و بزرگ حساس است و دیگه این که نیاز به .net framework هم داره تا درست اجرا بشه
برنامه به زبان سی پلاس پلاس است و باید با ویژوال استودیو 2005 کامپایل بشه
-
منوی حساس به جهت های بالا و پایین
سلام دوستان این برنامه را قبلا گذاشته ام اما حالا ان را با استفاده از تابع 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 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 );
}
}
-
نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C
اینم دوتا کد دیگه
اولی یه متن را اخر هر سطر فایل بازشده اضافه میکنه
#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;
}
-
نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C
عنوان: گرفتن 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;
}
-
نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C
اطلاعات عمومی دانشجو
خصوصیات برنامه:
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;
}
-
1 ضمیمه
نقل قول: بازي به زبان c
سلام
اين هم يك بازي به زبان c
در turboc اجرا مي شود
-
1 ضمیمه
نقل قول: تبديل مبنا در c
اين برنامه تبديل تمامي مبناها از 2 تا 16
در turboc اجرا مي شود
-
1 ضمیمه
نقل قول: مربعات جادويي در c
اين هم برنامه مربعات جادويي در c
-
1 ضمیمه
نقل قول: ماشين حساب گرافيكي در c
اين هم ماشين حساب گرافيكي در c
-
نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C
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();
}
-
نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C
سلام
لیست پیوندی در زیان 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;
}
-
نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C
عبارتهای جبری در 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;
}
-
نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C
من نمونه برنامه که نه! اما با کدها بازی کردم اینحا هم می زارم!! این کد واسه کامپایل با کامپایلر نیست ماله اینکه خودوتون ببینین و خروجی را بدین!! واسه تمرین درک :
/* 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
;}
-
نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C
سلام:
این الگوریتم کلی و سورس کامل مثلث 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;
}
-
نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C
برنامه ای که داخل فایل(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();
}
-
نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C
سلام:
برنامه کاربردی برای آموزش استفاده از فایل و 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();
}
---------------------------------------------------------------------------
-
نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C
سلام
این هم برنامه عبارات جبری بدون محدودیت
در این برنامه می توانید عدد هم بدهید
در این برنامه می توانید چند حرف هم بدهید
حرف ها باید با حروف بزرگ باشند مثلا 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;
}
-
نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C
رسم خط
//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;
}
-
1 ضمیمه
اعمال ریاضی متداول (ماشین جساب)
سلام
این برنامه اعمال ریاضی مختلف را بر روی اعداد انجام می دهد .
اعمال ریاضی مختلف مثل + ، * ، - ، / و...
توابع مثلثاتی
تبدیل مبناها شامل :
- Dec to Bin
- Dec to Oct
- Dec to Hex
- Bin to Dec
- Oct to Dec
- Hex to Dec
-
1 ضمیمه
نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C
سلام . من تازه سی پلاس پلاس رو شروع کردم . یه برنامه نوشتم که تقدیم میکنم . در این برنامه ابتدا تعداد قرنها رو مینویسید ( مثلا 2 ) . بعد برنامه بهتون میگه که مثلا این 2 قرن : چند دهه ، چند سال ، چند ماه ، چند هفته ، چند روز ، چند ساعت ، چند دقیقه و چند ثانیه است . این کدای برنامه
-
دفتر تلفن ساده با کلاس ها
دفتر تلفن ساده با کلاس ها
مناسب برای دانشجویان
#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
-
مشخصات دانشجویان با امکان ورود اطلاعات حذف اطلاعات و جستجو
مشخصات دانشجویان با امکان ورود اطلاعات حذف اطلاعات و جستجو
#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<<"***************************************"<<e ndl;
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<<"***************************************"<<e ndl ;
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);
}
}
}
-
کتابخانه با امکان ورود - ویرایش- حذف -به امانت گرفتن و پس دادن کتاب
کتابخانه با امکان ورود - ویرایش- حذف -به امانت گرفتن و پس دادن کتاب
#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);
}
-
1 ضمیمه
نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C
اینم 5 تا برنامه فاکتوریل فیبوناچی مثلث ب م م ک م م اعداد منعکس
تویه c نوشتم.
-
نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C
برنامه های زیر را می توانید از آدرس برنامه های ساختمان داده ها دانلود کنید. این برنامه ها همگی به زبان سی پلاس پلاس هستند C++
البته اینها بیشتر جنبه ی آموزشی دارند و برای دانشجویان و راهنمایی در پروژه ها ی درسی مناسب هستند:لبخندساده:
- پیاده سازی پشته ی چندگانه(مربوط به ساختمان داده ها)
- برنامه ی تبدیل میانوند به پسوند(مربوط به ساختمان داده ها)
- پیاده سازی میانوند به پیشوند(مربوط به ساختمان داده ها)
- پیاده سازی صف معکوس(مربوط به ساختمان داده ها)
- پیاده سازی صف ساده(مربوط به ساختمان داده ها)
تمامی برنامه ها به همراه سورس کد هستند.
-
رزرو هتل
این برنامه تقریبا کار رزرو هتل را به صورت ساده انجام می دهد :
نقل قول:
قبل از ورود به برنامه اطلاعات فایل 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 کامپایل می شود
به دلیل محدودیت حجم ضمیمه مجبور شدم جای دیگه آپلود کنم
دانلود سورس کد
-
2 ضمیمه
نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C
سلام دوستان اینم یه برنامه کوچیک برای لینوکس که با استفاده از اون می تونید فایل grub خودتون را ویرایش کنید
-
نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C
اینم کدی که خیلی ها دنبالش می گردند این کد را که به اول برنامه خودتون اضافه کنید برنامه از قسمت 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);
}
-
نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C
سلام.
برنامه کوچکی که عملکرد تابع 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...
}
-
5 ضمیمه
نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C
پیاده سازی چندتا از توابع کار با رشته مثل strchr,strcat,...
-
2 ضمیمه
نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C
-
1 ضمیمه
نقل قول: ضرب ماتریس
یه ضرب ماتریس 2x3 و 4x3 که نتیجش می شه 2x4 نوشتم که استاتیک هست اگر روش کار کنید به راحتی داینامیک میشه فقط باید قوانین مربوط به ضرب ماتریس ها رو توش رعایت کنید ...
-
1 ضمیمه
مديريت دانشجويان كلاس
مديريت دانشجويان كلاس
سناريو به همراه سورس در فايل ضميمه
-
1 ضمیمه
نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C
با سلام و خسته نباشید. یک برنامه گرافیکی با استفاده از کلاس تحت توربو سی پلاس پلاس
-
1 ضمیمه
نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C
این برنامه در کنسول متن تابپ شده ی کاربر (حداکثر در 500 حرف) را به باینری (0 و یک) تبدیل کرده و در یک فایل با نام output ذخیره میکند.
دوستان این برنامه جزو برنامه های آرشیوی منه که قدیم نوشتم. دیگه خوبی , بدی ببخشید. ممکنه یک کوچولو الگوریتم هایش شلخته باشند. ولی در کل خوب کار میکنند. هدف من فقط نوشتن برنامه ها بود.
-
1 ضمیمه
نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C
این یک برنامه تحت توربو که تعداد ستون و تعداد ردیف ها + عرض هر واحد جدول رو وارد میکنید و اون یک جدول براتون رسم میکنه. بعد از دانلود باید آدرس پوشه گرافیک رو در سیستم خودتون به جای آدرس داده شده در برنامه بگدارید و برنامه رو کامپایل کنید.:لبخندساده:
-
1 ضمیمه
برنامه گرافیکی دنیای جدولکها
سلام
سورس برنامه دنیای جدولکها
چون مسئله معروفیه زیاد توضیح نمی دم . برنا مه از یک سری جدولک تشکیل میشه که اندازه فضای اونها و تعدادشونو کاربر تعیین می کنه. اونها در 4 جهت حرکت می کنند. عمر دارن. در برخورد با دیواره با احتمالی می میرند. ممکنه دچار جهش شده و در میانه عمر تغییر کنند و اگه دایره زرد رنگ در مرکز اونها باشه امکان تولید مثل داره.
ضمیمه 36582
-
1 ضمیمه
نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C
بازی LIFE
البته نمی دونم چرا این اسمو روش گذاشتن چون بازی نیست.
صورت برنامه یک جدول n*n هست که تعداد r تای اون پر هست یا به اصطلاح زنده است.
حالا طی هر سیکل
1.خانه های از جدول که زنده نباشه و دقیقاً 3 تا از همسایه هاش زنده باشن زنده می شه.
2.زنده باشه و تعداد بیشتر از 4 یا کمتر 2 ،همسایه هاش زنده باشن می میره.
و تاحدی جلو میره تا به یه سیکل ثابت برسه یا جدول خالی شه.
ضمیمه 36591
-
1 ضمیمه
نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C
سلام ، یک برنامه ساده ولی جالب با استفاده از آرایه های پویا که یک جمله بهش میدید بعد همون جمله رو براتون تایپ میکنه ، توجه کنید دوسان حرف به حرف تایپ میکنه نه اینکه کله جمله رو یه راست به خروجی ببره
-
1 ضمیمه
نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C
یک برنامه بسیار آموزشی و جالب ، که یک منوی زیبا رو در محیط داس میسازه ، این برنامه کار آقای Vivek Patel هستش. چیز جالبیه حتما دانلود کنید. در ضمن باید آدرس bgi سیستم خودتون رو در سورس قرار بدید.
-
1 ضمیمه
نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C
برنامه زیر کد مربوط به اجرای یک پیانوی کامپیوتری را نشان میدهد. در این برنامه به جای تابع getch() از پورت 60h برای بدست آوردن یک کلید استفاده شده است.
برای افزایش سرعت وهمچنین به منظور کاهش محاسبات از آرایه دو بعدی
notes[7][12] استغاده شده است.
دست هایی که کمک میکنند مقدس تر از لب هایی هستند که دعا میکنند.کورش کبیر
-
3 ضمیمه
سه تا برنامه ریاضی
خوب امروز سه تا سورس دیگه از آرشیو برنامه های نوشته شدم گذاشتم که مطالعه ی سورس این برنامه ها برای کسانی که تازه برنامه نویسی رو شروع کرده اند خیلی مفیده.
در ابتدا چند تا نکته و یاد آوری ریاضی :
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++ هستند و من قبل از آپلود کارکرد اونها رو چک کردم.
نکته: وقت کردین یه سر به بلاگ من بزنید . من در رابطه با روباتیک مینویسم. خوشحال میشم. فعلا بای
-
1 ضمیمه
نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C
قضیه مغلوب یک عدد که میدونید چیه...برنامشو گذاشتم.
-
1 ضمیمه
نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C
این برنامه هم خیلی زیباست. من این رو با سه تا حلقه ی تو در توی for که توی یه If هستش نوشتم. نام برنامه ساعت هستش. بله ساعت.
ابتدا از کاربر سه تا عدد میگیره که به ترتیب ساعت ، دقیقه و ثانیه هستش. قابل توجه که ساعت رو باید بصورت 24 ساعته وارد کنید.
بعدش برنامه ساعت رو نشون میده و شروع به شمارش میکنه و ازای هر چرخش حلقه ی for سوم که ثانیه هستش یک حلقه ی دومی (دقیقه) یه دونه افزایش پیدا میکنه و به ازای چرخش کامل حلقه ی دومی حلقه ی اول (ساعت) یک مقدار افزایش پیدا میکنه.
البته این برنامه رو به صورت دیگری هم میشد نوشت. شاید بعدا براتون گذاشتم.
دستور شرطی اول هم چک میکنه که اعداد رو درست وارد کردید یا نه! مثلا اگه ثانیه رو 70 بزنید. برنامه خطا میده و از کاربر میپرسه آیا دوست دارید دوباره سعی کنید؟ که اگه جواب True f بود مرحله ی اول یه بار دیگه اجرا میشه وگرنه از برنامه خارج میشه.
دوستان میشه طوری این برنامه رو نوشت که ساعت رو از سیستم بگیره و نمایش بده اما اینجا ما به استراکچر برخورد میکنیم که برای تازه کارا یه کوچولو سخته.
نکته: این برنامه تحت کامپایلر turbo C++ Dos هستش قبل از آپلود صحت اون تست شده
تا یادم نرفته برای خروج از برنامه باید کلید های ctr ,Pause Break رو از کیبورد فشار بدید.
-
نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C
تغییر رنگ نوشته متن :
کامپایلر : 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();
}
-
1 ضمیمه
نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C
این یه برنامه ماشین حسابه که خودم نوشتم، بدک نیست.
-
1 ضمیمه
نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C
اینم برنامه ی چک کردن پسورده
ابتدا یه رشته 5 کاراکتری میگیره و بعد از شما میخواهد که همونو دوباره وارد کنید اگه درست بود اوکی میده در غیر اینصورت دوباره اجرا میشه
برای خروج هم باید Esc رو بزنید.
در ضمن همون ماشین حساب قبلیم رو هم با این پسورد تلفیق کردم.
-
1 ضمیمه
نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C
نقل قول:
نوشته شده توسط
saeed karimi
سلام.کد بازی دوز به زبان C++ را می خواهم
شاید این به دردت بخوره
بفرما(البته خودم ننوشتم)
-
1 ضمیمه
برنامه جدید
این برنامه ای که امروز گذاشتم کلیه ی اعداد سه رقمی (یعنی بین 100 تا کوچکتر از 1000) که اصلا رقم صفر ندارن رو چاپ میکنه مثله 223. برای نوشتن این بنرامه دو تا نکته رو باید توجه کرد :
1 ) رقم صدگان کلیه ی اعداد سه رقمی مخالف صفر هستش پس باید دو رقم دیگر رو بررسی کرد.
2 ) باقیمانده ی حاصل از تقسیم هر عددی بر 10 برابر است با یکان اون عدد.
3 ) باقیش با خودتون ! امیدوارم این برنامه هایی که میزارم برای دوستان تازه کار مفید باشه !