版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
88/88院系:光電工程學院學號:B09030521姓名:李志明院系:光電工程學院學號:B09030521姓名:李志明2012年4月16日——2012年4月26日軟件設計報告\o"1-3"\h\z\u\l19200第一章,軟件設計課程簡介3\l199511.涉及的課程及知識點3\l72292.目的與任務3\l17813.主要儀器與設備3\l29975第二章,軟件設計內容3\l299751.分數統(tǒng)計3\l29975a課題內容3\l29975b.設計流程圖4\l29975c源程序5\l29975d結果及完善10\l299752.分數統(tǒng)計11\l29975a課題內容11\l29975b.設計流程圖11\l29975c源程序13\l29975d結果及完善17\l299753文本編輯器17\l29975a課題內容17\l29975b.設計流程圖17\l29975c源程序19\l29975d結果及完善28\l299754.加密30\l29975a課題內容30\l29975b.設計流程圖30\l29975c源程序31\l29975d結果及完善35\l299755.進制轉換器35\l29975a課題內容36\l29975b.設計流程圖37\l29975c源程序38\l29975d結果及完善48\l299756.學生成果核算系統(tǒng)設計與實現50\l29975a課題內容50\l29975b.設計流程圖52\l29975c源程序54\l29975d結果及完善69\l299757.模擬電信計費系統(tǒng)的設計與實現73\l29975a課題內容2997576\l29975b.設計流程圖2997576\l29975c源程序78\l29975d結果及完善91\l29975第三章,心得體會93\l29975第四章,附加文件95軟件設計課程簡介涉及課程及知識點《高級語言程序設計》,常量,變量,表達式的基本知識;函數的定義與調用;文件讀寫;數組,指針,結構體等自定義類型的運用;排序等知識。目的與任務目的:通過集中時間上機試驗,對學生的程序設計實力進行一次綜合訓練,使學生充分發(fā)揮已有的編程實力,熟識編譯環(huán)境。選擇若干課題,進行審題,分析,設計和調試,在程序打算,程序實現,完成文檔,答辯驗收過程中,將全面鞏固已學過的編程知識,全面提高編程技能,在編程風格,調試器的運用,測試技術等方面得到全面訓練。主要儀器設備硬件:微型計算機軟件:C,,等軟件設計內容分數統(tǒng)計課題內容:設計一個分數統(tǒng)計程序。包括學生信息的輸入輸出以及排序。通過該課題全面熟識數組,字符串,文件的運用,駕馭程序設計的基本方法及友好界面的設計。課題要求:(1)輸入某班級學生的姓名,分數;(2)對(1)的分數進行降冪排列并輸出;(3)具有輸入輸出界面。算法流程圖:開始開始輸入學生信息輸入學生信息退出選擇操作選擇操作 N選擇正確否徐選擇正確否徐 Y2121輸入學生信息姓名分數輸入學生信息姓名分數3顯示學生信息顯示學生信息按分數降冪排序增加學生信息退出2選擇正確否徐選擇正確否徐Y 41顯示學生信息顯示學生信息退出退出源程序:<><><><>{ [100]; ;};;();0;100;[100];();();0();1();();(){ [100]; ; ; 1; ("\t\t\t\\n");("\t\t\t\t!\n"); ("\t\t\t\\n"); 0(); { ("請選擇操作:"); (""); (); [0]; (1>='0'<='2') { 0; } { (""); ("\t\t\t\n"); ("\t\t\t\t選擇有誤!\n"); ("\t\t\t\n"); 0(); 1; } }(a); () { '1': { (0) { (""); ("\t\t\t\n"); ("\t\t\t\t查無學生信息!\n"); ("\t\t\t\n"); 1(); (); } { (); (); } ; } '2': (""); (); 1(); (); ; '0': (1); ; } ;}(){ ; 1; (>) ("\t\t\t\t無法再增加學生信息!\n"); { { ("姓名:"); ("",([])); ("分數:"); (""); (>100<0) { (""); ("\t\t\t\n"); ("\t\t\t\t分數有誤,本次操作無效!\n"); ("\t\t\t\n"); 1; } { []; 0; } }(b); ; } ("");}(){ [100]; ; (0<) { (1<) { ([j]>[i]) { [j]; [j][i]; [i]; ([j]); ([j][i]); ([i]); } } }}(){ (""); (0<) { (""); ("姓名:"); (""[i]); ("分數:"); ("%3.1f"[i]); ("\n"); (""); 1(); }}0(){ (""); ("\t\t\t\1.顯示學生信息\n"); ("\t\t\t\2.添加學生信息\n"); ("\t\t\t\0.退出\n");}1(){ ("\t\t\t\1.顯示學生信息\n"); ("\t\t\t\2.按分數由高到低排序\n"); ("\t\t\t\3.添加學生信息\n"); ("\t\t\t\0.退出\n");}(){ 1[100]; 1; 1; 1; { ("請選擇操作:"); (""1); 1(1); 11[0]; (111>='0'1<='3') { 0; } { ("\t\t\t\n"); ("\t\t\t\t選擇有誤!"); ("\n"); ("\t\t\t\n"); 1(); 1; } }(b); (1) { '1': { (0) { (""); ("\t\t\t\n"); ("\t\t\t\t查無學生信息!\n"); ("\t\t\t\n"); 1(); (); } { (); (); } ; } '2': (); (""); 1(); (); ; '3': (""); (); 1(); (); ; '0': (""); (1); ; }}D.程序運行截圖略。。。。。。。。。2.打字程序課題內容:設計一個打字程序。包括隨機產生字符串,以及字符串比較和統(tǒng)計。課題要求:(1)隨機產生一字符串,每次產生的字符串內容,長度都不同;(2)依據(1)的結果,輸入字符串,推斷輸入是否正確,輸出正確率;(3)具有輸入輸出界面。流程圖:開始開始進入打字程序2.退出進入打字程序2.退出選擇正確否?選擇正確否? N12 Y12產生一串隨機長度隨機組合的字符串產生一串隨機長度隨機組合的字符串輸入字符輸入字符顯示正確率顯示正確率接著接著操作退出選擇正確否?選擇正確否?NY2121結束結束源程序<><><><>();1();();;(){ [100]; ; ("\t\t\t********************************\n"); ("\t\t\t*歡迎運用打字程序*\n"); ("\t\t\t********************************\n\n\n"); { (); ("輸入操作選擇:"); (""); [0]; (); (1(>='1'<='2')) { () { '1': (); ; '2': (""); ("\t\t\t********************************\n"); ("\t\t\t*感謝運用本程序*\n"); ("\t\t\t*感謝!*\n"); ("\t\t\t********************************\n\n\n"); (1); ; } } { (""); ("\t\t\\n"); ("\t\t\\t選擇無效,請重輸\\n"); ("\t\t\\n\n\n"); } }(); ;}(){ s2[100]; i; 0; 1; ; j; 12; (()); { (); (i>=1<=10) { 0; } }(); (""); *s1=(*)(i*())申請動態(tài)空間 (1) { ("空間申請失敗!"); (1); }申請字符串空間 ("\t\t\t\\n"); ("\t\t\t\t"); (0<) { (); (j<48(j>57<65)(j>90<97)>122) { (); 1; } { s1[n]; (""); } }s1[n]='\0'; ("\n"); ("\t\t\t\\n"); 1(s1); ("輸入字符串:"); (""2); 2(s2); (21) { (0<1) { (s1[k]2[k]) { ; } } (""); ("正確率:"); ()1; ("\n"(*100)); } { (2<1) { (0<2) { (s1[k]2[k]) ; } (""); ("正確率:"); ()1; ("\n"(*100)); } { (0<1) { (s1[k]2[k]) ; } (""); ("正確率:"); ()2; ("\n",()(*100)); } } 1[100]; 3; { 1(); ("輸入操作選擇:"); (""1); 3(1); 1[0]; (31>='0'<='2') { () { '1': (); ; '0': (""); ("\t\t\t********************************\n"); ("\t\t\t*感謝運用本程序*\n"); ("\t\t\t*感謝!*\n"); ("\t\t\t********************************\n\n\n"); (1); ; } } { (""); ("\t\t\\n"); ("\t\t\\t選擇無效,請重輸\\n"); ("\t\t\\n\n\n"); } }();}(){ ("\t\t\1.進入打字程序\n"); ("\t\t\2.退出\n");}1(){ ("\t\t\t1.接著操作\n"); ("\t\t\t0.退出\n");}結果及改善:略。。。。。。3.文本編輯器課題內容:設計一個簡單的文本編輯器,該系統(tǒng)要求對一個文本文件中的內容進行各種常規(guī)操作,如:插入,刪除,查找,替換等功能。課題要求:(1)編輯文本;(2)保存,打開指定位置的文本文件;(3)具有輸入輸出界面。流程圖開始開始打開文件打開文件退出 6輸入正確否?輸入正確否? N選擇操作 Y選擇操作2121輸入文件名及路徑輸入文件名及路徑文件能否打開?文件能否打開? NY1.插入2.刪除3.查找4.替換5.顯示6.返回0.退出顯示文件內容1.插入2.刪除3.查找4.替換5.顯示6.返回0.退出顯示文件內容 1 3輸入查找的字符串輸入插入的字符串輸入查找的字符串輸入插入的字符串輸入刪除的字符串輸入刪除的字符串輸入替換的字符串及源字符串2輸入替換的字符串及源字符串45結束結束 0源程序<><><><>*;*1;[50];0();();0();1();1();();();();();();();(){ ("\t\t\t\n"); ("\t\t\t\t歡迎運用本程序!\n"); ("\t\t\t\n");}主程序(){ (); 0(); 1(); ;}一級菜單0(){ (""); ("\t\t\t\t1.打開文件\n"); ("\t\t\t\t0.退出\n");}打開文件(){ ; (""); ("請輸入要打開的文件名及路徑:"); (""); (,""); () { (""); ("\t\t\t文件無法打開!\n"); 0(); } (""); ("");((())) { (); } (); ("\n"); ("");}(){ ; (,"r"); () { ("\t\t\t\t文件無法打開\n"); 0(); } ("");((())) { (); } (); (""); 1();}一級選擇0(){ ; [100]; 1; 0(); {("請選擇操作:"); (""); (); [0]; (>='0'<='1'1) 0; { (""); ("\t\t\\n"); ("\t\t\t無效操作,請重新選擇\n"); ("\t\t\\n"); 0(); 1; } }(a); () { '1': { (); 1(); 1(); } ; '0': (""); (1); ; }}二級菜單1(){ ("\t\t\t\1.插入\n"); ("\t\t\t\2.刪除\n"); ("\t\t\t\3.查找\n"); ("\t\t\t\4.替換\n"); ("\t\t\t\5.顯示\n"); ("\t\t\t\6.返回\n"); ("\t\t\t\0.退出\n");}二級選擇1(){ ; 1; ("請選擇操作:"); [100]; ; { (""); [0]; (); (>='0'<='6'1) 0; { (""); ("\t\t\\n"); ("\t\t\t無效操作,請重新選擇\n"); ("\t\t\\n"); 1(); ("請選擇操作:"); 1; } }(a); () { '1': (); 1(); 1(); ; '2': (); (""); 1(); 1(); ; '3': (""); (); (); 1(); 1(); ; '4': (""); (); (""); 1(); 1(); ; '5': (""); (); 1(); ; '6': (""); 0(); ; '0': (""); (1); }}插入(){ ; 1; s1[10000]; s2[100]; 0; ((1())) { s1[i]1; ; } (); s1[i]='\0'; (""); (); ("請定位你想要插入字符串的地方:"); (""); (""); (); ("輸入你插入的字符串:"); (""2); (s2); (); (,"w"); (0<) { 11[j]; (1); } (0<) { 12[j]; (1); } (<) { 11[j]; (1); } (); ("");}查找(){ ("請輸入須要查找的字符串:"); [50]; 1[500]; ; *p; 0; (""); (); (,"r"); () { ("\t\t\t\t文件無法打開!\n"); } (); ((())) { 1[]; ; } 1[]='\0'; (); (1); (""); () ("\t\t\t文本中存在這樣的字符串\n"); ("\t\t\t\t文本中不存在這樣的字符串\n");}替換(){ s1[100]2[100]3[100]4[100]; (); ("請輸入被替換字符串:"); ("\n"); (""2); ("請輸入替換的字符串:"); ("\n")(""3); 12340; 1(s1); 2(s2); 3(s3); 0; (,"r"); () { ("\t\t\t\t文件無法打開!\n"); } (); ((())) { s1[]; ; } s1[]='\0'; (); (0<1) { (0<2) { (s1[]2[j]) { s4[]1[i]; ; ; } (2-1) { (0<3) { s4[]3[k]; ; } 2-1; } } } s4[]='\0'; 4(s4);(,"w"); (0<4) { 4[j]; (); } (); ;} /****************************************************************/(){ s1[100]2[100]4[100]; (); ("請輸入被刪除字符串:"); (""2); ("\n"); 1240; 1(s1); 2(s2); 0; (,"r"); () { ("\t\t\t\t文件無法打開!\n"); } (); ((())) { s1[]; ; } s1[]='\0'; (); (0<1) { (0<2) { (s1[]2[j]) { s4[]1[i]; ; ; } (2-1) { s4[]1[2]; ; 2; } } } s4[]='\0'; 4(s4); (,"w"); (0<4) { 4[j]; (); } (); ;}結果及完善略。。。。。。。4.加密課題內容:設計一個加密程序。包括明文與密鑰的轉換。課題要求:(1)輸入隨意一段明文M,以及密鑰K;(2)依據以下公式將其轉換為密文C。=+K,其中i=0,1,……1,K為密鑰;(3)具有輸入輸出界面。開始加密2.解密0.退出結束選擇正確否?流程圖開始加密2.解密0.退出結束選擇正確否? NY輸入解密內容及密鑰輸入解密內容及密鑰輸入加密內容及密鑰輸入加密內容及密鑰顯示解密結果顯示加密結果顯示解密結果顯示加密結果源程序<><><>(){ s1[100]a[94]; 033; (0<94) { a[i]; ; } (""); ("輸入要加密的內容:"); (""1); ("\n"); [100]; ; 1; ; ("輸入加密秘鑰:"); (""); ("\n"); (""); 1(); (s1); (""); (11) { [0]; (0<) { (0<94) { (a[j]1[i]) { ; ; 94; []; (""); ; } } } } ("\n"); ("");}(){ s1[100]; a[94]; 033; (0<94) { a[i]; ; } ("輸入要解密的內容:"); (""1); ("\n"); ; ; ("輸入解密秘鑰:"); [100]; (""); ("\n"); (""); 1(); [0]; (s1); (""); (11) { (0<) { (0<94) { (a[j]1[i]) { ; ; (<0) { { 94; }(<0); []; (""); ; } { []; (""); ; } } } } } ("\n"); ("");}(){ ("\t\t\t\t1.加密\n"); ("\t\t\t\t2.解密\n"); ("\t\t\t\t0.退出\n");}(){ ("\t\t\t\\n"); ("\t\t\t\t!\n"); ("\t\t\t\\n"); m; [100]; ; { (); ("選擇操作:"); (""); (); [0]; (m>='0'<='2'1) { (m) { '1': (""); (); ; '2': (""); (); ; '0': (""); (1); ; } } { ("\t\t\t\\n"); ("\t\t\t\t選擇無效,重新選擇\n"); ("\t\t\t\\n"); } }(m); ;}結果及完善略。。。。2.5進制轉換器課題內容:設計一個進制轉換器程序。包括二進制,八進制,十進制,十六進制數相互轉換。通過此課題,嫻熟駕馭字符串,格式輸出,進制換算的各種操作。課題要求:(1)可輸入二進制,八進制,十進制,十六進制數;(2)將已輸入的數轉換成其余進制的數;(3)具有輸入輸出界面。開始流程圖開始結束結束輸入二進制數輸入二進制數輸入八進制數輸入十進制數輸入十六進制數0.退出正確否正確否 N顯示結果顯示結果Y0輸入相應的進制數 !=0輸入相應的進制數Y相應的進制數否相應的進制數否 N Y1.轉為二進制2.轉為八進制1.轉為二進制2.轉為八進制3.轉為十六進制0.退出1.轉為二進制2.轉為十進制3.轉為十六進制0.退出 01.轉為二進制2.轉為八進制1.轉為二進制2.轉為八進制3.轉為十六進制0.退出轉為八進制轉為十進制轉為十六進制0.退出 0源程序<><><><>a[100];y;();1();();();();();();;();();(y);(y);(y);2();1();();();2(1)二進制轉為其他進制菜單8(1)八進制轉為其他進制菜單10(1);16(1);(){ ("\t\t\t\\n"); ("\t\t\t\t感謝運用本程序!\n"); ("\t\t\t\\n");}/******************************主程序**********************/(){ ; (); 1(); 1(); (); ;}/***********************選擇程序*******************************/1(){ ("請選擇操作:"); ; [100];1; { (""); (); [0]; (1>='0'<='4') 0; { (""); 1(); ("\t\t\\n"); ("\t\t\t\t操作無效!\n"); ("\t\t\\n"); ("請重新選擇:"); 1; } }(a); ("\n"); ;}/*****************************二進制轉為其他進制選擇程序******************/2(1){ (); (1) { '1': (y); 1(); ; '2': { (""); ("二進制表示:"); (""); ("\n"); } 1(); ; '3': (y); 1(); ; '4': (""); 1(); 1(); ; '0': (""); (); (1); ; }}/*****************************八進制轉為其他進制選擇程序******************/8(1){ (); (1) { '1': (y); 1(); ; '2': { (""); ("十進制表示:"); (""); ("\n"); } 1(); ; '3': (y); 1(); ; '4': (""); 1(); ; '0': (""); (); (1); ; }}/*****************************十進制轉為其他進制選擇程序******************/10(1){ ;(a); 0;(0<) (((10(1)))*(((a[i])-48))); (1) { '1': (y); 1(); ; '2': (y); 1(); ; '3': (y); 1(); ; '4': (""); 1(); ; '0': (""); (); (1); ; }}/*****************************十六進制轉為其他進制選擇程序******************/16(1){ (); (1) { '1': (y); 1(); ; '2': (y); 1(); ; '3': { ("十六進制表示:"); (""); ("\n"); } 1(); ; '4': (""); 1(); ; '0': (""); (); (1); ; }}/*************************進制選擇程序*********************/(){ 1; () { '1': { (); ("\t\t\t\t1.轉換為八進制數\n"); ("\t\t\t\t2.轉換為十進制數\n"); ("\t\t\t\t3.轉換為十六進制數\n"); ("\t\t\t\t4.返回上層菜單\n"); ("\t\t\t\t0.退出\n"); 11(); 2(1); 1(); 1(); (); } ; '2': { (); ("\t\t\t\t1.轉換為二進制數\n"); ("\t\t\t\t2.轉換為十進制數\n"); ("\t\t\t\t3.轉換為十六進制數\n"); ("\t\t\t\t4.返回上層菜單\n"); ("\t\t\t\t0.退出\n"); 11(); 8(1); 1(); 1(); (); } ; '3': { (); ("\t\t\t\t1.轉換為二進制數\n"); ("\t\t\t\t2.轉換為八進制數\n"); ("\t\t\t\t3.轉換為十六進制數\n"); ("\t\t\t\t4.返回上層菜單\n"); ("\t\t\t\t0.退出\n"); 11(); 10(1); 1(); 1(); (); } ; '4': { (); ("\t\t\t\t1.轉換為二進制數\n"); ("\t\t\t\t2.轉換為八進制數\n"); ("\t\t\t\t3.轉換為十進制數\n"); ("\t\t\t\t4.返回上層菜單\n"); ("\t\t\t\t0.退出\n"); 11(); 16(1); 1(); 1(); (); } ; '0': (""); (); (1); ; }}/********************************歡迎界面*************************/(){ ("\t\t\t\t*****************\n"); ("\t\t\t\t*!*\n"); ("\t\t\t\t*****************\n\n\n");}/********************************一級菜單界面************************/1(){ ("\t\t\t\t1.輸入二進制數據\n"); ("\t\t\t\t2.輸入八進制數據\n"); ("\t\t\t\t3.輸入十進制數據\n"); ("\t\t\t\t4.輸入十六進制數據\n"); ("\t\t\t\t0.退出\n");}/*************************推斷輸入是不是二進制數據****************/(){ 1; (""); ("輸入二進制數:"); { 0; (""); (a); (0<) { (a[i]'0'[i]'1') { 0; } { (""); ("\t\t\\n"); ("\t\t\t此數據非二進制數\n"); ("\t\t\\n"); ("請重新輸入:"); ; 1; } } }();}/***********************推斷是否為八進制數據******************/(){ 1; (""); ("輸入八進制數:"); { 0; (""); (a); (0<) { (a[i]>='0'[i]<='7') { 0; } { (""); ("\t\t\\n"); ("\t\t\t此數據非八進制數\n"); ("\t\t\\n"); ("請重新輸入:"); 1; ; } } }(); ;}/***********************推斷是否為十進制數據******************/(){ 1; (""); ("輸入十進制數:"); { 0; (""); (a); (0<) { (a[i]>='0'[i]<='9') { 0; } { (""); ("\t\t\\n"); ("\t\t\t此數據非十進制數\n"); ("\t\t\\n"); ("請重新輸入:"); 1; ; } } }(); ;}/***********************推斷是否為十六進制數據******************/(){ 1; (""); ("輸入十六進制數:"); { 0; (""); (a); (0<) { ((a[i]>='0'[i]<='9')(a[i]>='A'[i]<='F')) { 0; } { (""); ("\t\t\\n"); ("\t\t\t此數據非十六進制數\n"); ("\t\t\\n"); ("請重新輸入:"); 1; ; } } }(); (0<) (""[i]); ("\n"); ;}/*********************十進制——》二進制**********************/(y){ 1;s[100];(00) { 2; s[i]; 2; ; } (""); ("其二進制表示為:"); (1>=0) (""[j]); ("\n");}/***************十進制——》八進制******************/(y){ 1;s[100];(00) { 8; s[i]; 8; ; } (""); ("其八進制表示為:"); (1>=0) (""[j]); ("\n");}/***************************十進制——》十六進制*******************/(y){ 1; s[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; s1[20]; 0; { 16; s1[i]; ; 16; ; }(0); (""); ("\n其十六進制表示為:"); (1>=0) { 1[j]; (""[]); } ("\n");}/****************************二進制——>十進制********************/(){ 0; (a); (0<) (((2(1)))*(((a[i])-48))); y;}/***********************八進制——》十進制*************************/(){0; (a); (0<) (((8(1)))*(((a[i])-48))); y;}/***********************十六進制——》十進制*************************/(){0; 1; (a); (0<) { (a[i]>='A'[i]<='F') (((16(1)))*(((a[i])-55)));(((16(1)))*(((a[i])-48))); } y;}/*************************************************************************/結果及完善。。。。6.學生成果核算系統(tǒng)的設計與實現課題內容:設計一個學生成果核算系統(tǒng)。能實現從文件中讀取學生成果資料,并供應成果查詢統(tǒng)計服務。通過此課題,嫻熟駕馭文件,數組,結構體的各種操作以及友好界面的設計。課題要求:(1)按班級按課程從文件中讀入相應的平常成果,期中考試成果和期末考試成果。(2)三個成果對總評成果的百分比被定義為常數,各占總成果的30%,30%和40%。(3)計算每位學生的總評成果。(4)計算該班級本課程的總平均成果。(5)計算處于優(yōu),良,中,及格,不及格的學生人數以及占總人數的百分比。其中100-90為優(yōu),89-80為良,79-70為中,69-60為及格,60分以下為不及格。(6)按要求輸出成果在優(yōu),良,中,及格,不及格各區(qū)間的學生學號,成果。程序設計參考思路1,建立文本文件,第一行為學生的總人數,其后為每個學生的成果,每個學生的信息占一行,格式為:學號(9位)平常成果期中考試成果期末考試成果例如:15B0904080188 75.5 66B0904080291 79.5 76B0904080385 75 77B0904080479 8280.5B0904080594 83.5 81.5B0904080680 69 68B0904080782 77 71B0904080877 57 58B0904080991 88 86B0904081096 89 90B0904081170 45.5 50B0904081274 65 66B0904081381 71 76B0904081483 75 77B0904081585 78 79從文件中讀入相應的平常成果,期中考試成果和期末考試成果時,數據的讀入方式可用C語言中的文件讀入方式進行,也可用中的流實現。3,每次計算出的結果可在屏幕輸出,并把每個學生的總評成果輸入到新文件文件中,格式為:學生學號(9位)總評成果成果等級例如:B0904080188B為查詢便利,可把總評成果所處等級(優(yōu),良,中,及格,不及格)同時保存在文件中,分別用字母A,B,C,D,E表示。4,數據結構(可用實現)兩個類:學生()和學生成果()(1)學生類數據成員: 學號,姓名,專業(yè)等數據類型屬性(私有,愛護,公有)方法:構造函數和析構函數設置學號 ();讀取學號 ();等等(2)學生成果類——從學生類派生數據成員:平常成果,期中考試成果,期末考試成果,總評成果,成果等級數據類型屬性(私有,愛護,公有)方法:讀入成果 ();或(*);輸出成果 ();或(*);顯示成果 (); 求總評成果 ();求等級 ();讀取總評成果 ();讀取等級 ();等等5,設計總控模塊計算總評成果按等級查詢總控模塊計算總評成果按等級查詢主要功能:(1)總控模塊功能:編制菜單,不斷從菜單選擇計算或查詢功能執(zhí)行,直到退出。程序流程圖:~(2)計算(3)查詢~6,實現編程時要求每一個類建兩個文件,即類的定義和實現文件。留意包含相關的文件。d.流程圖勝利否?密碼登陸模塊歡迎模塊開始1.主要功能流程圖勝利否?密碼登陸模塊歡迎模塊開始顯示學生基本信息查詢學生信息0.退出顯示學生基本信息查詢學生信息0.退出查詢模塊Y查詢模塊結束 1 2結束讀入文件名及路徑讀入文件名及路徑0顯示文件內容顯示文件內容密碼登陸流程圖輸入用戶名輸入用戶名提示登陸勝利用戶名與密碼正確否?輸入密碼提示登陸勝利用戶名與密碼正確否?輸入密碼 NY依據班級查詢依據課程查詢依據班級查詢依據課程查詢依據等級查詢顯示成果分布狀況求取平均成果返回上層菜單0.退出選擇有效否?選擇有效否? N輸入相應信息輸入相應信息 0結束顯示查詢結果 Y結束顯示查詢結果e.源程序<><><><>*,*1,*2;;*"",*"";1231;[20]1[20]0[20]2[10][5]="A"[5]="B"[5]="C"[5]="D"[5]="E";[20]1[20]2[20][20][20];();();();();();();1();1();();();();();();();();();(){ ("*************************************************\n"); ("****\n");("**歡迎運用學生成果核算系統(tǒng)!**\n"); ("****\n"); ("*************************************************\n");}(){ 1[50]1[20]; [20]; 1; ("*******************************************************************************\n"); ("請輸入管理名:"); (""1); ("請輸入密碼:"); (""1); ("*******************************************************************************\n"); ((1)0(1)0) { ("您輸入的用戶名或密碼錯誤,是否退出()\n"); ("Y.接著登陸!\n"); ("N.退出\n"); { (""); (); [0]; (1('Y''N''y''n')) 0; { ("選擇無效,請重新選擇!\n"); 1; } }(a); () { 'Y': (""); (); ; 'y': (""); (); ; 'N': (""); (); (0); ; 'n': (""); (); (0); ; } } { (""); ("登陸勝利,歡迎!\n"); }}(){ ("*************************************************\n"); ("****\n"); ("**感謝運用學生成果核算系統(tǒng)!**\n"); ("****\n"); ("*************************************************\n");}1(){ ("請選擇操作:"); [20]; 1; { (""); (); [0]; (1>='0'<='6') 0; { ("選擇有誤,請重新選擇:"); 1; } }(a); () { '1': (""); (); 1(); 1(); ; '2': (""); (); 1(); 1(); ; '3': (""); (); 1(); 1(); ; '4': (""); (); 1(); 1(); ; '5': (""); (); 1(); 1(); '6': (""); (); (); ; '0': (""); (); (0); ; }}(){ ("請選擇操作:"); [20]; 1; { (""); (); [0]; (1>='0'<='2') 0; { ("選擇有誤,請重新選擇:"); 1; } }(a); () { '1': (""); (); (); (); ; '2': (""); 1(); 1(); ; '0': (""); (); (0); ; }}(){ ("*******************************************************************************\n"); ("*******1.顯示學生基本信息*******\n"); ("*******2.查詢學生信息信息*******\n"); ("*******0.退出*******\n"); ("*******************************************************************************\n");}1(){ ("*******************************************************************************\n"); ("*******1.依據班級查詢信息*******\n"); ("*******2.依據課程查詢信息*******\n"); ("*******3.依據等級查詢信息*******\n"); ("*******4.顯示成果分布狀況*******\n"); ("*******5.求取平均成果*******\n"); ("*******6.返回上層菜單*******\n"); ("*******0.退出*******\n"); ("*******************************************************************************\n");}求取平均分數函數()求取某班某門課程的平均分數{ [20][20]; 0; 0; ("請輸入查詢的班級:"); (""); ("請輸入查詢的課程:"); (""); ("E:\\","r"); () { ("文件無法打開!\n"); (""); (); (0); } (()) { (,""); (()()0) { 1("E:\\","r"); (1) { ("文件無法打開!\n"); (""); (); (0); } ((1)) { (1,""110); ((1)(1)0()0) { ; 1; } } (1); } } (); (); ("\n","您所查詢的","的","課程平均成果為:","分");}輸入班級查詢信息函數()依據班級查詢信息{ [20]; ("請輸入查詢的班級名稱:"); (""); ("E:\\","r"); () { ("文件無法打開!\n"); (""); (); (0); } (,"\n","姓名","學號","班級","課程","平常成果","期中成果","期末成果","總評成果","等級"); (()) { (,""); (/*()*()0) { ("\\\n"); 1("E:\\","r"); (1) { ("文件無法打開!\n"); (""); (); (0); } ((1)) { (1,""1123); ((1)(1)0) { 2("E:\\","r"); (2) { ("文件無法打開!\n"); (""); (); (0); } ((2)) { (2,""2110); ((2)(12)0(1)0) (,"\\\\\\\\\n"2112310); } (2); } } (1); } } ();}依據課程查詢函數()依據課程查詢信息{ [20]; ("請輸入查詢的課程名稱:"); (""); ("E:\\","r"); () { ("文件無法打開!\n"); (""); (); (0); } (,""); (,"\n","姓名","學號","班級","課程","平常成果","期中成果","期末成果","總評成果","等級"); (()) { (,""123); (()()0) { 1("E:\\","r"); (1) { ("文件無法打開!\n"); (""); (); (0); } ((1)) { (1,""1110); ((1)0(1)0(1)) { 2("E:\\","r"); (2) { ("文件無法打開!\n"); (""); (); (0); } ((2)) { (2,""2); (/*(2)*(2)0) (,"\\\\\\\\\n"12310); } (2); } } (1); } } ();}顯示函數()顯示記錄信息{ ("E:\\","r"); () { ("文件無法打開!\n"); (""); (); (0); } (,""); (,"\n","條記錄"); (,"\t\n","學號","課程","平常成果","期中成果","期末成果"); (()) { (,""123); (()) { (,"\\\\\n"123); } } ();}等級查詢函數()依據等級查詢信息{ 1[20]; ("請輸入查詢等級:"); 1; { (""); (); 1[0]; (1(1'A'1'B'1'C'1'D'1'E')) 0; { ("等級輸入不正確,請重新輸入:"); 1; } }(a); ("E:\\","r"); () { ("文件無法打開!\n"); (""); (); (0); } (,"\n","姓名","學號","班級","課程","平常成果","期中成果","期末成果","總評成果","等級"); (()) { (,""10); (0[0]1()) { 1("E:\\","r"); (1) { ("文件無法打開!\n"); (""); (); (0); } (1,""); ((1)) { (1,""11123); ((1)0(1)0(1)) { 2("E:\\","r"); (2) { ("文件無法打開!\n"); (""); (); (0); } ((2)) { (2,""2); (/*(2)*(12)0) (,"\\\\\\\\\n"2112310); } (2); } } (1); } } ();}課程等級分布查詢函數()查詢某課程各等級分布{ 00000; [20]; 0; ("請輸入您要查詢的課程名稱:"); (""); ("E:\\","r"); () { ("文件無法打開!\n"); (""); (); (0); } (()) { (,""10); (()()0) { ; (""); ("\\\\n"10); (0[0]'A') ; ((0)0) ; ((0)0) ; ((0)0) ; ((0)0) ; } } (); (0) { ("\n","您所查詢的","課程的總人數為"); ("3.2\n","期中優(yōu)秀人數為",",占該課程總人數的",(())*100); ("3.2\n","期中良好人數為",",占該課程總人數的",(())*100); ("3.2\n","期中中等人數為:",",占該課程總人數的",(())*100); ("3.2\n","期中及格人數為:",",占該課程總人數的",(())*100); ("3.2\n","期中不及格人數為:",",占該課程總人數的",(())*100); } { ("無此課程記錄!\n"); }}等級計算函數()計算等級{ (>=90<=100) 'A'; (>=80<90) 'B'; (>=70<80) 'C'; (>=60<70) 'D'; (>=0<60) 'E';}總評成果就散函數()計算總評成果{ 0; ; 1*()0.32*()0.33*()0.4; (); (1,"\\\\n");}讀取文件/處理文件函數(){ ("E:\\","r"); () { ("文件無法打開!\n"); (""); (); (0); } 1("E:\\","w"); (1) { ("文件無法打開!\n"); (""); (); (0); } (1); 1("E:\\","a"); (1) { ("文件無法打開!\n"); (""); (); (0); } (,""); 0; (()) { (,""123); (()) { (); } } (1); ();}(){ (); (); (); (); ();}f.結果及完善2-30歡迎界面2-31密碼或者用戶輸入錯誤提示2-32登陸勝利界面2-33顯示基本信息界面2-34查詢界面2-35班級查詢結果2-36課程查詢結果顯示2-37等級查詢結果2-38成果分布結果顯示2-39平均成果查詢結果完善方向:依據查詢的方向不同可以設計出依據學號查詢;另外對各項功能的細化,不僅僅求取一門課程的平均成果,還能查詢每個班級每個課程的平均成果,依據須要,可以增加學生的信息以及刪除學生的信息。7.模擬電信計費系統(tǒng)的設計與實現課題內容:設計一個模擬電信計費系統(tǒng)。能實現從文件中讀取通話以及費率資料,并供應計費,話費查詢和話單查詢等服務。通過此課題,嫻熟駕馭文件讀寫,數組,結構體,格式輸入輸出的各種操作,以及友好界面的設計和一些算法思想的應用。課題要求:(1)計費功能。依據存放在源數據文件中的通話記錄和長途費率文件對每一條通話記錄計算其通話費用,并將結果保存在費用文件中。其中:通話費的計算方法如下:通話費=長途費+本地費長途費=費率(元/分鐘)×通話時長(分鐘)(通話時長不滿1分鐘的按1分鐘計算)本地費為:3分鐘以內0.3元,以后每1分鐘遞增0.2元。(2)話費查詢。輸入一個號碼,從費用文件中統(tǒng)計該號碼的全部本地話費,長途話費,并從用戶文件中查找其用戶名,最終在屏幕上顯示:用戶名號碼本地話費長途話費話費總計(3)話單查詢。輸入一個號碼,查詢并在屏幕顯示該用戶的全部通話記錄,格式為:用戶名主叫號碼被叫號碼通話時長程序設計參考思路:1,本系統(tǒng)的輸入輸出文件本系統(tǒng)的輸入文件有三個:(1)源數據文件() 存放:主叫區(qū)號主叫號碼被叫區(qū)號被叫號碼通話時長(秒) 每次通話作為一條記錄,占源數據文件的一行。 每條記錄中各數據之間以空格間隔,例如:90 每個號碼可以有多次通話記錄。 假如主,被叫區(qū)號相同,則通話記錄為本地通話記錄;否則為長途通話記錄。(2)長話費率文件() 存放:區(qū)號費率 例如:0101.20表示從本地打往區(qū)號為010的地區(qū)每分鐘收費1.20元。(3)用戶文件() 存放:號碼用戶姓名 例如:83491234張明本系統(tǒng)的輸出文件有一個:費用文件()存放:主叫號碼通話類型話費金額其中,通話類型表示本次通話是長途還是本地。2,系統(tǒng)輸入數據—有20條通話記錄,分別是: 有4條記錄025834912340258531997170 0101.200258492703801062110045236 0201.200258721634002584521009310 0210.8002583491234057182199516100 05711.00025581203210218109453250 0258349123402585319971800258492703802583491234115 有5條記錄025581203210258721634047 83491234張明025872163400106211004593 84927038李小紅0258349123401062110045792 87216340王勵02584927038057182199516931 83492200趙強0258349123402585319971580 58120321楊冬02584927038025834912343580255812032102181094532197025872163400258452100925602587216340010621100451930258349220002584521009320025834912340258531997127002584927038025834912342310258349220002584927038723,數據結構(可用實現)三個類:話單(),費用()和用戶()兩個常量:存放本地費率和遞增量(1)話單類數據成員: 主叫區(qū)號,主叫號碼,被叫區(qū)號,被叫號碼,通話時長數據類型屬性(私有,愛護,公有)方法: 構造函數和析構函數從源數據文件讀入通話數據顯示一次通話數據取主叫區(qū)號取主叫號碼 等等(2)費用類——從話單類派生數據成員:通話類型,通話費用數據類型屬性(私有,愛護,公有)方法: 構造函數和析構函數從費用文件讀入費用數據向費用文件輸出數據屏幕顯示費用求通話費用求通話類型取(返回)通話類型取通話費用 等等(3)用戶類數據成員: 姓名,號碼數據類型屬性(私有,愛護,公有)方法: 設置用戶的號碼查詢用戶名設置用戶名查詢用戶的號碼顯示用戶名和號碼等等4,設計總控模塊計算通話費用話費查詢話單查詢總控模塊計算通話費用話費查詢話單查詢主要功能:(1)總控模塊功能:程序流程圖:~(2)計算通話費用定義一個話單對象,循環(huán)處理。程序流程圖:~(3)費用查詢定義一個用戶對象,依據號碼查詢用戶信息從“計算通話費用”模塊生成的費用文件中,按通話類型分別統(tǒng)計某一號碼的全部費用項??啥x一個費用對象,循環(huán)累加。在屏幕顯示查詢結果。(4)話單查詢定義一個用戶對象,依據號碼查詢用戶信息從源數據(話單)文件中,查詢某一號碼的全部通話清單。在屏幕顯示查詢結果??啥x一個話單對象,查詢并顯示。5,實現(1)進行話費查詢前,必需先進行費用計算??梢韵韧茢噘M用文件是否存在,若不存在,則調用計算通話費用模塊后再查詢;否則直接查詢?;蛘哂靡粋€全局變量實現——全局變量初值為0,調用計算通話費用模塊后該全局變量置為1。當要查詢通話費時,首先檢查該全局變量的值。(2)為了統(tǒng)計話費便利,在費用文件中設一“通話類型”,可以用兩個不同的字符表示本地和長途,如0表示本地1表示長途。(3)編程時要求每一個類建兩個文件,即類的定義和實現文件。(4)編程時留意包含相關的文件。流程圖1.程序基本流程圖勝利否?密碼登陸模塊歡迎界面開始勝利否?密碼登陸模塊歡迎界面開始計算通話費用話費查詢話單查詢計算通話費用話費查詢話單查詢文件管理0.退出話單查詢計算通話費用話費查詢Y話單查詢計算通話費用話費查詢 3結束12結束4文件管理文件管理文件管理模塊簡單流程圖1.計算通話費用2.話費查詢3.話單查詢4.文件管理0.退出輸入費率信息輸入用戶信息1.計算通話費用2.話費查詢3.話單查詢4.文件管理0.退出輸入費率信息輸入用戶信息選擇有效否?增加用戶信息增加費率信息返回上層菜單0.退出結束結束 N 0 3 1 2d.源程序<><><><>*,*1,*2;*"",*"";[10][20][10][5][5]1[5];;1=0;00=01=0;();();();()
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度室內外裝修照明系統(tǒng)設計與安裝合同3篇
- 2024年度智能家電維修工專項聘用合同協(xié)議3篇
- 2024年度區(qū)域獨家授權代理合同3篇
- 2024全新二手房買賣合同模板下載3篇
- 2024年度科技創(chuàng)新項目債權轉股權協(xié)議范本3篇
- 2024年度大型文藝演出項目合作協(xié)議3篇
- 2024年度大學生實習協(xié)議書(企業(yè)實習實訓基地校企合作)3篇
- 2024年度創(chuàng)新型設備購置擔保買賣合同3篇
- 2024年度企業(yè)年會演出委托合同樣本3篇
- 2024年無抵押個人教育培訓機構設備購置貸款合同范本3篇
- 中職一年級家長會-共30張課件
- 高中物理-帶電粒子在勻強組合場中的運動教學設計學情分析教材分析課后反思
- 買賣合同糾紛案民事判決書
- 中國近代人物研究學習通課后章節(jié)答案期末考試題庫2023年
- 注冊安全工程師考試之安全技術分章習題通關寶典
- XX物業(yè)服務有限公司工作指引手冊(物業(yè)服務中心)
- 廣東省高等學?!扒О偈こ獭钡诹^續(xù)培養(yǎng)對象和第
- 游泳教練工作計劃工作總結述職報告PPT模板下載
- 食管癌的護理查房
- 【企業(yè)杜邦分析國內外文獻綜述6000字】
- 中考數學真題變式題庫
評論
0/150
提交評論