C++課程設(shè)計(jì)-高校人事管理系統(tǒng)(完整版)_第1頁(yè)
C++課程設(shè)計(jì)-高校人事管理系統(tǒng)(完整版)_第2頁(yè)
C++課程設(shè)計(jì)-高校人事管理系統(tǒng)(完整版)_第3頁(yè)
C++課程設(shè)計(jì)-高校人事管理系統(tǒng)(完整版)_第4頁(yè)
C++課程設(shè)計(jì)-高校人事管理系統(tǒng)(完整版)_第5頁(yè)
已閱讀5頁(yè),還剩187頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

C++課程設(shè)計(jì)——高校人事管理系統(tǒng)(完整版)(文檔可以直接使用,也可根據(jù)實(shí)際需要修改使用,可編輯歡迎下載)

C++課程設(shè)計(jì)——高校人事管理系統(tǒng)(完整版)(文檔可以直接使用,也可根據(jù)實(shí)際需要修改使用,可編輯歡迎下載)課程設(shè)計(jì)報(bào)告課程名稱(chēng)面向?qū)ο蟪绦蛟O(shè)計(jì)課題名稱(chēng)高校人事管理系統(tǒng)專(zhuān)業(yè)通信工程班級(jí)通信1101學(xué)號(hào)202103020217姓名皮鋒指導(dǎo)教師李峰、譚曉蘭、張益星2021年12月22日

湖南工程學(xué)院課程設(shè)計(jì)任務(wù)書(shū)課程名稱(chēng)面向?qū)ο蟪绦蛟O(shè)計(jì)課題高校人事管理系統(tǒng)專(zhuān)業(yè)班級(jí)通信工程學(xué)生姓名皮鋒學(xué)號(hào)202103020217指導(dǎo)老師李峰、譚曉蘭、張益星審批任務(wù)書(shū)下達(dá)日期2021年12月22日任務(wù)完成日期2021年1月6日二、進(jìn)度安排第17周星期四14時(shí):00分——18時(shí):00分星期五19時(shí):分——21時(shí):00分第18周星期三19時(shí):00分——21時(shí):00分星期四19時(shí):00分——21時(shí):00分實(shí)驗(yàn)內(nèi)容課題4:高校人事管理系統(tǒng)(一)、課程設(shè)計(jì)題目:高校人事管理系統(tǒng)(二)、目的與要求:1、目的:(1)要求學(xué)生達(dá)到熟練掌握C++語(yǔ)言的基本知識(shí)和技能;(2)基本掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思路和方法;(3)能夠利用所學(xué)的基本知識(shí)和技能,解決簡(jiǎn)單的面向?qū)ο蟪绦蛟O(shè)計(jì)問(wèn)題。2、基本要求:(1)要求利用面向?qū)ο蟮姆椒ㄒ约癈++的編程思想來(lái)完成系統(tǒng)的設(shè)計(jì);(2)要求在設(shè)計(jì)的過(guò)程中,建立清晰的類(lèi)層次;(3)在系統(tǒng)中至少要定義四個(gè)類(lèi),每個(gè)類(lèi)中要有各自的屬性和方法;(4)在系統(tǒng)的設(shè)計(jì)中,至少要用到面向?qū)ο蟮囊环N機(jī)制。3、創(chuàng)新要求:在基本要求達(dá)到后,可進(jìn)行創(chuàng)新設(shè)計(jì),如根據(jù)查找結(jié)果進(jìn)行修改的功能。4、寫(xiě)出設(shè)計(jì)說(shuō)明書(shū)(三)、設(shè)計(jì)方法和基本原理:1、問(wèn)題描述(功能要求):某高校,主要人員有:在職人員(行政人員、教師、一般員工)、退休人員。現(xiàn)在,需要存儲(chǔ)這些人員的人事檔案信息:編號(hào)、姓名、性別、年齡、職務(wù)、級(jí)別、職稱(chēng)、政治面貌、最高學(xué)歷、任職時(shí)間、來(lái)院時(shí)間、工資。其中行政人員只有職務(wù)和級(jí)別,教師只有職務(wù)和職稱(chēng),一般員工只有職務(wù),退休人員則沒(méi)有職務(wù)、級(jí)別、職稱(chēng),但有退休時(shí)間。要求:(1)添加刪除功能:能根據(jù)學(xué)院人事的變動(dòng)情況,添加刪除記錄;(2)查詢功能:能根據(jù)編號(hào)和姓名進(jìn)行查詢;(3)編輯功能(高級(jí)):根據(jù)查詢對(duì)相應(yīng)的記錄進(jìn)行修改,并存儲(chǔ);(4)統(tǒng)計(jì)功能:能根據(jù)多種參數(shù)進(jìn)行人員的統(tǒng)計(jì)(在職人數(shù)、黨員人數(shù)、女工人數(shù)、高學(xué)歷高職稱(chēng)人數(shù));(5)保存功能:能對(duì)輸入的數(shù)據(jù)進(jìn)行相應(yīng)的存儲(chǔ),(擴(kuò)展要求:要求重載插入和提取符以完成數(shù)據(jù)的保存和打開(kāi))。(6)人員編號(hào)在生成人員信息時(shí)同時(shí)生成,每輸入一個(gè)人員信息編號(hào)順序加1。2、問(wèn)題的解決方案:根據(jù)系統(tǒng)功能要求,可以將問(wèn)題解決分為以下步驟:(1)應(yīng)用系統(tǒng)分析,建立該系統(tǒng)的功能模塊框圖以及界面的組織和設(shè)計(jì);(2)分析系統(tǒng)中的各個(gè)實(shí)體及它們之間的關(guān)系包括屬性和行為;(3)根據(jù)問(wèn)題描述,設(shè)計(jì)系統(tǒng)的類(lèi)層次;(4)完成類(lèi)層次中各個(gè)類(lèi)的描述(包括屬性和方法);(5)完成類(lèi)中各個(gè)成員函數(shù)的定義;(6)完成系統(tǒng)的應(yīng)用模塊;(7)功能調(diào)試;(8)完成系統(tǒng)總結(jié)報(bào)告以及系統(tǒng)使用說(shuō)明書(shū)。

目錄TOC\o"1-2"\h\z\u1. 系統(tǒng)需求分析 12. 總體設(shè)計(jì) 13. 詳細(xì)設(shè)計(jì) 24. 系統(tǒng)調(diào)試 185. 結(jié)果分析 206. 總結(jié) 20系統(tǒng)需求分析1.用戶需求:(1)添加刪除功能:能根據(jù)學(xué)院人事的變動(dòng)情況,添加刪除記錄;(2)查詢功能:能根據(jù)編號(hào)和姓名進(jìn)行查詢;(3)編輯功能(高級(jí)):根據(jù)查詢對(duì)相應(yīng)的記錄進(jìn)行修改,并存儲(chǔ);(4)統(tǒng)計(jì)功能:能根據(jù)多種參數(shù)進(jìn)行人員的統(tǒng)計(jì)(在職人數(shù)、黨員人數(shù)、女工人數(shù)、高學(xué)歷高職稱(chēng)人數(shù));(5)保存功能:能對(duì)輸入的數(shù)據(jù)進(jìn)行相應(yīng)的存儲(chǔ),(擴(kuò)展要求:要求重載插入和提取符以完成數(shù)據(jù)的保存和打開(kāi))。(6)人員編號(hào)在生成人員信息時(shí)同時(shí)生成,每輸入一個(gè)人員信息編號(hào)順序加1。2.系統(tǒng)設(shè)計(jì)目標(biāo):(1)要求學(xué)生達(dá)到熟練掌握C++語(yǔ)言的基本知識(shí)和技能;(2)基本掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思路和方法;(3)能夠利用所學(xué)的基本知識(shí)和技能,解決簡(jiǎn)單的面向?qū)ο蟪绦蛟O(shè)計(jì)問(wèn)題。3.系統(tǒng)擬實(shí)現(xiàn)的功能:對(duì)高校人事系統(tǒng)進(jìn)行添加,編輯,查詢,統(tǒng)計(jì),保存功能。2.總體設(shè)計(jì)1.系統(tǒng)功能分析(1)資料維護(hù):系統(tǒng)維護(hù)包括對(duì)各種表記錄的修改、刪除、添加等操作。(2)資料維護(hù):對(duì)數(shù)據(jù)表中的信息進(jìn)行瀏覽。(3)系統(tǒng)查詢:可以按職工編號(hào)、姓名等相關(guān)信息進(jìn)行詳細(xì)或模糊查詢。(4)報(bào)表統(tǒng)計(jì):包括統(tǒng)計(jì)職工編號(hào)、職工姓名、職工性別、所在部門(mén)、職工年齡、工作日期、基本工資、職稱(chēng)、職務(wù)和簡(jiǎn)歷等字段。(5)其它操作:系統(tǒng)封面、人性化提示信息。2.系統(tǒng)功能模塊劃分與設(shè)計(jì)系統(tǒng)功能模塊劃分:數(shù)據(jù)查找與瀏覽、數(shù)據(jù)修改、報(bào)表顯示和系統(tǒng)封面構(gòu)成。開(kāi)始開(kāi)始管理系統(tǒng)主頁(yè)面分別輸入要輸入的人員信息添加完最后一項(xiàng)之后選擇要修改的人員信息修改完之后選擇要?jiǎng)h除的人員信息刪除之后圖1-1系統(tǒng)功能模塊詳細(xì)設(shè)計(jì)高校人事管理系統(tǒng)高校人事管理系統(tǒng)保存功能查詢功能修改保存功能查詢功能修改功能添加功能顯示功能刪除功能圖1-2各功能模塊實(shí)現(xiàn)程序源代碼:#include<iostream>#include<fstream> //對(duì)外存文件的輸入輸出操作#include<windows.h> #include<cstring> //字符串模板類(lèi)#include<iomanip> //流操作usingnamespacestd;intk; //全局變量classperson{private:charnum[10]; //編號(hào) chartype[20]; //類(lèi)型charname[20]; //姓名charsex[10]; //性別charzhiwu[20]; //職務(wù)charage[10]; //年齡charzhichen[20]; //職稱(chēng)charzzmm[20]; //政治面貌charzgxl[20]; //最高學(xué)歷charrzsj[20]; //任職時(shí)間charlysj[30]; //來(lái)院時(shí)間staticintbianhao; //編號(hào)public: voidsetperson(char*type1,char*name1,char*sex1,char*age1,char*zhiwu1,char *zhichen1,char*zzmm1,char*zgxl1,char*rzsj1,char*lysj1); staticint&getbianhao(){returnbianhao;} char*gettype(){returntype;} char*getname(){returnname;} char*getsex(){returnsex;} char*getage(){returnage;} char*getzhiwu(){returnzhiwu;} char*getzhichen(){returnzhichen;}char*getzzmm(){returnzzmm;}char*getzgxl(){returnzgxl;}char*getrzsj(){returnrzsj;}char*getlysj(){returnlysj;}char*getnum(){returnnum;}voidtjry();voidfind();voidoutput();voidshancu();voidxiugai();voidtongji();};personp[100];personpp[100];intk1;intperson::bianhao=0;voidperson::setperson(char*type1,char*name1,char*sex1,char*age1,char *zhiwu1,char*zhichen1,char*zzmm1,char*zgxl1,char*rzsj1,char*lysj1){ intstaticj=1; strcpy(type,type1); strcpy(name,name1); strcpy(sex,sex1); strcpy(age,age1); strcpy(zhiwu,zhiwu1); strcpy(zhichen,zhichen1); strcpy(zzmm,zzmm1); strcpy(zgxl,zgxl1); strcpy(rzsj,rzsj1); strcpy(lysj,lysj1); bianhao++; ofstreamfile("添加人員.txt",ios_base::app); //向外存文件的輸入操作 file<<p[j].getbianhao()<<endl; file<<p[j].gettype()<<endl; file<<p[j].getname()<<endl; file<<p[j].getsex()<<endl;file<<p[j].getage()<<endl; file<<p[j].getzhiwu()<<endl; file<<p[j].getzhichen()<<endl; file<<p[j].getzzmm()<<endl; file<<p[j].getzgxl()<<endl; file<<p[j].getrzsj()<<endl; file<<p[j].getlysj()<<endl; j++; file.close();}voidperson::tongji()//統(tǒng)計(jì){ inta=0;intb=0;intc=0;intd=0; intk=1; ifstreamfilem("添加人員.txt",ios_base::in); //從外存文件的輸入操作 while(!filem.eof()) //直到文件指針結(jié)束 { filem>>pp[k].getnum(); filem>>pp[k].gettype(); filem>>pp[k].getname(); filem>>pp[k].getsex(); filem>>pp[k].getage(); filem>>pp[k].getzhiwu(); filem>>pp[k].getzhichen(); filem>>pp[k].getzzmm(); filem>>pp[k].getzgxl(); filem>>pp[k].getrzsj(); filem>>pp[k].getlysj(); if(strcmp(pp[k].gettype(),"行政人員")==0||strcmp(pp[k].gettype(),"教師")==0|| strcmp(pp[k].gettype(),"一般員工")==0) a++; if(strcmp(pp[k].getzzmm(),"黨員")==0) b++; if(strcmp(pp[k].getsex(),"nv")==0) c++; if(strcmp(pp[k].getzgxl(),"boshi")==0) d++; k++; } filem.close(); cout<<"在職人數(shù)"<<setw(12)<<"黨員人數(shù)"<<setw(12)<<"女工人數(shù) "<<setw(12)<<"高學(xué)歷人數(shù)"<<endl; cout<<a<<setw(12)<<b<<setw(12)<<c<<setw(12)<<d<<endl;}voidperson::xiugai()//{ intk=1; ifstreamfilem("添加人員.txt",ios_base::in);//從外存文件的輸入操作while(!filem.eof()) { filem>>pp[k].getnum(); filem>>pp[k].gettype(); filem>>pp[k].getname(); filem>>pp[k].getsex(); filem>>pp[k].getage(); filem>>pp[k].getzhiwu(); filem>>pp[k].getzhichen(); filem>>pp[k].getzzmm(); filem>>pp[k].getzgxl(); filem>>pp[k].getrzsj(); filem>>pp[k].getlysj(); k++; } filem.close(); cout<<"請(qǐng)輸入要修改的人的編號(hào):"<<endl; intx,y; cin>>x; cout<<"請(qǐng)輸入編號(hào)為"<<x<<"的人需要修改的項(xiàng)目的代號(hào):"<<endl; cout<<"1:編號(hào)-2:人員類(lèi)型-3:姓名-4:性別-5:年齡-6:職務(wù)-7:職稱(chēng)-8:政治面貌-9:最 高學(xué)歷-10:任職時(shí)間-11:來(lái)院時(shí)間"<<endl; cin>>y; switch(y) { case1: {cout<<"請(qǐng)輸入新的編號(hào)";cin>>pp[x].getnum();} break; case2: {cout<<"請(qǐng)輸入新的人員類(lèi)型";cin>>pp[x].gettype();} break; case3: {cout<<"請(qǐng)輸入新的姓名";cin>>pp[x].getname();} break; case4: {cout<<"請(qǐng)輸入新的性別";cin>>pp[x].getsex();} break; case5: {cout<<"請(qǐng)輸入新的年齡";cin>>pp[x].getage();} break; case6: {cout<<"請(qǐng)輸入新的職務(wù)";cin>>pp[x].getzhiwu();} break; case7: {cout<<"請(qǐng)輸入新的職稱(chēng)";cin>>pp[x].getzhichen();} break; case8: {cout<<"請(qǐng)輸入新的政治面貌";cin>>pp[x].getzzmm();} break; case9: {cout<<"請(qǐng)輸入新的最高學(xué)歷";cin>>pp[x].getzgxl();} break; case10: {cout<<"請(qǐng)輸入新的任職時(shí)間";cin>>pp[x].getrzsj();} break; case11: {cout<<"請(qǐng)輸入新的來(lái)院時(shí)間";cin>>pp[x].getlysj();} break; } ofstreamfile1("添加人員.txt",ios_base::trunc); for(k=1;k<=bianhao;k++) { file1<<pp[k].getnum()<<endl; file1<<pp[k].gettype()<<endl; file1<<pp[k].getname()<<endl; file1<<pp[k].getsex()<<endl; file1<<pp[k].getage()<<endl; file1<<pp[k].getzhiwu()<<endl; file1<<pp[k].getzhichen()<<endl; file1<<pp[k].getzzmm()<<endl; file1<<pp[k].getzgxl()<<endl; file1<<pp[k].getrzsj()<<endl; file1<<pp[k].getlysj()<<endl; } file1.close(); cout<<"修改并保存完畢"<<endl;}voidperson::shancu()//刪除人員{ intz; ifstreamfilem("添加人員.txt",ios_base::in);//從外存文件的輸入操作 intk=1; while(!filem.eof()) { filem>>pp[k].getnum(); filem>>pp[k].gettype(); filem>>pp[k].getname(); filem>>pp[k].getsex(); filem>>pp[k].getage(); filem>>pp[k].getzhiwu(); filem>>pp[k].getzhichen(); filem>>pp[k].getzzmm(); filem>>pp[k].getzgxl(); filem>>pp[k].getrzsj(); filem>>pp[k].getlysj(); k++;} filem.close(); cout<<"請(qǐng)輸入要被刪除信息的人的編號(hào):"<<endl; cin>>z; while(z<1||z>bianhao) { cout<<"沒(méi)有找到你要?jiǎng)h除的人,請(qǐng)重新輸入:"<<endl;cin>>z;} for(k=1;k<=bianhao;k++) { if(z==k) continue; ofstreamfile2("添加人員.txt",ios_base::trunc); file2<<pp[k].getnum()<<endl; file2<<pp[k].gettype()<<endl; file2<<pp[k].getname()<<endl; file2<<pp[k].getsex()<<endl; file2<<pp[k].getage()<<endl; file2<<pp[k].getzhiwu()<<endl; file2<<pp[k].getzhichen()<<endl; file2<<pp[k].getzzmm()<<endl; file2<<pp[k].getzgxl()<<endl; file2<<pp[k].getrzsj()<<endl; file2<<pp[k].getlysj()<<endl; file2.close(); } cout<<"刪除記錄完畢"<<endl;}voidperson::find()//查找人員{ cout<<"1:按編號(hào)查詢--2:按姓名查詢-請(qǐng)選擇(1-2)"<<endl; intm; cin>>m; while(m<1||m>2) { cout<<"請(qǐng)重新輸入(1-2)"<<endl;cin>>m; } switch(m) { case1: { charn[10]; cout<<"請(qǐng)輸入要查找的編號(hào):"; cin>>n; ifstreamfilem("添加人員.txt",ios_base::in); intk=1; cout<<"編號(hào)"<<setw(9)<<"人員類(lèi)型"<<setw(5)<<"姓名"<<setw(5)<<"性 別" <<setw(5)<<"年齡"<<setw(5)<<"職務(wù)"<<setw(5)<<"職稱(chēng)" <<setw(9)<<"政治面貌"<<setw(10)<<"最高學(xué)歷"<<setw(10)<<"任職 時(shí)間" <<setw(10)<<"來(lái)院時(shí)間"<<endl; while(!filem.eof()) { filem>>pp[k].getnum(); filem>>pp[k].gettype(); filem>>pp[k].getname(); filem>>pp[k].getsex(); filem>>pp[k].getage(); filem>>pp[k].getzhiwu(); filem>>pp[k].getzhichen(); filem>>pp[k].getzzmm(); filem>>pp[k].getzgxl(); filem>>pp[k].getrzsj(); filem>>pp[k].getlysj(); if(strcmp(pp[k].getnum(),n)==0) { cout<<pp[k].getnum()<<setw(9)<<pp[k].gettype()<<setw(5)<<pp[k].getname() <<setw(5)<<pp[k].getsex()<<setw(5)<<pp[k].getage() <<setw(5)<<pp[k].getzhiwu()<<setw(5)<<pp[k].getzhichen() <<setw(9)<<pp[k].getzzmm()<<setw(10)<<pp[k].getzgxl() <<setw(10)<<pp[k].getrzsj()<<setw(10)<<pp[k].getlysj()<<endl;break;} k++; if(filem.eof()) { cout<<endl; cout<<"警告:沒(méi)有要查找的人!!!!!!!!!!"; } } filem.close();}break; case2: { charnname[20]; cout<<"請(qǐng)輸入要查找的姓名:"; cin>>nname; ifstreamfilem("添加人員.txt",ios_base::in); intk=1; cout<<"編號(hào)"<<setw(9)<<"人員類(lèi)型"<<setw(5)<<"姓名"<<setw(5)<<"性 別" <<setw(5)<<"年齡"<<setw(5)<<"職務(wù)"<<setw(5)<<"職稱(chēng)" <<setw(9)<<"政治面貌"<<setw(10)<<"最高學(xué)歷"<<setw(10)<<"任職 時(shí)間" <<setw(10)<<"來(lái)院時(shí)間"<<endl; while(!filem.eof()) { filem>>pp[k].getnum(); filem>>pp[k].gettype(); filem>>pp[k].getname(); filem>>pp[k].getsex(); filem>>pp[k].getage(); filem>>pp[k].getzhiwu(); filem>>pp[k].getzhichen(); filem>>pp[k].getzzmm(); filem>>pp[k].getzgxl(); filem>>pp[k].getrzsj(); filem>>pp[k].getlysj(); if(strcmp(pp[k].getname(),nname)==0) { cout<<pp[k].getnum()<<setw(9)<<pp[k].gettype()<<setw(5)<<pp[k].getname() <<setw(5)<<pp[k].getsex()<<setw(5)<<pp[k].getage() <<setw(5)<<pp[k].getzhiwu()<<setw(5)<<pp[k].getzhichen() <<setw(9)<<pp[k].getzzmm()<<setw(10)<<pp[k].getzgxl() <<setw(10)<<pp[k].getrzsj()<<setw(10)<<pp[k].getlysj()<<endl;break;} k++; if(filem.eof()) { cout<<endl; cout<<"警告:沒(méi)有要查找的人!!!!!!!!!!";} } filem.close(); } break; }}voidperson::tjry()//添加人數(shù){ intv,l=1; chartype2[20];charname2[20];charsex2[10];charage2[10];charzhiwu2[20]; charzhichen2[20];charzzmm2[20];charzgxl2[20];charrzsj2[20];charlysj2[30]; cout<<"請(qǐng)輸入要添加的人數(shù)"<<endl; cin>>k; p[1].getbianhao()=pp[k1].getbianhao(); v=bianhao; for(inti=v+1;i<=v+k;i++) { cout<<"請(qǐng)輸入第"<<l<<"個(gè)人的信息"<<endl; cout<<"人員類(lèi)型";cin>>type2; cout<<"姓名:";cin>>name2; cout<<"性別:";cin>>sex2; cout<<"年齡:";cin>>age2; cout<<"職務(wù):";cin>>zhiwu2; cout<<"職稱(chēng):";cin>>zhichen2; cout<<"政治面貌:";cin>>zzmm2; cout<<"最高學(xué)歷:";cin>>zgxl2; cout<<"任職時(shí)間:";cin>>rzsj2; cout<<"來(lái)院時(shí)間:";cin>>lysj2; p[i].setperson(type2,name2,sex2,age2,zhiwu2,zhichen2,zzmm2,zgxl2,rzsj2,lysj2); l++; }}voidperson::output()//{ ifstreamfilem("添加人員.txt",ios_base::in); intk=1; cout<<"編號(hào)"<<setw(9)<<"人員類(lèi)型"<<setw(5)<<"姓名"<<setw(5)<<"性別" //在輸出前增加空格 <<setw(5)<<"年齡"<<setw(5)<<"職務(wù)"<<setw(5)<<"職稱(chēng)" <<setw(9)<<"政治面貌"<<setw(10)<<"最高學(xué)歷"<<setw(10)<<"任職時(shí)間" <<setw(10)<<"來(lái)院時(shí)間"<<endl; while(!filem.eof()) { filem>>pp[k].getbianhao(); filem>>pp[k].gettype(); filem>>pp[k].getname(); filem>>pp[k].getsex(); filem>>pp[k].getage(); filem>>pp[k].getzhiwu(); filem>>pp[k].getzhichen(); filem>>pp[k].getzzmm(); filem>>pp[k].getzgxl(); filem>>pp[k].getrzsj(); filem>>pp[k].getlysj(); cout<<pp[k].getbianhao()<<setw(9)<<pp[k].gettype()<<setw(5)<<pp[k].getname() <<setw(5)<<pp[k].getsex()<<setw(5)<<pp[k].getage() <<setw(5)<<pp[k].getzhiwu()<<setw(5)<<pp[k].getzhichen() <<setw(9)<<pp[k].getzzmm()<<setw(10)<<pp[k].getzgxl() <<setw(10)<<pp[k].getrzsj()<<setw(10)<<pp[k].getlysj()<<endl; k++; } k1=--k; filem.close();}voidmenu(){ personpjk; intc; cout<<endl; cout<<"高校人事管理系統(tǒng)"<<endl; cout<<"**"<<endl; cout<<"*1--添加人員信息并保存*"<<endl; cout<<"*2--刪除人員信息*"<<endl; cout<<"*3--修改人員信息*"<<endl; cout<<"*4--查詢?nèi)藛T信息*"<<endl; cout<<"*5--統(tǒng)計(jì)人員信息*"<<endl; cout<<"*6--顯示所有信息*"<<endl; cout<<"*7--退出*"<<endl; cout<<""<<endl; cout<<"請(qǐng)選擇(1-7):"<<endl; cin>>c; switch(c) { case1:pjk.tjry();menu();break; case2:pjk.shancu();menu();break; case3:pjk.xiugai();menu();break; case4:pjk.find();cout<<endl<<endl;menu();break; case5:pjk.tongji();menu();break; case6:pjk.output();menu();break; case7:exit(1);break; }}voidmain(){ system("color5F"); menu();}序運(yùn)行結(jié)果:圖2-1程序運(yùn)行結(jié)果圖2-1存入人事信息系統(tǒng)調(diào)試(調(diào)試出現(xiàn)的主要問(wèn)題,編譯語(yǔ)法錯(cuò)誤及修改,重點(diǎn)是運(yùn)行邏輯問(wèn)題修改和調(diào)整)1.errorC2065:'setw':undeclaredidentifier在找預(yù)編譯頭文件路徑時(shí)出錯(cuò),c++中的setw(n)設(shè)置域?qū)挷荒苷{(diào)用,要加上頭文件#include<iomanip>2.errorC2021:unknowncharacter'0xa3'不認(rèn)識(shí)的字符'0xa3'。(一般是漢字或中文標(biāo)點(diǎn)符號(hào))。3.errorC2057:expectedconstantexpression希望是常量表達(dá)式。(一般出現(xiàn)在switch語(yǔ)句的case分支中)。4.errorC2143:syntaxerror:missing':'before'{'句法錯(cuò)誤:“{”前缺少“;”。在編寫(xiě)查找功能時(shí),本來(lái)用for循環(huán)。但要求達(dá)到條件再循環(huán),且條件是(!filem.eof()),而不是一個(gè)數(shù),所以后來(lái)改成了while。while(!filem.eof()) { filem>>pp[k].getnum(); filem>>pp[k].gettype(); filem>>pp[k].getname(); filem>>pp[k].getsex(); filem>>pp[k].getage(); filem>>pp[k].getzhiwu(); filem>>pp[k].getzhichen(); filem>>pp[k].getzzmm(); filem>>pp[k].getzgxl(); filem>>pp[k].getrzsj(); filem>>pp[k].getlysj(); if(strcmp(pp[k].getnum(),n)==0) { cout<<pp[k].getnum()<<setw(9)<<pp[k].gettype()<<setw(5)<<pp[k].getname() <<setw(5)<<pp[k].getsex()<<setw(5)<<pp[k].getage() <<setw(5)<<pp[k].getzhiwu()<<setw(5)<<pp[k].getzhichen() <<setw(9)<<pp[k].getzzmm()<<setw(10)<<pp[k].getzgxl() <<setw(10)<<pp[k].getrzsj()<<setw(10)<<pp[k].getlysj()<<endl;break;} k++; if(filem.eof()) { cout<<endl; cout<<"警告:沒(méi)有要查找的人!!!!!!!!!!"; } }結(jié)果分析特點(diǎn):在頭文件中加上了#include<windows.h>,加入一些界面美化的程序語(yǔ)言,使界面得到美化。足之處:課程設(shè)計(jì)中數(shù)據(jù)類(lèi)型檢查機(jī)制相對(duì)較弱,在程序中的一些錯(cuò)誤不能在編譯階段被發(fā)現(xiàn)。一個(gè)程序員精心設(shè)計(jì)的程序很難為其他程序所用。界面比較的單一,功能相對(duì)較少,只能逐一增加信息,不能批量的增加??偨Y(jié)通過(guò)這次課程設(shè)計(jì),我收獲頗豐踏踏實(shí)實(shí),相信會(huì)為自己以后的學(xué)習(xí)和工作帶來(lái)很大的好處。一步一個(gè)腳印,有毅力,多問(wèn),多遍是學(xué)好C++的前提。最重要的還是激發(fā)了我編程的興趣和熱情,讓我從一個(gè)只懂理論變成了能做一些小型程序,讓我對(duì)編程更加熱愛(ài)了。整體地評(píng)價(jià)這次課程設(shè)計(jì),我認(rèn)為收獲很大,通過(guò)課程設(shè)計(jì),既復(fù)習(xí)了以前的舊知識(shí),又學(xué)到了一些新的知識(shí);設(shè)計(jì)增強(qiáng)了我們用所學(xué)知識(shí)去解決具體問(wèn)題的能力,進(jìn)一步培養(yǎng)了我們獨(dú)立思考問(wèn)題和解決問(wèn)題的能力。特別是學(xué)會(huì)了在VisualC++集成開(kāi)發(fā)環(huán)境中如何調(diào)試程序的方法。老師的悉心指導(dǎo)和同學(xué)的幫助也是不可忽視的,在此感謝本次課程設(shè)計(jì)中所有輔導(dǎo)老師對(duì)我的關(guān)心和幫助,誠(chéng)心誠(chéng)意感謝他們對(duì)我的鼓勵(lì)與教導(dǎo),是她們?cè)谖颐悦5臅r(shí)候給了我些許提示,激發(fā)了我編程的靈感;還有,我在此也十分感謝本次課程設(shè)計(jì)中同學(xué)們對(duì)我的幫助,盡管本次不是團(tuán)隊(duì)合作,但是他們也給了我不少的提示和幫助,是他們讓我有信心堅(jiān)持做下來(lái),在此感謝他們!計(jì)算機(jī)科學(xué)與技術(shù)系課程設(shè)計(jì)評(píng)分表課程名稱(chēng):面向?qū)ο蟪绦蛟O(shè)計(jì)項(xiàng)目評(píng)價(jià)設(shè)計(jì)方案的合理性與創(chuàng)造性設(shè)計(jì)與調(diào)試結(jié)果設(shè)計(jì)說(shuō)明書(shū)的質(zhì)量答辯陳述與回答問(wèn)題情況課程設(shè)計(jì)周表現(xiàn)情況綜合成績(jī)教師簽名:日期:《面向?qū)ο蟪绦蛟O(shè)計(jì)》課程設(shè)計(jì)報(bào)告學(xué)院:_專(zhuān)業(yè)班級(jí):學(xué)生姓名:學(xué)號(hào):設(shè)計(jì)地點(diǎn)(單位)________計(jì)算機(jī)自主學(xué)習(xí)中心_________

設(shè)計(jì)題目:________超市商品管理系統(tǒng)___________完成日期:年月日指導(dǎo)教師評(píng)語(yǔ):___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________成績(jī)(五級(jí)記分制):________________指導(dǎo)教師(簽字):_______________摘要此次課程設(shè)計(jì)為超市管理系統(tǒng),由VC6.0編譯器編譯而成。通過(guò)本系統(tǒng),在主界面可以通過(guò)行管提示的操作,對(duì)商品進(jìn)行購(gòu)買(mǎi)、添加、修改、刪除、查詢、統(tǒng)計(jì)等管理操作。系統(tǒng)主要包含了食品、化妝品、日用品、飲料四大類(lèi),每一類(lèi)都包含了商品的幾大最基本信息,商品名稱(chēng)、品牌、價(jià)格、生產(chǎn)廠家、庫(kù)存量等。除四大類(lèi)外有一個(gè)總的商品基類(lèi),通過(guò)繼承機(jī)制進(jìn)行訪問(wèn)基類(lèi),同時(shí)也結(jié)合運(yùn)用了模板。通過(guò)此系統(tǒng)用戶可以簡(jiǎn)潔方便的購(gòu)買(mǎi)商品,管理人員也可輕松進(jìn)行商品管理,從而實(shí)現(xiàn)高效的管理模式,為公司企業(yè)商家等創(chuàng)造最大化的經(jīng)濟(jì)效益。關(guān)鍵詞:管理系統(tǒng)基類(lèi)繼承模板

課程設(shè)計(jì)任務(wù)書(shū)設(shè)計(jì)題目:超市商品管理系統(tǒng)設(shè)計(jì)學(xué)生姓名湯榮安課程名稱(chēng)面向?qū)ο蟪绦蛟O(shè)計(jì)專(zhuān)業(yè)班級(jí)計(jì)科11地點(diǎn)I304/I306起止時(shí)間2013年1月7日~1月18日設(shè)計(jì)內(nèi)容及要求1)問(wèn)題描述超市中商品分為四類(lèi),分別是食品、化妝品、日用品和飲料。每種商品都包含商品名稱(chēng)、價(jià)格、庫(kù)存量和生產(chǎn)廠家、品牌等信息。主要完成對(duì)商品的銷(xiāo)售、統(tǒng)計(jì)和簡(jiǎn)單管理。2)功能要求(1)銷(xiāo)售功能。購(gòu)買(mǎi)商品時(shí),先輸入類(lèi)別,然后輸入商品名稱(chēng),并在庫(kù)存中查找該商品的相關(guān)信息。如果有庫(kù)存量,輸入購(gòu)買(mǎi)的數(shù)量,進(jìn)行相應(yīng)計(jì)算。如果庫(kù)存量不夠,給出提示信息,結(jié)束購(gòu)買(mǎi)。(2)商品簡(jiǎn)單管理功能。添加功能:主要完成商品信息的添加。查詢功能:可按商品類(lèi)別、商品名稱(chēng)、生產(chǎn)廠家進(jìn)行查詢。若存在相應(yīng)信息,輸出所查詢的信息,若不存在該記錄,則提示“該記錄不存在!”。修改功能:可根據(jù)查詢結(jié)果對(duì)相應(yīng)的記錄進(jìn)行修改。刪除功能:主要完成商品信息的刪除。先輸入商品類(lèi)別,再輸入要?jiǎng)h除的商品名稱(chēng),根據(jù)查詢結(jié)果刪除該物品的記錄,如果該商品不在物品庫(kù)中,則提示“該商品不存在”。(3)統(tǒng)計(jì)功能。輸出當(dāng)前庫(kù)存中所有商品的總數(shù)及詳細(xì)信息;可按商品的價(jià)格、庫(kù)存量、生產(chǎn)廠家進(jìn)行統(tǒng)計(jì),輸出統(tǒng)計(jì)信息時(shí),要按從大到小進(jìn)行排序。3)問(wèn)題的解決方案根據(jù)系統(tǒng)功能要求,可以將問(wèn)題解決分為以下步驟:(1)應(yīng)用系統(tǒng)分析,建立該系統(tǒng)的功能模塊框圖以及界面的組織和設(shè)計(jì);(2)分析系統(tǒng)中的各個(gè)實(shí)體及它們之間的關(guān)系;(3)根據(jù)問(wèn)題描述,設(shè)計(jì)系統(tǒng)的類(lèi)層次;(4)完成類(lèi)層次中各個(gè)類(lèi)的描述;(5)完成類(lèi)中各個(gè)成員函數(shù)的定義;(6)完成系統(tǒng)的應(yīng)用模塊;(7)功能調(diào)試;(8)完成系統(tǒng)總結(jié)報(bào)告。根據(jù)題目要求,運(yùn)用所學(xué)知識(shí),完成設(shè)計(jì)和實(shí)現(xiàn)工作,并按照書(shū)寫(xiě)規(guī)范,撰寫(xiě)課程設(shè)計(jì)報(bào)告。設(shè)計(jì)參數(shù)(1)系統(tǒng)分析、設(shè)計(jì)正確。(2)結(jié)果以圖表方式顯示。(3)界面簡(jiǎn)潔、美觀。(4)報(bào)告格式規(guī)范。進(jìn)度要求周一:明確設(shè)計(jì)任務(wù),學(xué)習(xí)相關(guān)基礎(chǔ)知識(shí)周二:熟悉各知識(shí)點(diǎn),進(jìn)行基礎(chǔ)練習(xí)周三:根據(jù)題目要求,進(jìn)行設(shè)計(jì)和實(shí)現(xiàn)周四:根據(jù)題目要求,進(jìn)行設(shè)計(jì)和實(shí)現(xiàn)周五:程序測(cè)試參考資料[1]RichardJohnsonbaugh.MartinKalin.《面向?qū)ο蟪绦蛟O(shè)計(jì)—C++語(yǔ)言描述》.機(jī)械工業(yè)出版社.2021年[2]錢(qián)能.《C++語(yǔ)言程序設(shè)計(jì)教程》.清華大學(xué)出版社.2005年其它說(shuō)明1.本表應(yīng)在每次實(shí)施前一周由負(fù)責(zé)教師填寫(xiě)二份,院系審批后交院系辦備案,一份由負(fù)責(zé)教師留用。2.若填寫(xiě)內(nèi)容較多可另紙附后。3.一題多名學(xué)生共用的,在設(shè)計(jì)內(nèi)容、參數(shù)、要求等方面應(yīng)有所區(qū)別。

目錄摘要 I1軟件需求分析說(shuō)明書(shū) 11.1需求分析 11.2功能簡(jiǎn)介 11.2.1銷(xiāo)售功能 11.2.2商品管理功能 11.2.3統(tǒng)計(jì)功能 21.3界面介紹與要求 21.4數(shù)據(jù)結(jié)構(gòu)要求 32系統(tǒng)分析與設(shè)計(jì) 42.1系統(tǒng)分析 42.1.1類(lèi)的設(shè)計(jì)關(guān)系 42.1.2主功能函數(shù)流程圖 42.2軟件的數(shù)據(jù)(結(jié)構(gòu))設(shè)計(jì) 52.3系統(tǒng)的算法設(shè)計(jì) 62.3.1購(gòu)買(mǎi)商品程序算法 62.3.2添加商品程序算法 72.3.3修改商品程序算法 82.3.4統(tǒng)計(jì)商品程序算法 93軟件的實(shí)現(xiàn) 113.1主系統(tǒng)頭文件和基類(lèi)的定義 113.2購(gòu)買(mǎi)商品代碼解釋 113.3添加商品代碼解釋 123.4刪除商品代碼解釋 133.5修改商品代碼解釋 133.6查詢商品代碼解釋 143.7統(tǒng)計(jì)商品代碼解釋 144系統(tǒng)功能實(shí)現(xiàn) 164.1系統(tǒng)功能主菜單界面實(shí)現(xiàn) 164.2商品購(gòu)買(mǎi)界面實(shí)現(xiàn) 164.3商品添加界面實(shí)現(xiàn) 174.4商品修改界面實(shí)現(xiàn) 184.5商品統(tǒng)計(jì)界面實(shí)現(xiàn) 185軟件測(cè)試 206軟件使用說(shuō)明書(shū) 216.1銷(xiāo)售功能模塊的使用說(shuō)明 216.2商品管理功能的使用說(shuō)明 216.3商品統(tǒng)計(jì)功能的使用說(shuō)明 21參考文獻(xiàn) 22致謝 231軟件需求分析說(shuō)明書(shū)1.1需求分析隨著科技的進(jìn)步,計(jì)算機(jī)技術(shù)的飛速發(fā)展,許多企業(yè)在進(jìn)行技術(shù)改造的同時(shí),各種工作也趨向于信息技術(shù)化管理。管理系統(tǒng)事一個(gè)信息化、智能化和先進(jìn)管理集合,一個(gè)高效有用的管理系統(tǒng)課一減少一個(gè)企業(yè)或者上商家的管理費(fèi)用和人力物力開(kāi)支,不僅可以節(jié)省大量時(shí)間,還可以為企業(yè)的各項(xiàng)決策帶來(lái)巨大的經(jīng)濟(jì)效益。與人們生活接觸最貼近的超市也有它自己完善的管理系統(tǒng)。計(jì)算機(jī)的自動(dòng)化管理系統(tǒng)提高了超市管理的管理水平和工作效率,增強(qiáng)超市的競(jìng)爭(zhēng)能力降低成本,為客戶提供更加優(yōu)質(zhì)的服務(wù)。所以需要開(kāi)發(fā)一個(gè)計(jì)算機(jī)系統(tǒng)來(lái)代替人工管理超市人員對(duì)商品信息管理和顧客購(gòu)買(mǎi)等方面的工作。使用該系統(tǒng)可以使超市的服務(wù)更加快捷、準(zhǔn)確和方便,減少大量的人工操作,提高了工作效率。1.2功能簡(jiǎn)介1.2.1銷(xiāo)售功能本功能主要是針對(duì)消費(fèi)者用戶使用。在購(gòu)買(mǎi)商品時(shí),用戶得先選擇輸入所要購(gòu)買(mǎi)商品的類(lèi)別,是食品、化妝品、日用品和飲料中的哪一類(lèi),然后在輸入商品名稱(chēng),系統(tǒng)會(huì)自動(dòng)在庫(kù)存當(dāng)中查找該商品的相關(guān)信息,如果在庫(kù)存中還有庫(kù)存量,則用戶接著進(jìn)行下一步操作,根據(jù)提示輸入要購(gòu)買(mǎi)的商品的數(shù)量,進(jìn)行相應(yīng)的計(jì)算。如果庫(kù)存量不夠,則系統(tǒng)會(huì)給出提示信息,然后詢問(wèn)顧客是否重新購(gòu)買(mǎi),又回到系統(tǒng)頁(yè)面主菜單。1.2.2商品管理功能商品管理功能主要是針對(duì)超市管理人員使用,對(duì)庫(kù)存商品進(jìn)行簡(jiǎn)單的管理。本功能當(dāng)中主要可以實(shí)現(xiàn)商品的添加、查詢、修改、刪除等功能。(1)添加商品通過(guò)主頁(yè)面提示菜單鍵入相對(duì)應(yīng)數(shù)字進(jìn)入添加商品選項(xiàng),然后根據(jù)提示添加商品信息,主要包括商品名稱(chēng)、商品品牌、商品價(jià)格、商品生產(chǎn)廠家、以及商品的庫(kù)存量。(2)刪除商品通過(guò)主頁(yè)面的提示菜單鍵入相應(yīng)數(shù)字進(jìn)入刪除商品選項(xiàng),完成最商品信息的刪除。首先選擇輸入要?jiǎng)h除商品的類(lèi)別,再輸入要?jiǎng)h除的商品的名稱(chēng),根據(jù)查詢結(jié)果刪除商品的記錄,如果該商品在庫(kù)存物品當(dāng)中不存在,則系統(tǒng)給出相應(yīng)提示,該商品不存在。(3)修改商品通過(guò)主頁(yè)面的提示菜單鍵入相應(yīng)數(shù)字進(jìn)入修改商品選項(xiàng),對(duì)商品信息進(jìn)行修改。可根據(jù)查詢的結(jié)果對(duì)相應(yīng)的商品信息進(jìn)行修改,包括商品的名稱(chēng)、品牌、價(jià)格、生產(chǎn)廠家和庫(kù)存量。(5)查詢商品通過(guò)主頁(yè)面的提示菜單鍵入相應(yīng)數(shù)字進(jìn)入查詢商品選項(xiàng),對(duì)商品信息進(jìn)行查詢??筛鶕?jù)相應(yīng)提示選擇查詢方式,按商品類(lèi)別、商品名稱(chēng)、生產(chǎn)廠家進(jìn)行查詢商品的全部信息。如果存在相應(yīng)商品的信息,則輸出所查詢商品的信息,如果不存在該商品的記錄,則系統(tǒng)自動(dòng)提示該商品的記錄不存在。1.2.3統(tǒng)計(jì)功能此功能主要是提供顯示功能。用戶可通過(guò)主頁(yè)面的顯示菜單鍵入相應(yīng)的數(shù)字進(jìn)入統(tǒng)計(jì)選項(xiàng),可以輸出當(dāng)前庫(kù)存當(dāng)中的所有商品的總數(shù)及相應(yīng)商品的詳細(xì)信息,可以按照商品的價(jià)格、生產(chǎn)廠家、庫(kù)存量進(jìn)行統(tǒng)計(jì),輸出商品信息時(shí)可以按照商品的對(duì)應(yīng)信息按照從大到小的的順序進(jìn)行排序輸出。1.3界面介紹與要求圖1.2系統(tǒng)首頁(yè)面介紹本系統(tǒng)的軟件界是使用C++編譯生成的一個(gè)系統(tǒng)操作菜單。操作菜單界面總共有七個(gè)選項(xiàng)可以供用戶操作選擇,分別為購(gòu)買(mǎi)商品、添加商品、刪除商品、修改商品、查詢商品、統(tǒng)計(jì)商品、退出系統(tǒng)。菜單頁(yè)面下方有可供用戶選擇操作項(xiàng)目的指令,當(dāng)用戶選擇并輸入0-6中的任意數(shù)字,系統(tǒng)便會(huì)進(jìn)入相應(yīng)的功能操作。如果出現(xiàn)錯(cuò)誤操作,系統(tǒng)會(huì)該處輸入錯(cuò)誤請(qǐng)從新輸入等提示或者自動(dòng)跳出回到主菜單界面。頁(yè)面的組織和設(shè)計(jì)要求先構(gòu)思好系統(tǒng)的功能模塊和結(jié)構(gòu)框架,分析系統(tǒng)中的各個(gè)實(shí)體以及它們間的具體聯(lián)系關(guān)系,根據(jù)問(wèn)題的描述先設(shè)計(jì)好系統(tǒng)的類(lèi)層次,完成類(lèi)層次中各個(gè)成員函數(shù)的定義,實(shí)現(xiàn)每一個(gè)模塊層次之間的銜接,從而設(shè)計(jì)出工整漂亮的管理系統(tǒng),要求整個(gè)系統(tǒng)的界面設(shè)計(jì)簡(jiǎn)潔、美觀,讓用戶使用起來(lái)方便快捷。1.4數(shù)據(jù)結(jié)構(gòu)要求在整個(gè)系統(tǒng)當(dāng)中除了使用類(lèi)層次結(jié)構(gòu)、繼承機(jī)制、模板等,還使用的了數(shù)據(jù)結(jié)構(gòu)當(dāng)中的鏈表結(jié)構(gòu),主要用來(lái)進(jìn)行商品的管理功能。包括商品的添加、修改、刪除、查詢等??梢酝ㄟ^(guò)鏈表進(jìn)行存儲(chǔ)、訪問(wèn)操作。通過(guò)動(dòng)態(tài)申請(qǐng)鏈表空間,用指針操作數(shù)據(jù)節(jié)點(diǎn)完成商品信息的一系列操作。

2系統(tǒng)分析與設(shè)計(jì)2.1系統(tǒng)分析系統(tǒng)的主要工作流程圖如下,當(dāng)進(jìn)入操作主菜單界面時(shí),會(huì)有相應(yīng)的不同的操作選項(xiàng)供用戶選擇,但操作完成后就返回到系統(tǒng)主菜單。類(lèi)的設(shè)計(jì)關(guān)系商品基類(lèi)商品基類(lèi)食品類(lèi)飲料類(lèi)化妝品類(lèi)生活用品類(lèi)圖2.1系統(tǒng)類(lèi)的設(shè)計(jì)關(guān)系圖主功能函數(shù)流程圖選擇操作項(xiàng)目選擇操作項(xiàng)目1.購(gòu)買(mǎi)商品2.添加商品 3.刪除商品4.修改商品5.查詢商品6.統(tǒng)計(jì)商品7.退出系統(tǒng)統(tǒng)計(jì)方式種類(lèi)類(lèi)1.價(jià)格統(tǒng)計(jì)2.庫(kù)存統(tǒng)計(jì)System首頁(yè)面圖2.2首頁(yè)面功能關(guān)系圖2.2軟件的數(shù)據(jù)(結(jié)構(gòu))設(shè)計(jì) 主要系統(tǒng)文件的寫(xiě)入與保存//讀文件voidSystem::Read(){ intnum; stringkind; Goods*temp; ifstreamin; in.open("infile.txt"); in>>num; for(inti=0;i<num;i++) { temp=newGoods; temp->Read(in); something.push_back(temp); } in.close();}//寫(xiě)入文件voidSystem::Write(){ ofstreamout; out.open("infile.txt"); out<<something.size()<<endl;//先存進(jìn)去數(shù)量... for(unsignedinti=0;i<something.size();i++) something[i]->Write(out); out.close();}2.3系統(tǒng)的算法設(shè)計(jì)購(gòu)買(mǎi)商品程序算法當(dāng)用戶選擇第一項(xiàng)操作時(shí),便進(jìn)入購(gòu)買(mǎi)商品的函數(shù)。其流程圖如下:選擇種類(lèi)選擇種類(lèi)種類(lèi)類(lèi)1.食品 2.飲料3.日用品4.化妝品輸入商品名稱(chēng)、數(shù)量購(gòu)買(mǎi)商品輸出商品信息、金額購(gòu)買(mǎi)結(jié)束圖2.3商品購(gòu)買(mǎi)操作流程圖添加商品程序算法其流程圖如下:添加商品添加商品選擇種類(lèi)種類(lèi)類(lèi)1.食品 2.飲料3.日用品4.化妝品輸入商品名稱(chēng)、價(jià)格、庫(kù)存、品牌、廠家添加成功圖2.4商品添加操作流程圖修改商品程序算法其流程圖如下:修改商品修改商品選擇種類(lèi)種類(lèi)類(lèi)1.食品 2.飲料3.日用品4.化妝品修改成功輸入修改商品名稱(chēng)選擇修改項(xiàng)種類(lèi)類(lèi)輸入修改量1.修改價(jià)格 1.修改庫(kù)存 圖2.5商品修改操作流程圖統(tǒng)計(jì)商品程序算法其流程圖如下:統(tǒng)計(jì)商品統(tǒng)計(jì)商品選擇種類(lèi)種類(lèi)類(lèi)1.食品 4.化妝品2.飲料3.日用品選擇統(tǒng)計(jì)項(xiàng)種類(lèi)類(lèi)1.修改價(jià)格 1.修改庫(kù)存 輸入統(tǒng)計(jì)項(xiàng)量統(tǒng)計(jì)結(jié)束輸出統(tǒng)計(jì)信息圖2.6商品統(tǒng)計(jì)功能流程圖

3軟件的實(shí)現(xiàn)3.1主系統(tǒng)頭文件和基類(lèi)的定義#ifndefSYSTEM_H_#defineSYSTEM_H_#include"cosmetics.h"#include"dayuse.h"#include"drink.h"#include"food.h"#include"goods.h"#include<vector>#include<string>usingnamespacestd;//定義結(jié)構(gòu)體元素structitem{ stringname; doubleprice; intnum;};booloperator<(constitem&G1,constitem&G2);classSystem{public: voidStar();private: intBuy();//購(gòu)買(mǎi) intAdd();//添加 intDelect();//刪除 intModefied();//修改 voidStatistics();//統(tǒng)計(jì). intFind(); //查詢. intHave(stringkind,stringname);//查找倉(cāng)庫(kù)中是否有此商品. voidWrite();voidRead(); stringAsk();//詢問(wèn)增加的種類(lèi).. vector<Goods*>something;};#endif//取消避免頭文件重復(fù)定義定義頭文件,聲明類(lèi)的公有成員函數(shù)和私有數(shù)據(jù)成員。3.2購(gòu)買(mǎi)商品代碼解釋intSystem::Buy(){ stringkind=Ask(); intbuy_num,a; stringname; cout<<"\n\t\t請(qǐng)輸入您所要購(gòu)買(mǎi)的商品名稱(chēng):"; cin>>name; a=Have(kind,name); if(a!=-1)//代表商品存在、則需要填購(gòu)買(mǎi)數(shù)量、并從倉(cāng)庫(kù)中減去已被購(gòu)買(mǎi)的貨物。 { something[a]->Show(); cout<<"\n\t\t請(qǐng)輸入購(gòu)買(mǎi)數(shù)量:"; cin>>buy_num; if(buy_num<=something[a]->Get_Num()) { something[a]->Set_Num(something[a]->Get_Num()-buy_num); cout<<"\n\t\t您此次購(gòu)買(mǎi)一共花費(fèi):"; cout<<buy_num*something[a]->Get_Price()元<<endl; } else return-1;//超過(guò)庫(kù)存量。 } else return0;//不存在 return1;}該函數(shù)實(shí)現(xiàn)了對(duì)商品的購(gòu)買(mǎi)功能,并且計(jì)算出本次購(gòu)買(mǎi)所消費(fèi)金額。3.3添加商品代碼解釋intSystem::Add(){ Goods*temp; inta; stringkind=Ask(); if(kind=="食品") temp=newFood; if(kind=="飲料") temp=newDrink; if(kind=="日常用品") temp=newDaily_Supplies; if(kind=="化妝品") temp=newCosmetics; temp->Set(); a=Have(temp->Get_Kind(),temp->Get_Name()); if(a==-1) something.push_back(temp); else return0;//該商品已經(jīng)存在。 return1;}該函數(shù)實(shí)現(xiàn)了對(duì)商品的添加功能。3.4刪除商品代碼解釋intSystem::Delect(){ stringkind=Ask(); stringname; inta; cout<<"\n\t\t請(qǐng)輸入您要?jiǎng)h除商品名稱(chēng):"; cin>>name; a=Have(kind,name); if(a!=-1) something.erase(something.begin()+a); else return0;//不存在該商品.. return1;}該函數(shù)實(shí)現(xiàn)了對(duì)商品信息的刪除功能。3.5修改商品代碼解釋intSystem::Modefied(){ stringkind=Ask(); stringname; inta; cout<<"\n\t\t請(qǐng)輸入您要修改的商品名稱(chēng):"; cin>>name; a=Have(kind,name); if(a!=-1) { intchoice; doubleprice; intnum; cout<<"\n\t\t1.修改價(jià)格"<<endl; cout<<"\n\t\t2.修改庫(kù)存"<<endl; cout<<"\n\t\t"; cin>>choice; if(choice==1) {cout<<"\n\t\t請(qǐng)輸入修改價(jià)格為:"; cin>>price; something[a]->Set_Price(price);} if(choice==2) { cout<<"\n\t\t請(qǐng)輸入修改庫(kù)存為:"; cin>>num; something[a]->Set_Num(num); }} else return0; return1;}該函數(shù)實(shí)現(xiàn)了對(duì)商品信息的修改功能,可修改商品的價(jià)格以及庫(kù)存量。3.6查詢商品代碼解釋intSystem::Find(){ stringkind=Ask(); stringname; inta; cout<<"\n\t\t請(qǐng)輸入您要查找的商品名稱(chēng):"; cin>>name; a=Have(kind,name); if(a!=-1) something[a]->Show(); else return0; return1;}該函數(shù)實(shí)現(xiàn)了對(duì)商品信息的查詢功能,并且顯示出所查商品的所有信息。3.7統(tǒng)計(jì)商品代碼解釋voidSystem::Statistics(){ cout<<"\n\t\t1.對(duì)價(jià)格統(tǒng)計(jì)"<<endl; cout<<"\n\t\t2.對(duì)庫(kù)存統(tǒng)計(jì)"<<endl; cout<<"\n\t\t"; cin>>statis; itemtemp; vector<item>st; for(unsignedinti=0;i<something.size();i++) { =something[i]->Get_Name(); temp.price=something[i]->Get_Price(); temp.num=something[i]->Get_Num(); st.push_back(temp);} sort(st.begin(),st.end());//排序 if(statis==1) { cout<<"名稱(chēng):"<<"價(jià)格:"<<endl; for(unsignedinti=0;i<something.size();i++) cout<<st[i].name<<""<<st[i].price<<endl;} if(statis==2) { cout<<"名稱(chēng):"<<"庫(kù)存:"<<endl; for(unsignedinti=0;i<something.size();i++) cout<<st[i].name<<""<<st[i].num<<endl; }}該函數(shù)實(shí)現(xiàn)了對(duì)商品信息的統(tǒng)計(jì)功能,可分別統(tǒng)計(jì)所有商品的價(jià)格和庫(kù)存量,并且按照由小到大的順序顯示輸出。

4系統(tǒng)功能實(shí)現(xiàn)4.1系統(tǒng)功能主菜單界面實(shí)現(xiàn)圖4.1系統(tǒng)主菜單頁(yè)面4.2商品購(gòu)買(mǎi)界面實(shí)現(xiàn)圖4.2購(gòu)買(mǎi)商品操作界面4.3商品添加界面實(shí)現(xiàn)圖4.3添加商品操作界面4.4商品修改界面實(shí)現(xiàn)圖4.4修改商品操作界面4.5商品統(tǒng)計(jì)界面實(shí)現(xiàn)圖4.5統(tǒng)計(jì)商品操作界面5軟件測(cè)試1、intSystem::Buy()/*購(gòu)買(mǎi)商品*/例1:input:(商品種類(lèi)):1 output:日常用品信息例2:input:(購(gòu)買(mǎi)數(shù)量,單價(jià)15):2output:商品品牌:10元2、intSystem::Add()/*添加商品信息*/例1:input:(商品名稱(chēng)):雪碧output:商品品牌:雪碧例2:input:(商品庫(kù)存量):500

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論