




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
仲愷農(nóng)業(yè)工程學(xué)院課程設(shè)計(jì)報告班級管理系統(tǒng)課程面向?qū)ο笳n程設(shè)計(jì)姓名院(系)計(jì)算機(jī)科學(xué)與工程學(xué)院專業(yè)年級計(jì)算機(jī)科學(xué)與技術(shù)班學(xué)號指導(dǎo)教師日期2011年8月29日-2011年9月12日仲愷農(nóng)業(yè)工程學(xué)院教務(wù)處制目錄1.需求與功能分析 11.1需求分析 11.2功能分析 11.2.1系統(tǒng)功能分析 12.系統(tǒng)框架圖 13.類圖設(shè)計(jì) 24.對每個類的說明,包括數(shù)據(jù)成員、成員函數(shù)的含義與功能 25.系統(tǒng)中定義的其它非成員函數(shù)及其說明 76.舉例說明1、2個比較有特點(diǎn)的算法 107.存在的問題及對策 148.用戶手冊及測試結(jié)果 148.1用戶手冊 148.2測試結(jié)果 149.心得體會 1810.參考文獻(xiàn) 1811.附:程序源代碼 191.需求與功能分析1.1需求分析21世紀(jì)以來,人類經(jīng)濟(jì)高速發(fā)展,人們發(fā)生了日新月異的變化,特別是計(jì)算機(jī)的應(yīng)用及普及到經(jīng)濟(jì)和社會生活的各個領(lǐng)域。使原本的舊的管理方法越來越不適應(yīng)現(xiàn)在社會的發(fā)展。許多人還停留在以前的手工操作。這大大地阻礙了人類經(jīng)濟(jì)的發(fā)展。為了適應(yīng)現(xiàn)代社會人們高度強(qiáng)烈的時間觀念,班級管理系統(tǒng)軟件為學(xué)校辦公室?guī)砹藰O大的方便。使用班級信息管理系統(tǒng)能夠快速有效的對班級學(xué)生信息進(jìn)行高效率的管理分類。能夠節(jié)省下大量的時間,而且能對班級信息進(jìn)行有效的分類,使管理過程更加輕松,更加有效。1.2功能分析本系統(tǒng)性能力求易于使用,具體有較高的擴(kuò)展性和可維護(hù)性,其功能主要分為六大類:用戶管理:用于對用戶的添加、修改及查詢。學(xué)生信息管理:添加、刪除、輸出、修改學(xué)生信息等。學(xué)生信息查詢:對學(xué)生信息的查詢,直接輸出學(xué)生信息。1.2.1系統(tǒng)功能分析錄入功能:為一用戶提供相應(yīng)的錄入功能。修改功能:對錄入錯誤的信息進(jìn)行修改的功能,避免由于輸入錯誤而引起的信息保存錯誤。刪除功能:對于過期信息的處理辦法,直接進(jìn)行刪除處理。不保存不必要的信息。輸出功能:將所有學(xué)生的信息進(jìn)行一次性的輸出,方便查閱。退出功能:結(jié)束并關(guān)閉系統(tǒng)。2.系統(tǒng)框架圖圖1系統(tǒng)框架3.類圖設(shè)計(jì)classstudent{private:intsno;//學(xué)號charname[8],sex[2];intage;charbirth[10];//出生日期charfolk[2];//民族public:student();~student();voidluru();//學(xué)生信息錄入構(gòu)造函數(shù)voidshuchu();//學(xué)生信息輸出構(gòu)造函數(shù)voidsetsno(inttemp){sno=temp;};intgetsno(){returnsno;};char*getname(){returnname;};char*getspeciality();voidchange();//學(xué)生信息修改構(gòu)造函數(shù)voidread();voidwrite();};4.對每個類的說明,包括數(shù)據(jù)成員、成員函數(shù)的含義與功能Student類:數(shù)據(jù)成員:intsno;//學(xué)號charname[8],sex[2];intage;charbirth[10];//出生日期charfolk[2];//民族成員函數(shù):voidluru();//學(xué)生信息錄入構(gòu)造函數(shù){ifstreamtfile("max.txt",ios::binary|ios::nocreate);tfile.close();ofstreamofile("max.txt");tfile.close();cout<<"請輸入學(xué)生信息"<<endl;cout<<"學(xué)生學(xué)號:"<<endl;cin>>sno;cout<<"學(xué)生姓名:"<<endl;cin>>name;cout<<"性別(男,女):"<<endl;cin>>sex;while(strcmp(sex,"男")!=0&&strcmp(sex,"女")!=0){cout<<"錯誤請重新輸入!"<<endl;cin>>sex;}cout<<"年齡:"<<endl;cin>>age;cout<<"出生日期:"<<endl;cin>>birth;cout<<"民族:"<<endl;cin>>folk;}voidshuchu();//學(xué)生信息輸出構(gòu)造函數(shù){cout<<setw(8)<<setiosflags(ios::left) <<sno<<setw(10)<<setiosflags(ios::left) <<name<<setw(8)<<setiosflags(ios::left)<<sex<<setw(8)<<setiosflags(ios::left)<<age<<setw(10)<<setiosflags(ios::left)<<birth<<setw(8)<<setiosflags(ios::left)<<folk<<endl;}voidsetsno(inttemp){sno=temp;};intgetsno(){returnsno;};char*getname(){returnname;};char*getspeciality();voidchange();//學(xué)生信息修改構(gòu)造函數(shù){cout<<"請輸入要修改人員的信息:"<<endl;cout<<"是否改寫學(xué)號(Y/N)"<<endl;charch;cin>>ch;if(ch=='Y'||ch=='y'){cout<<"請輸入新學(xué)號"<<endl;cin>>sno;cout<<"請輸入新姓名:"<<endl;cin>>name;}cout<<"性別(男,女):"<<endl;cin>>sex;if(strcmp(sex,"男")!=0&&strcmp(sex,"女")!=0){cout<<"輸入錯誤請重新輸入!:"<<endl;cin>>sex;}cout<<"年齡:"<<endl;cin>>age;cout<<"出生日期:"<<endl;cin>>birth;cout<<"民族:"<<endl;cin>>folk;cout<<"你剛剛輸入的學(xué)生信息如下:"<<endl;shuchu();}voidread();//讀數(shù)據(jù){ifstreamafile("student.txt",ios::nocreate);afile.read((char*)&information,sizeofinformation);}voidwrite();//寫入數(shù)據(jù){ofstreambfile("student.txt",ios::app);bfile.write((char*)&information,sizeofinformation);}
5.系統(tǒng)中定義的其它非成員函數(shù)及其說明voidshanchu()//刪除函數(shù){intch;cout<<"請輸入要刪除的學(xué)生的學(xué)號:"<<endl;cin>>ch;ifstreamout("student.txt",ios::nocreate);ofstreamin("student1.txt",ios::trunc);while(out){if(out.read((char*)&information,sizeofinformation))if(ch!=information.getsno()){in.write((char*)&information,sizeofinformation);}voidmenu()//菜單函數(shù){cout<<"〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓"<<endl;cout<<"〓Ψ‖班級管理系統(tǒng)‖Ψ〓"<<endl;cout<<"〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓"<<endl;cout<<""<<endl;cout<<"0.退出系統(tǒng)"<<endl;cout<<"1.學(xué)生信息錄入"<<endl;cout<<"2.學(xué)生信息修改"<<endl;cout<<"3.學(xué)生信息刪除"<<endl;cout<<"4.學(xué)生信息輸出"<<endl;cout<<"請選擇操作(0=======4)"<<endl;}voidinput(void)//輸入判停函數(shù){charch;information.luru();write();cout<<"你還要輸入下一位學(xué)生的信息嗎(Y/N)!"<<endl;cin>>ch;if(ch=='Y'||ch=='y')input();}voidchange()//學(xué)生信息修改函數(shù){intch,p=0,l=0;cout<<"請輸入你要修改的學(xué)生的學(xué)號:"<<endl;cin>>ch;ifstreamefile("student.txt",ios::nocreate);while(efile.good()){efile.seekg(sizeof(information)*p);if(efile.read((char*)&information,sizeofinformation)){if(ch==information.getsno()){information.shuchu();ch=0;information.change();ofstreamffile("student.txt",ios::nocreate|ios::in);ffile.seekp(sizeof(information)*p);ffile.write((char*)&information,sizeofinformation);ffile.close();l++;return;}}p++;}efile.close();if(l!=1)//判斷該學(xué)生是否存在cout<<"沒有你所要修改的學(xué)生信息!"<<endl;}voidselect()//選擇菜單函數(shù){intch;do{cin>>ch;switch(ch){case0:exit(0);menu();break;case1:input();menu();break;case2:change();menu();break;case3:shanchu();menu();break;case4:output();menu();break;default:menu();cout<<"輸入無效≌請重新輸入(0========4)"<<endl;break;}}while(1);}6.舉例說明1、2個比較有特點(diǎn)的算法先輸入想要進(jìn)行修改的學(xué)生的學(xué)號,然后再進(jìn)行判斷。判斷此學(xué)號是否存在。如果存在,則進(jìn)行修改,如果不存在,輸出錯誤信息并要求重新輸入。voidchange()//修改函數(shù){intch,p=0,l=0;cout<<"請輸入你要修改的學(xué)生的學(xué)號:"<<endl;cin>>ch;ifstreamefile("student.txt",ios::nocreate);while(efile.good()){efile.seekg(sizeof(information)*p);if(efile.read((char*)&information,sizeofinformation)){if(ch==information.getsno()){information.shuchu();ch=0;information.change();ofstreamffile("student.txt",ios::nocreate|ios::in);ffile.seekp(sizeof(information)*p);ffile.write((char*)&information,sizeofinformation);ffile.close();l++;return;}}p++;}efile.close();if(l!=1)cout<<"沒有你所要修改的學(xué)生信息!"<<endl;}通過輸入學(xué)號,打開文件,對文件里面的數(shù)據(jù)進(jìn)行操作。根據(jù)學(xué)號,對學(xué)生信息進(jìn)行刪除處理。voidshanchu()//刪除函數(shù){intch;cout<<"請輸入要刪除的學(xué)生的學(xué)號:"<<endl;cin>>ch;ifstreamout("student.txt",ios::nocreate);ofstreamin("student1.txt",ios::trunc);while(out){if(out.read((char*)&information,sizeofinformation))if(ch!=information.getsno()){in.write((char*)&information,sizeofinformation);}}in.close();out.close();ofstreamgfile("student.txt",ios::trunc);gfile.close();ifstreamifile("student1.txt",ios::nocreate);ofstreamhfile("student.txt",ios::trunc);while(ifile){if(ifile.read((char*)&information,sizeofinformation))hfile.write((char*)&information,sizeofinformation);}ifile.close();hfile.close();}選擇菜單函數(shù),對要進(jìn)行的操作選項(xiàng)進(jìn)行選擇,選擇是否錄入新的學(xué)生信息,或者是修改已有的學(xué)生信息,刪除過期的學(xué)生信息。voidselect()//選擇菜單函數(shù){intch;do{cin>>ch;switch(ch){case0:exit(0);menu();break;case1:input();menu();break;case2:change();menu();break;case3:shanchu();menu();break;case4:output();menu();break;default:menu();cout<<"輸入無效≌請重新輸入(0========4)"<<endl;break;}}while(1);}7.存在的問題及對策在編寫代碼的過程中,由于對數(shù)據(jù)庫的理解運(yùn)用能力的不足,缺乏這一方面的知識,結(jié)果用了文件流的方式來代替??偟膩碚f。。這個程序是非常簡單的。系統(tǒng)功能也較為簡單,但是比較使用。沒有實(shí)現(xiàn)一些比較復(fù)雜的功能,也都是由于平常動手能力不足的結(jié)果,需要在今后的學(xué)習(xí)中去鞏固去完善。8.用戶手冊及測試結(jié)果8.1用戶手冊該程序使用簡單,只需要在菜單輸入想要進(jìn)行的操作選項(xiàng),然后按照指示進(jìn)行輸入、運(yùn)行即可。8.2測試結(jié)果圖2主操作界面:正常圖3學(xué)生信息輸入界面:正常圖4增加輸入:正常圖5學(xué)生信息修改:正常圖6學(xué)生信息刪除結(jié)果:正常圖7退出系統(tǒng):正常9.心得體會在本次實(shí)驗(yàn)過程中,由于是第一次做系統(tǒng)。一開始對實(shí)現(xiàn)功能很模糊。不知道從哪里下手。在網(wǎng)上搜索了很多,最后從別人的模板中找到了適用的方法。從他們的代碼中學(xué)習(xí)各個函數(shù)實(shí)現(xiàn)的辦法。雖然實(shí)現(xiàn)了一定的功能,但是還是存在很多的缺陷。數(shù)據(jù)庫也沒有成功的實(shí)現(xiàn),這些在以后的學(xué)習(xí)中都需要進(jìn)行學(xué)習(xí)和提高。參考文獻(xiàn)[1]《C++面向?qū)ο蟪绦蛟O(shè)計(jì)》杜茂康吳健王永編著北京電子工業(yè)出版社[2]《C++基礎(chǔ)教程》徐孝凱編著河南電子科技出版社
11.附:程序源代碼頭文件://class.hclassstudent{ private:intsno;//學(xué)號charname[8],sex[2];intage;charbirth[10];//出生日期charfolk[2];//民族 public:student();~student();voidluru();//學(xué)生信息錄入構(gòu)造函數(shù)voidshuchu();//學(xué)生信息輸出構(gòu)造函數(shù)voidsetsno(inttemp){sno=temp;};intgetsno(){returnsno;};char*getname(){returnname;};char*getspeciality();voidchange();//學(xué)生信息修改構(gòu)造函數(shù)voidread();voidwrite();};student::student(){}student::~student(){}voidstudent::luru(){ifstreamtfile("max.txt",ios::binary|ios::nocreate);tfile.close();ofstreamofile("max.txt");tfile.close();cout<<"請輸入學(xué)生信息"<<endl;cout<<"學(xué)生學(xué)號:"<<endl;cin>>sno;cout<<"學(xué)生姓名:"<<endl;cin>>name;cout<<"性別(男,女):"<<endl;cin>>sex;while(strcmp(sex,"男")!=0&&strcmp(sex,"女")!=0){cout<<"錯誤請重新輸入!"<<endl;cin>>sex;}cout<<"年齡:"<<endl;cin>>age;cout<<"出生日期:"<<endl;cin>>birth;cout<<"民族:"<<endl;cin>>folk;}voidstudent::shuchu(){cout<<setw(8)<<setiosflags(ios::left) <<sno<<setw(10)<<setiosflags(ios::left) <<name<<setw(8)<<setiosflags(ios::left)<<sex <<setw(8)<<setiosflags(ios::left)<<age<<setw(10) <<setiosflags(ios::left)<<birth<<setw(8) <<setiosflags(ios::left)<<folk<<endl;}voidstudent::change(){cout<<"請輸入要修改人員的信息:"<<endl;cout<<"是否改寫學(xué)號(Y/N)"<<endl;charch;cin>>ch;if(ch=='Y'||ch=='y'){cout<<"請輸入新學(xué)號"<<endl;cin>>sno;cout<<"請輸入新姓名:"<<endl;cin>>name;}cout<<"性別(男,女):"<<endl;cin>>sex;if(strcmp(sex,"男")!=0&&strcmp(sex,"女")!=0){cout<<"輸入錯誤請重新輸入!:"<<endl;cin>>sex;}cout<<"年齡:"<<endl;cin>>age;cout<<"出生日期:"<<endl;cin>>birth;cout<<"民族:"<<endl;cin>>folk;cout<<"你剛剛輸入的學(xué)生信息如下:"<<endl;shuchu();}studentinformation;//student類的全局變量voidmenu(){cout<<"〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓"<<endl;cout<<"〓Ψ‖班級管理系統(tǒng)‖Ψ〓"<<endl;cout<<"〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓"<<endl;cout<<""<<endl;cout<<"0.退出系統(tǒng)"<<endl;cout<<"1.學(xué)生信息錄入"<<endl;cout<<"2.學(xué)生信息修改"<<endl;cout<<"3.學(xué)生信息刪除"<<endl;cout<<"4.學(xué)生信息輸出"<<endl;cout<<"請選擇操作(0=======4)"<<endl;}voidread(){ifstreamafile("student.txt",ios::nocreate);afile.read((char*)&information,sizeofinformation);}voidwrite(){ofstreambfile("student.txt",ios::app);bfile.write((char*)&information,sizeofinformation);}voidinput(void){charch;information.luru();write();cout<<"你還要輸入下一位學(xué)生的信息嗎(Y/N)!"<<endl;cin>>ch;if(ch=='Y'||ch=='y')input();}voidchange(){intch,p=0,l=0;cout<<"請輸入你要修改的學(xué)生的學(xué)號:"<<endl;cin>>ch;ifstreamefile("student.txt",ios::nocreate);while(efile.good()){efile.seekg(sizeof(information)*p);if(efile.read((char*)&information,sizeofinformation)){if(ch==information.getsno()){information.shuchu();ch=0;information.change();ofstreamffile("student.txt",ios::nocreate|ios::in);ffile.seekp(sizeof(information)*p);ffile.write((char*)&information,sizeofinformation);ffile.close();l++;return;}}p++;}efile.close();if(l!=1)cout<<"沒有你所要修改的學(xué)生信息!"<<endl;}voidshanchu()//刪除函數(shù){intch;cout<<"請輸入要刪除的學(xué)生的學(xué)號:"<<endl;cin>>ch;ifstreamout("student.txt",ios::nocreate);ofstreamin("student1.txt",ios::trunc);while(out){if(out.read((char*)&information,sizeofinformation))if(ch!=information.getsno()){in.write((char*)&information,sizeofinformation);}}in.c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 某煙草公司機(jī)關(guān)綜合大樓室內(nèi)裝飾工程施工組織設(shè)計(jì)方案
- 9《小水滴的訴說》《快來幫幫我》教學(xué)設(shè)計(jì)-2023-2024學(xué)年道德與法治二年級下冊統(tǒng)編版
- 1 有余數(shù)的除法-第二課時(教學(xué)設(shè)計(jì))-2023-2024學(xué)年二年級下冊數(shù)學(xué)蘇教版
- 2024年春八年級生物下冊 第七單元 第二章 第三節(jié) 基因的顯性和隱性教學(xué)實(shí)錄 (新版)新人教版
- 5魯濱遜漂流記(節(jié)選)教學(xué)設(shè)計(jì)-2023-2024學(xué)年六年級下冊語文統(tǒng)編版
- 2024年秋九年級歷史上冊 第20課 第一次工業(yè)革命教學(xué)實(shí)錄 新人教版
- 1 在觀察中比較 教學(xué)設(shè)計(jì)-2023-2024學(xué)年科學(xué)一年級上冊教科版
- 2丁香結(jié)教學(xué)設(shè)計(jì)-2024-2025學(xué)年六年級上冊語文統(tǒng)編版
- 2023七年級歷史上冊 第二單元 夏商周時期:早期國家與社會變革 第7課 戰(zhàn)國時期的社會變化教學(xué)實(shí)錄 新人教版
- 2024年春八年級物理下冊 第十二章 第2節(jié) 滑輪教學(xué)實(shí)錄 (新版)新人教版
- 交通運(yùn)輸概論全集課件
- 做一個專業(yè)的班主任課件
- 電氣接線工藝培訓(xùn)
- 第7課《誰是最可愛的人》 統(tǒng)編版語文七年級下冊
- 2020北京各區(qū)中考一模分類匯編-10幾何壓軸(答案含解析)
- 盟史簡介12.10.18課件
- 供應(yīng)鏈的三道防線:需求預(yù)測、庫存計(jì)劃、供應(yīng)鏈執(zhí)行
- 雙新背景下小學(xué)英語單元整體作業(yè)設(shè)計(jì)與優(yōu)化探索 論文
- 全過程造價咨詢服務(wù)實(shí)施方案
- 大學(xué)生勞動教育教程全套PPT完整教學(xué)課件
- 實(shí)用參考從合規(guī)到績效:宋志平談央企學(xué)習(xí)型董事會建設(shè)
評論
0/150
提交評論