C語言課程設計報告模板_第1頁
C語言課程設計報告模板_第2頁
C語言課程設計報告模板_第3頁
C語言課程設計報告模板_第4頁
C語言課程設計報告模板_第5頁
已閱讀5頁,還剩15頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、中國地質大學(武漢)課程設計報告題目c 語言程序設計姓名學號專業統計學所在院系經濟管理學院指導老師江俊君日期2016/6/11目 錄目 錄21課程論文題目32程序設計思路43功能模塊圖54數據結構設計65算法設計76程序代碼107程序運行結果168編程中遇到的困難及解決方法199總結心得及良好建議2010致謝201課程論文題目職工信息管理系統內容: 要求職工信息包括職工號、姓名、性別、年齡、學歷、工資、住址、電話等 (職工號不重復 )。 功能 :實現簡單的職工工資信息管理,職工工資的基本信息包括編號、姓名、基本工資、獎金、工資總額等1. 系統以菜單方式工作。2. 職工信息錄入功能(職工信息用文

2、件保存) 。3. 職工信息瀏覽功能 。4.職工信息查詢功能。查詢方式。( 1)按學歷查詢。( 2)按工號查詢。2程序設計思路( 1)需求分析系統要以菜單方式工作,因而根據題目要求,提供鍵盤式選擇菜單實現功能選擇,職工信息采用文件保存,所以應提供文件的輸入、輸出等操作;在程序中需要瀏覽職工的信息,應提供顯示、查找、等操作;要實現職工信息的查詢,則要提供查找功能(包括按學歷查詢和按工號查詢兩種查詢方式) ;要實現職工信息的刪除、修改,則要提供文件記錄的刪除 、修改功能。(2)總體設計根據上面的需求分析 ,可以將這個系統設計分為以下模塊:職工信息輸入模塊、職工信息瀏覽模塊、職工信息查詢模塊、職工信息

3、刪除與修改模塊(3)數據信息建立職工信息結構體,結構體成員包括工號、姓名、性別、年齡、學歷、工資、住址和電話。Struct employeechar num20;char name8;char sex10;char age10;char xueli30;char wanges10;char tel15;char addr50;emN3功能模塊圖錄入模塊菜單瀏覽模塊10080學歷查詢60東部40西部20查詢模塊北部0第一季度第三季度工號查詢4. 數據結構設計建立職工信息結構體,結構體成員包括工號、姓名、性別、年齡、學歷、工資、住址和電話。Struct employeechar num20;/工號

4、char name30;/姓名char sex10;/性別char age10;/年齡char xueli30;/學歷char wanges10;/工資char tel15;/電話char addr50;住址emN5算法設計1. 輸入模塊:輸入職工的工號、姓名以及其它的一些職工的相關信息,通過自己定義的 void append() 函數來實現。2. 瀏覽模塊:瀏覽所有職工的相關信息,通過自己定義的void display()函數來實現。3.按職工號查詢模塊:可以按職工號來查詢職工的相關信息,通過自己定義的voidsearch_num() 函數來實現。8. 按職工的的學歷查詢模塊:可以按職工的學

5、歷來查詢職工的相關信息,通過自己定義的void search_xuelil函數來實現。4. 退出模塊: 退出職工信息管理系統,通過頭文件windows.h 中的 exit ( 0)函數來實現。1. 錄入模塊void append()int i,n;FILE*fp;fp=fopen("employee_list","wb");/倆一起定義fpprintf("請輸入職工個數n");scanf("%d",&n);for (i=0;i<n;i+)printf("請輸入職工號:");scan

6、f("%d",&emi.num);printf(" 請輸入姓名 : ");scanf("%s",);getchar();printf("請輸入性別 (f-女 m-男 ): ");scanf("%s",&emi.sex);printf("請輸入年齡 :");scanf("%s",&emi.age);printf("請輸入學歷 :");scanf("%s",emi.xueli);p

7、rintf("請輸入工資 :");scanf("%s",&emi.wanges);printf("請輸入住址 :");scanf("%s",emi.addr);printf("請輸入電話 :");scanf("%s",emi.tel);printf("n");save(n);2. 瀏覽模塊void display()int i;int m=load();printf(" 職工號 printf(" 學歷 ttt姓名 tt 工資 t

8、t性別 tt 住址 tt年齡 n");電話 n");for(i=0;i<m;i+)printf("%dt",emi.num);printf("%st",);printf("%st",emi.sex);printf("%st",emi.age);printf("%st",emi.xueli);printf("%st",emi.wanges);printf("%st",emi.addr);printf("%s

9、t",emi.tel);printf("n");2. 查詢模塊void search()int a;printf("n按職工號查詢請按1n 按學歷查詢請按2n 返回主菜單請按3n");scanf("%d",&a);switch(a)case 1:printf("case 2:printf("按職工號查詢 n");search_num();break;按學歷查詢 n");search_xueli();break;case 3:main();break;default: print

10、f("您輸入有誤,請重新選擇!n"); break;(1) 按工號查詢void search_num()int num,i,t; int m=load(); /printf("請輸入要查找的職工號使 m=文件輸入的個數:n");scanf("%d",&num);for(i=0;i<m;i+)if(num=emi.num)printf("n已找到此人,其記錄為:n");printf("職工號 t姓名 tt性別 tt年齡 n");printf("學歷 tt工資 tt住址 tt

11、電話 n");printf("%dt",emi.num);printf("%st",);printf("%st",emi.sex);printf("%st",emi.age);printf("%st",emi.xueli);printf("%st",emi.wanges);printf("%st",emi.addr);printf("%st",emi.tel);printf("n");bre

12、ak;if(i=m)/因為 i=0 , i=m 就超了printf("n對不起,查無此人n");printf("n");printf(" 返回查詢函數請按 1, 繼續查詢職工號請按 2n"); scanf("%d",&t);switch(t)case 1:search();break;case 2:search_num(); break;default:break;(2) 按學歷查找void search_xueli()char xueli30;int i,t; int m=load();printf(&q

13、uot;請輸入要查找的學歷:n");scanf("%s",xueli);for(i=0;i<m;i+)if(strcmp(emi.xueli,xueli)=0)printf("nprintf("已找到,其記錄為:職工號 t姓名 ttn");性別 tt年齡 n");printf("學歷 tt工資 tt住址 tt電話 n");printf("%dt",emi.num);printf("%st",);printf("%st",em

14、i.sex);printf("%st",emi.age);printf("%st",emi.xueli);printf("%st",emi.wanges);printf("%st",emi.addr);printf("%st",emi.tel);printf("n");if(i=m)printf("n對不起,查無此人n");printf("n");printf("返回查詢函數請按1, 繼續查詢學歷請按2n");sca

15、nf("%d",&t);switch(t)case 1:search();break;case 2:search_xueli();break;default :break;6程序代碼#include <stdio.h>#include <stdlib.h>/包括 exit ( 0),無需定義#include <string.h>#include <conio.h>#define N 100/可以隨便改人數void append(); /錄入void display(); /瀏覽void search(); /查詢voi

16、d search_num(); /工號void search_xueli();/學歷void save(int); /聲明一個形參struct employee/定義結構體數組全局變量在char name30;/省事char sex10;的中不行char age10;char xueli30;char wanges10;char tel15;char addr50;emN;void main()int n;n=1;while(n)/用一個循環使之能夠返回printf("*職工信息管理系統*n");printf("1.錄入職工信息 n");printf(&

17、quot;2.瀏覽職工信息 n");printf("3.查詢職工信息 n");printf("4.退出 n");printf("請按功能序號:n");scanf("%d",&n);switch(n)case 1:append();break;case 2:display();break;case 3:search();break;case 4:exit(0);n=0;break ;default:printf("輸入錯誤指令 n");printf("n按任意鍵繼續n&

18、quot;);getch();void append()int i,n;FILE*fp;fp=fopen("employee_list","wb");/倆一起定義fpprintf("請輸入職工個數n");scanf("%d",&n);for (i=0;i<n;i+)printf("請輸入職工號:");scanf("%d",&emi.num);printf("請輸入姓名 :");scanf("%s",

19、);getchar();printf("請輸入性別 (f-女 m-男 ): ");scanf("%s",&emi.sex);printf("請輸入年齡 :");scanf("%s",&emi.age);printf("請輸入學歷 :");scanf("%s",emi.xueli);printf("請輸入工資 :");scanf("%s",&emi.wanges);printf("請輸入住址 :"

20、;);scanf("%s",emi.addr);printf("請輸入電話 :");scanf("%s",emi.tel);printf("n");save(n);void save(int n)/save函數 save 了多少個FILE*fp;int i;if(fp=fopen("employee_list","wb")=NULL) /能否以寫的形式打開,wb2 進制printf ("cannot open filen");exit(0);for(i=0

21、;i<n;i+)if(fwrite(&emi,sizeof(struct employee),1,fp)!=1)/printf("file write errorn");fclose(fp);int load()/數出錄入的個數FILE*fp;int i;if(fp=fopen("employee_list","rb")=NULL)printf ("cannot open filen");exit(0);for(i=0;!feof(fp);i+)/feof fread(&emi,sizeof(

22、struct檢查文件是否結束,結束時返回非零值employee),1,fp);/以二進制向文件讀寫數據,地址,字節,讀多少個數據,文件指針fclose(fp);return(i);void display()int i;int m=load();printf(" 職工號 printf(" 學歷 ttt姓名 tt 工資 tt性別 tt 住址 tt年齡 n");電話 n");for(i=0;i<m;i+)printf("%dt",emi.num);printf("%st",);printf(&qu

23、ot;%st",emi.sex);printf("%st",emi.age);printf("%st",emi.xueli);printf("%st",emi.wanges);printf("%st",emi.addr);printf("%st",emi.tel);printf("n");void search()int a;printf("n按職工號查詢請按1n 按學歷查詢請按2n 返回主菜單請按scanf("%d",&a);

24、switch(a)case 1:printf("按職工號查詢 n");search_num();break;case 2:printf("按學歷查詢 n");search_xueli();break;case 3:main();break;default: printf("您輸入有誤,請重新選擇!n"); break;3n");void search_num()int num,i,t; int m=load(); /printf("請輸入要查找的職工號使 m=文件輸入的個數:n");scanf("

25、;%d",&num);for(i=0;i<m;i+)if(num=emi.num)printf("n已找到此人,其記錄為:n");printf("職工號 t姓名 tt性別 tt年齡 n");printf("學歷 tt工資 tt住址 tt電話 n");printf("%dt",emi.num);printf("%st",);printf("%st",emi.sex);printf("%st",emi.age);prin

26、tf("%st",emi.xueli);printf("%st",emi.wanges);printf("%st",emi.addr);printf("%st",emi.tel);printf("n");break;if(i=m)/因為 i=0 , i=m 就超了printf("n對不起,查無此人n");printf("n");printf(" 返回查詢函數請按 1, 繼續查詢職工號請按 2n"); scanf("%d&quo

27、t;,&t);switch(t)case 1:search();break;case 2:search_num(); break;default:break;void search_xueli()char xueli30;int i,t; int m=load();printf("請輸入要查找的學歷:n");scanf("%s",xueli);for(i=0;i<m;i+)if(strcmp(emi.xueli,xueli)=0)printf("n已找到,其記錄為:n");printf("職工號 t姓名 tt性

28、別 tt年齡 n");printf("學歷 tt工資 tt住址 tt電話 n");printf("%dt",emi.num);printf("%st",);printf("%st",emi.sex);printf("%st",emi.age);printf("%st",emi.xueli);printf("%st",emi.wanges);printf("%st",emi.addr);printf("

29、%st",emi.tel);printf("n");if(i=m)printf("n對不起,查無此人n");printf("n");printf("返回查詢函數請按1, 繼續查詢學歷請按2n");scanf("%d",&t);switch(t)case 1:search();break;case 2:search_xueli();break;default :break;7程序運行結果1.運行程序菜單模塊初始化,如圖1. 按 1 進入職工信息錄入模塊, 輸入職工信息工號 007,姓名007,性別 M ,年齡 30,學歷 zhongguodizhidaxue ,工資 9999,住址 beiqu21d 電話 888888 如圖2. 在輸入完 N 個數據后,按 2

溫馨提示

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

最新文檔

評論

0/150

提交評論