PDA

View Full Version : مبتدی: کمک برای چند برنامه دانشگاهی



Onkareh
پنج شنبه 15 اردیبهشت 1390, 23:17 عصر
سلام
دوستان و اساتید محترم راست و پوست کنده میرم سر اصل مطلب
من دانشجوی IT هستم و استاد ما در برنامه نویسی php به هیچ عنوان چیز خاصی به ما آموزش ندادند و فقط چند تابع+ if و همینطور حلقه را توضیح دادند . حال برای پایان ترم 4 برنامه به ما داده اند و گفتند هر کی این برنامه ها را بیاره نمره اش را می گیره . من به شخصه خیلی دوست داشتم بهم آموزش می داد و خودم شروع به نوشتنش می کردم و می آمدم اینجا ایرادش را می پرسیدم ولی در حال حاضر نه وقتی مانده برای یادگیری و نه وقتی مانده برای امتحان و تحویل این 4 برنامه
از شما اساتید برنامه نویسی خواهش می کنم اگر می شود در نوشنت این چهار برنامه به من کمک کنند تا بتونم نمرم را بگیرم ممنون می شوم
با تشکر
1- برنامه ای بنویسید که تاریخ امروز را از سیستم دریافت کرده و مشخص کند در چندمین روز سال هستیم ؟
2- برنامه ای بنویسید که اطلاعات یک نفر را شامل نام نام خانوادگی و نام کاربری و رمز عبور را از ورودی دریافت و اطلاعات را درون فایلی ذخیره کند ؟
3- برنامه ای بنویسید که تاریخ امروز را از ورودی دریافت و معادل میلادی آن را نمایش دهد ؟
4- برنامه ای بنویسید که یک عدد را از ورودی دریافت و آن را به حرف نمایش دهد ؟
از شما دوستان و اساتید محترم قبلا تشکر و قدردانی می کنم

Mahdi.Spirit
جمعه 16 اردیبهشت 1390, 00:16 صبح
سلام
شما مطمئنی اینایی كه گفتین با php میخواین؟
این بیشتر شبیه برنامه هایی كه با c و... مینویسن هستا!
شكل وشمایل اینا به وب نمیخوره!

sargardoon
جمعه 16 اردیبهشت 1390, 02:09 صبح
سلام
دوستان و اساتید محترم راست و پوست کنده میرم سر اصل مطلب
من دانشجوی IT هستم و استاد ما در برنامه نویسی php به هیچ عنوان چیز خاصی به ما آموزش ندادند و فقط چند تابع+ if و همینطور حلقه را توضیح دادند . حال برای پایان ترم 4 برنامه به ما داده اند و گفتند هر کی این برنامه ها را بیاره نمره اش را می گیره . من به شخصه خیلی دوست داشتم بهم آموزش می داد و خودم شروع به نوشتنش می کردم و می آمدم اینجا ایرادش را می پرسیدم ولی در حال حاضر نه وقتی مانده برای یادگیری و نه وقتی مانده برای امتحان و تحویل این 4 برنامه
از شما اساتید برنامه نویسی خواهش می کنم اگر می شود در نوشنت این چهار برنامه به من کمک کنند تا بتونم نمرم را بگیرم ممنون می شوم
با تشکر
1- برنامه ای بنویسید که تاریخ امروز را از سیستم دریافت کرده و مشخص کند در چندمین روز سال هستیم ؟
2- برنامه ای بنویسید که اطلاعات یک نفر را شامل نام نام خانوادگی و نام کاربری و رمز عبور را از ورودی دریافت و اطلاعات را درون فایلی ذخیره کند ؟
3- برنامه ای بنویسید که تاریخ امروز را از ورودی دریافت و معادل میلادی آن را نمایش دهد ؟
4- برنامه ای بنویسید که یک عدد را از ورودی دریافت و آن را به حرف نمایش دهد ؟
از شما دوستان و اساتید محترم قبلا تشکر و قدردانی می کنم


دوست عزیز ابتدا باید با عرض معذرت بهتون بگم که هیچ گاه دنبال لقمه جویده نگردید. شما اگر همون دستورات شرطی، تکرار، و سوئیچ و .... یعنی پایه برنامه نویسی رو یاد گرفته باشید، در تمامی زبانهای برنامه نویسی یکی هستند فقط syntax ها فرق میکنه، شما هرکجا بروید بیشتر از اینها بهتون یاد نمیدهند، از اینها هم برگذریم تا استاد بزرگ گوگل عزیز و انجمن رو داری غم نداشته باش، فقط باید خودت هم سعی کنی، بیخیال این حرفها برسیم به مشکل شما
1. اگر درست متوجه شده باشم برای مثال شما میخواهید بدونید 5/5/2011 چندمین روز از ساله؟

echo date("z", mktime(0,0,0,1,10,2011))+1;


mktime(hour,minute,second,month,day,year,is_dst) این هم کد اصلی برای اطلاعات بیشتر میتونی به سایت PHP مراجعه کنید
چند کد برای کمک به شما


echo date("z", mktime(0,0,0,1,10,2011))+1; // Day number in year
echo date("l", mktime(0,0,0,5,5,2011)); // Day name
echo date("W", mktime(0,0,0,5,5,2011)); // Week number
echo date("t", mktime(0,0,0,8,8,2011)); // number of days in month
echo date("z", mktime(0,0,0,12,31,2011)) + 1; // number of days in year

اگر هم میخواهی استاد رو بپیچونی میتونی و نشون بدی چیزی میدنی، با استفاده از دستور شرطی و تکرار میتونی استفاده کنی.
ایده برای انجام: اول تاریخ رو بگیری چک کنی اگر ژانویه بود روز میشه شماره روز در سال اگر نه همینطور از عدد ماه کم کنی تا به ژانویه برسی و در هر ماه تعداد روزهای را باهم جمع کنی.


2. این هم نمونه کدش که من درون یه فایل متنی نوشتم، این یه ایده هستش.

<?php
if ($_POST['submit'])
{
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$username = $_POST['username'];
$password = $_POST['password'];

$strData = array (
'first name' => $firstname,
'last name' => $lastname,
'username' => $username,
'password' => $password
);

$handle = fopen('test.txt', 'a+');
foreach ($strData as $k => $v)
{
fwrite($handle, $k.' : '.$v."\r");
}
}
?>

<html>
<head>
<title>File Handler</title>
</head>
<body>
<form action="" method="post">
first name: <input type="text" name="firstname" /><br />
last name: <input type="text" name="lastname" /><br />
first name: <input type="text" name="username" /><br />
first name: <input type="password" name="password" /><br />
<input type="submit" name="submit" value=" SEND " />
</form>
</body>
</html>

3. شرمنده اخلاقت من متاسفانه هنوز تبدیل تاریخ شمسی - میلادی کار نکردم ولی توی همین فورم اگر کمی جستجو کنید قبلا بحث شده.
4. تبدیل شماره به حرف


class NumbWordter
{
private $discrete=array('0'=>'zero','1'=>'one','2'=>'two','3'=>"three",'4'=>"four",'5'=>"five",'6'=>'six','7'=>'seven',
'8'=>'eight','9'=>'nine','10'=>'ten','11'=>'eleven',"12"=>'twelve','13'=>'thirteen','14'=>'fourteen',
'15'=>'fifteen','16'=>'sixteen','17'=>'seventeen','18'=>'eighteen','19'=>'nineteen','-'=>'minus');

private $ten_digit_prefix=array('2'=>'twenty','3'=>'thirty','4'=>'forty','5'=>'fifty','6'=>'sixty',
'7'=>'seventy','8'=>'eighty','9'=>'ninty');

private $mool_array=array('',"thousand,","million,","billion,","trillion,","quadrillion,","quintillion,","sextillion,",
"septillion,","octillion,","nonillion,","decillion,","unidecillion,","duodecillion,","tredecillion,","quattuordecillion,");

private $sentence; //final sentence
private $error; //error if generated

//methods
private function twodigits($num)
{
//displays from 1 to 99
if($num<20)
return $this->discrete[$num];
else
return $this->ten_digit_prefix[substr($num,0,1)].' '.$this->discrete[substr($num,1,1)];
}

//displays three digit numbers
private function threedigits($num)
{
return $this->discrete[substr($num,0,1)].' hundred and '.$this->twodigits(substr($num,1,2));
}

private function decider($num)
{
if(strlen($num)<=2)
return $this->twodigits($num);
else
return $this->threedigits($num);
}

public function convert($num)
{
//return if more than 48 digits
if(strlen($num)>48)
{
$this->error="Number out of bounds";
return $this->error;
}

//check if first
if(substr($num,0,1)=="-")
{
$this->sentence.='minus ';
$num=substr($num,1,strlen($num)-1);
}

if(strlen($num)<=3)
{
$this->sentence.=$this->decider($num);
}
else
{
$k=strrev($num);
for($i=0;$i<strlen($k);$i=$i+3){$arro[]=strrev(substr($k,$i,3));}
//reverse again
$arro=array_reverse($arro);
//print_r($arro);
$mool=ceil(strlen($num)/3);
if((strlen(num)%3)==0){$mool--;}
$this->sentence.=$this->decider($arro[0]).' '.$this->mool_array[$mool];
$mool--;
//leave the first one and prepare string of others
$arrlen=count($arro);
for($i=1;$i<$arrlen;$i++)
{
$this->sentence.=' '.$this->decider($arro[$i]);
if($mool!=0)
{
$this->sentence=' '.$this->sentence.' '.$this->mool_array[$mool];
}
$mool--;
}
}
return ucfirst(trim($this->sentence));
}
}

روش استفاده


$myConverter = new NumbWordter(); //initialize
$text=$myConverter->convert(123); //pass the number you want to convert
echo $text; //will print the words

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

sargardoon
جمعه 16 اردیبهشت 1390, 02:09 صبح
سلام
شما مطمئنی اینایی كه گفتین با php میخواین؟
این بیشتر شبیه برنامه هایی كه با c و... مینویسن هستا!
شكل وشمایل اینا به وب نمیخوره!

دوست عزیز توی دنیا برنامه نویسی چیزی نشد نداریم.

Mahdi.Spirit
جمعه 16 اردیبهشت 1390, 11:06 صبح
دوست عزیز توی دنیا برنامه نویسی چیزی نشد نداریم.
من منظورم اين نبود كه نميشه ،‌ فقط برام جاي سوال بود ! چون اين نوع سوالا شخص رو ياد برنامه هاي تحت ويندوز ميندازه نه تحت وب!

مثلا "برنامه ای بنویسید که یک عدد را از ورودی دریافت... " رو تو گوگل سرچ كنين ،‌كم پيش مياد مثال تحت وب بهتون بده

ضمنا براي اجراي اين كد ها هم بايد سروري ، wampي چيزي داشته باشن ! ولي از گفته هاشون برمياد كه استادشون چيز زيادي نگفته و...

Onkareh
جمعه 16 اردیبهشت 1390, 16:32 عصر
سلام
بسیار ممنونم از دوستان گرامی به خصوص sargardoon (http://barnamenevis.org/member.php?178570-sargardoon) گرامی