سلام دنیا!
خب دوستان عزیز همون طور که در پست اول گفتم قصد دارم برای برنامه نویس شدن، عملگرا بودن رو فراموش نکنم و هر بار برنامه های ساده ای (البته فعلا) رو طراحی کنم و بنویسم. و گفتم چون رشته دانشگاهی و تخصصی بنده مهندسی آب هستش، بیشتر برنامه هاییو که خواهم نوشت در این حوزه خواهند بود. قبل از شروع بگم که من از محیط برنامه نویسی ++Dev-C (شکل 1) تحت سیستم عامل ویندوز 7 (که به علت نبود نرم افزار های تخصصی در لینوکس مجبور به استفاده ازش هستم) استفاده می کنم که یک محیط برنامه نویسی متن باز هست و از کامپایلر GCC هم استفاده می کنه.
هدف از نوشتن این برنامه محاسبه جرم مخصوص و وزن مخصوص سیالات مختلف هستش و طرز کار این برنامه به این شکله که اول از شما می پرسه چه چیزی رو می خوایید محاسبه کنید.(جرم مخصوص یا وزن مخصوص؟) و یک آپشن هم برای خروج از برنامه داره. شما عدد آپشن مورد نظرتون رو وارد می کنید و کلید Enter رو فشار میدید. بعد وارد قسمت مورد نظر شما می شه و در هر قسمت سوالاتی از شما می پرسه و در آخر جرم یا وزن مخصوص رو به شما می گه.
اما تعاریف و تئوری برنامه :
جرم مخصوص به جرم واحد حجم سیال، جرم مخصوص می گن. یعنی اگر M جرم سیال و V حجم سیال باشه p یا همون جرم مخصوص برابر با M تقسیم بر V هستش.
وزن مخصوص یا y هم به وزن واحد حجم سیال می گن و مثل جرم مخصوص از تقسیم وزن W بر حجم V سیال به دست میاد. خب بریم سراغ کد نویسی :
// Headers
#include <stdio.h>
#include <conio.h>
// Functions
void Special_Mass(void);
void Special_Weight(void);
// Main Function
int main(){
int ans;
do{
printf("\n\n****Special Weight/Mass calc****\n\n");
printf("Options:\n\n[1] Special_Mass\n[2] Special_Weight");
printf("\n\n[0] Exit\n\n>>>");
scanf("%d", &ans);
switch(ans){
case 1:
Special_Mass();
break;
case 2:
Special_Weight();
break;
case 0:
break;
}
if(ans >= 3)
printf("not found!");
}while(ans != 0);
getch();
return 0;
}
void Special_Mass(void){
float M, V, p;
printf("Enter fluid mass: ");
scanf("%f", &M);
printf("Enter the volume of the fluid: ");
scanf("%f", &V);
p = (float) M / V;
printf("Fluid Special Mass is: %f", p);
}
void Special_Weight(void){
float W, V, y;
printf("Enter the weight of the fluid: ");
scanf("%f", &W);
printf("Enter the volume of the fluid: ");
scanf("%f", &V);
y = (float) W / V;
printf("Fluid Special Weight is: %f", y);
}
خب دوستان همون طور که در قطعه کد بالا می بیند اول دوتا تابع از نوع void تعریف کردم. بعد در تابع اصلی آپشن ها رو نشون دادم و منتظر کاربر موندم تا آپشن مورد نظرش رو انتخاب کنه. بعدش با دستور switch یکی یکی پاسخ ها رو به تابع مربوطه فرستادم که اونام با توجه به انتخاب کاربر هر کدوم از مولفه های وزن، جرم و حجم رو می گیرن و اقدام به محاسبه می کنند و نتیجه رو نشون می دن.
کل کد های تابع اصلی در یک حلقه تکرار do while قرار دارن که شرطش اینه که پاسخ یا همون ans برابر مقدار 0 نشه. و همین باعث می شه برنامه تا زمانی که کاربر نخواد، به پایان نرسه. یک دستور If هم برای پاسخ های نا مربوط کاربر استفاده شده که در صورت پیدا نکردن آپشن مورد نظر بگه not found
برنامه بسیار سادست خب منم دنیس ریچی یا ریچارد استالمن نیستم و تازه دارم یاد می گیرم می شه آپشن ها و تابع ها دیگه ای رو هم به این برنامه اضافه کرد. فقط کافیه تابع عای مورد نظر رو بنویسیم و اونا رو به دستورات switch اضافه کنیم.
خب من دارم یاد می گیرم لطفا بهم بگید چطور می تونستم این برنامه رو بهتر بنویسم.
در آخر عکس اجرای برنامه رو می زارم.