تعديل طفيف للمواصفات برنامج CS1

مدير مطعم للوجبات السريعة يتطلب برنامجا للمساعدة في تعقب المبيعات. المتنفس الوحيد يخدم البرغر مع البطاطا المقلية ، وجبة برغر تكاليف 5.95 دولار. الزبائن أن تأمر أي عدد من وجبات برغر. هذا البرنامج هو للمساعدة في حساب الأسعار للأوامر ، وأيضا للحفاظ على السجلات من مجموع الطلبات وأكبر طلبية واحدة ، والبرنامج هو استخدام القائمة بسيطة لتحديد نمط حلقة مع الخيارات :

  

(1) ترتيب المكان

(2) طباعة المجاميع حتى الآن

(3) الاقلاع

الخيار أمر ينبغي أن يؤدي إلى مطالبة عدد من وجبات الطعام المطلوبة. أي إدخال بيانات غير صالحة (قيمة <= 0) هي التي يمكن الاستغناء عنها ، والبرنامج هو مرة أخرى مطالبة المستخدم مع الخيارات. إدخال البيانات الصالحة ينبغي أن يسفر عن التحديثات من إجمالي المبيعات ، وعند الاقتضاء ، وتحديث السجل من أجل أكبر. هذا البرنامج يجب أن تستجيب أيضا مع عدد النظام وتكلفة النظام. المجاميع والخيار يجب طباعة تفاصيل من إجمالي مبيعات أكبر وأجل ، وترك الخيار إنهاء البرنامج. انتقاء الخيار غير صالح يقال ؛ ثم يكرر هذا البرنامج موجه ل المدخلات (ومواصفات الأصلي تضمنت النسخة المطبوعة تبين الأشكال الدقيقة اللازمة لالمدخلات والمخرجات.) ومن الواضح أن هذا البرنامج يتطلب بيرل حلقة في حين يتضمن elsif... لو... آخر بناء.

#! / مشاركة / بن / بيرل - ث = 5.95 دولار تكاليف ؛ orderNum $ = 0 ؛ $ maxorder = 0 ؛ $ totalsales = 0 ؛ في حين (1) (الطباعة 'مرحبا بكم في CS1 اللحوم 1. بإصدار أمر 2. طباعة المجاميع 3. استقال أدخل اختيارك : '؛ $ النظام =  ؛ إذا دولار (النظام == 1) (طباعة "كم عدد الوجبات التي تريدون؟" ؛ $ حجم =  ؛ إذا دولار (حجم <= 0) (المقبل ؛) $ orderNum + + ؛ الطباعة "انت رقم العميل : $ orderNum \ ن" ؛ $ ordercost = $ * $ حجم التكلفة ؛ الطباعة "أنت مدين : \ $ ordercost \ ن" ؛ $ maxorder = ($ حجم> $ maxorder)؟ $ حجم : $ maxorder ؛ totalsales $ + = $ ordercost ؛) elsif ($ النظام == 2) (طباعة "كانت هناك $ orderNum العملاء \ ن" ؛
طباعة "المبلغ الإجمالي : \ $ totalsales \ ن" ؛ الطباعة "الحد الأقصى لعدد من الأطباق في أمر". "أمر واحد : $ maxorder أطباق \ ن" ؛) elsif ($ النظام == 3) (آخر ؛) والا ( الطباعة واضاف "هذا كان خيارا سيئا.... حاول مرة أخرى" ؛)) طباعة "وداعا! \ ن" ؛

(هل تذكرون العودة إلى أوقات شيئا مثل هذا كان من الصعب أن الاحالة استغرق كنت في الأسبوع؟) ميزات أن نلاحظ في رمز هي : أ 'الى الابد' بينما الحلقة ؛ أنهى البيان الأخير في اختيار الخيار 3. استخدام من amulti سلسلة سطر تعريف لتبسيط اعلان سلسلة الأوامر. استخدام المدخلات. الإكراه والتلقائي للمساهمة في قيمة رقمية.... وإذا elsif... آخر المشروط بناء (ربما يقصد به أن يكون بيانا الحال في النسخة الأصلية لهذه الاحالة). القادم والتصريحات الأخيرة في جسد حلقة. بيرل والدليل على أن أبقى جيم لمشغل ثلاثية ()؟... :... الاستيفاء من قيم البيانات إلى سلاسل.

هذه المهمة كانت في الواقع من أعلى مستوى الموضوع ، ولكنها أيضا لا يتطلب سوى معظم الهياكل الأساسية للبرمجة. وهذا البرنامج لقراءة البيانات المتعلقة الملفات والدلائل ليرة سورية كما تم الحصول عليها من يونيكس الأوامر ل. المدخلات يجب أن تقرأ من نوع المدخل (إما من الأنابيب ليرة سورية ل أو توجيه من ملف المنتجة عن طريق ليرة سورية ل). إدخال البيانات مثال هي :

آر إكس -- س -- س 1 الجذر بن 20796 6 يناير 2000 acctcom آر إكس -- س -- س 37 الجذرية بن 5256 6 يناير 2000 بنك التنمية الاسيوى lrwxrwxrwx 1 الجذر الجذر 29 30 نوفمبر 2000 cachefspack -->.. / ليب / خ / cachefs / cachefspack drwxr - xr - × 2 جذر بن 512 يونيو 10 15:08 sparcv7

هذا البرنامج هو عملية الخطوط المتصلة ملفات بسيطة والدلائل ؛ دليل مداخل خاصة ، مثل وصلات ، لا يمكن تجاهلها. هذا البرنامج هو إنشاء خط الانتاج لكل خط معالجة المدخلات. هذا هو خط الانتاج لاعادة كتابة أذونات الملف في شكل رمز ثماني تستخدم ليونكس الأذونات ، بل هو لبيان ما إذا كان خط يتصل ملف أو دليل ، و هو لطباعة اسم الدخول. عندما تكون جميع خطوط مدخلات تمت معالجتها ، هذا البرنامج هو لطباعة التهم لعدد من الملفات والدلائل ومن ثم إنهاء. الإخراج للبيانات هو مبين أعلاه ينبغي أن يكون :

511 ملف acctom 511 ملف بنك التنمية الاسيوى 755 الدليل sparcv7

الإصدار الأول من التوصل إلى حل لهذه المهمة من جديد على أساس حلقة بينما ضمنه كل المعالجة التي يؤدونها. حلقة تقرأ خط من نوع المدخل ، وينتهي عندما سطر فارغ وردت (نهاية الملف شرط). تجهيز يعتمد على الأحرف المحددة التي يتم إدخال ؛ بيرل القياسية الدالة substr يستخدم لاختيار شخصيات من سطر الإدخال.

#! / مشاركة / بن / بيرل - $ الملفات ث = 0 ؛ $ الدلائل = 0 ؛ بينما دولار (شارع =  ) (اقضم بصوت عالي دولار (شارع) ؛ $ تشار = substr دولار (شارع ، 0،1) ؛ إذا دولار (تشار مكافئ "--") ($ نوع = "الملف" ؛ الملفات $ + + ؛) elsif ($ تشار مكافئ 'د' ) ($ نوع = "الدليل" ؛ $ الدلائل + + ؛) والا (المقبل ؛) $ code1 = 0 ؛ # يؤلف ثماني رمز للمالك إذا كان ( "ص" substr مكافئ دولار (شارع ، 1،1)) ($ code1 + = (4) ؛) إذا كان ( "ث" substr مكافئ دولار (شارع ، 2،1)) ($ code1 + = 2 ؛) إذا كان ( "س" مكافئ substr دولار (شارع ، 3،1)) ($ code1 + = 1 ؛ ) $ code2 = 0 ؛ # يؤلف رمز لمجموعة الثماني اذا ( "ص" substr مكافئ دولار (شارع ، 4،1)) ($ code2 + = 4 ؛) إذا كان ( "ث" substr مكافئ دولار (شارع ، 5،1 )) ($ code2 + = 2 ؛) إذا كان ( "س" مكافئ substr دولار (شارع ، 6،1)) ($ code2 + = 1 ؛) $ code3 = 0 ؛ # يؤلف رمز لثماني أخرى إذا ( "ص" substr مكافئ دولار (شارع ، 7،1)) ($ code3 + = 4 ؛) إذا كان ( "ث" substr مكافئ دولار (شارع ، 8،1)) ($ code3 + = 2 ؛) إذا كان ( "س" مكافئ substr دولار (شارع ، 9،1)) ($ code3 + = 1 ؛) $ رمز = $ code1. $ code2. $ code3 ؛ # استخراج اسم الملف في نهاية السطر $ اسم = substr دولار (شارع ، $ نقاط البيع +1) ؛
طباعة "$ (الرمز) \ ر $ (نوع) \ ر $ (الاسم) \ ن" ؛) الطباعة "$ الملفات الملفات ، ومبلغ الدلائل الدلائل \ ن" ؛

بينما دولار (شارع =  ) (اقضم بصوت عالي دولار (شارع) ؛ $ تشار = substr دولار (شارع ، 0،1) ؛ إذا دولار (تشار مكافئ "--") ($ نوع = "الملف" ؛ الملفات $ + + ؛) elsif ($ تشار مكافئ 'د' ) ($ نوع = "الدليل" ؛ $ الدلائل + + ؛) والا (المقبل ؛) $ رمز = 0 ؛
للدولار (ط = 1 ؛ دولار ط <10 ؛ ط دولار + +) ($ رمز *= 2 ؛ إذا ( "--" substr شمال شرق دولار (شارع ، ط دولار ، 1)) ($ رمز + + ؛)) $ = rindex نقاط البيع ( $ شارع "") ؛ $ اسم = substr دولار (شارع ، $ نقاط البيع +1) ؛ printf "س ٪ ٪ ليالي" ، $ رمز ، "\ ر $ (نوع) \ ر $ (الاسم) \ ن" ؛)

في بيان printf ، فإن الحجة الأولى '٪ س ٪ ق' هو شكل سلسلة ، وهذا ناتج من يحدد قيمة رقمية في ثماني ، تليها سلسلة. وغيرها من الحجج هي رمز ، وسلسلة من نوع (الملف أو الدليل) واسم الكيان. بالطبع ، هناك طريقة اخرى لفعل ذلك. منذ وقوع سلسلة الشكل هو مضاعفة نقلت بيرل السلسلة ، يمكن أن أقحم القيم ، وفيما يلي البديل سوف يكون جيدا :

printf "٪ س \ ر $ (نوع) \ ر $ (الاسم) \ ن" ، $ رمز ؛
مقال مقدم من رونالد سميث


تنويه :موقعنا على الانترنت ليست مسؤولة عن محتوى هذه المادة. Webarticles هو حر للمعلومات.
المهم : هذا المقال "بقليل تعديل مواصفات لبرنامج CS1" وقد ترجم من قبل البرمجيات التلقائي. نشعر بالاسف من اجل أي الأخطاء الإملائية التي قد حدث. شكرا لتفهمكم.


Online: 219 users browsing the articles directory