c語(yǔ)言課程設(shè)計(jì)_第1頁(yè)
c語(yǔ)言課程設(shè)計(jì)_第2頁(yè)
c語(yǔ)言課程設(shè)計(jì)_第3頁(yè)
已閱讀5頁(yè),還剩14頁(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)介

1、青島理工大學(xué)C語(yǔ)言程序設(shè)計(jì)題目職工考勤管理程序指導(dǎo)教師: 姓名: 學(xué)號(hào): 班級(jí):專(zhuān)業(yè):計(jì)算機(jī)工程地點(diǎn):計(jì)算機(jī)工程學(xué)院機(jī)房時(shí)間:2014630 至 、內(nèi)容此系統(tǒng)以對(duì)職工考勤為背景,提供對(duì)職工信息、上下班時(shí)間的錄入、顯 示、查詢、刪除等功能。具體功能實(shí)現(xiàn)如下:1、職工信息新建:實(shí)現(xiàn)職工工號(hào)、姓名、順序號(hào)、上下班時(shí)間的錄入功能,并能將其以文件形式加以保存。2、考勤信息瀏覽:實(shí)現(xiàn)對(duì)全體職工所投的的考勤信息的瀏覽功能。3、查詢功能:實(shí)現(xiàn)按工號(hào)或姓名查詢職工一周的上下班時(shí)間的功能。4、刪除功能:實(shí)現(xiàn)對(duì)職工考勤信息的刪除管理。5、系統(tǒng)以菜單方式工作,界面清晰,易于操作。上機(jī)環(huán)境操作系統(tǒng):wi ndows x

2、p/8.1 開(kāi)發(fā)工具:vc6.0三、函數(shù)調(diào)用關(guān)系圖四、各函數(shù)功能說(shuō)明對(duì)每個(gè)函數(shù)功能加以說(shuō)明,說(shuō)明該函數(shù)主要實(shí)現(xiàn)了什么內(nèi)容 例如:1.mai n()主函數(shù)2.void in put();錄入函數(shù)3.void display。;顯示函數(shù)4.void searchO();查找函數(shù)5.void del();刪除函數(shù)五、算法描述或流程圖(或者進(jìn)行描述,或者繪出流程圖,例子見(jiàn)下)主函數(shù)歡迎界面程序王采單輸入要選擇的選項(xiàng)前的序號(hào),給x賦值Switch。Case 條件CaselCase2Case3Case4Case5DefultIn put ()Display ()SearchO()Del()Exit()錄入

3、函數(shù)疋義局部變量i,x打開(kāi)文件打不開(kāi)文件(x!= ' n')Do-while 循環(huán)Scanf輸入職工信息進(jìn)入結(jié)構(gòu) Fwrite把輸入的職工信息寫(xiě)入文件輸入結(jié)束標(biāo)記x (是n就結(jié)束,否則繼續(xù)輸入),判斷 是否跳出循環(huán)輸出打 不開(kāi)文件”顯示函數(shù)定義局部變量i打開(kāi)文件Fseek查詢文件的末尾,計(jì)算nRewind將指針指向文件開(kāi)頭i<nfor循環(huán)i=0;fread讀取文件,printf輸出讀取到的文件i+;查詢函數(shù)定義局部變量打開(kāi)文件Fseek查詢文件的末尾,計(jì)算 n (結(jié)構(gòu)體個(gè)數(shù))Rrewind將指針指向文件開(kāi)頭i<nfor循環(huán)i=0;fread讀取文件,printf輸出

4、讀取到的文件i+;讀取顯示結(jié)束后,跳出循環(huán),在fclose關(guān)閉文件刪除函數(shù)定義局部變量打開(kāi)文件Fseek查詢文件的末尾,計(jì)算 n (結(jié)構(gòu)體個(gè)數(shù))Rrewind將指針指向文件開(kāi)頭i<nfor循環(huán)i=0;fread讀取文件,遍歷結(jié)構(gòu)體數(shù)組,找到信息并刪除i+;讀取顯示結(jié)束后,跳出循環(huán),在fclose關(guān)閉文件六、程序運(yùn)行效果圖;歡迎界面主菜單靑輸入要選擇選項(xiàng)前的序號(hào):錄入考勤信息姓名鍵維續(xù)輸入,按阿亭1L毎入:丄倔格事職工號(hào).姓名 g勤生息錄入;小王伶回聿鍵継續(xù)輸入 按H停止輸入:職工號(hào):102考勤>1棄單自a自一自一息 考考考考存 工工丄工保 眼職職職幷 人示找雷1 2 T- 4 5輸

5、入職二考勤信息I耐數(shù)上班時(shí)間12813072B0930順序數(shù)上班時(shí)間220130727O9Q0I麗數(shù)上班時(shí)間3201307200900顯示考勤信息下班時(shí)間201307261700下班時(shí)間201307271700下班時(shí)間2013072B170O考勤信息鬲王紅 姓wh. 號(hào)fl- 0 1 2 0 0 0 4 111上班時(shí)間20130726890020130V27090B2013H728R9fiHTW寸間2&13072G17&0201372717062813B72817Hfl按任意健返回三菓里查詢考勤信息請(qǐng)輸人查詢信息:2013 07270900職工號(hào)難蚩 順序數(shù)上班時(shí)間bWl

6、9;al101 小王 2201387270900201397271700按回車(chē)鍵M續(xù)查詢,按N停匕宜詢:刪除考勤信息考勤信息刪除-V-比雇功此鏈項(xiàng)如人功能刖的數(shù)字請(qǐng)輸入刪除職工的具伍條件:丄師刪除考勤信息成功職工信息-刪除成功苴他職工信息有:職工號(hào)姓名 取序數(shù)上班時(shí)間F班時(shí)間101 I 王 220130727B900201307271700七、總結(jié)通過(guò)這次做 C 語(yǔ)言課設(shè), 我發(fā)現(xiàn)這學(xué)期在老師那學(xué)的只是一些皮毛而已。編程的知識(shí)博大精深,還有許許多多的函 i 數(shù)我都不知 j 道,不會(huì)用,在今后自己還要不斷 i 的學(xué)習(xí)。通過(guò)這幾天做課設(shè), 我體會(huì)到這個(gè)過(guò)程是艱辛并快樂(lè)著的, 這個(gè)過(guò)程中充滿了編程的

7、樂(lè) 趣。每次為如何把實(shí)際中的問(wèn)題轉(zhuǎn)化為計(jì)算機(jī)可以識(shí)別的語(yǔ)言而苦惱、煩躁, 不停的在圖書(shū)館和網(wǎng)上查找自己需要的資料, 可是一旦自己把程序編出來(lái)了, 并在計(jì)算機(jī)上運(yùn)行通過(guò), 自 己心里又是快樂(lè)的, 有一種巨大的成就感回蕩在心頭, 把坐在電腦前幾個(gè)小時(shí)的苦和累都忘 了。這次課設(shè), 是我自己第一次靠自己編出來(lái)的一個(gè)完整的程序, 我會(huì)把這個(gè)程序一直的保 存著,隨著我今后在編程方面的學(xué)習(xí)加深, 我會(huì)自己慢慢的改進(jìn)它, 讓它見(jiàn)證我的成長(zhǎng)歷程。 總言而之,這幾天做課設(shè)我過(guò)得非常的充實(shí),也讓我學(xué)習(xí)到了很多。八、參考文獻(xiàn)1 李春葆等 C 語(yǔ)言程序設(shè)計(jì)清華大學(xué)出版社, 20112 譚浩強(qiáng) C 程序設(shè)計(jì)(第三版) 清

8、華大學(xué)出版社, 2005九、程序清單#include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>/頭文件聲明#define N 50void input();void display();void search();void del();/定義函數(shù)struct workerr/結(jié)構(gòu)體變量聲明char no10;char name10;int number;char go14;char back14;struct worker flN;/定義結(jié)構(gòu)體數(shù)組int n;int

9、 main()int x; char ch;doprintf("nttt=nttttnnnn"); printf(" 歡迎使用職工考勤管理系統(tǒng) nn"); printf("n 編 程 者nnn");printf("*按任意鍵繼續(xù)*nnn");ch=getch(); while(!ch); system("cls");dohaha:printf(" n");printf(" 菜單 n"); printf("nn")printf("

10、;tttt1. 錄入職工考勤信息 n");printf("tttt2. 顯示職工考勤信息 n");printf("tttt3. 查找職工考勤信息 n");printf("tttt4. 刪除職工考勤信息 n");printf("tttt5. 退出并保存 n"); printf(" 請(qǐng)輸入要選擇選項(xiàng)前的序號(hào): ");scanf("%d",&x);getchar();system("cls");switch(x)case 1:input();b

11、reak;case 2:display();break;case 3:search();break;case 4: del();break;case 5:exit(0);default:goto haha;while(1); return 0;void input()/錄入函數(shù)int i=0;char ch;FILE *fp;/定義 FLIe 文件操作指針職工考勤信息管理 .txt","ab+")=NULL) 職工考勤信息管理 .txt","wb+")=NULL)printf(" 不能建立文件! n"); exit

12、(0); printf("nttt 輸入職工考勤信息 nn"); doprintf(”輸入格式:職工號(hào)t姓名t順序數(shù)t上班時(shí)間t下班時(shí)間n”);printf(" 考勤信息錄入 :");scanf("%s%s%d%s%s",fli.no,,&fli.number,fli.go,fli.back); fwrite(&fli,sizeof(struct worker),1,fp);/ 將結(jié)構(gòu)體數(shù)組內(nèi)容內(nèi)容寫(xiě)到文件中printf(" 按回車(chē)鍵繼續(xù)輸入,按 N 停止輸入 :n");printf

13、("n");getchar();ch=getch();i+;while(ch!='n'&&ch!='N'); fclose(fp);n=i;system("cls");void display()/顯示函數(shù)int i;char ch;FILE *fp;職工考勤信息管理 .txt","rb+")=NULL)printf(" 不能打開(kāi)文件! n");exit(1);fseek(fp,0,2); / 將文件指針移到文件尾 n=ftell(fp)/sizeof(st

14、ruct worker);do printf("n");printf("ttt 考勤信息 n");printf("ttt nn"); printf("tt 職工號(hào) t 姓名 t 順序數(shù) t 上班時(shí)間 t 下班時(shí)間 n"); rewind(fp);for(i=0;i<n;i+) fread(&fli,sizeof(struct worker),1,fp);/ 從文件指針 fp 讀取一個(gè)size 為 sizeof(struct worker) 的數(shù)據(jù),存入 fliprintf("tt%st%st

15、%dt%st%sn",fli.no,,fli.number,fli.go,fli.back); printf("nntt 按任意鍵返回主菜單 nntt "); ch=getch();while(!ch);fclose(fp); system("cls");void search() / 查找函數(shù)int x,k=0,i;char z20,sN20,ch;FILE *fp;職工考勤信息管理 .txt","rb+")=NULL)printf(" 不能打開(kāi)文件! n");exit(1);

16、 fseek(fp,0,2);n=ftell(fp)/sizeof(struct worker);do haha: printf("ttt 考勤信息查詢 n"); printf("ttt1. 按職工號(hào)查詢 n");printf("ttt2. 按姓名查詢 n"); printf("ttt3. 按上班時(shí)間查詢 n");printf("ttt4. 按下班時(shí)間查詢 n");printf("ttt5. 返回主菜單 n");printf("ttt6. 退出并保存 nn"

17、;);printf("ttt 選擇功能選項(xiàng) (輸入功能前的數(shù)字 ) nn"); printf("ttt");scanf("%d",&x);getchar();system("cls");for(i=0;i<n;i+)switch(x)case 1: strcpy(si,fli.no);break;case 2: strcpy(si,);break;case 3: strcpy(si,fli.go);break;case 4: strcpy(si,fli.back);break;case

18、 5: goto ap;case 6: exit(0);default:goto haha;doprintf("nnttt 請(qǐng)輸入查詢信息: "); gets(z);for(i=0;i<n;i+) if(!strcmp(si,z)k+; printf("n");printf("tt 職工號(hào) t 姓名 t 順序數(shù) t 上班時(shí)間 t 下班時(shí)間 n"n");printf("tt%st%st%dt%st%sn",fli.no,,fli.number,fli.go,fli.back); pri

19、ntf(" if(k=0)printf("nttt 沒(méi)有此職工信息 !");printf("nnnt 按回車(chē)鍵繼續(xù)查詢,按 N 停止查詢 :"); ch=getch();while(ch!='N'&&ch!='n');system("cls");while(1);fclose(fp);ap: system("cls");void del() / 刪除函數(shù)char st20,m20;int i,j,l;FILE *fp;職工考勤信息管理 .txt",

20、"rb")=NULL) printf("t>> 不能創(chuàng)建文件 n"); exit(0);fseek(fp,0,2); n=ftell(fp)/sizeof(struct worker);fclose(fp); 職工考勤信息管理 .txt","wb");printf("n");printf("ttt 考勤信息刪除 n"); printf("tttnn");printf("ttt1. 按職工號(hào)刪除 n");printf("ttt2. 按姓名刪除 n");printf("ttt3. 按上班時(shí)間刪除 n"); printf("ttt4. 按下班時(shí)間刪除 n");printf("ttt 選擇功能選項(xiàng) ( 輸入功能前的數(shù)字 ) nn"); printf("nttt");scanf("%d",&l);getchar();/存放回車(chē)符printf(" 請(qǐng)輸入刪除職工的具體條件 :");scanf("%s",m); / 輸入的具體條件存入 m 數(shù)組 getchar();s

溫馨提示

  • 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)論