PDA

View Full Version : سوال: اضافه کردن ستون



zarax1234
چهارشنبه 31 تیر 1388, 19:17 عصر
من با استفاده از یکی از برنامه های توی فروم و تغییر دادنش یه برنامه نوشتم که میشه توی یه ستون بالا و پایین رفت و با رنگی شدن هر قسمت معلوم میشه تو کدوم ردیفیم و میشه به هرجاییش یه ردیف اضافه و کم کرد ...

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

این برنامه اصلی اگه کمک کنین خیلی ممنون میشم!


#include<iostream.h>
#include<string.h>
#include<stdio.h>
#include<conio.h>
#include <windows.h>
int j;
int ch; //braye gereftan jahat
int row=0; //moshakhas kardan satr fa'al
#define MAX 400 // bishtarin tedad char moton
char uptext[1][MAX]; // matne balaye menu
bool check=true;
struct Menu
{
int num; // tedad gozinehaye ghabel entekhab
char input[100][MAX]; // moton gozinehaye ghabel entekhab
};Menu s;
/*tabe menu ke moton menu ra print mikonad*/
int menu() {
cout<<"------------------------------------- main menu -------------------------------"<<endl;
cout<<endl;
cout<<" press up for up"<<endl;
cout<<" press down for down"<<endl;
cout<<" press home for first row"<<endl;
cout<<" press end for last row"<<endl;
cout<<" press insert for new data"<<endl;
cout<<" press delete for deleting data"<<endl;
cout<<" press enter for quit"<<endl;
cout<<endl;
cout<< uptext[0]<<endl;//print matne balaye menu
cout<<endl;
for (int i=0 ;i < s.num;i++)
{
if (i==row) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HA NDLE), 8);
}//taghiir rang baraye moshakhas kardan gozine fa'al
cout<<i+1<<". "<<s.input[i]<<endl;
if (i==row) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HA NDLE), 7);
}//bargardandan rang be halat aval
}
return 0;//payan tabe
}
//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 );
}
}
int main(){

s.num=4; // moshakhas kardan tedad gozineha
strcpy(s.input[0],"file");
strcpy(s.input[1],"edit");
strcpy(s.input[2],"view");
strcpy(s.input[3],"insert");
strcpy(uptext[0],"---------------------------------- menu project -------------------------------");//kopy matn balaye menu
while(check) {
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.num-1;
}//bargardandan be paiin
else {
row=row-1;
}//bargardandan be bala
break;
case 80://down
if(row==s.num-1) {
row=0;
}//bargardandan be bala
else {
row=row+1;
}//bargardandan be paiin
break;
case 13://enter
cout<<" are you sure?! y/n"<<endl;
char c;
c=getch();
switch (c)
{
case 121:
check=false;
break;
case 110:
system("cls");
check=true;
break;
}
break;
case 71:
row=0;
break;
case 79:
row=s.num-1;
break;
case 82:
if(s.num>0){
s.num=s.num+1;
char help[100];
char q[100];
cout<<"please enter your new data: ";
for(int z;)
cin>>q;
system("cls");
strcpy(help,s.input[row]);
for(j=s.num;row<j; j--)
{
strcpy(s.input[j+1],s.input[j]);
}
strcpy(s.input[row+1],q);}
else
{
s.num++;
char w[100];
cout<<"please enter your new data: ";
cin>>w;
system("cls");
strcpy(s.input[0],w);
}

break;
case 83:
for(j=row;j<s.num;j++)
strcpy(s.input[j],s.input[j+1]);
if(s.num>0)
s.num=s.num-1;
system("cls");
break;
}
}
return 0;
}

kitten
چهارشنبه 31 تیر 1388, 19:31 عصر
سلام دوست عزیز ان برنامه را من نوشته بودم
چند وقتی است که حوصله برنامه نویسی ندارم اما بعد این که رفتم مسافرت و برگشتم برای نوشتن ان برنامه و ارتقاو برنامه قبلی یه کارهایی می کنم
ضمنافکر می کنم باید برای اضافه کردن ستون از gotoxy استفاده کنی