班費管理系統(tǒng)課程設計報告(共14頁)_第1頁
班費管理系統(tǒng)課程設計報告(共14頁)_第2頁
班費管理系統(tǒng)課程設計報告(共14頁)_第3頁
班費管理系統(tǒng)課程設計報告(共14頁)_第4頁
班費管理系統(tǒng)課程設計報告(共14頁)_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 計算機科學與技術(jsh)系課程設計報告(bogo)20 20 學年(xunin)第 學期課程C語言課程設計課程設計名稱班級班費管理系統(tǒng) 學生姓名 學號 專業(yè)班級 指導教師 20 年 月班級(bnj)班費管理系統(tǒng) 目錄(ml) TOC o 1-3 h z u HYPERLINK l _Toc313994833 班級(bnj)班費管理系統(tǒng) PAGEREF _Toc313994833 h 2 HYPERLINK l _Toc313994834 目錄 PAGEREF _Toc313994834 h 2 HYPERLINK l _Toc313994835 一、 需求分析 PAGEREF _Toc31

2、3994835 h 3 HYPERLINK l _Toc313994836 二、算法設計 PAGEREF _Toc313994836 h 3 HYPERLINK l _Toc313994837 (一)設計思想 PAGEREF _Toc313994837 h 3 HYPERLINK l _Toc313994838 1.程序結構(流程圖) PAGEREF _Toc313994838 h 3 HYPERLINK l _Toc313994839 2. 重要的數(shù)據結構 PAGEREF _Toc313994839 h 4 HYPERLINK l _Toc313994840 3. 主要算法思想 PAGERE

3、F _Toc313994840 h 4 HYPERLINK l _Toc313994841 (二)設計表示 PAGEREF _Toc313994841 h 4 HYPERLINK l _Toc313994842 (三)實現(xiàn)注釋 PAGEREF _Toc313994842 h 6 HYPERLINK l _Toc313994843 (四)算法設計中一些新的想法 PAGEREF _Toc313994843 h 6 HYPERLINK l _Toc313994844 三、 用戶手冊 PAGEREF _Toc313994844 h 6 HYPERLINK l _Toc313994845 四、 調試及測

4、試 PAGEREF _Toc313994845 h 7 HYPERLINK l _Toc313994846 五、小結 PAGEREF _Toc313994846 h 7 HYPERLINK l _Toc313994847 六、參考文獻 PAGEREF _Toc313994847 h 8 HYPERLINK l _Toc313994848 附錄 PAGEREF _Toc313994848 h 8 HYPERLINK l _Toc313994850 測試數(shù)據 PAGEREF _Toc313994850 h 14一、 需求(xqi)分析本程序是班級班費管理系統(tǒng),主要(zhyo)作用是幫助管理班級班費

5、事務,以月份(yufn)的形式管理班級班費賬目,包括班費支出的時間、經手人、金額和原因。要求具有備忘錄班級班費管理和班費信息查看的功能。其中班級班費管理包括班費支出增加和刪除功能。班費信息查看包括按月份查看和整體查看。要求具有備忘錄班級班費管理和班費信息查看的功能。其中班級班費管理包括班費支出增加和刪除功能。班費信息查看包括按月份查看和整體查看。程序設計需要運用面向過程的程序設計方法,要求選擇動態(tài)數(shù)組,任務中要運用對文件進行讀寫操作。根據要求,本程序提供的基本管理功能有:添加:即增加一條班費支出到班費項目中;顯示:即在屏幕上顯示所有班費支出中的信息。存儲:即將班費支出信息保存在一個文件中。裝入

6、:即將文件中的信息讀入程序。查詢:可根據月份查找班費支出信息,若找到,顯示在屏幕上。刪除:可刪除某月份的班費支出信息。二、算法(sun f)設計(一)設計(shj)思想1.程序結構(流程圖)開始主菜單 N管理員模式退出普通用戶模式用戶名&密碼?返回主菜單查看日志 Y返回主菜單查看日志刪除日志增加日志結束2. 重要(zhngyo)的數(shù)據結構typedef struct ClassFeeint month; / 月份(yufn)float money; /每月班費金額(jn )char people20; /班費支出經手人char reason100; /班費支出原因CF;3. 主要算法思想本程序

7、主要運用面向過程的程序設計方法。在界面制作中,運用開關語句switch,通過輸入數(shù)字,選擇主菜單下的子菜單項目,并運用庫函數(shù)system(“cls”)和system(“pause”)進行清屏和暫停操作,使界面更加清晰美觀。在各個子菜單中,分別通過調用子函數(shù)的方式來進行班費支出的增加、刪除和查詢操作。在增加、刪除和查詢函數(shù)中,運用結構體數(shù)組和文件操作,實現(xiàn)增加、刪除和查詢功能。(二)設計表示模塊一 void Menu():主菜單函數(shù),是進入系統(tǒng)的第一界面,用來讓用戶選擇進入管理員模式或普通用戶模式或退出系統(tǒng),用戶通過輸入選擇的數(shù)字來調用各個子函數(shù)進入各個模式。若輸入錯誤,則會被要求重新輸入。本函

8、數(shù)運用開關語句switch以及調用子函數(shù)來實現(xiàn)功能。模塊二 void Land():管理員登陸函數(shù),用來讓管理員登陸系統(tǒng),需要用戶名和密碼。若用戶名輸入錯誤,則無法登陸,會返回主菜單。若用戶名輸入正確,會繼續(xù)被要求輸入密碼,這是調用到子函數(shù)int Key()。若密碼輸入錯誤,則會被要求再次輸入密碼。如果輸入三次密碼都是錯誤的,則無法再次輸入密碼,程序會提示“對不起!您已經錯誤輸入三次,無法再次輸入,按回車鍵返回主菜單?!?,界面返回主菜單。若密碼輸入正確,會調轉到子函數(shù)void Administrators()界面。本函數(shù)運用開關語句switch以及調用子函數(shù)int Key()和void Adm

9、inistrators()來實現(xiàn)功能。模塊三 void Administrators():管理員模式函數(shù),用來讓管理員選擇增加支出或刪除支出或查詢日志或返回主菜單,用戶通過輸入選擇的數(shù)字來調用各個子函數(shù)進入各個功能。若輸入錯誤,則會被要求重新輸入。本函數(shù)運用開關語句switch以及調用子函數(shù)來實現(xiàn)功能。模塊(m kui)四 void Users():普通用戶模式函數(shù),用來讓普通用戶選擇查詢日志或或返回主菜單,用戶通過輸入選擇的數(shù)字來調用各個(gg)子函數(shù)進入各個功能。若輸入錯誤,則會被要求重新輸入。本函數(shù)運用開關語句switch以及調用(dioyng)子函數(shù)來實現(xiàn)功能。模塊五 int Read

10、():讀取文件信息函數(shù),用來讀取文件日志.txt中共有多少條信息并返回信息總數(shù)目i。本函數(shù)運用文件打開、讀取和關閉操作以及結構體數(shù)組和指針來實現(xiàn)功能。模塊六 void Output():輸出文件內容函數(shù),用來輸出文件日志.txt的內容。本函數(shù)運用文件打開、讀取、輸出和關閉操作以及結構體數(shù)組和指針來實現(xiàn)功能。模塊七 void Choose():查詢文件內容菜單函數(shù),用來讓普通用戶選擇按月查詢或查詢所有或返回主菜單,用戶通過輸入選擇的數(shù)字來調用各個子函數(shù)進入各個功能。若輸入錯誤,則會被要求重新輸入。本函數(shù)運用開關語句switch以及調用子函數(shù)來實現(xiàn)功能。模塊八 void Delete():刪除文件

11、內容函數(shù),用來讓管理員刪除文件內容。屏幕首先顯示全部文件內容,然后顯示“請輸入你想要刪除的月份:”,管理員輸入數(shù)字,屏幕輸出刪除后的文件的全部內容,并將刪除后的文件的全部內容打印到更新后的日志.txt。之后,屏幕輸出“請選擇:1返回上一級菜單 2返回主菜單”,管理員輸入數(shù)字,通過調用子函數(shù)void Administrators()和void Menu()來調轉界面。若輸入錯誤,則會被要求重新輸入。本函數(shù)運用開關語句switch、文件打開、讀取、打印和關閉操作、結構體數(shù)組、指針以及調用子函數(shù)void Administrators()、int Read()和void Menu()來實現(xiàn)功能。模塊九

12、 void Add():增加文件內容函數(shù),用來讓管理員增加文件內容。屏幕首先顯示“請輸入你要增加的支出信息(請依次輸入時間(月份)、經辦人姓名、金額和原因)”,管理員輸入相應內容,屏幕首先輸出管理員增加的內容,然后輸出增加后的文件的全部內容,并將增加后的文件的全部內容打印到更新后的日志.txt。之后,屏幕輸出“請選擇:1返回上一級菜單 2返回主菜單”,管理員輸入數(shù)字,通過調用子函數(shù)void Administrators()和void Menu()來調轉界面。若輸入錯誤,則會被要求重新輸入。本函數(shù)運用開關語句switch、文件打開、讀取、打印和關閉操作、結構體數(shù)組、指針以及調用子函數(shù)void A

13、dministrators()、int Read()和void Menu()來實現(xiàn)功能。模塊(m kui)十 void consult():按月查詢文件(wnjin)內容函數(shù),用來讓管理員和普通用戶按月查詢文件內容。屏幕首先顯示“請輸入(shr)你想要查詢的月份:”,管理員和普通用戶輸入數(shù)字,屏幕輸出該月的全部班費支出內容。之后,屏幕輸出“請選擇:1返回上一級菜單 2返回主菜單”,管理員和普通用戶輸入數(shù)字,通過調用子函數(shù)void Choose()和void Menu()來調轉界面。若輸入錯誤,則會被要求重新輸入。本函數(shù)運用開關語句switch、文件打開、讀取、打印和關閉操作、結構體數(shù)組、指針以

14、及調用子函數(shù)void Choose()、int Read()和void Menu()來實現(xiàn)功能。模塊十一 int Key():密碼函數(shù),用來讓管理員輸入密碼,使用數(shù)組實現(xiàn)密碼以“*”號形式輸出。若輸入的字符正確,則返回a=0;若輸入的字符不正確,則返回a=1。本函數(shù)運用字符串數(shù)組來實現(xiàn)功能。模塊十二 void main():本程序主函數(shù)。(三)實現(xiàn)注釋任務中各項要求基本實現(xiàn)。在完成基本要求的基礎上,本程序設計了管理員模式與普通用戶模式。在管理員模式中,設計了用戶名和密碼模塊。管理員必須輸入正確的用戶名,才能進一步輸入密碼,否則則無法進入管理員界面。在密碼模塊,設計了以“*”號形式輸出密碼的方式

15、,而若輸入密碼錯誤超過三次,就無法進入管理員界面。而在各界面的調轉方面,通過運用庫函數(shù)system(“cls”)和system(“pause”)來實現(xiàn)清屏和暫停功能。(四)算法設計中一些新的想法本程序可以使用鏈表。鏈表可以將結構體、數(shù)組、指針等C語言的基本元素融合在一起,它最大的好處是可以非常方便地在鏈表中實現(xiàn)插入、刪除節(jié)點操作。本程序具有的增加、刪除功能,正可以創(chuàng)建一個鏈表來實現(xiàn)這些功能。而本程序采用結構體數(shù)組的方法,對于增加、刪除功能編寫的代碼較為繁瑣,不如鏈表的操作簡潔方便。但是,我對于鏈表操作不太熟練,把握不大,因此采用了結構體數(shù)組的方法。在之后的學習中,我會加強對鏈表知識的學習,實現(xiàn)

16、使用鏈表來編寫本程序。三、 用戶手冊用戶進入(jnr)系統(tǒng)后,首先在主菜單界面選擇要進入的模式:管理員模式或普通用戶模式或退出,輸入數(shù)字1或2或3,如果輸入其他(qt)字符,則屏幕會輸出“輸入錯誤(cuw)!請重新輸入:”,并且調轉回主菜單界面。例如:輸入1后,系統(tǒng)進入管理員登陸界面,用戶需要輸入用戶名,如果用戶名錯誤,則屏幕會輸出“請輸入您的用戶名,按回車鍵結束:”,并且調轉回主菜單界面。如果用戶名正確,則系統(tǒng)會繼續(xù)要求用戶輸入密碼。如果密碼錯誤,則屏幕會輸出“密碼錯誤!請重新輸入:”,若輸入密碼錯誤三次,則屏幕會輸出“對不起!您已經錯誤輸入三次,無法再次輸入,按回車鍵返回主菜單?!?,并且調

17、轉回主菜單界面。如果密碼正確,則會調轉到管理員界面。用戶可以選擇進入的功能:增加支出或刪除支出或查詢日志或返回主菜單,輸入數(shù)字1或2或3或4,如果輸入其他字符,則屏幕會輸出“輸入錯誤!請重新輸入:”,并且調轉回管理員界面。例如:輸入1后,屏幕顯示“請輸入你要增加的支出信息(請依次輸入時間(月份)、經辦人姓名、金額和原因)”,用戶輸入相應的信息后,屏幕首先輸出用戶增加的內容,然后輸出增加后的文件的全部內容,并將增加后的文件的全部內容打印到更新后的日志.txt。之后,屏幕輸出“請選擇:1返回上一級菜單 2返回主菜單”,輸入數(shù)字1或2,如果輸入其他字符,則屏幕會輸出“輸入錯誤!請重新輸入:”。輸入1

18、后,會返回管理員界面。輸入2后,會返回主菜單界面。用戶在進行操作時,根據屏幕輸出的提示進行輸入操作,輸入數(shù)字或文字,在輸入完成后,按回車鍵結束操作。四、 調試及測試在程序的調試及測試過程中,程序出現(xiàn)的問題有:(1)由于粗心,一些符號為中文格式,這些錯誤但是“Ox”開頭的。(2)密碼函數(shù)編寫錯誤。一開始定義密碼函數(shù)為void型,無法返回值,后來改為int型后,函數(shù)正確了。(3)增加支出函數(shù)編寫錯誤。運用結構體數(shù)組來編寫增加支出函數(shù),循環(huán)體較為復雜,在經過多次的修改過后,終于確定了最終正確的循環(huán)體。(4)刪除支出函數(shù)編寫錯誤。運用結構體數(shù)組來編寫增加支出函數(shù),循環(huán)體較為復雜,在經過多次的修改過后,

19、終于確定了最終正確的循環(huán)體。(5)編程開始沒有運用庫函數(shù)system(“cls”)和system(“pause”)來實現(xiàn)清屏和暫停功能,因此輸出界面較為冗長,后來經過查資料,學習了這兩個庫函數(shù),使得系統(tǒng)實現(xiàn)了清屏和暫停功能。(6)在文件操作中,讀取文件內容時,一開始(kish)忘記了要讀取題目,導致測試時多次死循環(huán),之后發(fā)現(xiàn)了這個錯誤,定義變量讀出題目后,文件操作正確了。五、小結(xioji)經過一個星期的課程設計,我將理論教學中涉及到的知識點貫穿起來,對不同的數(shù)據類型、程序控制結構、數(shù)據結構(sh j ji u)作一比較和總結,結合設計題目進行綜合性應用,對所學知識達到融會貫通的程度。通過課

20、程設計,我進一步鞏固、加深了所學專業(yè)課程C 程序設計語言的基本理論知識,理論聯(lián)系實際,進一步培養(yǎng)了綜合分析問題,解決問題的能力。課程設計全面考核了我所掌握的基本理論知識及實際業(yè)務能力,從而達到提高我素質的最終目的。利用所學知識,我開發(fā)小型應用系統(tǒng),掌握運用C 語言編寫調試應用系統(tǒng)程序,訓練了獨立開發(fā)應用系統(tǒng),進行數(shù)據處理的綜合能力。在課程設計后,我掌握了結構化程序設計方法,熟悉了面向過程程序設計方法,熟練了掌握C 語言的基本語法,靈活運用了各種數(shù)據類型,進一步掌握在集成環(huán)境下如何調試程序和修改程序。課程設計的過程雖然很辛苦,但付出終有回報,計算機編程水平的提高就是對我最大的回報!六、參考文獻1

21、 黃明等編著C語言課程設計北京:電子工業(yè)出版社2 HYPERLINK /s?ie=UTF8&search-alias=books&field-author=%E9%83%AD%E7%BF%A0%E8%8B%B1 郭翠英編著C語言課程設計案例精編北京:中國水利水電出版社3 寧正元數(shù)據結構(c語言) 南京:東南大學出版社。2000年6月第1版4 嚴蔚敏等 數(shù)據結構(c語言版) 北京:清華大學出版社,1997年4月第1版5 HYPERLINK /s?ie=UTF8&search-alias=books&field-author=%E8%B0%AD%E6%B5%A9%E5%BC%BA 譚浩強編著C程序設計題解與上機指導(第3版) 北京:清華大學出版社6 HYPERLINK /s?ie=UTF8&search-alias=books&field-author=%E8%B0%AD%E6%B5

溫馨提示

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

評論

0/150

提交評論