高速公路收費系統(tǒng)c語言課程設(shè)計報告及論大學(xué)生寫作能力_第1頁
高速公路收費系統(tǒng)c語言課程設(shè)計報告及論大學(xué)生寫作能力_第2頁
高速公路收費系統(tǒng)c語言課程設(shè)計報告及論大學(xué)生寫作能力_第3頁
高速公路收費系統(tǒng)c語言課程設(shè)計報告及論大學(xué)生寫作能力_第4頁
高速公路收費系統(tǒng)c語言課程設(shè)計報告及論大學(xué)生寫作能力_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

C語言程序設(shè)計課程設(shè)計報告設(shè)計題目:高速公路計費系統(tǒng)設(shè)計學(xué)號班級姓名完成方式:(單選)自我評分:(單選)○ 獨立完成○優(yōu)秀○ 參考他人工作的基礎(chǔ)上完成○良好○ 在他人的幫助下完成○中等○ 完整拷貝他人成果○及格○不及格題目:高速公路計費系統(tǒng)設(shè)計功能:在某高速公路出口收費處,對三種類型的車輛計費,大型車每公里0。5元,中型車每公里0。4元,小型車每公里0。3元,來車驗條,乘公里數(shù)即得該收的款項。在交班時要統(tǒng)計出總數(shù)。分步實施:1、初步完成總體設(shè)計,搭好框架,確定人機對話的界面,確定函數(shù)個數(shù);2、完成最低要求:建立一個只有三個入口的計費系統(tǒng),并能進(jìn)行統(tǒng)計計算,打印出報表;3、進(jìn)一步要求:完成任意多個入口的通用系統(tǒng)。要求:1、用C語言實現(xiàn)程序設(shè)計;2、利用結(jié)構(gòu)體數(shù)組實現(xiàn)信息的數(shù)據(jù)結(jié)構(gòu)設(shè)計;3、系統(tǒng)的各個功能模塊要求用函數(shù)的形式實現(xiàn);4、界面友好(良好的人機交互),程序加必要的注釋。課程設(shè)計實驗報告要求:1、預(yù)習(xí)報告:題目、課程設(shè)計任務(wù)、數(shù)據(jù)結(jié)構(gòu)、程序的總體設(shè)計(算法)、模塊劃分。2、實驗總結(jié)報告:流程圖、主要源程序代碼(需打?。?、測試情況及調(diào)試中問題與解決方案、小結(jié)等。一、總體設(shè)計1、仔細(xì)閱讀系統(tǒng)要求,首先將此系統(tǒng)化分為如下模塊(1)顯示模塊,是人機交互的界面,可引導(dǎo)操作員來完成程序的運行。比如:系統(tǒng)主界面(主菜單),包含了輸入車輛信息,顯示車輛信息,顯示車輛總數(shù),退出程序四個可選操作,操作員可直觀地完成信息處理。(2)文件模塊,可執(zhí)行文件建立、文件保存、文件打開和文件寫入等命令來操作處理和放置車輛信息的文件。(3)輸入模塊是操作員向程序輸入的模塊,可輸入操作內(nèi)容和車輛的有關(guān)信息,比如:輸入車牌號、車輛類型、進(jìn)入口、時間,程序自動計算得出車輛應(yīng)繳納的費用并保存在文件。(4)輸出模塊,通過程序計算,向操作員輸出車輛信息、數(shù)據(jù)等(5)退出模塊,可用一個函數(shù)exit()來實現(xiàn),首先將信息保存到文件中,然后退出程序二、詳細(xì)設(shè)計1、界面設(shè)計此系統(tǒng)界面采用符號和數(shù)字化菜單設(shè)計。主界面設(shè)計如下:歡迎使用高速公路收費系統(tǒng)主菜單輸入車輛信息顯示車輛信息顯示車輛總數(shù)保存退出系統(tǒng)請輸入數(shù)字選擇操作類型:2、流程圖3、數(shù)據(jù)結(jié)構(gòu)設(shè)計:程序設(shè)計中用到的結(jié)構(gòu)體類型:車輛信息結(jié)構(gòu)體類型:structvehicle /*車輛信息*/{charnum[10000];/*車牌號*/charvariety[4];/*車輛類型a,b,c(大,中,小)*/intentime;/*進(jìn)入時間*/charenter[3];/*進(jìn)入口1,2,3……分別為各個入口*/}4、程序代碼#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>#defineN10/*定義三個入口到出口的路程分別是l1l2l3*/structvehicle /*車輛信息*/{charnum[10000];/*車牌號*/charvariety[4];/*車輛類型a,b,c(大,中,小)*/intentime;/*進(jìn)入時間*/charenter[3];/*進(jìn)入口1,2,3……分別為各個入口*/}ve[N];intcount=0;FILE*fp;/*函數(shù)聲明*/voidmenu();/*主菜單*/voidinput();/*輸入函數(shù)*/voidshow();voidall();voidreadfile();/*從文件導(dǎo)入*/voidwritefile();/*寫入*/voidmain(){readfile();while(1){menu();}}voidreadfile() /*從文件導(dǎo)入*/{if((fp=fopen("vehicle.txt","r"))==NULL){ printf("\n");printf("\n");printf("\n");printf("\n"); printf("\t"); printf("\t"); printf("***********************************************\n"); printf("\t"); printf("\t");printf("**\n"); printf("\t"); printf("\t"); printf("*文件為空,請?zhí)砑有畔?\n"); printf("\t"); printf("\t"); printf("**\n"); printf("\t"); printf("\t"); printf("***********************************************\n");if((fp=fopen("vehicle.txt","w"))==NULL) /*只寫*/{ printf("\n");printf("\n");printf("\n");printf("\n"); printf("\t"); printf("\t"); printf("***********************************************\n");printf("\t"); printf("\t"); printf("**\n"); printf("\t"); printf("\t");printf("*建立失敗*\n"); printf("\t"); printf("\t");printf("**\n"); printf("\t"); printf("\t"); printf("***********************************************\n"); exit(0); /*正常退出*/}else{ printf("\n");printf("\n");printf("\n");printf("\n"); printf("\t"); printf("\t");printf("***********************************************\n");printf("\t"); printf("\t");printf("**\n");printf("\t"); printf("\t");printf("*文件已建立*\n");printf("\t"); printf("\t");printf("**\n");printf("\t"); printf("\t");printf("*Pleasepressanykeytogettomainmenu!*\n");printf("\t"); printf("\t");printf("**\n");printf("\t"); printf("\t");printf("***********************************************\n");getch();return;}exit(0);}fseek(fp,0,2);/*文件指針fp指到到文件末尾*/if(ftell(fp)>0) /*文件不為空*/{fseek(fp,0,0);/*文件指針指到文件開始位置*/for(count=0;!feof(fp)&&fread(&ve[count],sizeof(structvehicle),1,fp); count++); printf("\n");printf("\n");printf("\n");printf("\n");printf("\t"); printf("\t");printf("***********************************************\n");printf("\t"); printf("\t");printf("**\n");printf("\t"); printf("\t");printf("*文件導(dǎo)入成功*\n");printf("\t"); printf("\t");printf("**\n");printf("\t"); printf("\t");printf("*Pleasepressanykeytogetbacktomainmenu!*\n");printf("\t"); printf("\t");printf("**\n");printf("\t"); printf("\t");printf("***********************************************\n");getch();return;}printf("\n");printf("\n");printf("\n");printf("\n");printf("\t"); printf("\t");printf("***********************************************\n");printf("\t"); printf("\t");printf("**\n");printf("\t"); printf("\t");printf("*已成功打開文件!*\n");printf("\t"); printf("\t");printf("**\n");printf("\t"); printf("\t");printf("*Pleasepressanykeytogetbacktomainmenu!*\n");printf("\t"); printf("\t");printf("**\n");printf("\t"); printf("\t");printf("***********************************************\n");getch();return;}voidmenu(){system("cls");/*清屏*/charn;printf("\n");printf("\n");printf("\n");printf("\n");printf("\t");printf("\t***********************************************\n");printf("\n");printf("\t");printf("\t*歡迎使用高速公路收費系統(tǒng)*\n");printf("\n");printf("\t");printf("\t*主菜單*\n");printf("\n");printf("\t");printf("\t*1.輸入車輛信息*\n");printf("\n");printf("\t");printf("\t*2.顯示車輛信息*\n");printf("\n");printf("\t");printf("\t*3.顯示車輛總數(shù)*\n");printf("\n");printf("\t");printf("\t*4.保存退出系統(tǒng)*\n");printf("\n");printf("\t");printf("\t*請輸入數(shù)字選擇操作類型:*\n");printf("\n");printf("\t");printf("\t***********************************************\n");n=getch();switch(n){case'1':input(); break;case'2':show(); break;case'3':all(); break;case'4':writefile(); break;default:break;}}voidinput(){system("cls");printf("請輸入車輛信息\n");printf("車牌號:\n");scanf("%s",&ve[count].num);printf("車輛類型(a,b,c分別代表大,中,小):\n");scanf("%s",ve[count].variety);printf("進(jìn)入時間:\n");scanf("%d",&ve[count].entime);printf("入口(1,2,3代表三個入口):\n");scanf("%s",&ve[count].enter);count++;printf("是否繼續(xù)添加(Y/N)\n");if(getch()=='y'||getch()=='Y')input();elsemenu();}voidshow(){ system("cls");charnumber[10];charid2;inti,R,de=0;doublea,b,c,l1=200,l2=300,l3=400;/*定義三個入口到出口的路程分別是l1l2l3(200300400)公里*/printf("\n\n\n\n\t\t***************************************************\n");printf("\t\t請輸入車牌號:\n");scanf("%s",&number);for(i=0;i<count;i++){if(strcmp(ve[i].num,number)==0) {de++;printf("\t\t車輛信息情況:\n");printf("\t\t車輛類型:%s\n",ve[i].variety);printf("\t\t入口站:%s\n",ve[i].enter);printf("\t\t進(jìn)入時間:%d\n",ve[i].entime);printf("\t\t車牌號:%s\n",ve[i].num); R=i;if(strcmp(ve[R].variety,"a")==0&&strcmp(ve[R].enter,"1")==0){a=0.5*l1;printf("\t\t此車應(yīng)繳費:%f元\n",a);}elseif(strcmp(ve[R].variety,"a")==0&&strcmp(ve[R].enter,"2")==0){a=0.5*l2;printf("\t\t此車應(yīng)繳費:%f元\n",a);}elseif(strcmp(ve[R].variety,"a")==0&&strcmp(ve[R].enter,"3")==0){a=0.5*l3;printf("\t\t此車應(yīng)繳費:%f元\n",a);}elseif(strcmp(ve[R].variety,"b")==0&&strcmp(ve[R].enter,"1")==0){b=0.4*l1;printf("\t\t此車應(yīng)繳費:%f元\n",b);}elseif(strcmp(ve[R].variety,"b")==0&&strcmp(ve[R].enter,"2")==0){b=0.4*l2;printf("\t\t此車應(yīng)繳費:%f元\n",b);}elseif(strcmp(ve[R].variety,"b")==0&&strcmp(ve[R].enter,"3")==0){b=0.4*l3;printf("\t\t此車應(yīng)繳費:%f元\n",b);}elseif(strcmp(ve[R].variety,"c")==0&&strcmp(ve[R].enter,"1")==0){c=0.3*l1;printf("\t\t此車應(yīng)繳費:%f元\n",c);}elseif(strcmp(ve[R].variety,"c")==0&&strcmp(ve[R].enter,"2")==0){c=0.3*l2;printf("\t\t此車應(yīng)繳費:%f元\n",c);}elseif(strcmp(ve[R].variety,"c")==0&&strcmp(ve[R].enter,"3")==0){c=0.3*l3;printf("\t\t此車應(yīng)繳費:%f元\n",c);} }}if(de==0){ printf("\t\t此車記錄為空\n");}printf("\t\tPleasepressanykeytogetbacktomainmenu\n");printf("\t\t***************************************************\n");id2=getch();menu();}voidwritefile(){inti;if((fp=fopen("vehicle.txt","w"))==NULL){ printf("\n");printf("\n");printf("\n");printf("\n");printf("\t"); printf("\t"); printf("*************************************************\n"); printf("\t"); printf("\t");printf("\n*文件打開失敗*"); printf("\t"); printf("\t"); printf("*************************************************\n");}for(i=0;i<count;i++){if(fwrite(&ve[i],sizeof(structvehicle),1,fp)!=1){ printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\t"); printf("\t");printf("*************************************************\n");printf("\t"); printf("\t");printf("*寫入文件錯誤!*");printf("\t"); printf("\t");printf("*************************************************\n");}}fclose(fp);printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\t"); printf("\t");printf("*************************************************\n");printf("\t"); printf("\t");printf("**\n");printf("\t"); printf("\t");printf("*通訊錄文件已保存*\n");printf("\t"); printf("\t");printf("**\n");printf("\t"); printf("\t");printf("**\n");printf("\t"); printf("\t");printf("*Pleasepressanykeytoexit*\n");printf("\t"); printf("\t");printf("*************************************************\n");exit(0);}voidall(){system("cls");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\t");printf("\t");printf("*************************************************\n");printf("\t");printf("\t");printf("*車輛總數(shù)為:%d*\n",count);printf("\t");printf("\t");printf("**\n");printf("\t");printf("\t");printf("**\n");printf("\t");printf("\t");printf("*Pleasepressanykeytogetbacktomainmenu*\n");printf("\t");printf("\t");printf("************************************************\n");getch();menu();}三、測試及調(diào)試1、調(diào)試采用了輸入數(shù)據(jù)模擬路口汽車收費。輸入的數(shù)據(jù)及結(jié)果有(1)2222222a121結(jié)果100.000000元(2)5678934b132結(jié)果120.000000元(3)2233445c13結(jié)果120.000000元2、在調(diào)試初期,由于程序輸入時的許多錯誤,導(dǎo)致出現(xiàn)錯誤。后經(jīng)仔細(xì)檢查發(fā)現(xiàn)錯誤并及時更正。3、程序初期的界面沒有做到界面友好,許多版面不夠好看,看似程序粗糙,之后進(jìn)行了一定程度的美化。四、小結(jié)(收獲和建議)通過本次課程設(shè)計我學(xué)習(xí)到了要編寫好一個完整性、可讀性、健壯性好,效率與低存儲量需求的C語言程序是十分不容易的。在經(jīng)過很長時間的努力之后,看著勞動成果,很欣慰!雖然程序的完成有他人的幫助,資料的查詢。但是,這畢竟是完成的第一個C語言大程序。由此可見,平時扎實的基礎(chǔ)是很關(guān)鍵,因為如果平時學(xué)得就不怎么樣,那么面對這么一個比較有難度的程序,可能會望而卻步,看他人的程序都是個難點,更別說自己去設(shè)計。所以我們在平時要扎實地打好基礎(chǔ),認(rèn)真聽課和完成作業(yè),遇到不懂的要及時向他人尋求幫助。另外,編寫C語言程序也是一個長期積累的過程,任何人都不可能一下子就能編出一個C語言程序,我們要經(jīng)常練習(xí),平時多看他人的程序,自己編寫一些小程序,不僅可以減少在輸入時的輸入錯誤,還可以學(xué)習(xí)到一些改正錯誤的方法,不斷完善自己,從而達(dá)到一個可以輕松編寫C語言程序的人。五、程序截圖

論大學(xué)生寫作能力寫作能力是對自己所積累的信息進(jìn)行選擇、提取、加工、改造并將之形成為書面文字的能力。積累是寫作的基礎(chǔ),積累越厚實,寫作就越有基礎(chǔ),文章就能根深葉茂開奇葩。沒有積累,胸?zé)o點墨,怎么也不會寫出作文來的。寫作能力是每個大學(xué)生必須具備的能力。從目前高校整體情況上看,大學(xué)生的寫作能力較為欠缺。一、大學(xué)生應(yīng)用文寫作能力的定義那么,大學(xué)生的寫作能力究竟是指什么呢?葉圣陶先生曾經(jīng)說過,“大學(xué)畢業(yè)生不一定能寫小說詩歌,但是一定要寫工作和生活中實用的文章,而且非寫得既通順又扎實不可?!睂τ诖髮W(xué)生的寫作能力應(yīng)包含什么,可能有多種理解,但從葉圣陶先生的談話中,我認(rèn)為:大學(xué)生寫作能力應(yīng)包括應(yīng)用寫作能力和文學(xué)寫作能力,而前者是必須的,后者是“不一定”要具備,能具備則更好。眾所周知,對于大學(xué)生來說,是要寫畢業(yè)論文的,我認(rèn)為寫作論文的能力可以包含在應(yīng)用寫作能力之中。大學(xué)生寫作能力的體現(xiàn),也往往是在撰寫畢業(yè)論文中集中體現(xiàn)出來的。本科畢業(yè)論文無論是對于學(xué)生個人還是對于院系和學(xué)校來說,都是十分重要的。如何提高本科畢業(yè)論文的質(zhì)量和水平,就成為教育行政部門和高校都很重視的一個重要課題。如何提高大學(xué)生的寫作能力的問題必須得到社會的廣泛關(guān)注,并且提出對策去實施解決。二、造成大學(xué)生應(yīng)用文寫作困境的原因:(一)大學(xué)寫作課開設(shè)結(jié)構(gòu)不合理。就目前中國多數(shù)高校的學(xué)科設(shè)置來看,除了中文專業(yè)會系統(tǒng)開設(shè)寫作的系列課程外,其他專業(yè)的學(xué)生都只開設(shè)了普及性的《大學(xué)語文》課。學(xué)生寫作能力的提高是一項艱巨復(fù)雜的任務(wù),而我們的課程設(shè)置僅把這一任務(wù)交給了大學(xué)語文教師,可大學(xué)語文教師既要在有限課時時間內(nèi)普及相關(guān)經(jīng)典名著知識,又要適度提高學(xué)生的鑒賞能力,且要教會學(xué)生寫作規(guī)律并提高寫作能力,任務(wù)之重實難完成。(二)對實用寫作的普遍性不重視?!按髮W(xué)語文”教育已經(jīng)被嚴(yán)重地“邊緣化”。目前對中國語文的態(tài)度淡漠,而是呈現(xiàn)出全民學(xué)英語的大好勢頭。中小學(xué)如此,大學(xué)更是如此。對我們的母語中國語文,在大學(xué)反而被漠視,沒有相關(guān)的課程的設(shè)置,沒有系統(tǒng)的學(xué)習(xí)實踐訓(xùn)練。這其實是國人的一種偏見。應(yīng)用寫作有它自身的規(guī)律和方法。一個人學(xué)問很大,會寫小說、詩歌、戲劇等,但如果不曉得應(yīng)用文寫作的特點和方法,他就寫不好應(yīng)用文。(三)部分大學(xué)生學(xué)習(xí)態(tài)度不端正。很多非中文專業(yè)的大學(xué)生對寫作的學(xué)習(xí)和訓(xùn)練都只是集中在《大學(xué)語文》這一門課上,大部分學(xué)生只愿意被動地接受大學(xué)語文老師所講授的文學(xué)經(jīng)典故事,而對于需要學(xué)生

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論