c課程設計-學生信息管理系統_第1頁
c課程設計-學生信息管理系統_第2頁
c課程設計-學生信息管理系統_第3頁
c課程設計-學生信息管理系統_第4頁
c課程設計-學生信息管理系統_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目錄第一章 課程設計的目的和要求1第二章 課程設計任務內容22.1 背景22.2功能需求3第三章 模版設計說明33.1 系統總框架33.2 主函數的流程圖53.3 錄入學生信息流程圖63.4 插入學生信息流程圖7第四章 軟件使用說明及運行結果84.1使用說明84.2 運行結果9第五章 課程設計心得與體會10附錄1:參考文獻12附錄2:程序清單13第一章 課程設計的目的和要求1.1課程設計的目的c+課程設計的主要目的是根據課堂講授內容,學生做相應的自主練習,在進行課程設計的過程中,消化自己所學的內容,同時也培養(yǎng)綜合運用c+程序設計課程所學到的知識和編寫c+程序解決實際問題的能力,以及良好的程序設

2、計習慣。通過課程設計的訓練,學生了解程序設計的基本開發(fā)過程,掌握編寫、調試和測試c+語言程序的基本技巧,充分理解結構化程序設計的基本方法,熟悉運用結構化程序設計的方法。1.2課程設計的目標本課程設計的目標:1. 鞏固和加深學生對c+語言課程的基本知識的理解和掌握;2. 掌握c+語言編程和程序調試的基本技能;3. 掌握利用c+語言進行軟件設計的方法;4. 提高書寫程序設計說明文檔的能力;5. 提高運用c+語言解決實際問題的能力。1.3課程設計要求基本要求:1. 分析課程設計題目的要求;2. 對系統功能模塊進行分析,寫出詳細設計說明文檔;3. 編寫程序代碼,代碼量要求不少于300行,調試程序使其能

3、正確運行;4. 設計完成的軟件要便于操作和使用;5. 設計完成后提交課程設計報告。第二章 課程設計任務內容此次程序設計綜合課程設計的任務內容是編寫保安人員的休息時間安排系統。2.1 背景隨著學校的快速發(fā)展和在校學生的增多,學生管理工作變得越來越復雜,許多工作非常繁瑣,消耗了大量的人力物力。比如學生檔案管理,學生的姓名、出生年月等資料在做了修改后,可能在招辦、學生科、財務科有同一個學生的幾份不同檔案材料,數據共享性極差;有的學生欠費,財務部門也很難及時發(fā)現;有的學生中途變更學籍,給教學管理工作帶來不便。2.2功能需求用c+實現學生信息管理系統,學生信息包括:學號,姓名,性別,地址,出生年月,電話

4、,e-mail等。該系統主要有以下功能:1、 系統以菜單方式工作;2、 學生信息錄入功能(學生信息用文件保存)-輸入;3、 學生信息瀏覽功能輸出;4、 學生信息查詢功能算法;按學號查詢按姓名查詢5、 學生信息的刪除與修改(可選項)。本人承擔的功能有:(1)、(2)、(4)。第三章 模版設計說明3.1 系統總框架學生信息管理系統錄入學生信息瀏覽學生信息查詢學生信息修改學生信息刪除學生信息退出程序按姓名查詢按學號查詢圖3-1 系統模塊圖 3.2 主函數的流程圖錄入學生信息初始化變量輸出菜單輸入操作標號標號有誤?根據標號執(zhí)行相應的處理函數標號為退出?提示保存nny瀏覽學生信息修改學生信息y開始結束圖

5、3-2 主函數流程圖3.3 錄入學生信息輸入函數:刷新此前的顯示界面,然后輸入在執(zhí)行上步操作后的顯示界面輸入學生學號、姓名開始添加錯誤該信息是否存在結束ny添加到文件圖3-3錄入函數流程圖3.4 查詢學生信息查詢函數:刷新此前的顯示界面,然后查詢在執(zhí)行上步操作后的顯示界面輸入學生學號或姓名開始是否存在結束ny顯示所查詢學生信息圖3-4 查詢函數流程圖第四章 軟件使用說明及運行結果4.1使用說明該程序可以實現對學生有關信息查找的功能,安裝visualc+6.0中文版后,在工具欄“文件”中單擊“新建”選項,單擊“文件”菜單,選擇“c+ source file”輸入文件名“單項選擇題標準化考試系統”

6、。開始輸入程序,程序輸入完成,單擊“組建”工具欄,選擇“編譯簡化學生信息管理系統.cpp1”,待程序無誤后,開始執(zhí)行程序。根據數據結構、函數功能和主要的流程圖,進行錄入源代碼操作。在編碼時,注意代碼的書寫規(guī)范,包括命名慣例、注釋、分隔和縮進等,這樣使程序層析清晰,增強可讀性和可維護性。 編碼操作完成后,先靜態(tài)檢查一下有沒有語法錯誤,然后進行編譯,更深一步檢查語法錯誤。待編譯通過時,運行程序,觀察是否能夠正常運行,如果有問題,再去修改源程序,直至達到了預期的效果。4.2 運行結果圖4-1 程序截圖一圖4-2 程序截圖二第五章 課程設計心得與體會課程設計剛開始的時候,我真的感覺到無從下手。因為已經

7、過去一個學期了,期間又沒有怎么看書,考完試就放下了。許多知識都已經忘卻。不過老師為我們安排的很周到,一開始并沒有直接讓我們做系統。而是復習上個學期最基本的知識。例如:通過做一些題目去熟悉冒泡排序,選擇排序、指針、如何建立動態(tài)存儲空間等。經過這樣的訓練之后,對c+語言感覺不那么陌生了。對后面的設計也終于有了點信心。通過這三周的課程設計,我獨立完成了一個較大的c+語言程序的設計,以及認真完成了課程設計報告?;貞涍@三周的時間,我收獲很大。首先,我熟練地運用了所學的知識編寫程序,并成功的完成,感覺成就感很強,這大大激發(fā)了我編程的興趣;其次,在設計的過程中遇到了一些困難,我會認真的去思考,或者充分利用網

8、絡資源來尋求幫助,提高獲取信息的能力。如果自己解決有困難,我會向老師和同學尋求幫助,在交流中共同進步。最后,我了解了軟件開發(fā)的大體過程及各個步驟,這對將來的學習和工作是很有幫助的。對于計算機專業(yè)的大學生來說,積累實戰(zhàn)經驗是一項極其重要的內容,很可能成為將來就業(yè)的敲門磚。而程序設計綜合課程設計就是積累實戰(zhàn)經驗的一個過程,雖然程序的規(guī)模并不大,但能夠讓我們盡早地認識軟件開發(fā)的重要性和必要性,為將來的就業(yè)打下堅實的基礎。經過兩個星期的上機實踐學習,使我對c+語言有了更進一步的認識和了解,要想學好它要重在實踐,要通過不斷的上機操作才能更好地學習它,通過實踐,我也發(fā)現我的好多不足之處,首先是自己編程粗心

9、大意,經常出錯,通過學習也有所改進;再有對c+語言的一些標準函數不太了解,還有對函數調用的正確使用不夠熟悉,以及對c+語言中經常出現的錯誤也不了解,通過實踐,使我在這幾個方面的認識有所提高。這次的課程設讓我認識到很多c+的內在要素:1. 程序設計語言是程序設計的工具。這是我通過兩周課程設計深深體會的一點,并且發(fā)現如果想有效的進行程序設計,正確地應用程序設計語言表達算法,必須準確的運用程序設計語言,掌握其語法知識。2. 學習程序設計必須重視時間環(huán)節(jié),多讀程序,多編寫程序,多上機實踐。這次的課程設計就使得課堂教學、式樣和實踐之間的關系更為緊密。對我的學習有著很深遠的影響。3. 我發(fā)現作為一個程序設

10、計人員,需要掌握面向過程的程序設計,也要掌握面向對象的程序設計。從前,人們通過c+語言學習面向過程的程序設計,再通過c+學習面向對象的程序設計。其實c+并不是純粹的面向對象的語言,它是一種混合語言。學習c+既可以編寫面向過程的程序,也可以編寫面向對象的程序。這一點是我通過可課程設計所的實踐發(fā)現的。4. 深切的感受到了c+語法的復雜,內容的繁多。發(fā)現如果對它缺乏系統的了解,將難以真正的運用,編出來的程序錯誤百出。附錄1:參考文獻1、譚浩強編著:c+程序設計,北京:清華大學出版社,20042、(美)戴特爾(deitel,h.m.)等編著,張引等譯:c+大學基礎教程(第五版),北京:電子工業(yè)出版社,

11、2006.63、夏云慶編著:visual c+ 6.0數據庫高級編程,北京:希望電子出版社 20024、伍俊良編著:visual c+6.0課程設計與系統開發(fā)案例,北京:清華大學出版社,2002.11附錄2:程序清單以下是學生信息管理系統的源代碼:#include#include#include#includeusing namespace std;#define null 0int n=0; /鏈表節(jié)點數bool formexist=false; /原有鏈表是否存在struct studentstring name;string class;long num;float score;stud

12、ent *next;/創(chuàng)建鏈表student *create();/打印信息void print(student *pt);/刪除節(jié)點student *del(student *head,long num);/插入節(jié)點student *insert(student *head,student *stu);/保存到文件void save(student *head,char filename);/菜單void menu();/歡迎void welcome();/按班級查詢void inquire(student *head,string class);/按學號查詢void inquire(stu

13、dent *head,long num);/求平均成績void average(student *head);/從文件導入student *import(char filename,student *head);/排序student *rank(student *head);int main()student *head=null;student newstu;string class;ifstream infile;char filename20;long num;char choose;bool quit=false;char c;welcome();while(true)menu();c

14、inchoose;switch(choose)case 1:if (formexist)coutc;if (!(c=y|c=y)continue;elsen=0;head=create();system(pause);break;elsehead=create();system(pause);break;case 2:coutfilename;head=import(filename,head);system(pause);break;case 3:coutn您想刪除哪個學生的信息?輸入該學生的學號:num;head=del(head,num);system(pause);break;case

15、 4:cout請輸入新增學生的姓名、班級、學號、成績、性別、出生年月、電話、e-mail:news;cinnewstu.class;cinnewstu.num;cinnewstu.score;head=insert(head,&newstu);system(pause);break;case 5:print(head);system(pause);break;case 6:cout請輸入班級:class;inquire(head,class);system(pause);break;case 7:cout請輸入學號:num;inquire(head,num);system(pau

16、se);break;case 8:average(head);system(pause);break;case 9:head=rank(head);system(pause);break;case k:coutfilename;save(head,filename);system(pause);break;case c:system(cls);welcome();break;case q:quit=true;break;default:cout輸入錯誤!endl;if (quit)break;/退出時提示保存coutc;if (c=y | c=y)coutfilename;save(head,

17、filename);return 0;/歡迎界面void welcome()cout*endl歡迎使用簡易學生信息管理系統!endl制作人:齊俊時間:2009-12-4endl*endlendl;/菜單void menu()coutsetiosflags(ios:left);coutnn您要做什么?endlsetw(20)1.創(chuàng)建學生信息表setw(20)2.從文件導入信息表endlsetw(20)3.刪除信息setw(20)4.插入信息endlsetw(20)5.打印所有的信息setw(20)6.按班級查詢endlsetw(20)7.按學號查詢setw(20)8.求平均成績endlsetw(

18、20)9.按成績排序setw(20)k.保存信息表到文件endlsetw(20)c.清空屏幕setw(20)q.退出endlendl輸入您的選擇:;/創(chuàng)建鏈表student *create()bool error=false;formexist=true;student *p1,*p2,*head;head=null;p1=head;while(true)p2=p1;p1=new student;coutp1-name;if (p1-name=0)break;coutp1-class;coutp1-num;docoutp1-score;if (p1-scorescore100)cout分數錯誤

19、!請重新輸入next=null;elsep2-next=p1;p1-next=null;cout輸入結束! endl;return head;/輸出信息void print(student *head)student *p=head;if(p!=null)coutsetw(15)姓名setw(13)班級setw(10)學號setw(7)分數endl;docoutsetw(15)namesetw(13)classsetw(10)numsetw(7)scorenext;while(p!=null);cout合計學生n人。endl;elsecout沒有信息!endl;/刪除信息student *de

20、l(student *head,long num)student *p1,*p2;if (head=null)cout信息為空!num!=num & p1-next!=null)p2=p1;p1=p1-next;if (p1-num!=num)cout找不到該學生!next;elsep2-next=p1-next;cout成功刪除學號為num的學生!next=null;elsewhile(p1-next!=null)if (p0-num=p1-num)cout學號為num的學生已存在!next;p1-next=p0;p0-next=null;n+;cout成功插入信息!endl; return

21、 head;/保存到文件void save(student *head,char filename)student *p=head;bool flag=false;if (head=null)cout沒有可以保存的信息!endl;return;elsefstream outfile(filename,ios:out);if (!outfile)cout打開數據文件出錯!endl;return;doif(flag)outfileendl;outfilenametclasstnumtscore;flag=true;p=p-next;while(p!=null);outfile.close();co

22、ut保存成功!保存到filenameendl;/按班級查詢void inquire(student *head,string class)bool flag=true;student *p=head;int total=0;if (p=null)cout信息為空!class=class)if (flag)cout班級為class的學生有:endl;coutsetw(15)姓名setw(10)學號setw(7)分數endl;flag=false;coutsetw(15)namesetw(10)numsetw(7)scorenext;while(p!=null);cout已查詢到total條記錄。endl;/按學號查詢void inquire(student *head,long num)bool flag=true;student *p=head;if (p=null)cout信息為空!num=num)if (flag)cout學號是num的學生是:endl;coutsetw(15)姓名setw(13)班級setw(7)分數endl;flag=false;coutsetw(15)namesetw(13)classsetw(7)scorenext;while(p!=null);cout查無此人!endl;/求平均值voi

溫馨提示

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

評論

0/150

提交評論