欧美精品一二区,性欧美一级,国产免费一区成人漫画,草久久久久,欧美性猛交ⅹxxx乱大交免费,欧美精品另类,香蕉视频免费播放

學生成績管理系統(tǒng)設(shè)計與實現(xiàn) 高級程序設(shè)計語言課程設(shè)計報告

上傳人:na****u 文檔編號:61272039 上傳時間:2022-03-11 格式:DOC 頁數(shù):35 大?。?49KB
收藏 版權(quán)申訴 舉報 下載
學生成績管理系統(tǒng)設(shè)計與實現(xiàn) 高級程序設(shè)計語言課程設(shè)計報告_第1頁
第1頁 / 共35頁
學生成績管理系統(tǒng)設(shè)計與實現(xiàn) 高級程序設(shè)計語言課程設(shè)計報告_第2頁
第2頁 / 共35頁
學生成績管理系統(tǒng)設(shè)計與實現(xiàn) 高級程序設(shè)計語言課程設(shè)計報告_第3頁
第3頁 / 共35頁

下載文檔到電腦,查找使用更方便

30 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《學生成績管理系統(tǒng)設(shè)計與實現(xiàn) 高級程序設(shè)計語言課程設(shè)計報告》由會員分享,可在線閱讀,更多相關(guān)《學生成績管理系統(tǒng)設(shè)計與實現(xiàn) 高級程序設(shè)計語言課程設(shè)計報告(35頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、 河南工程學院《高級程序設(shè)計語言》課程設(shè)計 成果報告 學生成績管理系統(tǒng)設(shè)計與實現(xiàn) 學生學號: 學生姓名: 學 院: 計算機學院 專業(yè)班級: 軟件工程1341 專業(yè)課程: 《高級程序設(shè)計語言》 指導教師: 2014 年 6 月 27 日 題 目 學生成績管理系統(tǒng)設(shè)計與實現(xiàn) 考核項目 考核內(nèi)容 得分 平時考核 (30分)出勤情況、態(tài)度、效率;知識掌握情況、基本操作技能、知識應用能力、獲取知識能力 系統(tǒng)設(shè)計

2、 (30分)分析系統(tǒng)的功能模塊 編程調(diào)試 (30分)實現(xiàn)系統(tǒng)的各個功能模塊,并完成調(diào)試 回答問題 (15分)回答老師針對課程設(shè)計提出的問題 課程設(shè)計報告撰寫 (10分)嚴格按照規(guī)范要求完成課程設(shè)計報告 源代碼 (5分)按照規(guī)范要求完成課程設(shè)計源代碼的排版 總 評 成 績 指導教師評語: 日期: 年 月 日 目 錄 第1章 系統(tǒng)設(shè)計目的 1 1.1 設(shè)計目的 1 1.2設(shè)計任務(wù) 1 1.3 課

3、程設(shè)計要求 1 第2章 系統(tǒng)實現(xiàn)思路 2 2.1 需求分析 2 2.2 系統(tǒng)功能模塊以及性能要求 2 2.3 模塊框架圖 3 第3章 系統(tǒng)詳細設(shè)計 4 3.1 關(guān)鍵類的設(shè)計 4 3.2 界面設(shè)計 4 3.3 主要功能函數(shù)的設(shè)計 5 第4章 系統(tǒng)調(diào)試運行 9 4.1 程序運行結(jié)果 9 4.2 程序結(jié)果分析 12 課程設(shè)計體會 13 參考文獻 14 附 錄 15 第1章 系統(tǒng)設(shè)計目的 1.1 設(shè)計目的 進一步深化掌握C++語言的基本知識;掌握結(jié)構(gòu)化程序設(shè)計的基本方法和設(shè)計技巧,初步了解算法分析與設(shè)計概念;理解面向?qū)ο蟪绦蛟O(shè)計

4、思想,初步具備運用面向?qū)ο蟪绦蛟O(shè)計方法進行程序設(shè)計的能力。能熟練應用VC++集成環(huán)境進行C++語言程序的編寫、編譯與調(diào)試,提高對本課程知識綜合運用能力。通過本課程設(shè)計的實踐,將學到的面向?qū)ο蟮某绦蛟O(shè)計思想用到具體的工作學習中,加深對類與對象的理解,提高分析問題、解決問題、從而運用所學知識解決實際問題的能力。 1.2設(shè)計任務(wù) 1.設(shè)計四個類,包括學生類(描述學生基本信息);成績類;班級類;課程類(描述課程信息:課程編號,科目名稱,如高等數(shù)學,大學英語等)。 2.學生成績及課程信息用文件保存,程序執(zhí)行時從文件讀入。 3.能按學期,按班級完成對學生成績的錄入、修改,能按班級統(tǒng)計學生的成績。

5、 4.求學生的總分及平均分,并能根據(jù)學生的平均成績進行排序,能查詢學生成績,不及格科目及學生名單;能按班級輸出學生的成績單。 5. 設(shè)置學生的成績信息:學生學號、姓名、所選課程名稱、平時成績、期末成績、平時成績所占百分比。 6.計算學生總評成績:總評成績=平時成績*平時成績所占百分比+期末成績*(1-平時成績所占百分比)。 7. 顯示學生的姓名、所選課程名稱以及平時成績、期末成績和總評成績信息。分單人顯示和以班輸出(班成績單格式輸出到文件) – 注意,至少應包含一個班、30人、三門課。 1.3設(shè)計要求 根據(jù)C++課程所學的概念、理論和方法,按照C++程序設(shè)計的基本步

6、驟,設(shè)計出一個適當規(guī)模的程序來實現(xiàn)設(shè)計課程內(nèi)容中的全部功能;設(shè)計主控模塊程序.對給出的程序源代碼要給出各部分的詳細注釋.自己根據(jù)能力及需要添加相應功能模塊,增強模擬系統(tǒng)功能。包括系統(tǒng)的功能分析、系統(tǒng)的功能模塊設(shè)計、程序流程圖或結(jié)構(gòu)框圖、邏輯結(jié)構(gòu)設(shè)計,數(shù)據(jù)庫中的表、視圖(如果使用)、索引的結(jié)構(gòu)和定義、觸發(fā)器、存儲過程、課程設(shè)計體會。 第2章 系統(tǒng)實現(xiàn)思路 2.1 需求分析 學生教務(wù)管理系統(tǒng)是一個教學單位中教學管理不可缺少的一部分,它的內(nèi)容對學生情況管理來說至關(guān)重要。一直以來,人們使用人工的管理方式,其效率低,時間長。為提高教務(wù)管理的效率和水平,與時俱進,對一個擁有如下功能的學生教務(wù)管

7、理系統(tǒng)需求日益迫切。 ①能對學生各科成績進行錄入:。 ②能對學生的成績進行增加。 ③能對學生的成績進行刪除。 ④能對學生的成績進行修改。 ⑤能對學生的成績按總成績,姓名,進行查詢。 ⑥能輸出學生的所有數(shù)據(jù)。 ⑦能進行成績統(tǒng)計。 ⑧能進行總分查詢排名。 2.2 系統(tǒng)功能模塊以及性能要求 學生成績查詢系統(tǒng)有:成績錄入、增加、刪除、修改,數(shù)據(jù)查詢,排序顯示構(gòu)成。 (1)磁盤容量要求: 存儲容量嬌小,數(shù)據(jù)庫系統(tǒng)也不是很大,系統(tǒng)文件占一些磁盤空間,需要足夠大磁盤空間以容納系統(tǒng),倘若空間不足,應該即使清理系統(tǒng)中過期文件。 (2)安全性要求: 系統(tǒng)有著權(quán)限設(shè)置,不同的用戶有著不

8、同的權(quán)限,非相關(guān)人員不可越權(quán)進行學生的操作,學生也不可越權(quán)修改或訪問,教師可賦予管理員的權(quán)限,可以對網(wǎng)站進行任何操作。同時對于非法用戶,不能夠根據(jù)用戶的相對網(wǎng)址來訪問網(wǎng)站和對網(wǎng)站進行任何操作。 (3)適應性要求: 要求界面菜單清楚,學生和老師都能很快熟悉網(wǎng)站。 2.3 模塊框架圖 根據(jù)該程序設(shè)計的任務(wù)和目的畫出模塊框架圖2-3。 學生成績管理系統(tǒng) 操作 查詢 成績統(tǒng)計 按總成績排名 錄入 增加 刪除 修改 總成績查詢 姓名 每個學生的平均成績 各科不及格的人數(shù) 輸出所有學生的成績

9、 圖2-3 模塊框架圖 第3章 系統(tǒng)詳細設(shè)計 3.1關(guān)鍵類的設(shè)計 創(chuàng)建Stu類,在其中公用部分定義構(gòu)造函數(shù),成為類與外部的接口,而數(shù)據(jù)私有,形成接口與實現(xiàn)的分離,主函數(shù)定義為友元函數(shù),方便訪問類成員。 class Stu //通過定義一個類來定義數(shù)據(jù)錄入的函數(shù) 。 { char name[30]; int number; float math,cpp,english,average,sum; public: Stu() {}; Stu ( c

10、har n[30], int num,float ma,float cj,float eng ) ; float getsum();//得到總分的函數(shù) float getaver(); //得到平均分的函數(shù) friend void main(); //將主函數(shù)定義為友元函數(shù),方便訪問類中的成員 }; 3.2 界面設(shè)計 主函數(shù)中運用ASCII字符以及endl換行符構(gòu)造一個友好而簡潔的界面。 void main() { cout<<"*************歡迎來到學生成績查詢系統(tǒng)*************"<

11、的操作!"<

12、cout<<"(9)各科不及格人數(shù)"<

13、數(shù)據(jù)的錄入 { char c; //用于在小項中選擇是否繼續(xù)操作 char name[20]; int number; float math,cpp,english; do{ cout<<"請輸入姓名:"<>name; cout<<"請輸入學號:"<>number; cout<<"請輸入數(shù)學成績:"<>math; cout<<"請輸入C++成績:"<>cpp; cout<<"請輸入英語成績:"<>english;

14、 fstream outfile,infile; //作一個文本文檔在文件夾中用于顯示所錄入的數(shù)據(jù) outfile.open("f1.txt",ios::out|ios::app); if(!file) { cout<<"f1.txt can not open.\n"; return; } outfile<

15、n("f1.txt",ios::in); if(!file) //判斷文件是否打開 { cout<<"f1.txt can not open.\n"; return; } char ch; while(infile.get(ch)) cout<>c; chris1=0; do

16、{ if(c!='y'&&c!='n') { cout<<"指令錯誤!請重新輸入!"<>c; } else chris1=1; }while(chris1==0); }while(c=='y'); //重復輸入 break; } (2)此函數(shù)為按總分查詢的實現(xiàn)過程巧妙運用字母i,定義i的值為零時數(shù)據(jù)不存在, 1為是數(shù)據(jù)存在的情況,查詢時考慮數(shù)據(jù)是否存在;然后利用指針調(diào)用分數(shù)。 case 5://按總分查詢 { int j=0;float SUM;char c;int flag;

17、 if(i==0) { cout<<"系統(tǒng)中沒有輸入數(shù)據(jù),請先輸入數(shù)據(jù)!"<>SUM; for(int j=0;jgetsum()==SUM) { flag=1; cout<<"您要查詢的學生是:"<<(*s[j]).name<

18、息為:"<>c; if(c!='y'&&c!='n') { cout<<"指令錯誤!請重新輸入!"<>c; }; }while(c=='y')

19、; break; } (3)此函數(shù)為按總分排名的實現(xiàn)過程,先利用指針調(diào)用總分函數(shù)sum,然后利用冒泡法進行總分的排序。 case 10://按總分排名 {if(i==0) { cout<<"系統(tǒng)中沒有輸入數(shù)據(jù),請先輸入數(shù)據(jù)!"<

20、(n=0;na[n+1]) {temp=a[n];a[n]=a[n+1];a[n+1]=temp;} } for(n=1;n<=i;n++) cout<

21、成績輸出 4.2程序結(jié)果分析 系統(tǒng)性能相對穩(wěn)定,能達到要求的操作,根據(jù)界面的要求輸入數(shù)字,以及相關(guān)的信息,便可以對學生成績進行管理。 每一個case都能執(zhí)行,但是有很多的地方都不夠完善,例如:在總成績排序中,只能輸出總成績,不能單獨的輸出學生的相應的信息;每次進行別的操作之前都要在進行一次數(shù)據(jù)的錄入,不能直接對原有的文件進行讀取。 課程設(shè)計體會 這次實習讓我意識到了自身知識的欠缺,原本以為掌握的不錯的知識,到了這時卻發(fā)現(xiàn)了欠缺,

22、很多很簡單的語法,像do while 也可以變得如此復雜神奇。讓我明白了掌握一門計算機語言的語法僅僅是最基本的要求,更重要的是運用去綜合,而語言的綜合則要求對各個知識點的良好掌握。 通過這次明白了C++等語言只是工具,重要的是思路,但僅僅有思路,工具掌握的不好,又會無從下手。同時也要加強自己的讀寫長代碼的能力。只有通過不斷讀,不斷的寫,才能把語言運用到實際,而不是僅僅停留在膚淺的理論層次。 同時感謝老師貫穿實習過程的不厭其煩的指導。 參考文獻 [1]譚浩強著,《c++面向?qū)ο蟪绦蛟O(shè)計》,清華大學出版社 [1]譚浩強著, 《

23、C++面向?qū)ο蟪绦蛟O(shè)計題解與上機指導》清華大學出版社 [3]錢能編著,《c++程序設(shè)計教程》,清華大學出版社 [4]譚浩強編著,《c程序設(shè)計題解與上機指導》,清華大學出版社 [5]呂鳳煮著,《C++語言基礎(chǔ)教程》,清華大學出版社 [6]?Robert?L.Kruse著,《C++數(shù)據(jù)結(jié)構(gòu)與程序設(shè)計》,清華大學出版社 附錄:原程序 #include #include #include #include<

24、sstream> #include using namespace std; class Tstu //通過定義一個類來定義數(shù)據(jù)錄入的函數(shù) { char name[20]; int number; float math,cpp,english,average,sum; public: Tstu() {}; Tstu ( char n[20], int num,float ma,float cj,float eng ) ; float getsum();//得到總分的函數(shù) float getaver()

25、; //得到平均分的函數(shù) friend void main(); //將主函數(shù)定義為友元函數(shù),方便訪問類中的成員 }; Tstu::Tstu ( char n[20], int num,float ma,float cj,float eng ) { strcpy(name,n); //得到姓名 number=num; //得到學號 math=ma; //得到數(shù)學成績 cpp=cj; //得到c++成績 english=eng; //得到英語成績 } float Tstu::getsum() //得到總分的函數(shù)

26、 { sum=cpp+english+math; return sum; } float Tstu::getaver() //得到平均分的函數(shù) { average=getsum()/3; return average; } void main() { cout<<"*****************歡迎來到學生成績查詢系統(tǒng)*****************"<

27、)數(shù)據(jù)錄入"<

28、dl; cout<<"(10)按總分查詢排名"<

29、o—while語句 do //判斷輸入是否正確 { cin>>p; if((p>=1&&p<=11)) chris1=1; else cout<<"指令錯誤!請重新輸入:"<

30、 float math,cpp,english; do{ cout<<"請輸入姓名:"<>name; cout<<"請輸入學號:"<>number; cout<<"請輸入數(shù)學成績:"<>math; cout<<"請輸入C++成績:"<>cpp; cout<<"請輸入英語成

31、績:"<>english; fstream outfile,infile; //作一個文本文檔在文件夾中用于顯示所錄入的數(shù)據(jù) outfile.open("f1.txt",ios::out|ios::app); if(!file) { cout<<"f1.txt can not open.\n"; return; } outfile<

32、 "<<"C++成績:"<

33、out<>c; chris1=0; do{ if(c!='y'

34、&&c!='n') { cout<<"指令錯誤!請重新輸入!"<>c; } else chris1=1; }while(chris1==0); }while(c=='y'); //重復輸入 break; } case 2: //增加學生數(shù)據(jù) { char name[20]; int number; float math

35、,cpp,english; char c; do { cout<<"請輸入您要增加的學生的姓名:"<>name; cout<<"請輸入你要增加的學生的學號:"<>number; cout<<"請輸入數(shù)學成績:"<>math; cout<<

36、"請輸入C++成績:"<>cpp; cout<<"請輸入英語成績:"<>english; fstream outfile,infile; outfile.open("f1.txt",ios::out|ios::app); if(!file) { cout<<"f1.txt can not open.\n";

37、 return; } outfile<

38、f1.txt can not open.\n"; return; } char h; while(infile.get(h)) cout<

39、sh); i++; cout<<"數(shù)據(jù)錄入成功,想繼續(xù)錄入嗎(y/n)"<>c; if(c!='y'&&c!='n') { cout<<"指令錯誤!請重新輸入!"<>c; } }while(c=='y'); break; } cas

40、e 3://刪除學生信息 { char c; string xingming,line,str,name; do { ifstream fin("f1.txt"); fstream outfile("f2.txt",ios::trunc|ios::out); //作一個文本文檔在文件夾中用于顯示所錄入的數(shù)據(jù) cout<<"請輸入您要刪除的學生的姓名:"<

41、 cin>>xingming; while(!fin.eof() ) { getline(fin,line); istringstream stream(line); name = line.substr(0,line.find(" ",0));//找到名字,判斷是否相等 if(name != xingming)

42、 outfile<

43、ose(); f.close(); cout<<"數(shù)據(jù)刪除成功,想繼續(xù)刪除嗎(y/n)"<>c; if(c!='y'&&c!='n') { cout<<"指令錯誤!請重新輸入!"<>c; } }while(c=='y');

44、 break; } case 4://修改數(shù)據(jù) { string sname,line,str,name; int nu;float eng,ma,com;int flag;char c; if(i==0) { cout<<"系統(tǒng)中沒有輸入數(shù)據(jù),請先輸入數(shù)據(jù)!"<>name;

45、 fstream fin("f1.txt",ios::in); ofstream outfile("f.txt",ios::trunc|ios::out); cout<

46、 outfile<>name>>nu>>ma>>com>>eng; cout<

47、績:"<

48、 cin>>c; cout<>c; } }while(c=='y'); break; } case 5://按總分查詢 { int j=0;float SUM;char c;int flag; if(i==0) { cout<<"系統(tǒng)中沒有輸入數(shù)據(jù),請先輸入數(shù)據(jù)!"<

49、l;break; } do { flag=0; cout<<"請輸入您要查詢的學生的總成績:"<>SUM; for(int j=0;jgetsum()==SUM) { flag=1; cout<<"您要查詢的學生是:"<<(*s[j]).name<

50、*s[j]).number<<" 數(shù)學分數(shù):"<<(*s[j]).math<<" c++分數(shù):"<<(*s[j]).cpp<<" 英語分數(shù)"<<(*s[j]).english<>c; if(c!='y'&&c!='n') { cout<<"指令錯誤!請重新輸入!"<>c;

51、 }; }while(c=='y'); break; } case 6://按姓名查詢 { char n[20];char c;int j=0;int flag; if(i==0) { cout<<"系統(tǒng)中沒有輸入數(shù)據(jù),請先輸入數(shù)據(jù)!"<>n; for(int j=0;j

52、 { if(strcmp(n,(*s[j]).name)==0) { flag=1; cout<<"您要查詢的學生是:"<<(*s[j]).name<

53、學生不存在,請查證后再輸入!"<>c; if(c!='y'&&c!='n') { cout<<"指令錯誤!請重新輸入:"<>c; } }while(c=='y'); break; } case 7://輸出所有學生數(shù)據(jù) { cout<<"所有學生數(shù)據(jù)如下:"<

54、 file.open("f1.txt",ios::in); cout<

55、<<" 學號:"<<(*s[m]).number<<" 總分:"<<(*s[m]).getsum()<<" 均分:"<<(*s[m]).getaver()<

56、math<60)m++; if(s[j]->cpp<60)n++; if(s[j]->english<60)k++; } cout<<"數(shù)學不及格人數(shù)為:"<

57、break; } int h,g,n;int j=0;float a[100],temp; for(g=0;ga[n+1]) { temp=a[n];a[n]=a[n+1];a[n+1]=temp; } } for(n=1;n

58、<=i;n++) cout<>w; cout<

59、 { cout<<"*****************歡迎來到學生成績查詢系統(tǒng)*****************"<

60、 cout<<"(5)按總成績查詢"<

61、 cout<<"選擇相關(guān)操作請輸入相對的括號里的阿拉伯數(shù)字及字母!"<>p; } }while(w=='y'); } #include #include #include #include #include using namespace std; class Tstu //通過定義一個類來定義數(shù)據(jù)錄入的函數(shù) { char name[20]; int number; float mat

62、h,cpp,english,average,sum; public: Tstu() {}; Tstu ( char n[20], int num,float ma,float cj,float eng ) ; float getsum();//得到總分的函數(shù) float getaver(); //得到平均分的函數(shù) friend void main(); //將主函數(shù)定義為友元函數(shù),方便訪問類中的成員 }; Tstu::Tstu ( char n[20], int num,float ma,float cj,float eng )

63、 { strcpy(name,n); //得到姓名 number=num; //得到學號 math=ma; //得到數(shù)學成績 cpp=cj; //得到c++成績 english=eng; //得到英語成績 } float Tstu::getsum() //得到總分的函數(shù) { sum=cpp+english+math; return sum; } float Tstu::getaver() //得到平均分的函數(shù) { average=getsum()/3; return averag

64、e; } void main() { cout<<"*****************歡迎來到學生成績查詢系統(tǒng)*****************"<

65、

66、 char w;//全局變量,用于在大項中選擇是否繼續(xù)操作 Tstu *s[100]; //類定義的指針將所錄入的數(shù)據(jù)按類中的形式分別存儲 ofstream *file[100]; int i=0; //全局變量,用于做每個錄入數(shù)據(jù)的下標 int j=0; int chris1=0; //用于判斷do—while語句 do //判斷輸入是否正確 { cin>>p; if((p>=1&&p<=11)) chris1=1; else cout<<"指令錯誤!請重新輸入:"<

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!