Προς το περιεχόμενο

μενου σε pascal, c η c++


oranje

Προτεινόμενες αναρτήσεις

Δημοσ.

καλησπερα παιδια.θελω να φτιαξω ενα απλο προγραμματακι με μενου ωστε να εκτυπωνει απλα μνμτακια.ελα μου ντε που ειμαι ασχετος και το google δεν βοηθαει πολυ.αν εχει καποιος κατι ετοιμο θα ηθελα να με βοηθησει.προτιμω pascal αν ειναι δυνατο γιατι βγαινει πιο ευκολα το exe.στις αλλες γλωσσες οταν εφτιαχνα κατι παταγα στο exe αλλα εκλεινε ακαριαια.ευχαριστω για την κατανοηση και για την οποια βοηθεια προκαταβολικα!

Δημοσ.

Να τα εκτυπωνει που? Στην οθονη?

Το μενου να ειναι γραφικο η text? Υποθετω τεχτ, διαφορετικα καλυτερα ασε την pascal και c και πιασε μια πιο καινουρια γλωσσα (εκτος αν εχει ορεξη για ΠΟΛΥ διαβασμα)

 

Οτι φτιαχνεις να το τελειωνεις με readln ωστε να μην κλεινει ακαριαια αλλα να περιμενει να πατησεις enter. Εναλλακτικα, ανοιγεις γραμμη εντολων πρωτα και απο εκει τρεχεις το exe.

 

Τι ακριβως εχεις στο μυαλο σου? Αν αυτο που θες ειναι πολυ απλο, μπορει να γινει και με batch file ακομα.

Επισης αν σε ενδιαφερει να τρεχει παντου και ειναι απλο, μπορεις να το κανεις και σε javascript και να τρεχει απο browser

Δημοσ.

ενα πολυ απλο προγραμμα να εκτυπωνει ενα μενου στην οθονη 3 επιλογες πχ κ με την αντιστοιχη επιλογη να εμφανιζειι ενα μνμ.δεν ειναι εργασια.δεν θελω κατι συνθετο.αν εχετε κατι ετοιμο κ μικρο να κανω τις αλλαγες.πολυ απλα πραγματα

Δημοσ.

oti exete.να γινετε εχε κ να μπορει να το τρεξει καποιος αλλος ασχετος με προγραμματισμο ας πουμε.απλα αναφερα τις αλλες γλωσσες γιατι αυτες εχω εγκατεστημενες τωρα.thanx!

Δημοσ.

Οπως ειπα, μπορει να γινει και με batch file.

Αν το θες οπωςδηποτε σε exe υπαρχει το quick batch file compiler που τα κανει exe (γενικωε ενα μινι περιβαλλον για τη συγγραφη Batch files) και πολλα αλλα δωρεαν προγραμματακια που κανουν απο batch exe. Να ενα

 

http://www.download.com/Bat-To-Exe-Converter/3000-2069_4-10715331.html?tag=pdp_prod

 

Οριστε και ενα παραδειγμα μενου σε batch file:

>
@echo off
title A simple Menu
setlocal

:start
cls
echo This is a simple menu!
echo Make your choice
echo.
echo The choices are:
echo Press 1 for THIS
echo Press 2 for THAT
echo Press 3 for THE OTHER
set /p answer=
if %answer% equ 1 (goto answer1)
if %answer% equ 2 (goto answer2)
if %answer% equ 3 (goto answer3)
goto wrong

:answer1
cls
echo You pressed 1.
echo I will display THIS message
goto end

:answer2
cls
echo You pressed 2.
echo I will display THAT message
goto end

:answer3
cls
echo You pressed 3.
echo I will display THE OTHER message
goto end

:wrong
cls
echo That was not a good answer! 
echo Press 1 to try again or any other key to exit
set /p answer=
if %answer% equ 1 (goto start)
exit

:end
echo.
echo.
echo End of Program. Press any key to exit
pause > nul

 

Copy paste σε ενα text file και το σωζεις με extension bat. Αν κατεβασεις και το compiler που εδειξα, ειναι πανευκολο να φτιαξεις το exe.

Θα στο εδειχνα σε pascal αλλα βαριομουν να την ξεθαψω

Δημοσ.

Σε Pascal (χωρίς compile, μπορεί να έχει κανένα λαθάκι):

>
Program test;
Var
 choice: Integer;
begin
 Writeln('1. Option one');
 Writeln('2. Option two');
 Writeln('3. Option three');
 Write('Enter choice: ');
 Readln(choice);
 Case choice of
   1: Writeln('You pressed 1.');
   2: Writeln('You pressed 2.');
   3: begin
         Writeln('You pressed 3.');
         Writeln('Have a nice day.');
      end;
 end;
end.

Δημοσ.

παιδια σας ευχαριστω παρα πολυ για την αμεση εξυπηρετηση.θελω να παω για δικτυα κ εχω στα τει εν ασωρο προγραμματισμους,ελεος!

ευχαριστω παρα πολυ και παλι!

 

sorry an se πρηζω αλλα παιζει να βαλεις μια επαναληπτικη διαδικασια να μην τερματιζει στν πρωτη πρωτη επιλογη στο bat .δεν θα σε ξαναενοχλησω.loooooooooooool!

Δημοσ.

Ο παρακάτω κώδικας σχεδιάζει στην θέση X,Y της οθόνης ένα ορθογώνιο μενού το οποίο περιλαμβάνει όλα τα διαθέσιμα Items που έχει ορίσει ο χρήστης. Η μετακίνηση μεταξύ των Items γίνεται με την χρήση των πλήκτρων Πάνω-Κάτω (Τοξάκια) ενώ η επιλογή του Item γίνεται πατώντας το πλήκτρο Enter (η τιμή που επιστρέφει αφορά το item με βάση την αρίθμηση των C array -δηλαδή ξεκινάμε από το μηδέν ως N-1). Το επιλεγμένο Item γίνεται αυτόματα Invert. Η ρουτίνα δοκιμάζει να προσαρμόσει αυτόματα το πλάτος και ύψος του μενού με βάση τον αριθμό και μέγεθος των Items.

 

Η ρουτίνα θα σας θυμίσει DOS λογισμικά, επίσης είναι ενδεικτική οπότε μπορεί να περιλαμβάνει bugs ειδικά αν τοποθετήσετε το μενού κοντά στα όρια της οθόνης (δεν συνιστάται).

 

Ακολουθεί ένα snapshot:

 

mndj0jxniynrmwjmmmmd.png

 

Ακολουθεί ο κώδικας, θυμηθείτε πως είναι γραμμένος σε CodeGear Turbo C και χρησιμοποιεί την Borland βιβλιοθήκη “conio.h” η οποία υλοποιεί τις ρουτίνες χρώματος, σχεδίασης στην οθόνη, καθαρισμού, απόκρυψης κέρσορα (cprintf, textcolor, textbackground, gotoxy, _setcursortype κτλ) οπότε δεν είναι σίγουρο πως μπορεί να γίνει compile από κάθε άλλο διαθέσιμο C compiler πέραν αυτών της CodeGear/Borland (πχ. C/C++ Builder, C++ Borland Compiler, Turbo C++ κτλ.)

 

>
/*-TTY MENU IN BORLAND C BY DIRECTX------------------------------------------*/

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

#ifdef	__BORLANDC__
#pragma hdrstop
#endif

/*---------------------------------------------------------------------------*/
int 	_DrawMenu(int X,int Y,char* pszItem[],int ItemNum);
/*---------------------------------------------------------------------------*/

#ifdef	__BORLANDC__
#pragma argsused
#endif
int main(int argc, char* argv[])
{
char	*pszItem[] = { "ITEM NUMBER 1",
					   "ITEM NUMBER 2",
					   "ITEM NUMBER 3",
					   "ITEM NUMBER 4", 
					   "ITEM NUMBER 5", 
					   "ITEM NUMBER 6",
					   "ITEM NUMBER 7",
					   "ITEM NUMBER 8",
					   "ITEM NUMBER 9",					   
					   "ITEM NUMBER 10"
					 };

printf("\n\nSELECTED ITEM: %d\n",_DrawMenu(1,1,pszItem,9));

getchar();
return 0;
}
/*---------------------------------------------------------------------------*/
int 	_DrawMenu(int X,int Y,char* pszItem[],int ItemNum)
{
/*
 * Draw simple menu with pszItem items.
 */
int	nMaxWidth = 0,
	nItemIdx,
	nHorLine,
	_Y = Y+1,
	nCloseMenu = 0,
	nActiveItem = 0;

/*
 * Find the largest (wider) Item of the pszItem array
 * and store it on nMaxWidth.
 */
for(nItemIdx=0;nItemIdx<=ItemNum;nItemIdx++)
	if(strlen(pszItem[nItemIdx])>nMaxWidth)
		nMaxWidth = strlen(pszItem[nItemIdx]);

/*
 * Clear screen and hide cursor
 */
   clrscr();
_setcursortype(_NOCURSOR);

/*
 * Draw Horizontal Menu Box lines
 */
for(nHorLine=0;nHorLine<=nMaxWidth+1;nHorLine++)
 {
	gotoxy(nHorLine+X,Y);
	putchar((!nHorLine || nHorLine==nMaxWidth+1)?'+':'-');	

	gotoxy(nHorLine+X,Y+ItemNum+2);
	putchar((!nHorLine || nHorLine==nMaxWidth+1)?'+':'-');	
 }	

while(!nCloseMenu)
 {	 
	static int nKey = 0;				   

	/*
	 * Draw menu items, vertical Menu Box lines and highlight 
	 * selected item.
	 */
	for(nItemIdx=0;nItemIdx<=ItemNum;nItemIdx++)
	 {
		gotoxy(X,_Y+nItemIdx); putchar('|');
		gotoxy(X+nMaxWidth+1,_Y+nItemIdx); putchar('|');
	
		gotoxy(X+1,_Y+nItemIdx);

		textcolor((nItemIdx==nActiveItem)?BLACK:LIGHTGRAY);
		textbackground((nItemIdx==nActiveItem)?LIGHTGRAY:BLACK);
	
		cprintf("%s",pszItem[nItemIdx]);
	 }	

	/*
	 * Read keyboard input 
	 */		 
	if(!(nKey = getch()))
		switch(getch())
		 {
			case	0x48:	/* Up */
				if(nActiveItem--<=0)
					nActiveItem = ItemNum;
			break;
			case	0x50:	/* Down */
				if(nActiveItem++>=ItemNum)
					nActiveItem = 0;
			break;				
			default:
				break;
		 }
	else
		if(nKey==0xD)		/* Enter */
			nCloseMenu = 1;				
 }

/*
 * Return selected item index.
 */
return	nActiveItem;
}

Δημοσ.
παιδια σας ευχαριστω παρα πολυ για την αμεση εξυπηρετηση.θελω να παω για δικτυα κ εχω στα τει εν ασωρο προγραμματισμους,ελεος!

ευχαριστω παρα πολυ και παλι!

 

sorry an se πρηζω αλλα παιζει να βαλεις μια επαναληπτικη διαδικασια να μην τερματιζει στν πρωτη πρωτη επιλογη στο bat .δεν θα σε ξαναενοχλησω.loooooooooooool!

 

>
@echo off
title A simple Menu
setlocal

:start
cls
echo This is a simple menu!
echo Make your choice
echo.
echo The choices are:
echo Press 1 for THIS
echo Press 2 for THAT
echo Press 3 for THE OTHER
echo Press 4 to exit
set /p answer=
if %answer% equ 1 (goto answer1)
if %answer% equ 2 (goto answer2)
if %answer% equ 3 (goto answer3)
if %answer% equ 4 (exit)
goto wrong

:answer1
cls
echo You pressed 1.
echo I will display THIS message
goto back


:answer2
cls
echo You pressed 2.
echo I will display THAT message
goto back


:answer3
cls
echo You pressed 3.
echo I will display THE OTHER message
goto back


:wrong
cls
echo That was not a good answer! 
goto back

:back
echo.
echo Press any key to go back to the main menu
pause > nul
goto start

 

Παντως σοβαρα τωρα, δεν νομιζω οτι αυτο σε ωφελει. Αν εχεις να μαθεις pascal η οποιαδηποτε αλλη γλωσσα για το TEI κατσε και μαθε αυτο που σου ζητανε. Batch Files δεν νομιζω να σου ζητησει ποτε κανεις να φτιαξεις ουτε σε βοηθανε στο να μαθεις να φτιαχνεις σωστα προγραμματα (μαλλον το αντιθετο)

Δημοσ.

na s pw την αληθεια προγραμμα για την κοπελα μου προσπαθω να φτιαξω γιατι ειναι προγραμματιστρια.σε υπερευχαριστω!

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

Επισκέπτης
Αυτό το θέμα είναι πλέον κλειστό για περαιτέρω απαντήσεις.
  • Δημιουργία νέου...