C程序設(shè)計(jì)實(shí)驗(yàn)工資管理系統(tǒng)_第1頁
C程序設(shè)計(jì)實(shí)驗(yàn)工資管理系統(tǒng)_第2頁
C程序設(shè)計(jì)實(shí)驗(yàn)工資管理系統(tǒng)_第3頁
C程序設(shè)計(jì)實(shí)驗(yàn)工資管理系統(tǒng)_第4頁
C程序設(shè)計(jì)實(shí)驗(yàn)工資管理系統(tǒng)_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、_電子工程_系_2014_級_汽車服務(wù)工程_專業(yè) 姓名_匡翔_ 學(xué)號_2014137065_(密)(封)(線)四川工商學(xué)院課程考查(論文/作業(yè))專用封面作業(yè)(論文)題目: 學(xué)校工資管理系統(tǒng)設(shè)計(jì) 所修課程名稱: C/C+程序設(shè)計(jì)實(shí)驗(yàn) 修課程時(shí)間: 2015 年 9 月至 2016 年 1 月完成論文(作業(yè))日期: 2015 年 12 月評閱成績: 評閱意見:平時(shí)成績考勤、衛(wèi)生(總分100分)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)報(bào)告書寫情況(總分100分)實(shí)踐操作編程能力、操作能力(總分100分)總成績平時(shí)20%+實(shí)驗(yàn)報(bào)告30%+實(shí)踐操作50% 評閱教師簽名: 年 月 日一、設(shè)計(jì)目的:學(xué)校工資管理系統(tǒng),為教師提供工資查詢

2、服務(wù),為學(xué)校提供工資管理,工資統(tǒng)計(jì)等服務(wù)。二、設(shè)計(jì)任務(wù)和要求:每個教師的信息為:教師號、姓名、性別、單位名稱、家庭住址、聯(lián)系電話、基本工資、津貼、生活補(bǔ)貼、應(yīng)發(fā)工資、電話費(fèi)、水電費(fèi)、房租、所得稅、衛(wèi)生費(fèi)、公積金、合計(jì)扣款、實(shí)發(fā)工資。注:應(yīng)發(fā)工資=基本工資+津貼+生活補(bǔ)貼;合計(jì)扣款=電話費(fèi)+水電費(fèi)+房租+所得稅+衛(wèi)生費(fèi)+公積金;實(shí)發(fā)工資=應(yīng)發(fā)工資 合計(jì)扣款。設(shè)計(jì)一個程序?qū)ο嚓P(guān)信息進(jìn)行管理。教師信息處理(1) 輸入教師信息(2) 插入(修改)教師信息:(3) 刪除教師信息:(4) 瀏覽教師信息:教師數(shù)據(jù)處理:(1) 按教師號錄入教師基本工資、津貼、生活補(bǔ)貼、電話費(fèi)、水電費(fèi)、房租、所得稅、衛(wèi)生費(fèi)、公

3、積金等基本數(shù)據(jù)。(2) 教師實(shí)發(fā)工資、應(yīng)發(fā)工資、合計(jì)扣款計(jì)算。提示:計(jì)算規(guī)則如題目。(3) 教師數(shù)據(jù)管理提示:輸入教師號,讀出并顯示該教師信息,輸入新數(shù)據(jù),將改后信息寫入文件(4) 教師數(shù)據(jù)查詢:提示:輸入教師號或其他信息,即讀出所有數(shù)據(jù)信息,并顯示出來。(5) 教師綜合信息輸出提示:輸出教師信息到屏幕。三、系統(tǒng)框圖和原理分析:(1)輸入教師信息模塊 在主菜單中運(yùn)用結(jié)構(gòu)體teacher,輸入教師信息,首先建立鏈表,將用戶輸 教 師 工資管理系統(tǒng) 1輸入教師信息 2插入教師信息 3修改教師信息 4刪除教師信息 5瀏覽教師信息 6系統(tǒng)信息 7退出系統(tǒng) 主界面 選擇操作 結(jié) 束 輸入的教師信息存儲到

4、鏈表中,輸入完成后提示用戶時(shí)候繼續(xù)輸入,如果用戶輸入“Y”或“y”,則再次調(diào)用,實(shí)現(xiàn)繼續(xù)輸入教師信息的操作。如果用戶輸入“N”或“n”,則返回主菜單界面。 (2)插入教師信息模塊 在主菜單中調(diào)用teacher *insert(),然后按照提示依次輸入教師信息,然后再調(diào)用void print()函數(shù)講所有的教師信息記錄打印出來。然后再返回主菜單界面。 (3)修改教師信息模塊 在主菜單中調(diào)用void edit()函數(shù)。按教師號查找教師信息,如果找到教師 信息,調(diào)用void edit()函數(shù)提示用戶輸入新的教師信息,完成修改的操作。操作結(jié)束后提示用戶修改成功。然后返回主菜單界面。 (4)刪除教師信息

5、模塊 在主菜單中調(diào)用del()函數(shù),以刪除教師信息,首先按教師編號查詢教師信息, 如果沒有找到教師信息,給出提示信息。如果查找到該教師信息,給出改教師的全部信息,如果查找到,則刪除該教師信息,給出刪除成功的提示信息。然后返回主菜單界面。 (5)瀏覽教師信息模塊 在主菜單中調(diào)用void print()函數(shù)來顯示教師信息,先判斷鏈表是否為空。 如果鏈表不為空時(shí),逐條顯示鏈表中教師的信息,顯示調(diào)用teacher *next()函數(shù)按照教師號的大小來顯示教師的信息。然后返回主菜單界面。 (6)系統(tǒng)信息模塊 在主菜單中輸入6,可知系統(tǒng)信息、版本。 (7)退出系統(tǒng)模塊 將鏈表中的數(shù)據(jù)全部釋放掉,防止內(nèi)存泄

6、露。退出系統(tǒng)。四、程序流程圖五、關(guān)鍵代碼分析(1) 保存數(shù)據(jù)函數(shù)save() 函數(shù)原型:void save() 功能描述:將鏈表teacher中的N個數(shù)據(jù)寫入到磁盤文件teacher_list中,如果保存成功,則給出提示保存成功,否則返回“cannot ofen file”表示無法打開文件,返回“file write error”表示文件輸入錯誤。  (2)瀏覽教師信息函數(shù)query() 函數(shù)原型:void query(struct teacher *p)

7、 功能描述:將鏈表teacher中的head指向p,然后讓用戶輸入教師號no,依次在鏈表中需找p,如果教師號不對,則指針往后面撥動一下,使p=p->next;知道找到相對應(yīng)的正確的教師號。然后打印出教師的基本信息。(3) 修改教師信息函數(shù)edit() 函數(shù)原型:void edit(struct teacher *p) 功能描述:首先讓用戶輸入希望修改的教師的教師號a, 然后在鏈表中一條一條查找看p->num是否等于a,如果找到,則讓用戶再次輸入教師的具體信息,輸入完畢跳出,轉(zhuǎn)向主菜單界面。如果沒有找到,

8、則令p=p->next。直到查詢完所有的教師記錄。六、設(shè)計(jì)總結(jié)持續(xù)一個學(xué)期的課程設(shè)計(jì)給了我太多的感觸,開始從題目上看,感覺題目很大,設(shè)計(jì)量很大,也很復(fù)雜,感覺不是簡單的就能解決的。這樣只用重新拾起書繼續(xù)來看,獲得新的知識和鞏固以前的C方面的知識。提升自己的能力。通過這個學(xué)期的課程設(shè)計(jì)的練習(xí)與設(shè)計(jì)我學(xué)會了很多,也更加熟悉C語言程 序設(shè)計(jì),從中得到了很多樂趣,很快樂,感覺C語言的世界里面奇妙無比。雖然在途中也遇到很多的苦難,但是還是通過問同學(xué)和學(xué)長解決了。最后看到自己設(shè)計(jì)的程序能夠運(yùn)行起來特別的開心。 這次的程序設(shè)計(jì)很有意義,也很鍛煉人的能力,特別是C語言方面的能力, 為自己在C+語言方面打

9、下基礎(chǔ)附錄參考文獻(xiàn)1. 黃梯云 , 管理信息系統(tǒng)(修訂版),北京:高等教育出版社, 2000  2. 薛華成 , 管理信息系統(tǒng) ( 第三版) , 北京:清華大學(xué)出版社, 1999  3. 陳曉紅 , 管理信息系統(tǒng)教程,北京:清華大學(xué)出版社, 20034. 陳國青等 , 信息系統(tǒng)的組織  管理  建模,北京:清華大學(xué)出版社,

10、60;2002  5. 高陽 , 計(jì)算機(jī)網(wǎng)絡(luò)原理與實(shí)用技術(shù) , 長沙:中南工業(yè)大學(xué)出版社, 1998  6. 左美云等 , 信息系統(tǒng)的開發(fā)與管理教程 , 北京:清華大學(xué)出版社, 2001附錄1 -源程序#include<iostream> #include<fstream> #include<stdlib.h> #include<string> #include<iomanip>

11、; using namespace std; int i; class Person public: void display() cout << "姓名:" cin >> name; cout << "工號:" cin >> num; while(num<=0) cout<<"請重新輸入工號大于0的數(shù):"<<endl; cin>>num; string name;/名字 int num; ;/工號 class Teacher: public P

12、erson/教師 public: Teacher() int s=1000; wage = s; butie1=0; void display1(); int wage;/基本工資 int time; int butie1; int jintie1; ;/課時(shí) void Teacher:display1() cout << "請輸入"Person:display();     cout << "請輸入教師的課時(shí)(小時(shí)):  " &#

13、160;   cin >> time;  while(time<=0)      cout<<"請重新輸入課時(shí)大于0的數(shù):"<<endl;   cin>>time;      /補(bǔ)貼 Teacher t100;  Leader x100; Jia

14、nzhi j100; void show()      cout << "t請輸入你要錄入的對象 :" << endl;     cout << "tt 1:教師" << endl;     cout <&

15、lt; "tt 2:領(lǐng)導(dǎo)" << endl;     cout << "tt 3:教師兼職領(lǐng)導(dǎo)" << endl;     cout << "tt 4:退出錄入" << endl;     

16、cout << "請選擇:   "  void jiaoshiluru()/教師錄入      ofstream outfile("教師.txt", ios:app);     if (!outfile)          ce

17、rr << "open error!" << endl;         exit(0);          int b;     cout << "請選擇你要錄入教師的個數(shù):"  &

18、#160;  cin >> b;     for (i = 0; i < b; i+)          ti.display1();   cout<<"是否保存信息(y(Y)/n(N)"<<endl;   char&

19、#160;c;   cin>>c;   if(c='Y'|c='y')            outfile << ti.num << "    " <<  << "

20、;    " << ti.wage                 << "    " << ti.time << endl;     15  

21、;        outfile.close();  void wenjianluru()/文件錄入      int c;     for (i = 0; i+)            show();

22、0;        cin >> c;         if (c = 4)                cout << "退出錄入成功。" &

23、lt;< endl;         system("cls");             break;          else         &#

24、160;   switch (c)                 case 1:                 jiaoshiluru();     

25、60;           break;                          case 2:         

26、60;       Leaderluru();                 break;                      &#

27、160;   case 3:                 jianzhiluru();                 break;       

28、      default:                       cout << "上一次輸入錯誤。" << endl;        &

29、#160;                     break;                    void jiaoshishuchu()/教師輸出顯示  

30、;    ifstream infile("教師.txt", ios:in);       int m;       for (i = 0; i < 100; i+) ti.num=0; infile >> ti.num >> >> ti.w

31、age >> ti.time; if (ti.num = 0) break; int jintie1; jintie1=ti.time*30; m = ti.wage + jintie1; cout << "t教師: " <<setw(8)<< ti.num <<setfill(' ')<<setw(10)<< <<setfill(' ')<<setw(10)<<ti.wage <<setfill

32、(' ')<<setw(14)<<jintie1<<setfill(' ')<<setw(12)<<ti.butie1<<setfill(' ')<<setw(10)<< m<< endl; infile.close(); void leadershuchu()/領(lǐng)導(dǎo)輸出 ifstream infile("領(lǐng)導(dǎo).txt", ios:in); int m; for (i = 0; i < 100; i+) xi.nu

33、m =0; infile >> xi.num >> >> xi.wage >> xi.butie; if (xi.num = 0) break; m = xi.wage + xi.butie; cout << "t領(lǐng)導(dǎo):" <<setfill(' ')<<setw(8)<<xi.num <<setfill(' ')<<setw(10)<< <<setfill('

34、 ')<<setw(10)<<xi.wage<<setfill(' ')<<setw(14)<<xi.jintie<<setfill(' ')<<setw(12)<<xi.butie<<setfill(' ') <<setw(10)<< m<< endl; infile.close(); void shuchu()/輸出顯示 cout <<"tt 工號 名字 基本工資 課時(shí)津

35、貼 補(bǔ)貼 總工資 " << endl; jiaoshishuchu(); leadershuchu(); jianzhishuchu(); void show3() cout << "t請輸入你要查詢的對象:" << endl; cout << "tt 1:教師查詢" << endl; cout << "tt 4:退出查詢" << endl; cout << " 請選擇一個操作:" void jiaoshich

36、axun() ifstream infile("教師.txt", ios:in); string nam; int num; int m, n,x; cout<<"tt1.按教師的姓名查找ntt2.按教師的工號查找" cout<<"ntt 請選擇" cin>>x; switch(x) case 1:cout<<"tt請輸入要查找的教師的姓名:" cin>>nam; for (i = 0, n = 0; i < 100; i+) infile >

37、> ti.num >> >> ti.wage >> ti.time; if (ti.num = 0) break; if (=nam) n+; m = ti.wage + (ti.time - 24) * 30; cout<<"tt工號 姓名 工資"<<endl; cout << "t教師: " <<" "<<ti.num << " " << &l

38、t;< " " <<m << endl; if (n =0) cout << "沒有你要查詢的教師。" << endl; infile.close(); break; case 2: cout<<"tt請輸入要查找的教師的工號:" cin>>num; for (i = 0, n = 0; i < 100; i+) infile >> ti.num >> >> ti.wage >> ti.t

39、ime; if (ti.num = 0) break; if (ti.num=num) n+; m = ti.wage + (ti.time - 24) * 30; cout<<"tt工號 姓名 工資"<<endl; cout << "t教師: " <<" "<<ti.num << " " << << " " <<m << endl; if (n =0) cout

40、 << "沒有你要查詢的教師。" << endl; infile.close(); break; default:cout<<"操作選擇錯誤!"<<endl;break; void wenjianchaxun()/文件查詢 int c; for (i = 0; i+) show3(); cin >> c; if (c = 4) cout << "退出查詢成功。" << endl; system("cls"); break; else

41、 switch (c) case 1: jiaoshichaxun(); break; case 2: leaderxhaxun(); break; case 3: jianzhichaxun(); break; default: cout << "上一次輸入錯誤。" << endl; break; void show5() cout << "t請輸入你要修改的對象:" << endl; cout << "tt 1:教師修改" << endl; cout <

42、< "tt 2:教師兼職領(lǐng)導(dǎo)修改" << endl; cout << "tt 3:退出修改" << endl; cout << " 請選擇一個操作:" void jiaoshixiugai()/教師修改 ifstream infile("教師.txt", ios:in); string nam; int n, n1, m1 = 0; cout << "請輸入你要修改教師的名字: " cin >> nam; cout &

43、lt;< "請輸入你要修改的課時(shí):" cin >> n; for (i = 0; i < 100; i+) infile >> ti.num >> >> ti.wage >> ti.time; if (ti.num = 0) break; m1+; if ( =nam) n1 = ti.time; ti.time = n; n = n1; infile.close(); ofstream outfile("教師.txt", ios:out); for (

44、i = 0; i < m1; i+) outfile << ti.num << " " << << " " << ti.wage << " " << ti.time << endl; outfile.close(); void xiugai()/修改 int c; for (i = 0; i+) show5(); cin >> c; if (c = 3) cout << "ttt退出修

45、改成功。" << endl; system("cls"); break; else switch (c) case 1: jiaoshixiugai(); break; case 2: janzhi2xiugai(); break; default: cout << "上一次輸入錯誤。" << endl; break; void show6() cout << "t請選擇如下操作:" << endl; cout << "t1:教師刪除"

46、; << endl; cout << "t2:領(lǐng)導(dǎo)刪除" << endl; cout << "t3:教師兼職領(lǐng)導(dǎo)刪除" << endl; cout << "t4:退出刪除" << endl; cout << "請選擇你的一個操作: " void jiaoshidel()/教師刪除 ifstream infile("教師.txt", ios:in); string nam; int num; int n

47、,x; cout<<"tt1.按教師的姓名刪除ntt2.按教師的工號刪除" cout<<"ntt 請選擇" cin>>x; switch(x) case 1:cout<<"tt請輸入要刪除的教師的姓名:"cin>>nam; for (i = 0, n = 0; i < 100; i+) infile >> ti.num >> >> ti.wage >> ti.time; if (ti.num = 0) br

48、eak; if (=nam) n+; ti.num=0;break; if (n =0) cout << "沒有你要刪除的教師。" << endl; else cout<<"刪除成功!"<<endl; infile.close(); break; case 2: cout<<"tt請輸入要刪除的教師的工號:" cin>>num; for (i = 0, n = 0; i < 100; i+) infile >> ti.num >

49、;> >> ti.wage >> ti.time; if (ti.num = 0) break; if (ti.num=num) n+; ti.num=0;break; if (n =0) cout << "沒有你要刪除的教師。" << endl; else cout<<"刪除成功"<<endl; infile.close(); break; default:cout<<"操作選擇錯誤!"<<endl;break; i

50、nfile.close(); ofstream outfile("教師.txt", ios:out); for (i = 0; i < 100; i+) if (ti.num != 0) outfile << ti.num << " " << << " " << ti.wage << " " << ti.time << endl; outfile.close(); void show_sort()

51、cout << "請選擇如下操作:" << endl; cout << "tt 1:教師排序" << endl; cout << "tt 2:教師兼職領(lǐng)導(dǎo)排序" << endl; cout << "tt 3:退出排序" << endl; cout << "請選擇你的一個操作: " void jiaoshi_sort() /教師排序 ifstream infile("教師.txt", ios:in); int m100; for (i = 0; i < 100; i+) infile >> ti.num >> >> ti.wage >> ti.time; if (ti.num = 0) b

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論