第一篇:C++課程設(shè)計(jì)學(xué)生成績(jī)管理分析系統(tǒng)
五、解決方案 C++程序設(shè)計(jì)實(shí)踐教學(xué)環(huán)節(jié)任務(wù)書(shū)
1.分析程序的功能要求,劃分程序功能模塊。
2.畫(huà)出系統(tǒng)流程圖。
一、題目: 學(xué)生成績(jī)管理分析系統(tǒng) 3.代碼的編寫(xiě)。定義類(lèi)和各個(gè)功能函數(shù)。
4.程序的功能調(diào)試。
二、目的與要求 5.完成系統(tǒng)總結(jié)報(bào)告以及使用說(shuō)明書(shū)。
1.目的:
六、進(jìn)度安排
1)鞏固C++基礎(chǔ)知識(shí);此次課程設(shè)計(jì)時(shí)間為一周或兩周,分四個(gè)階段完成:
2)能夠運(yùn)用面向?qū)ο蠓椒ㄟM(jìn)行類(lèi)的設(shè)計(jì); 1.分析設(shè)計(jì)階段。指導(dǎo)教師應(yīng)積極引導(dǎo)學(xué)生自主學(xué)習(xí)和鉆研問(wèn)題,明確設(shè)計(jì)要
3)鍛煉學(xué)生編程能力,解決實(shí)際問(wèn)題的能力。求,找出實(shí)現(xiàn)方法,按照需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)這幾個(gè)步驟進(jìn)行。2.編碼調(diào)試階段:根據(jù)設(shè)計(jì)分析方案設(shè)計(jì)類(lèi)并編寫(xiě)代碼,然后調(diào)試該代碼,實(shí)
2.要求現(xiàn)課題要求的功能。3.總結(jié)報(bào)告階段:總結(jié)設(shè)計(jì)工作,寫(xiě)出課程設(shè)計(jì)說(shuō)明書(shū),要求學(xué)生寫(xiě)出需求分析、基本要求: 總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、測(cè)試的步驟和內(nèi)容。
1)按照軟件開(kāi)發(fā)流程進(jìn)行開(kāi)發(fā) 4.考核階段。
2)類(lèi)的設(shè)計(jì)合理;包括類(lèi)的繼承多態(tài)等;
3)模塊劃分清晰合理;
七、撰寫(xiě)課程設(shè)計(jì)報(bào)告或課程設(shè)計(jì)總結(jié)
4)實(shí)用性好。課程設(shè)計(jì)報(bào)告要求: 創(chuàng)新要求:
在基本要求達(dá)到后,可進(jìn)行創(chuàng)新設(shè)計(jì),比如系統(tǒng)用戶功能控制,對(duì)管理員級(jí)和一總結(jié)報(bào)告包括需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼(詳細(xì)寫(xiě)出編程步驟)、測(cè)試的步般級(jí)別的用戶系統(tǒng)功能操作不同。驟和內(nèi)容、課程設(shè)計(jì)總結(jié)、參考資料等,不符合以上要求者,則本次設(shè)計(jì)以不及格記。
三、信息描述
八、參考資料1.《C++程序設(shè)計(jì)》.鄭莉.清華大學(xué)出版社 有關(guān)該系統(tǒng)基本信息的描述,如:學(xué)號(hào)、姓名、系別、班級(jí)和所選科目及各科成績(jī)2.《C++編程思想》.Bruce Eckel [劉宗田].機(jī)械工業(yè)出版社等。3.《C++ Primer》中文版.Lippman[潘愛(ài)民].中國(guó)電力出版社出版4.《Effective C++中文版》Scott Meyers[侯捷].華中科技大學(xué)出版社
四、功能描述
1.學(xué)生基本信息及成績(jī)所選科目成績(jī)的錄入修改和刪除。
2.基本信息的查詢(分系、班級(jí);分科目)。
3.對(duì)每系或每班各科成績(jī)進(jìn)行分析(即求單科平均成績(jī)、及格率和優(yōu)秀率);
4.對(duì)所開(kāi)課程的成績(jī)分析(求其平均成績(jī),最高分和最低分);
5.對(duì)學(xué)生考試成績(jī)進(jìn)行排名(單科按系別或班級(jí)進(jìn)行排名,對(duì)每一個(gè)班級(jí),同一
學(xué)期學(xué)生總體成績(jī)進(jìn)行排名,并顯示各科成績(jī)信息)
第二篇:C++課程設(shè)計(jì)學(xué)生信息管理系統(tǒng)
C++程序設(shè)計(jì)實(shí)踐教學(xué)環(huán)節(jié)任務(wù)書(shū)
一、題目:學(xué)生信息管理系統(tǒng)
二、目的與要求
1.目的:
(1)掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思路和方法;
(2)了解系統(tǒng)開(kāi)發(fā)的需求分析、類(lèi)層次設(shè)計(jì)、模塊分解、編碼測(cè)試、模塊
組裝與整體調(diào)試的全過(guò)程;
(3)進(jìn)一步熟悉C++中類(lèi)的概念、類(lèi)的封裝、繼承的實(shí)現(xiàn)方式;(4)學(xué)會(huì)分析簡(jiǎn)單的實(shí)際問(wèn)題,并能利用所學(xué)的知識(shí)建立系統(tǒng)的邏輯結(jié)構(gòu),學(xué)會(huì)簡(jiǎn)單的調(diào)試技巧和方法。逐步熟悉面向?qū)ο蟪绦蛟O(shè)計(jì)的方法,養(yǎng)成良好的編程習(xí)慣。
2.要求基本要求:
(1)要求利用C++面向?qū)ο蟮木幊趟枷雭?lái)完成系統(tǒng)的設(shè)計(jì);(2)進(jìn)行簡(jiǎn)單界面設(shè)計(jì),能夠?qū)崿F(xiàn)友好的交互;(3)具有清晰的程序流程圖和數(shù)據(jù)結(jié)構(gòu)的詳細(xì)定義;(4)熟練掌握C++對(duì)文件的各種操作。
三、信息描述
有關(guān)該系統(tǒng)基本信息的描述(如:學(xué)號(hào)、姓名、系別、班級(jí)和各科成績(jī)等)。
四、功能描述
1.添加、刪除
系統(tǒng)將提示用戶輸入新添加學(xué)生的信息;由用戶輸入要?jiǎng)h除的學(xué)生的學(xué)號(hào),然后調(diào)用刪除函數(shù),刪除該名學(xué)生的資料。2.查找
首先由用戶輸入要查找的學(xué)生的學(xué)號(hào),系統(tǒng)用查找函數(shù)查找,然后系統(tǒng)就調(diào)用輸出函數(shù)。
3.修改
首先由用戶輸入要修改的學(xué)生的學(xué)號(hào),然后系統(tǒng)用修改函數(shù)查找,顯示該名學(xué)生的資料,然后系統(tǒng)提示用戶輸入需要修改的項(xiàng)目和新的資料。4.界面要求
開(kāi)始登錄管理界面、主要提示菜單界面(提示用戶執(zhí)行何種操作)等。
五、解決方案
1.分析程序的功能要求,劃分程序功能模塊。2.畫(huà)出系統(tǒng)流程圖。
3.代碼的編寫(xiě)、程序的功能調(diào)試。4.完成系統(tǒng)總結(jié)報(bào)告以及使用說(shuō)明書(shū)
六、進(jìn)度安排
此次課程設(shè)計(jì)時(shí)間為一周或兩周,分四個(gè)階段完成:
1.分析設(shè)計(jì)階段。指導(dǎo)教師應(yīng)積極引導(dǎo)學(xué)生自主學(xué)習(xí)和鉆研問(wèn)題,明確
設(shè)計(jì)要求,找出實(shí)現(xiàn)方法,按照需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)這幾個(gè)步驟進(jìn)行。
2.編碼調(diào)試階段:根據(jù)設(shè)計(jì)分析方案編寫(xiě)代碼,然后調(diào)試該代碼,實(shí)現(xiàn)
課題要求的功能。
3.總結(jié)報(bào)告階段:總結(jié)設(shè)計(jì)工作,寫(xiě)出課程設(shè)計(jì)說(shuō)明書(shū),要求學(xué)生寫(xiě)出需
求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、測(cè)試的步驟和內(nèi)容。4.考核階段。
七、撰寫(xiě)課程設(shè)計(jì)報(bào)告或課程設(shè)計(jì)總結(jié)
總結(jié)報(bào)告包括需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼(詳細(xì)寫(xiě)出編程步驟)、測(cè)試的步驟和內(nèi)容、課程設(shè)計(jì)總結(jié)、參考資料等,不符合以上要求者,則本次設(shè)計(jì)以不及格記。
八、參考資料
《C++語(yǔ)言程序設(shè)計(jì)教程》
網(wǎng)上相關(guān)資料(....略)
第三篇:C++課程設(shè)計(jì)(教務(wù)管理系統(tǒng))
#include
void menu(University uni);//菜單函數(shù)聲明
class Student//學(xué)生類(lèi) { public: string name;int age;string sex;int number;string major;
public: void disp_stu();
friend void file_in(University &uni);
friend void file_out(University uni);};void Student::disp_stu(){
}
class Institute//學(xué)院類(lèi) { public: string name;cout<<“學(xué)生姓名:”<
public: void add_stu();
//添加學(xué)生
bool delete_stu(int i);
// 刪除學(xué)生
bool modefy_stu(int i);
//修改學(xué)生信息
void disp_ins_1();
// 顯示本院學(xué)生信息
friend void file_in(University &uni);
friend void file_out(University uni);};void Institute::add_stu(){
} Student *p=new Student;cout<<“學(xué)生名字:”;cin>>(*p).name;cout<<“學(xué)生年齡:”;cin>>(*p).age;cout<<“學(xué)生性別:”;cin>>(*p).sex;cout<<“學(xué)生學(xué)號(hào):”;cin>>(*p).number;cout<<“學(xué)生專(zhuān)業(yè):”;cin>>(*p).major;head.Add(p);//在鏈表末尾增加一個(gè)節(jié)點(diǎn)
bool Institute::delete_stu(int i){
} head.Remove(i);//刪除鏈表指定位置節(jié)點(diǎn) return true;bool Institute::modefy_stu(int i){
Student *p=new Student;cout<<“學(xué)生名字:”;cin>>(*p).name;cout<<“學(xué)生年齡:”;cin>>(*p).age;cout<<“學(xué)生性別:”;cin>>(*p).sex;cout<<“學(xué)生學(xué)號(hào):”;cin>>(*p).number;cout<<“學(xué)生專(zhuān)業(yè):”;cin>>(*p).major;head.Remove(i);//刪除鏈表指定位置節(jié)點(diǎn) head.Insert(i,p);//在鏈表指定位置插入一個(gè)新節(jié)點(diǎn)
return true;} void Institute::disp_ins_1(){
}
class University//學(xué)校類(lèi) { public: string name;int age;string addr;List
void design_stu();//學(xué)生信息設(shè)置 int i;Node
cout<<“學(xué)院名字:”< } cout<<“-------”<pData->disp_stu();q=q->pNext; void add_ins(); //添加學(xué)院 bool delete_ins(int n); // 刪除學(xué)院 void design_cqut(); //設(shè)置學(xué)校信息 bool modefy_cqut(); //修改學(xué)校信息 void disp_cqut(); //顯示學(xué)校信息 void design_ins(); //學(xué)院信息設(shè)置 bool modefy_ins(int n); //修改學(xué)院 void disp_ins(); //顯示學(xué)院信息 void search_menu();void search_name(string n);//姓名 void search(string n);//性別//函數(shù)重載 void search(int n);//學(xué)號(hào) bool search_age(int n);//年齡 friend void file_in(University &uni);};friend void file_out(University uni); void University::design_stu(){ int i,m,j;int n;cout<<“ ★★★★★★學(xué)生信息設(shè)置★★★★★★ ”< { disp_ins(); cout< cout<<“輸入學(xué)生所在學(xué)院序號(hào):”< cin>>m;system(“cls”);//清屏 head.pCurrent=head.pHead;//當(dāng)前指針指向雙向鏈表頭指針 for(j=1;j { } } head.pCurrent=head.pCurrent->pNext;//當(dāng)前指針指后移 cout<<“輸入要添加的學(xué)生信息:”;head.pCurrent->pData->add_stu();cout<<“按任意鍵返回上一級(jí)菜單:”< disp_ins(); cout< cout<<“輸入學(xué)生所在學(xué)院序號(hào):”< cin>>m;system(“cls”);//清屏 head.pCurrent=head.pHead;//當(dāng)前指針指向雙向鏈表頭指針 for(j=1;j { head.pCurrent=head.pCurrent->pNext;//當(dāng)前指針指后移 } } head.pCurrent->pData->disp_ins_1();cout< { disp_ins(); cout< cout<<“輸入學(xué)生所在學(xué)院序號(hào):”< cin>>m;system(“cls”);//清屏 head.pCurrent=head.pHead;//當(dāng)前指針指向雙向鏈表頭指針 for(j=1;j { } } head.pCurrent=head.pCurrent->pNext;//當(dāng)前指針指后移 head.pCurrent->pData->disp_ins_1();cout< } cin>>n;head.pCurrent->pData->modefy_stu(n);cout<<“按任意鍵返回上一級(jí)菜單:”< void University::add_ins(){ } bool University::delete_ins(int n){ } bool University::modefy_ins(int n){ Institute *p=new Institute;cout<<“學(xué)院名字:”;cin>>(*p).name;head.Remove(n);//刪除鏈表指定位置節(jié)點(diǎn) head.Insert(n,p);//在指定位置插入節(jié)點(diǎn)信息 return true;head.Remove(n);//刪除鏈表指定位置節(jié)點(diǎn) return true;Institute *p=new Institute;cout<<“學(xué)院名字:”;cin>>(*p).name;head.Add(p);//在鏈表末尾增加一個(gè)節(jié)點(diǎn) } void University::disp_ins(){ int i;Node for(i=1;i<=head.size;i++){ cout<pData->name< } void University::design_ins(){ int i;int j;cout<<“ ★★★★★★學(xué)院信息設(shè)置★★★★★★ ”< cout< { } disp_ins();cout<<“按任意鍵返回上一級(jí)菜單:”< disp_ins(); add_ins(); cout<<“按任意鍵返回上一級(jí)菜單:”< getch();system(“cls”);//清屏 design_ins(); break;} case 3: { } disp_ins();cout<<“輸入刪除學(xué)院序號(hào):”;cin>>j;delete_ins(j);cout<<“按任意鍵返回上一級(jí)菜單:”< disp_ins();cout<<“輸入修改學(xué)院序號(hào):”;cin>>j;modefy_ins(j);cout<<“按任意鍵返回上一級(jí)菜單:”< } case 5:menu(*this);break;} } bool University::modefy_cqut(){ cout<<“學(xué)校名字:”;cin>>name;cout<<“創(chuàng)建年代:”;cin>>age;cout<<“學(xué)校地址:”;cin>>addr;return true;} void University::design_cqut(){ int i; University uni;cout<<“ ★★★★★★學(xué)校信息設(shè)置★★★★★★ cout< switch(i){ case 1: { disp_cqut(); cout<<”按任意鍵返回上一級(jí)菜單:“< getch();system(”cls“);//清屏 design_cqut(); break; } case 2: { modefy_cqut(); cout<<”按任意鍵返回上一級(jí)菜單:“< getch();system(”cls“);//清屏 design_cqut();break;”< } } } case 3:menu(uni);break; void University::disp_cqut(){ cout<<“學(xué)校有關(guān)信息為:”< } void University::search_name(string n){ int i,j,m=0;head.pCurrent=head.pHead;//當(dāng)前指針指向?qū)W院節(jié)點(diǎn)頭指針 for(i=0;i for(j=0;j { if(n==head.pCurrent->pData->head.pCurrent->pData->name) { } head.pCurrent->pData->head.pCurrent->pData->disp_stu();m++;head.pCurrent->pData->head.pCurrent=head.pCurrent->pData->head.pCurrent->pNext;//學(xué)生當(dāng)前指針后移 } bool University::search_age(int n){ int i,j,m=0;head.pCurrent=head.pHead;for(i=0;i } cout<<“有”< } head.pCurrent->pData->head.pCurrent=head.pCurrent->pData->head.pHead;for(j=0;j } head.pCurrent->pData->head.pCurrent->pData->disp_stu();m++;head.pCurrent->pData->head.pCurrent=head.pCurrent->pData->head.pCurrent->pNext;} head.pCurrent=head.pCurrent->pNext;} cout<<“有”< void University::search(string n){ } int i,j,m=0;head.pCurrent=head.pHead;for(i=0;i for(j=0;j if(n==head.pCurrent->pData->head.pCurrent->pData->sex){ head.pCurrent->pData->head.pCurrent->pData->disp_stu();} m++; head.pCurrent->pData->head.pCurrent=head.pCurrent->pData->head.pCurrent->pNext; } cout<<“有”< int i,j,m=0;head.pCurrent=head.pHead;for(i=0;i head.pCurrent->pData->head.pCurrent=head.pCurrent->pData->head.pHead; for(j=0;j { if(n==head.pCurrent->pData->head.pCurrent->pData->number) { head.pCurrent->pData->head.pCurrent->pData->disp_stu(); m++; } head.pCurrent->pData->head.pCurrent=head.pCurrent->pData->head.pCurrent->pNext; } head.pCurrent=head.pCurrent->pNext;} cout<<“有”< /****************************************信息查詢菜***********************************************/ void University::search_menu(){ int i;cout<<“ ★★★★★信息查詢顯示★★★★★”< switch(i){ case 1: { 單 disp_ins(); cout<<“按任意鍵返回上一級(jí)菜單:”< { } head.pCurrent=head.pHead;//當(dāng)前指針指向?qū)W院節(jié)點(diǎn)頭指針 for(i=0;i } head.pCurrent->pData->disp_ins_1();head.pCurrent=head.pCurrent->pNext;cout<<“按任意鍵返回上一級(jí)菜單:”< } int j;disp_ins();cout<<“請(qǐng)輸入學(xué)生所在學(xué)院序號(hào):”;cin>>i;system(“cls”);//清屏 head.pCurrent=head.pHead;for(j=1;jpNext;head.pCurrent->pData->disp_ins_1();cout<<“按任意鍵返回上一級(jí)菜單:”< case 4: { string n;cout<<“輸入要查詢的姓名:”;cin>>n;system(“cls”);//清屏 search_name(n); } cout<<“按任意鍵返回上一級(jí)菜單:”< { } int n1;cout<<“輸入要查詢的年齡:”;cin>>n1;search_age(n1);cout<<“按任意鍵返回上一級(jí)菜單:”< system(“cls”);//清屏 case 6: { } string n;cout<<“輸入要查詢的性別:”;cin>>n;system(“cls”);//清屏 search(n);cout<<“按任意鍵返回上一級(jí)菜單:”< } int n;cout<<“輸入要查詢的學(xué)號(hào):”;cin>>n;system(“cls”);//清屏 search(n);cout<<“按任意鍵返回上一級(jí)菜單:”< menu(*this); } } } break;/**********************************************************************/ { int i,j;ifstream inf(“cqutData.txt”,ios::in);inf>>uni.name;inf>>uni.age;inf>>uni.addr;inf>>uni.head.size;//學(xué)院個(gè)數(shù) for(i=0;i 導(dǎo)出文件數(shù)據(jù)void file_in(University &uni) Node else uni.head.pEnd->pNext=m;//把節(jié)點(diǎn)m賦給下一個(gè)學(xué)院信息節(jié)點(diǎn) m->pPrev=uni.head.pEnd;//節(jié)點(diǎn)m指向?qū)W院信息的尾節(jié)點(diǎn) uni.head.pCurrent=uni.head.pEnd=m;//學(xué)院信息的尾節(jié)點(diǎn)始終指向m節(jié)點(diǎn) inf>>uni.head.pCurrent->pData->head.size;//學(xué)生個(gè)數(shù) for(j=0;j Student *q=new Student;inf>>q->name;inf>>q->age;inf>>q->sex;inf>>q->number;inf>>q->major; Node n->pPrev=uni.head.pCurrent->pData->head.pEnd; uni.head.pCurrent->pData->head.pCurrent=uni.head.pCurrent->pData->head.pEnd=n;//學(xué)生信息的尾節(jié)點(diǎn)始終指向n節(jié)點(diǎn) } } } /************************************************************************************/ void file_out(University uni){ ofstream ouf(“cqutData.txt”,ios::out);int i,j;ouf< 導(dǎo)入文件數(shù)據(jù)ouf< uni.head.pCurrent=uni.head.pHead;//當(dāng)前指針指向?qū)W院節(jié)點(diǎn)頭指針 for(i=0;i ouf< ouf< uni.head.pCurrent->pData->head.pCurrent=uni.head.pCurrent->pData->head.pHead;//當(dāng)前指針指向?qū)W生節(jié)點(diǎn)頭指針 for(j=0;j ouf< uni.head.pCurrent->pData->head.pCurrent=uni.head.pCurrent->pData->head.pCurrent->pNext;//學(xué)生當(dāng)前指針后移 } } } uni.head.pCurrent=uni.head.pCurrent->pNext;//學(xué)院當(dāng)前指針后移 /************************退出系統(tǒng)菜單****************************/ void exit(University uni){ } int i;cout<<“是否保存修改內(nèi)容:”< { } file_out(uni);exit(0);break;case 2:{exit(0);break;} case 3: { menu(uni);break;} case 4: { file_out(uni); } } menu(uni);break; /***************************************************************************************/ void menu(University uni){ system(“cls”);/*清屏*/ int i;cout< 主菜單 cout<<“★★★★★★★★★★★★★主菜單★★★★★★★★★★★★★”< cout< cout< cout< } int main(){ University u; } file_in(u);menu(u);return 0;switch(i){ case 1:uni.design_cqut();break;case 2:uni.design_ins();break;case 3:uni.design_stu();break; case 4:uni.search_menu();break; case 5:exit(uni);break;} 1、課程設(shè)計(jì)的目的、任務(wù) 《匯編語(yǔ)言》課程設(shè)計(jì)對(duì)于鞏固匯編語(yǔ)言理論知識(shí),加強(qiáng)學(xué)生的實(shí)際動(dòng)手能力和提高學(xué)生綜合素質(zhì)十分必要。課程設(shè)計(jì)的目的主要是通過(guò)程序設(shè)計(jì)方法和技能的基本訓(xùn)練,鞏固在課堂上學(xué)到的有關(guān)程序設(shè)計(jì)的基本知識(shí)和基本方法,通過(guò)實(shí)際動(dòng)手能力的培養(yǎng),進(jìn)一步熟悉匯編語(yǔ)言的結(jié)構(gòu)和使用方法,達(dá)到能獨(dú)立閱讀、編制和調(diào)試一定規(guī)模的匯編語(yǔ)言程序的水平。 2、軟件需求分析和設(shè)計(jì) 2.1學(xué)生成績(jī)管理系統(tǒng)是對(duì)學(xué)生成績(jī)的管理,其中包括以下幾個(gè)模塊:(1).插入一個(gè)數(shù)據(jù)(插入學(xué)生學(xué)號(hào)以及語(yǔ)數(shù)外三個(gè)成績(jī))。(2)修改一個(gè)數(shù)據(jù)。(3)刪除學(xué)生成績(jī)數(shù)據(jù)。(4)查找學(xué)生成績(jī)。(5)查看學(xué)生成績(jī)的排名(6)查看學(xué)生成績(jī)分布(7)按esc鍵退出系統(tǒng) 2.2學(xué)生成績(jī)管理系統(tǒng)應(yīng)該包含以下信息:學(xué)號(hào),語(yǔ)文成績(jī),英語(yǔ)成績(jī),數(shù)學(xué)成績(jī)。因此,系統(tǒng)應(yīng)該提供以下功能:(1)輸出顯示菜單。(2)輸入學(xué)生的成績(jī)(3)修改學(xué)生成績(jī)(4)刪除學(xué)生成績(jī)(5)查詢學(xué)生成績(jī)(6)顯示學(xué)生成績(jī)排名(7)顯示成績(jī)分布統(tǒng)計(jì)(8)按esc鍵退出系統(tǒng) 2.3依據(jù)程序的功能需求,該系統(tǒng)的功能結(jié)構(gòu)圖如下 系統(tǒng)功能結(jié)構(gòu)圖 2.4 程序流程圖: 主程序流程圖 查找學(xué)生成績(jī) 插入學(xué)生學(xué)號(hào)及成績(jī) 修改學(xué)生的成績(jī) 顯示各個(gè)學(xué)科各分?jǐn)?shù)段的人數(shù) 3、程序?qū)崿F(xiàn)說(shuō)明 3.1學(xué)生管理系統(tǒng)中各子程序如下: (1).輸入全部學(xué)生學(xué)號(hào)以及語(yǔ)文,英語(yǔ),數(shù)學(xué)三科的成績(jī)。子程序名:insert 子程序描述:該子程序?yàn)檩斎胱殖绦颉O到y(tǒng)在開(kāi)始的時(shí)候是沒(méi)有數(shù)據(jù)的,通過(guò)該子程序可以初始化系統(tǒng),將學(xué)生的學(xué)號(hào)及成績(jī)輸入系統(tǒng)。 代碼: insert proc near;定義進(jìn)程子程序:插入學(xué)生,學(xué)號(hào)及 成績(jī) call input;調(diào)用input add n,1 ret insert endp (2).修改輸入的成績(jī)。子程序名:modify 子程序描述:通過(guò)子程序修改學(xué)生的成績(jī) 代碼: modify proc near;定義進(jìn)程子程序:修改學(xué)生學(xué)號(hào),成績(jī) md1:output mess1;輸出mess1 shuru;調(diào)用宏shuru:二位數(shù)據(jù)輸入 mov bl,n mov bh,0 mov al,dl mov si,0 md: cmp al,xh[si];先查找輸入的學(xué)生是否存在 je qq1_1;查到的話,就跳轉(zhuǎn)到qq1_1輸入修改的值,也就是重新輸入。;結(jié)果相等則跳轉(zhuǎn)到qq1_1 add si,1 cmp si,bx jbe md;小于等于則跳轉(zhuǎn)到md output mess;輸出mess jmp md1;不相等繼續(xù)輸入學(xué)號(hào) qq1_1:;轉(zhuǎn)入修改的值重新輸入。mov di,si output mess2 output mess4 mov si,0 mov cx,3 qq3_1:shuruu;cmp dx,78h; jbe qq2_1;output ts3;jmp qq1_1;qq2_1:mov buf[si],dl output bg;add si,1 loop qq3_1 mov al,buf[0];mov chi[di],al mov al,buf[1] 分別輸入語(yǔ)文,英語(yǔ),數(shù)學(xué)成績(jī),并將其放 在緩沖區(qū)buf中 比較輸入的成績(jī)是否大于120,如果大于120的 話,那么重 新輸入成績(jī) 小于等于則轉(zhuǎn)移到qq2_1 輸出ts3 跳轉(zhuǎn)到qq1_1 輸出空格 將存入buf中的成績(jī),分別賦值給存放對(duì)應(yīng)科 目的成績(jī)的數(shù)組 mov eng[di],al mov al,buf[2] mov mat[di],al ret modify endp (3).刪除學(xué)生的成績(jī)。子程序名:delete 子程序描述:通過(guò)子程序刪除學(xué)生的成績(jī) 代碼: de proc near;刪除某個(gè)學(xué)生的記錄 sc1:output mess1 shuru;調(diào)用宏shuru,接受輸入的學(xué)號(hào) mov bl,n mov bh,0 mov al,dl mov si,0 sc: cmp al,xh[si];查詢輸入學(xué)號(hào)的學(xué)生信息是否存在,不存在的話,重新輸入學(xué)號(hào) je sc2;相等則轉(zhuǎn)移到sc2 add si,1 cmp si,bx jbe sc;小于等于則轉(zhuǎn)移到sc output mess;輸出mess jmp sc1 sc2: sub bx,si cmp bx,0 je sc3;相等則轉(zhuǎn)移到sc3 mov cx,bx sc4:mov dl,chi[si+1] mov chi[si],dl mov dl,eng[si+1] mov eng[si],dl mov dl,mat[si+1] mov mat[si],dl mov dl,xh[si+1] mov xh[si],dl add si,1 loop sc4;loop循環(huán)指令,執(zhí)行操作(cx)<--(cx)-1.若 cx!=0,跳轉(zhuǎn)到標(biāo)號(hào)sc處循環(huán)執(zhí)行;cx=0,則推出 循環(huán),執(zhí)行l(wèi)oop的下一條指令 sub n,1 sc3: ret de endp (3).查詢學(xué)生的成績(jī)。子程序名:find 子程序描述:通過(guò)子程序查詢學(xué)生的成績(jī) 代碼: find proc near;定義進(jìn)程子程序:查找學(xué)生成績(jī) call sum;求學(xué)生的總成績(jī) call ping;求學(xué)生的平均成績(jī) bj1:output mess1;輸出mess1 shuru;二位數(shù)數(shù)據(jù)輸入 mov bl,n mov bh,0 mov al,dl mov si,0 bj: cmp al,xh[si];將輸入的學(xué)號(hào)與輸入的學(xué)號(hào)相比,je i;存在的話,將此學(xué)生的成績(jī)輸出。je表示結(jié)果相 等則轉(zhuǎn)移。add si,1 cmp si,bx jbe bj;output mess jmp bj1 i: output strr2 shuzi xh[si];shuzi output bg;mov al,chi[si] cbw;shuzii ax;shuzii output bg;mov al,eng[si] cbw;shuzii ax;shuzii output bg mov al,mat[si] cbw shuzii ax output bg; mov al,pj[si] cbw 小于等于則轉(zhuǎn)移到bj 為二位數(shù)據(jù)輸出 輸出空格 將字節(jié)變?yōu)樽?/p> 為三位數(shù)據(jù)輸出。輸出空格 將字節(jié)變?yōu)樽?/p> 為三位數(shù)據(jù)輸出 輸出空格的字符串,用于與標(biāo)題欄對(duì)齊 shuzii ax output bg mov ax,si mov bl,2 mul bl mov bx,ax shuzii zc[bx];shuzii為三位數(shù)據(jù)輸出 output bg;輸出空格的字符串,用于與標(biāo)題欄對(duì)齊 shuzi mc[si];shuzi為二位數(shù)據(jù)輸出 ret find endp (4).顯示學(xué)生的成績(jī)排名。子程序名:show 子程序描述:通過(guò)子程序顯示學(xué)生的成績(jī)排名 代碼: show proc near;定義進(jìn)程子程序:顯示結(jié)果排名 call sum;調(diào)用宏sum call ping;調(diào)用宏ping call rank;調(diào)用宏rank call shuchu;調(diào)用宏shuchu ret show endp 3.2程序運(yùn)行抓圖: 主菜單 修改學(xué)生成績(jī) 刪除學(xué)生成績(jī) 顯示各個(gè)學(xué)科各分?jǐn)?shù)段的人數(shù) 4、程序總結(jié) 通過(guò)兩個(gè)星期的學(xué)習(xí),努力,終于完成了報(bào)告。系統(tǒng)可以很好的運(yùn)行。這兩個(gè)多星期的時(shí)間,幾乎每天不是在敲代碼,就是在看代碼,查書(shū),上網(wǎng)。系統(tǒng)中用到了很多最近才學(xué)習(xí)的知識(shí),比如宏,子程序。這些都使得代碼的運(yùn)行效率提高了,代碼行數(shù)減少了。系統(tǒng)還用到了bios的清屏功能。這些功能如果不是做課程設(shè)計(jì),我想我很難會(huì)接觸到這些知識(shí)。 由于自己對(duì)知識(shí)掌握的不是很牢固,其中也會(huì)碰到一些困難。每當(dāng)遇到問(wèn)題的時(shí)候,我會(huì)先上網(wǎng)去查找,看看有沒(méi)有人提過(guò)這方面的問(wèn)題?;ヂ?lián)網(wǎng)是強(qiáng)大的,大部分的問(wèn)題通過(guò)網(wǎng)絡(luò)都可以解決。部分找不到的問(wèn)題,我就去請(qǐng)教班里學(xué)得好的同學(xué)。他們對(duì)知識(shí)的掌握遠(yuǎn)超過(guò)我。這樣下來(lái),很多問(wèn)題都迎刃而解了。 課程設(shè)計(jì)是一個(gè)很好的掌握書(shū)本上知識(shí)的過(guò)程。平時(shí)上課之后,自己都不會(huì)想著去敲一些代碼聯(lián)系聯(lián)系。通過(guò)做課程設(shè)計(jì),將理論與實(shí)踐結(jié)合了起來(lái),對(duì)知識(shí)的理解更加深入了。 “成績(jī)管理系統(tǒng)”課程設(shè)計(jì)指導(dǎo)書(shū) 課題名稱:學(xué)生成績(jī)管理系統(tǒng) 設(shè)計(jì)目標(biāo):按照軟件工程的規(guī)范,以SQL Server或Oracle為后臺(tái)數(shù)據(jù)庫(kù),以Visual C++、Delphi等為前端開(kāi)發(fā)工具,設(shè)計(jì)并實(shí)現(xiàn)一個(gè)能模擬高等學(xué)校學(xué)生成績(jī)管理的系統(tǒng)。 需求描述: 學(xué)生成績(jī)管理系統(tǒng)中: 1.系統(tǒng)用戶 系統(tǒng)的用戶是學(xué)校的學(xué)生、教師和管理員。學(xué)生使用本系統(tǒng)查詢自己的成績(jī)。教師使用本系統(tǒng)錄入和查詢自己所授課程的考試成績(jī)。教學(xué)管理員可以查詢所有課程成績(jī),并使用本系統(tǒng)進(jìn)行成績(jī)的統(tǒng)計(jì)和生成報(bào)表。 2.系統(tǒng)功能 (1)成績(jī)錄入: 教師可以查詢自己本學(xué)期所授課程,并錄入學(xué)生的考試成績(jī)。錄入過(guò) 程中,可以暫存已錄入的成績(jī),當(dāng)錄入完成后提交。 (2)成績(jī)維護(hù): 教師在提交前,可以修改已錄入或暫存的學(xué)生成績(jī);但提交后,則只 能查詢不能再進(jìn)行任何修改。 教學(xué)管理員可以清除教師已提交的成績(jī)。 (3)成績(jī)查詢: 教師、教學(xué)管理員可以查詢學(xué)生考試成績(jī)。學(xué)生只允許查詢自己的考 試成績(jī),教師只允許查詢自己所授課程的成績(jī)。 (4)成績(jī)統(tǒng)計(jì): 教學(xué)管理員可以按課程、按學(xué)生、按班級(jí)等進(jìn)行成績(jī)統(tǒng)計(jì)。 教學(xué)管理員根據(jù)核算出的總評(píng)成績(jī)統(tǒng)計(jì)處于優(yōu)、良、中、及格、不及 格的學(xué)生人數(shù)以及占總?cè)藬?shù)的百分比。其中100-90為優(yōu),89-80為良,79-70為中,69-60為及格,60分以下為不及格。 按要求輸出成績(jī)?cè)趦?yōu)、良、中、及格、不及格各區(qū)間的學(xué)生學(xué)號(hào)。 結(jié)果形式: 提交課程設(shè)計(jì)報(bào)告、源程序和可演示的軟件 課程設(shè)計(jì)報(bào)告要求:詳見(jiàn)課程設(shè)計(jì)模板 課程設(shè)計(jì)參考思路: (1)熟悉數(shù)據(jù)庫(kù)和開(kāi)發(fā)工具,掌握開(kāi)發(fā)工具與本地?cái)?shù)據(jù)庫(kù)的連接方法。 (2)理解系統(tǒng)的信息需求,進(jìn)行合理的數(shù)據(jù)庫(kù)設(shè)計(jì),建立各數(shù)據(jù)庫(kù)表。 (3)理解系統(tǒng)的功能需求,設(shè)計(jì)應(yīng)用軟件。結(jié)合Delphi 或VC++進(jìn)行系統(tǒng)界面 (窗體、菜單以及相應(yīng)控制按鈕)的設(shè)計(jì)、連接與操縱數(shù)據(jù)庫(kù)方案的設(shè)計(jì),編寫(xiě)程序。 (4)系統(tǒng)運(yùn)行、調(diào)試并完善。 (5)撰寫(xiě)設(shè)計(jì)報(bào)告。第四篇:語(yǔ)言課程設(shè)計(jì)-學(xué)生成績(jī)管理系統(tǒng)
第五篇:課程設(shè)計(jì)--成績(jī)管理系統(tǒng)