این گزارش کارآموزی با فرمت Word بوده و قابل ویرایش است و همچنین آماده پرینت می باشد.موضوع : گزارش کارآموزی شرکت همراه نرم افزار نوینبا توجه به امکانات قابل توجه تلفن های همراه جدید به موازات موارد فوق این شرکت اقدام به تولید نرم افزارهای دیگری نظیر قرآن،مفاتیح الجنان اذان،مناسک حج،بانک اطلاعات مشاغل و... نموده است به دلیل پیشرو بودن در این زمینه این شرکت بخش قابل توجهی از منابع خود را به امور تحقیقات و ارائه راهکارهای جدید برای استفاده بهتر از تلفنهای همراه اختصاص داده است.هر نرم افزار در سایت این شرکت به صورت رایگان دانلود میشود اما برای اجرای آن باید مبلغی را به حساب شرکت مذکور واریز کنند، بعد از تایید واریز وجه کد فعال سازی به تعداد نرم افزار هایی که مشتری یا مشتریان خریداری می کنند در اختیار آنها قرار می گیرد و هر مشتری برای فعال سازی آن برنامه به صورت خودکار هنگامی که برنامه ها را فعال میکند اطلاعات او در سرور های شرکت ثبت و نگهداری می شود که البته قابل ذکر است که بخش(اتاق) سرور ها کاملاً ایزوله شده و هیچکس جز مسئول مربوطه اجازه دسترسی به آنها را ندارد.سوپروایزر شهرستانها هم به امور نماینده ها در سراسر ایران نظارت میکند و به مشتری های شهرستانی شرکت خدمات می رساند.بعد از آن مدتی در قسمت خدمات پس از فروش مشغول به کار شدم،این قسمت بسیار جالب بود چون تمام کاربران از اقسا نقات ایران و حتی خارج از ایران تماس گرفته و مشکلاتی که برای آنها از نسب برنامه گرفته تا مشکلاتی که هنگام نسب یا بعد از نسب نرم افزار پیش می آمد صحبت می کردند.می توان گفت این قسمت یعنی همان بخش خدمات پس از فروش به نوعی قلب این شرکت میباشد و محبوبیت این شرکت در بین کاربران و حتی نمایندگان خود به دلیل خدمات نامحدود آن است و بدون اینکه وجهی دریافت کند تا مادامی که از آن نرمافزار استفاده می شود خدمات رایگان در اختیار آن کاربر گذاشته می شود.کاربران اغلب بصورت تماس تلفنی مشکلاتشان را مطرح کرده و مسئولین فنی و اپراتورها به آنها پاسخ میدهند تا مشکلات آنها را برطرف کنند و اگر مشکل آنها خیلی حاد بود به شرکت مراجعه میکنند ولی اکثراً با یک تماس مشکل برطرف میشود.در این بخش تمام خدمات به صورت رایگان در اختیار کاربران قرار میگیرد.جاواجاوا یک زبان برنامه نویسی است که در اوایل دهة 90 توسط جاوا سافت، بخش نرم افزاری شرکت سان، توسعه داده شد. هدف آن بود که جاوا زبانی ساده، فوی و همه منظوره باشد. جاواتمام جنبههای مثبت C و C++را در خوددارد، و آن چیزهایی که برنامه نویسان ازآن نفرت داشته اند ( مانند وراثت چند گانه، تحریف اپراتورها و اشاره گرها) را به کناری گذاشته است.مهمترین ویژگی جاوا این است که اساساً شییء گر است. اولین ادعای oppتوانایی استفادة مجدد از کد است؛ چیزی که C++ با تمام ادعاهایش هرگز نتوانست بدان دست بابد، اما در اولین قدم خواهید دید که ادعای جاوا در این زمینه تا چه اندازه صحت دارد. تصورش را بکنید که با صرف کمی وقت بتوانید برنامهای بنویسید که در سیستمهای ویندوز، یونیکس و مکینتاش براحتی اجرا شود! همین که یک شرکت نرم افزاری بتواند برای تمام پلاتفرمهای موجود در آن واحد پروژهای را تولید کند ( و مقادیر عظیمی پول صرفه جویی کند) خود میتواند بهترین دلیل اقبال جاوا باشد . و امروزه دیگر همه ( و نه فقط شرکتهای نرم افزاری) به سمت جاوا کشیده شدهاند.با این ویژگی ( استقلال از پلاتفرم) یک برنامه نویس میتواند برای سیستمی برنامه بنویسید که هرگز با آن کار نکرده است. این ویژگی اصلی ترین علت توفیق جاوا در اینترنت است. اینترنت شبکة پچیدهای است از میلیونها کامپیوتر مختلف در سراسر دنیا، و مقاومت در مقابل این وسوسه که بتوانید برنامهای بنویسید که روی تمام این سیستمهای متفاوت و نامتجانس اجرا شود چندان ساده نیست.جاوا یک زبان بسیار ساده است چون شما را وادار نمیکند تا در محیط جدید ( و ناآشنایی) کار کنید و این برای کسانی که اطلاعات فنی ناچیزی دربارة کامپیوتر دارند بسیار مهم است . ساختار زبان جاوا در نگاه اول بسیار شبیه C و C++ است و این به هیچ وجه تصادفی نیست . C زببانی است ساخت یافته و C++ زبانیست شییء گرا ، و مهمتر از همه قسمت اعظم برنامه نویسان دنیا از آنها استفاده میکنند. از سوی دیگر این شباهت حرکت به طرف جاوا از برای این قبیل افراد ساده خواهد کرد بنابراین طراحان جاوا برای اجتناب از دوباره کاری از زبانهای C وC++ بعنوان مدل استفاده کردند. ( و آیا این خود به تنهایی نشانة نبوغ طراحان جاوا نیست؟) .جاوا با دور انداختن اشاره گرها و بر دوش کشیدن بار مدیریت حافظه، برنامه نویسانC++ /C را برای همیشه از این کابوسها رهایی بخشیده است. علاوه برآن، چون جاوا زبانی برای اینترنت است، از ایمنی و حفاظت ذاتی بالایی برخودار است. طراحان حاوا از ابتدا یک محیط برنامه نویسی امن را مد نظر داشتهاند. مسئله حفاظت سیستمها رابطة تنگاتنگی با اشاره گرها دارد؛ اکثر مهاجمان برای ورودی غیر قانونی به جاوا مکانیزمهای حفاظتی دیگری هم دارد که در جای خود به آنها اشاره خواهیم کرد.برای آشنایی بیشتر با جاوا بهتر است نگاه مختصری به تاریخچة آن بیندازیم. اما چون جاوا رابطة تنگاتنگی با اینترنت دارد، آوردن تاریخچهای از اینترنت و وب خالی از فایده نیست.تاریخچة مختصر اینترنت وباینترنت به عنوان یک پروژة دولتی ایالات متحده امریکا در سال 1969 بدنیا آمد. این پروژه ، که درابتدا آرپانت (arpanet) نام داشت. فقط چهار کامپیوتر را در نقاط مختلف ایالات متحده به هم متصل میکرد. آرپانت بتدریج رشد کردو در سال 1972 پنجاه دانشگاه و مرکز تحقیقاتی نظامی در آن فعال بودند. در اواخر دهة 1980 متجاوز از هشتاد هزار کامپیوتر در این شبکة عظیم به هم متصل شده بودند. این کامپیوترها خود به دستجات ( شبکههای) کوچکتری تقسیم شده بوددند و شبکة شبکهها ( یا اینترنت) آنها را به یکدیگر متصل میکرد. در تمام این مدت اینترنت ملک اختصاصی محققان و دانشگاهیان بود و با آن که شرکتهای خصوصی هم میتوانستند به آن دسترسی داشته باشند ولی سیاست حاکم بر آن مانع استفادة تجاری از اینترنت شده بود. در سال 1991 با حذف ممنوعیت تجارت در اینترنت اوضاع دگرگون شد؛ ولی کماکان محدودة تجارت و تحقیق از هم جدا بود. از همین نقطه بود که رشد انفجاری اینترنت شروع شد به طوری که هم اکنون نزدیک به 100 میلیون کاربر در این شبکه عضویت دارند و اینترنت به تمام زاویای زندگی رسوخ کرده است.با آن که اینترنت چندان جوان نیست اما از تولد وب ( یا شبکة تار عنکبوتی جهانی، World Wide Wed-WWW) زمان زیادی نمیگذرد. وب در سال 1989 در آزمایشگاه اروپایی فیزیک ذرات (CERN) متولد شد. وب حاصل زحمات تیم برنرز – لی_(tim berners-lee) بود که تلاش داشت تا فیزیکدانان سراسر دنیا بتواند اطلاعات خود را در شبکة اینترنت و به صورت اَبَرمتن(hypertext) با هم در در میان بگذرند . وی براساس زبان عمومی علامتگذاری استاندارد SGML یک زبان جدید بنام زبان علامتگذاری اَبَرمتن HTML بوجود آورد. برای انتقال اسناد HTMLهم یک پروتکل جدید ابداع شد که پروتکل انتقال اَبرمتن HTTPنام گرفت. این پروتکل وسیلهای بود برای جستجو، یافتن، بازیابی و نمایش سریع اسناد. با استفاده از ابرمتن میتوان در شبکهای از منابع، با برنامهای بنام کاوشگر BROWSER بدنبال اسنادی با ویژگیهای خاص کاوش کرد. چون اولین کاوشگر فقط میتوانست متون را نمایش دهد با اقبال کمی مواجه شد. در حقیقت درسال 1993 فقط پنجاه پایگاه وب در تمام دنیا وجود داشت. شروع محبوبیت وب ورشد برق آسای آن با ورود کاوشگر گرافیکی موزائیک MOSAIC همراه بود. این کاوشگر در NCSA ( مرکز ملی کاربردهای سوپر کامپیوتر) توسعه داده شد. امروزه در دنیا دهها کاوشگر گرافیکی و متجاوز از یکصد هزار پایگاه وب وجوددارد. موفقیت موزائیک باعث شد تا عدهای از محققان NCSA شرکت نت اسکیپ NETSCAPE را تأسیس کنند و این همان شرکتی است که معروفترین کاوشگر وب یعنی NetsCape Navigator را تولید کرده است. کاوشگر نت اسکیپ علاوه بر HTML قابلیتهای متعددی در زمینة مالتی مدیا دارد که باعث تسریع در روند رشد اینترنت و وب شده است.اما سال 1995 یکی از مهمترین سالها در تاریخ اینترنت و وب است: در این سال بود که میکروسافت ویدئوی اینترنتی را توسعه داد و صوت را تبدیل به یکی از اجزاء تفکیک ناپذیر اسناد ابرمتن کرد؛ نت اسکیپ با افزودن قابلیتهای بیشمار به کاوشگر خود همه را شگفت زده کرد؛ اولین ویرایش زبان مدلسازی واقعیت مجازی VRML به بازار آمده و سان جاوا را در یک سینی طلایی بدنیا عرضه کرد.توسعه دهندگان وب با جاو ابزاری را یافتند که باآن میتوانستند صفحات تعاملی مالتی مدیا در اینترنت بوجود آورند و این نقطه عطف جدیدی در تاریخچة اینترنت به شمار میآیدبرنامه نویسی شیئی گرایکی از بزرگترین ایدههای برنامه نویسی در دو دهة اخیر است ، اما تسلط کامل بر این ایده به سالها زمان و ممارست نیاز دارد. برنامه نویسی شیئی گرا در واقع پیوند دنیای واقعی با برنامه نوسی کامپیوتر است. امروز با مفاهیم برنامه نویسی شیئی گرا در جاوا، و ارتباط این مفاهیم با ساختار برنامهها آشنا می شوید:-شیئی و کلاس چیست و رابطة آنها چگونه است.-یک شییء یا کلاس دو جزءء مهم دارد: رفتار و حالت-وراثت و نقش آن در طراحی برنامهها- بسته ها و واسطها در جاوااگر از قبل با برنامة نویسی شیگرا آشنا هستید می توانید امروز را استراحت کنید و برای درس فردا آماده شوید.مفاهیم برنامه نویسی شیئء گرابرنامة نویسی شیئی گرا قصد دارد مدلی از دنیای واقعی را وارد برنامه نویسی کامپیوتر کند. دنیای اطراف ما از اشیاء Object ساخته شده است.اشیاء Object و کلاسهاclassesشیئء کلیدیترین مفهوم برنامه نویسی شییء گرا است. هر شیئء یک حالت ( یا خاصیت) و رفتار دارد، و برنامه عبارت است بر هم کنش بین اشیاء حالت یک شیئ عبارت است از متغیرهای ( عناصر دادهای) شیئی و مقدار آنها رفتار یک شیئ را متدهای آن تعیینن میکنند ( نزدیکترین مفهوم به متد همان تابع است) . شیئ در واقع مقداری کد است که کار خاصی انجام می دهد.هر شیئ کپسولی است از مقداری متغیر و کد، که کار نگهداری و به روز در آوردن آنها را ساده میکند. معمولاً درون یک شیئ ( مانند یک کپسول در بسته ) از دسترس دنیای خارج بدور است و برای کار با آن باید از ارسال پیام استفاده کرد. مزیت کپسول آن است که کاربر برای کار با آن هیچ نیازی به دانستن مکانیزمهای درونی آن ندارد و فقط باید ساختار پیام ها را بداند. معمولاً ساختار پیامها در اشیاء مختلف یکسان است. در دنیای واقعی هم وضع به همین منوال است، مثلاً برای استفاده از یک تلویزیون شما هیچ نیازی به آشنایی با پیچیدگیهای درون آن ندارید فقط کافیست بدانید که باید آن را به برق بزنید، آن را روشن کنید و یک کانال را انتخاب کنید.کلاس در واقع الگویی است برای ایجاد شیئی در واسط برنامه نویسی جاوا java APIچندین کلاس مختلف وجود دارد که در جای خود به آنها خواهیم پرداخت.نکته : اگر باC آشنا باشید، میتوانید کلاس را چیزی مانند struct و typedef تصور کنید؛ اما یک کلاس بسیار پیچیدهتر و کارآتر از struct است.چند کلاس با هم یک کتابخانة کلاس class library می سازند. برنامه نویسی جاوا اصولاً چیزی نیست جز طراحی و پیاده سازی کلاسها.ایجاد یک کلاسبرای درک بهتر مفاهیمی که تعریف شدند در این قسمت یک مثال عملی خواهیم آورد. در این مثال یک موتور سیکلت را شبیه سازی می کنیم . یک موتور سیکلت واقعی دارای حالت و رفتاری خاص خود است. حالت موتور سیکلت در واقع همان خواص آن ( مانند رنگ، مدل، نوع و .. ) است . مجموع این خواص یک موتور سیکلت خاص را مشخص خواهند کرد که از موتور سیکلتهاای دیگر قابل تمیز است. هر شئی وهله ایست از یک کلاس ، کلاس موجودی قابل لمس نیست، در حالیکه شئی موجودی است قابل لمس که به کلاس خود موجودیت داده است. مثلاً ، انسان یک کلاس است در حالیکه شما نمونه ای هستید از کلاس انسان؛ شما موجودیت دارد در حا لیکه چیزی به نام انسان وجود خارجی ندارد ، بلکه در اشیاء خاص ( من ، شما، دیگران) موجودیت مییابد.موتور سیکلت ما دارای رفتارهایی هم هست، رفتارهایی مانند روشن شدن ، خاموش کردن، تعویض دنده،سرعت گرفتن، ترمز کردن و غیره.وراثت، واسط ها و بسته هاوراثت ( InheritanCe)وراثت یکی از کلیدی ترین مفاهیم برنامه نویسی شیئی گراست و تأیثر مستقیمی روی نحوة طراحی و نوشتن کلاس ها جاوا دارد. وراثت مکانیزمی است برای تغییر شکل دادن به کلاس ها و استفادة مجدد از آنها: با مکانیزم وراثت می توان به طور خودکار از اطلاعات کلاس های دیگر استفاده کرد.هر کلاس یک فوق کلاس superclass و یک یا چند زیر کلاس subclass دارد. هر کلاس از کلاس های بالاتر خود در این سلسله مراتب ارث می برد و به کلاس پایین تر از خود ارث می دهد. هر زیر کلاس تمام متدها و متیرهای فوق کلاس خود را به ارث می برد و دیگر نیازی به تعریف مجدد آنها وجود ندارد.بالاترین کلاس در سلسله مراتب کلاس های جاوا کلاسobject است و تمام کلاس های دیگر از این کلاس مشتق می شوند. این کلاس تعیین کننده کلیترین متدها و خواص تمام کلاس های ذیل خود است. معمولاً کلاس ها ضمن ارث بردن از کلاس های بالاتر از خود چیزهایی رابه آن اضافه و پیاده سازی میکنند.ایجاد سسلسله مراتب کلاسوقتی تعداد کلاس ها زیاد شود ، منطقی است که آنها را در یک سلسله مراتب گرد آوریم تا بتوانیم نحوة به ارث رسیدن متدها و خواص را بهتر کنترل کنیم بدین ترتیب نیاز به دوباره نویسی کدها به حداقل رسیده و هنگام نیاز به تغیر کدها نیز این اصلاحات فقط در یک نقطه انجام خواهند شد و از آنجا به تمام نقاط دیگر تسری خواهند یافت.وراثت چگونه عمل می کند؟وراثت چگونه عمل می کند؟ چگونه یک شیئ متغیرها و متدهای کلاس بالاتر را به طور خودکار بدست می آورد؟ در مورد متغیرها، وقتی شیئی بوجود میآید یک مسیر دسترسی به تمام متغیرهای کلاس مربوطه را بدست میآورد. در مورد متدها هم وضع به همین منوا ل است و تعریف یک متد در اختیار تمام زیر کلاس ها قرار خواهد گرفت. وقتی در یک شیئی متدی فراخوانی می شود، جاوا ابتدا در همان کلاسی که متد تعریف شده به دنبال کد آن می گردد اگر کد آن را نیافت. در سلسله مراتب یک پله بالاتر رفته و در فوق کلاس بدنبال آن خواهد گشت تا زمانیکه کد متد را بیابید.وقتی در یک زیر کلاس متدی با نام مشابه متدی در یک کلاس بالاتر تعریف شود، کارها کمی پیچیده خواهد شد. در این حالت متدی که زودتر ( در حرکت از پایین) یافت شود اجرا خواهد شد. بدین ترتیب متد تعریف شده در زیر کلاس متد فوق کلاس را مخفی می کند. به این وضعیت تحریف overrideمتد گفته میشود.وراثت منفرد و چند گانهجاوا به گونه ای که دیدید از وراثت منفرد single استفاده می کند. وراثت منفرد یعنی هر کلاس جاوا می تواند فقط یک فوق کلاس داشته باشد. اما عکس آن درست نیست، یعنی یک کلاس می تواند چندین زیر کلاس داشته باشد.در زبانهای شیئی گرای دیگر، مانندC++یک کلاس می تواند از چند فوق کلاس به ارث ببرد. به این وضعیت وراثت چندگانهmultipleگفته می شود . با وراثت چند گانه می توان کلاس های فوق العاده جالبی بوجود آورد. ولی کد نویسی آنها بسیار دشوارتر است.واسط ها (InterfaCes) و بسته ها (PaCkages)دیدیدکه در جاوا هر کلاس فقط از یک فوق کلاس ارث می برد. با اینکه وراثت منفرد برنامه نویسی را ساده تر می کند ولی کمی محدود کننده هم هست. مثلا اگر در شاخه های مختلف یک سلسله مراتب متدهای مشابهی داشته باشید، باید تمام آنها را جداگانه پیاده سازی کنید. جاوا با استفاده از مفهومی بنام واسط مشکل به اشتراک گذاشتن متدها را حل کرده است.اصطلاح جدیدواسط عبارت است مجموعة نام چند متد، بدون تعریف آنها، که واسط آنها را در اختیار کلاس استفاده کننده میگذارد.گزارش کارآموزی در یک شرکت نرم افزاری و برنامه نویسیدانلود گزارش کارآموزی شرکت همراه نرم افزاردانلود گزارش کارآموزی شرکت همراه نرم افزار نوینفهرست مطالبمقدمه. ۴نصب نرمافزار در کوتاهترین مدت ممکن ۷جاوا ۱۱تاریخچة مختصر اینترنت وب۱۳تکامل جاوا ۱۶ویژگیهای زبان برنامه نویسی جاوا ۱۹شروع برنامه نویسی با جاوا ۲۲ایجاد یک اپلت جاوا ۲۵تحلیل برنامه. ۲۷خلاصه. ۲۸برنامه نویسی شیئی گرا ۲۹مفاهیم برنامه نویسی شیئء گرا ۳۰ایجاد یک کلاس… ۳۱وراثت، واسط ها و بسته ها ۳۲ایجاد سسلسله مراتب کلاس… ۳۳وراثت چگونه عمل می کند؟. ۳۴وراثت منفرد و چند گانه. ۳۵واسط ها (InterfaCes) و بسته ها (PaCkages) 35اصطلاح جدید. ۳۶ایجاد اشیاء جدید. ۴۲استفاده از new.. 42New چه کاری انجام می دهد. ۴۳اصلاح جدید. ۴۳نکته ای دربارة مدیریت حافظه. ۴۴دسترسی به عمل کلاس ها و متغیرهای وهله و ست کردن آنها ۴۴گرفتن مقدار متغیرها ۴۵تغییر دادن مقدار متغیرها ۴۶فراخوانی متدها ۴۷متدهای کلاس… ۴۸تغییر نوع اشیاء و انواع اولیه. ۴۹اصلاح جدید. ۴۹تغییر انواع اولیه. ۵۰تغییر نوع اشیاء. ۵۰تغییر نوع انواع اولیه به اشیاء و بالعکس…. ۵۲چند نکتة دیگر. ۵۳تعیین کلاس یک شیی.. ۵۴کتابخانه کلاس جاوا ۵۵ایجاد متدهایی با نام مشابه و آرگومانهای متفاوت.. ۵۷متدهای سازنده. ۶۱سازنده های اصلی.. ۶۲تحریف سازنده ها ۶۲پنهان کردن متدها ۶۳فراخوانی متد اولیه. ۶۳پنهان کردن سازنده ها ۶۴متدهای پایان دهنده. ۶۵خلاصه. ۶۶تفاوت اپلت با برنامه. ۶۶ایجاد اپلت ها ۶۸مهمترین اقدامات یک اپلت.. ۶۹آماده سازی.. ۷۰شروع. ۷۰توقف.. ۷۱تخریب.. ۷۲رنگ آمیزی.. ۷۲قرار دادن اپلت در یک صفحه وب.. ۷۳بازهم دربارة بر چسب APPLET.. 74ALIGN.. 74ارسال پارامتر به اپلت ها ۷۷خلاصه. ۸۱کلاس GraphiCs. 82سیستم مختصات گرافیکی.. ۸۲ترسیم و پر کردن اشکال. ۸۳مستطیل. ۸۴چند ضلعی.. ۸۵بیضی.. ۸۷قوس… ۸۸کپی کردن و پاک کردن.. ۹۰متن و فونت.. ۹۱ایجاد شیء فونت.. ۹۱رسم کاراکترها و رشته ها ۹۳گرفتن اطلاعاتی در بارة یک فونت.. ۹۴استفاده از شیئی COLOR.. 95تست کردن و ست کردن رنگ جاری سیستم. ۹۵یک مثال سادة رنگی.. ۹۶انیمشین سازی در جاوا ۹۷رنگ آمیزی و رنگ آمیزی مجدد. ۹۷شروع و توقف اجرای یک اپلت.. ۹۸ریسمان ها: آنها چه هستند و چرا به آنها نیاز داریم. ۹۸مشکل اپلت ساعت دیجیتالی.. ۱۰۰استفاده از ریسمان در اپلت ها ۱۰۰اصلاح اپلت ساعت دیجیتالی.. ۱۰۴کاهش چشمک زدن انیمیشن.. ۱۰۶چشمک زدن و راه های اجتناب از آن.. ۱۰۶نرم افزار نور الطریق.. ۱۱۵نرم افزار فارسی ساز. ۱۱۵نرم افزار موذن همراه. ۱۱۶نرم افزار مناسک حج.. ۱۱۶نرم افزار تقویم هجری شمسی.. ۱۱۷نرم افزار کنکور(در دست تولید) ۱۱۸نرم افزار همیاد. ۱۱۸نرمافزار بانک اطلاعاتی مشاغل (نرمافزار در دست تولید) ۱۱۹نرمافزار مرجع اطلاعات حقوقی(در دست تولید) ۱۱۹نرمافزار مرجع اطلاعات دارویی(در دست تولید) ۱۲۰نرمافزار آموزش زبان بر اساس سیستم INTERCHANGE.. 120نرمافزار گردشکری همراه. ۱۲۱منابع وماخذ: ۱۲۲