C语言--职工信息管理系统(含论文)
摘要:職工信息管理系統(tǒng)是實現(xiàn)對職工信息的添加、刪除、查詢、修改、新建列表、排序等功能;使用結(jié)構(gòu)體儲存全部職工的基本信息和情況!可以將數(shù)組中的信息保存到指定文件中,并且對指定文件進行讀取以將信息讀入到數(shù)組中,也可將多個文件組成一個文件進行管理。
一、專業(yè)設(shè)計目的
(1) 鞏固C語言的基本語法,掌握函數(shù)設(shè)計方法和結(jié)構(gòu)化設(shè)計思想。
(2) 掌握結(jié)構(gòu)體數(shù)組的定義和使用。
(3) 掌握C語言的文件進行操作。掌握結(jié)構(gòu)體數(shù)據(jù)寫入文件中讀取結(jié)構(gòu)體數(shù)據(jù)的方法。
(4) 了解規(guī)范的程序設(shè)計思想和程序編碼格式。
(5) 了解職工管理過程中所需要處理的信息以及相關(guān)的處理方法。
二、設(shè)計基本要求
(1) 職工信息包括職工編號、姓名、性別、婚姻狀況、學(xué)位、所屬部門、職位、工資、工齡等信息,定義結(jié)構(gòu)體儲存職工信息。
(2) 用數(shù)組臨時保存輸入的職工信息,并且可以對現(xiàn)有列表中的職工信息進行增加,修改,查詢,刪除等基本操作。
(3) 使用二進制文件完成職工信息的儲存與讀取,要求每次運行某個操作時可以將文件中數(shù)據(jù)讀入結(jié)構(gòu)體中,并給用戶提供保存選項,可以將結(jié)構(gòu)體中的數(shù)據(jù)保存在二進制文件中。
(4) 系統(tǒng)以菜單方式工作,編寫完成后應(yīng)實現(xiàn)類似下圖所示界面。
三、算法分析
1.數(shù)據(jù)結(jié)構(gòu)
(1)設(shè)計一個存儲一條職工信息的結(jié)構(gòu)體,可參考使用下述的結(jié)構(gòu)體數(shù)據(jù)類型定義:
(2)在頭文件中采用了宏定義,用整型、浮點型、字符型等來定義所包含的數(shù)據(jù)和變量;在頭文件中定義全局變量,并統(tǒng)一了名稱和數(shù)值。
2.函數(shù)定義
程序代碼由五個源文件和一個頭文件構(gòu)成,具體文件內(nèi)容和函數(shù)功能說明如表1.1所示。
表1.1 文件及函數(shù)說明
3.處理過程
(1)為一些函數(shù)設(shè)計一個整型返回值用來區(qū)分函數(shù)操作是否正確.每個員工的信息用一個Emplnfo的結(jié)構(gòu)體來保存,用一個EmplInfo類型的數(shù)組records來保存一組員工信息。用宏定義INITIAL_SIZE來規(guī)定這個數(shù)組的大小,如果所定的數(shù)組大小不夠時,用另一個宏定義INCR_SIZE來動態(tài)申請內(nèi)存增加數(shù)組大小。用全局變量numEmpl來記錄學(xué)生數(shù),用arraySize為數(shù)組分配空間大小。
(2)saveFlag是否保存員工信息的標(biāo)志,當(dāng)員工信息已經(jīng)保存到文件時設(shè)置為0表示“已保存”;當(dāng)沒有存入文件時,設(shè)置為1表示“為保存”,以次為關(guān)鍵點展開對文件的保存、載入、疊加等相關(guān)操作。
(3)主要函數(shù)的算法
1)addRecord函數(shù)
用來在當(dāng)前鏈表尾部增加新的信息,只要將新的信息保存到record[numEmpl]中即可,然后numEmpl自加1,完成操作。如果在增加新的信息前,numEmpl已經(jīng)大于或等于arraySize,這時就要使用realloc函數(shù)重新分配一塊大小為(arrySize+INCR_SIZE)EmpInfo的數(shù)組的存儲塊,并重新設(shè)置arraySize。
2)loadRecord函數(shù)
進行兩個文件拼接時,在內(nèi)存無極錄的情況下,對讀入的第二天文件進行詢問。如果覆蓋原來記錄,就先保存原紀(jì)錄,然后令numEmpl=0,否則原來的numEmpl不變。在讀取文件時,使用fread函數(shù),每次讀取sizeof(EmpInfo)個字節(jié),存在數(shù)組records[numEmpl中,并令numEmpl自加1,如此下去,直到讀完文件。如果在每讀入一條信息之前,numEmpl已經(jīng)大于或等于arraySize,那么就使用realloc函數(shù)重新為records分配大小為(arraySize+INCR_SIZE)EmpInfode的數(shù)組的存儲塊,并重新設(shè)置arraySize。
3)deleteRecord、findInfo、modifyInfo函數(shù)
4)sortInfo函數(shù)
此排序操作函數(shù)主要應(yīng)用冒泡排序法進行排序。
四、源程序代碼
#ifndef H_STUDENT_HH #define H_STUDENT_HH #include<stdio.h> #include<stdlib.h> #include<conio.h> #include<string.h> #define INITIAL_SIZE 100 /*數(shù)組初始化大小*/ #define INCR_SIZE 50 /*數(shù)組每次增加的大小*/ struct Employee {char EmployeeNum[15]; /*員工的編號*/char EmployName[20]; /*員工的姓名*/char EmployGender[20]; /*員工的性別*/char EmployeeMarriage[20]; /*員工的婚姻狀況*/char EmployeeDegree[20]; /*員工的學(xué)位*/char EmployeeDepart[20]; /*員工所屬部門*/char EmployeePosition[20]; /*員工職位*/char EmployeePay[20]; /*員工工資*/char EmployeeWorkTime[20]; /*員工工齡*/ }; typedef struct Employee EmpInfo; extern int numEmpl; /*記錄的員工數(shù)*/ extern EmpInfo *records; /*記錄員工信息的數(shù)組*/ extern char savedFlag; /*信息是否已保存的標(biāo)志,0為已保存,1為未保存*/ extern int arraySize; /*數(shù)組大小*/ void handle_menu(void); int menu_select(void); void addRecord(void); void modifyRecord(void); void display(void); void findInfo(void); void deleteRcord(void); void sortInfo(void); int saveRecords(void); int loadRecords(void); void newRecords(void); void quit(void); int findRecord(char *target,int targetType,int from); void copyRecord(EmpInfo *src,EmpInfo *dest); void addInfo(int num); void printInfo(int num); #endif //H_STUDENT_HH #include"employee.h" /********************** * 初始化 ***********************/ int numEmpl=0; /*記錄的員工數(shù)*/ EmpInfo*records=NULL; /*記錄員工信息的數(shù)組*/ char savedFlag=0; /*信息是否已保存的標(biāo)志,0為已保存,1為未保存*/ int arraySize; /*數(shù)組大小*/ /****************************** * 主函數(shù) ******************************/ void main(void){ printf("\n"); printf("\t***************************************************\n"); printf("\t* *\n"); printf("\t* 歡迎您使用本管理系統(tǒng) *\n"); printf("\t* *\n"); printf("\t***************************************************\n"); printf("\n"); getch(); system("cls"); /*初始化數(shù)組*/ records=(EmpInfo*)malloc(sizeof(EmpInfo)*INITIAL_SIZE); if(records==NULL) { printf("memory fail!"); exit(-1); } arraySize=INITIAL_SIZE; handle_menu(); } /*********************** * 菜單處理函數(shù) ***********************/ void handle_menu(void) {for(; ;) {switch(menu_select()) {case 0:addRecord();getch();system("cls");break;case 1:modifyRecord();getch();system("cls");break;case 2:display();getch();system("cls");break;case 3:findInfo();system("cls");break;case 4:deleteRecord();system("cls");break;case 5:sortInfo();system("cls");break;case 6:saveRecords();system("cls");break;case 7:loadRecords();getch();system("cls");break;case 8:newRecords();getch();system("cls");break;case 9:quit();}} } /****************************** * 菜單選擇函數(shù)menu_selected ******************************/ int menu_select(void) {char s[2];int choice=0;printf("\n");printf("\t******菜單選項******\n");printf("\n");printf("\t0.增加員工信息\n");printf("\t1.修改員工信息\n"); printf("\t2.顯示員工信息\n");printf("\t3.查詢員工信息\n");printf("\t4.刪除員工信息\n");printf("\t5.對員工信息進行排序\n");printf("\t6.保存員工信息至記錄文件\n");printf("\t7.從記錄文件讀取員工信息\n");printf("\t8.新建員工信息文件\n");printf("\t9.退出管理系統(tǒng)\n");printf("\t********************");printf("\n\t左邊數(shù)字對應(yīng)功能選擇,請選擇0--9: ");for(; ;) {scanf("%S",s);choice=atoi(s); /*處理鍵入的非數(shù)字鍵,過濾出數(shù)字0*/if(choice==0&&(strcmp(s,"0")!=0))choice=11;if(choice<0||choice>9)printf("\n\t輸入錯誤,重選0--9: ");elsebreak;}return choice; } /******************************************************************** * 新建員工信息記錄 * 結(jié)果:若原來信息沒有保存,則保存原來的信息,然后重新輸入信息記錄 ********************************************************************/ void newRecords(void) {char str[5];if(numEmpl!=0) {if(savedFlag==1) {printf("現(xiàn)在已經(jīng)有記錄,選擇處理已有記錄的方法。\n");printf("是否保存原來的記錄?(y/n)");scanf("%s",str);if(str[0]!='n' && str[0]!='N')saveRecords();} }numEmpl=0;addRecord(); } /******************************************************************** * 結(jié)束運行,退出 * 參數(shù) void ********************************************************************/ void quit(void) {char str[5];if(savedFlag==1) {printf("是否保存原來的記錄?(y/n)");scanf("%s",str);if(str[0]!='n' || str[0]!='N')saveRecords();}free(records);exit(0); } #include"employee.h" /******************************* * 顯示所有的員工信息 *******************************/ void display(void) {int i;char str[3];if(numEmpl==0) {printf("沒有可供顯示的記錄!");return;}printf("\n1.顯示簡明員工信息\n2.顯示詳細員工信息\n您的選擇: ");scanf("s%",str);if(str[0]=='2') {for(i=0;i<numEmpl;i++) {/*打印員工信息*/printInfo(i);/*打印滿20個記錄后停下來*/if(i%20==0 && i!=0) {printf("輸入任意字符后繼續(xù)...");getch();printf("\n\n");}} }if(str[0]=='1') {for(i=0;i<numEmpl;i++) {printf("編號\t姓名\t部門\t職位\n");printf("%s\t%s\t%s\t%s\n",records[i].EmployeeNum,records[i].EmployName,records[i].EmployeeDepart,records[i].EmployeePosition);if(i%20==0&&i!=0) {printf("輸入任意字符后繼續(xù)...");getch();printf("\n\n");}}} } /******************************************************************** * 在當(dāng)前表的末尾增加新的信息 * 結(jié)果:records中將記錄新的信 * 息,如果數(shù)組大小不夠,會重 * 新申請數(shù)組空間 ********************************************************************/ void addRecord(void){char str[10];if(numEmpl==0)printf("原來沒有記錄,現(xiàn)在建立記錄\n");elseprintf("下面在當(dāng)前表的末尾增加新的信息\n");while(1){printf("你將要添加一組員工信息,確定嗎?(y/n)");scanf("%s",str);if(str[0]=='n' || str[0]=='N')break;if(numEmpl>=arraySize){records=realloc(records,(arraySize+INCR_SIZE)*sizeof(EmpInfo));if(records==NULL){printf("memory failed!");exit(-1);}arraySize=arraySize+INCR_SIZE;}addInfo(numEmpl);numEmpl++;}printf("現(xiàn)在一共有%d條信息\n",numEmpl);savedFlag=1; } void addInfo(int num){char str1[10];char str2[10];char str3[10];char str4[10];printf("請輸入員工編號:");scanf("%s",records[num].EmployeeNum);printf("請輸入員工姓名:");scanf("%s",records[num].EmployName);printf("請輸入員工性別(0為女,1為男):");scanf("%s",str1);if(str1[0]=='0')strcpy(records[num].EmployGender,"女");elsestrcpy(records[num].EmployGender,"男");printf("請輸入員工婚姻狀況(0為未婚,1為已婚):");scanf("%s",str2);if(str2[0]=='0')strcpy(records[num].EmployeeMarriage,"未婚");elsestrcpy(records[num].EmployeeMarriage,"已婚");printf("請輸入員工學(xué)歷:(0.大學(xué)本科生,1.碩士研究生,2.博士研究生):");scanf("%s",str3);if(str3[0]=='0')strcpy(records[num].EmployeeDegree,"大學(xué)本科生");else if(str3[0]=='1')strcpy(records[num].EmployeeDegree,"碩士研究生");else if(str3[0]=='2')strcpy(records[num].EmployeeDegree,"博士研究生");printf("請輸入員工所在部門:");scanf("%s",records[num].EmployeeDepart);printf("請輸入員工職務(wù):(0.職員,1.主任,2.經(jīng)理,3.董事長)");scanf("%s",str4);if(str4[0]=='0')strcpy(records[num].EmployeePosition,"職員");if(str4[0]=='1')strcpy(records[num].EmployeePosition,"主任");if(str4[0]=='2')strcpy(records[num].EmployeePosition,"經(jīng)理");if(str4[0]=='3')strcpy(records[num].EmployeePosition,"董事長");printf("請輸入員工工資:");scanf("%s",records[num].EmployeePay);printf("請輸入員工工齡:(以年為單位計算):");scanf("%s",records[num].EmployeeWorkTime); } void printInfo(int num){printf("編號\t姓名\t性別\t婚姻狀況\t學(xué)位\t部門\t職位\t工資\t工齡\n");printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",records[num].EmployeeNum,records[num].EmployName,records[num].EmployGender,records[num].EmployeeMarriage,records[num].EmployeeDegree,records[num].EmployeeDepart,records[num].EmployeePosition,records[num].EmployeePay,records[num].EmployeeWorkTime); } #include "employee.h" int findRecord(char* target,int targetType,int from){int i;for(i=from;i<numEmpl;i++){if((targetType==0 && strcmp(target,records[i].EmployeeNum)==0)||(targetType==1 && strcmp(target,records[i].EmployName)==0)||(targetType==2&&strcmp(target,records[i].EmployeeDepart)==0))return i;}return -1; } void findInfo(void){char str[5];char target[20];int type;int count;int i;if(numEmpl==0) {printf("沒有可供查詢的記錄!");getch();return;}while(1){printf("請輸入查找的方式:\n");printf("1.按員工編號\n");printf("2.按員工姓名\n");printf("3.按員工所在部門\n");printf("4.結(jié)束查詢\n");scanf("%s",str);if(str[0]=='4')return;if(str[0]=='1') {printf("請輸入欲查詢的員工的編號:");scanf("%s",target);type=0;}else if(str[0]=='2'){printf("請輸入欲查找的員工的姓名:");scanf("%s",target);type=1;}else if(str[0]=='3'){printf("請輸入欲查找的員工所在部門:");scanf("%s",target);type=2;}i=findRecord(target,type,0);if(i!=-1){printf("編號\t姓名\t性別\t婚姻狀況\t學(xué)位\t部門\t職位\t工資\t工齡\n");}count=0;while(i!=-1){printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",records[i].EmployeeNum,records[i].EmployName,records[i].EmployGender,records[i].EmployeeMarriage,records[i].EmployeeDegree,records[i].EmployeeDepart,records[i].EmployeePosition,records[i].EmployeePay,records[i].EmployeeWorkTime);i=findRecord(target,type,i+1);count++;}if(count==0)printf("沒有符合條件的員工!\n");elseprintf("一共找到了%d名員工的信息\n\n",count);} } void deleteRecord(void){char str[5];char target[20];int type;int i,j;if(numEmpl==0) {printf("沒有可供刪除的記錄!");getch();return;}while(1){printf("請輸入如何找到欲刪除的記錄的方式:\n");printf("1.按員工編號\n");printf("2.按員工姓名\n");printf("3.退出刪除操作\n");scanf("%s",str);if(str[0]=='3')return;if(str[0]=='1'){printf("請輸入該員工編號:");scanf("%s",target);type=0;}else if(str[0]=='2'){printf("請輸入該員工的姓名:");scanf("%s",target);type=1;}i=findRecord(target,type,0);if(i==-1)printf("沒有符合條件的員工!\n");while(i!=-1){printInfo(i);printf("確定要刪除這個員工信息嗎?(y/n)");scanf("%s",str);if(str[0]=='y'||str[0]=='Y'){numEmpl--;for(j=i;j<numEmpl;j++){copyRecord(&records[j+1],&records[j]);}printf("成功刪除記錄!\n");}elsebreak; /*取下一個符合條件的記錄*/i=findRecord(target,type,i++);}}savedFlag=1; } /*********************************************************************修改指定員工的消息 ***********************************************************************/ void modifyRecord(void){char str[5];char target[10];int type;int i;if(numEmpl==0){printf("沒有可供修改的記錄!");getch();return;}while(1){printf("請輸入如何找到欲修改的記錄的方式:\n");printf("1.按員工編號\n");printf("2.按員工姓名\n");printf("退出修改操作\n");scanf("%s",str);if(str[0]=='3')return;if(str[0]=='1'){printf("請輸入該員工編號:");scanf("%s",target);type=0;}if(str[0]=='2'){printf("請輸入該員工姓名:");scanf("%s",target);type=1;}i=findRecord(target,type,0);if(i==-1)printf("沒有符合條件的員工!\n");while(i!=-1){/*打印員工信息*/printInfo(i);printf("確定要修改這個員工的信息嗎?(y/n)");scanf("%s",str);if(str[0]=='y'||str[0]=='Y'){addInfo(i);printf("修改記錄成功!\n");}i=findRecord(target,type,i+1);}}savedFlag=1; } #include"employee.h" /*********************************************** *文件儲存操作函數(shù) *結(jié)果;數(shù)組records被保存至指定文件 *返回:成功0,失敗-1 ************************************************/ int saveRecords(void){FILE *fp;char fname[30];if(numEmpl==0){printf("\n\n沒有記錄可存!\n\n");getch();return -1;}printf("\n\n輸入要存入的文件名:\n\n");scanf("%s",fname);if((fp=fopen(fname,"wb"))==NULL){printf("不能存入文件!\n");getch();return(-1);}printf("\n存入文件...\n");fwrite(records,sizeof(EmpInfo)*numEmpl,1,fp);fclose(fp);printf("%d條記錄已經(jīng)存入文件,請繼續(xù)操作。\n",numEmpl);savedFlag=0; /*更新是否已保存的標(biāo)記*/getch();return(-1); }/*********************************************************************************文件儲存操作函數(shù) *結(jié)果;records將為從指定文件中讀取出的記錄 *返回:成功0,失敗-1 ***********************************************************************************/ int loadRecords(void){FILE *fp;char fname[30];char str[5];if(numEmpl!=0&&savedFlag==0){printf("請選擇你是要覆蓋現(xiàn)有記錄(y),還是要將");printf("讀取的記錄添加到現(xiàn)有記錄之后(n)?\n");scanf("%s",str);if(str[0]=='n'||str[0]=='N'){/*將讀取的記錄添加到現(xiàn)有記錄之后*/savedFlag=1;}else{if(savedFlag==1){/*覆蓋現(xiàn)有記錄*/scanf("%s",str);if(str[0]!='n'&&str[0]!='N')printf("讀取文件將會更改原來的記錄");printf("是否保存原來的記錄?(Y/n)");saveRecords();}numEmpl=0;}}printf("\n\n請輸入要讀取的文件名:");scanf("%s",fname);if((fp=fopen(fname,"rb"))==NULL){printf("\n\n打不開文件!請重新選擇\n\n");return-1;}printf("\n取文件\n");while(!feof(fp)){/*現(xiàn)在的數(shù)組空間不足,需要重新申請空間*/if(numEmpl>=arraySize){records=realloc(records,(arraySize+INCR_SIZE)*sizeof(EmpInfo));if(records==NULL){printf("memory failed!");exit(-1);}arraySize=arraySize+INCR_SIZE;}if(fread(&records[numEmpl],sizeof(numEmpl),1,fp)!=1)break;numEmpl++;}fclose(fp);printf("現(xiàn)在共有%d條記錄。",numEmpl);return 0; } #include"employee.h" /*********************************************** *文件儲存操作函數(shù) *結(jié)果;數(shù)組records被保存至指定文件 *返回:成功0,失敗-1 ************************************************/ int saveRecords(void){FILE *fp;char fname[30];if(numEmpl==0){printf("\n\n沒有記錄可存!\n\n");getch();return -1;}printf("\n\n輸入要存入的文件名:\n\n");scanf("%s",fname);if((fp=fopen(fname,"wb"))==NULL){printf("不能存入文件!\n");getch();return(-1);}printf("\n存入文件...\n");fwrite(records,sizeof(EmpInfo)*numEmpl,1,fp);fclose(fp);printf("%d條記錄已經(jīng)存入文件,請繼續(xù)操作。\n",numEmpl);savedFlag=0; /*更新是否已保存的標(biāo)記*/getch();return(-1); }/*********************************************************************************文件儲存操作函數(shù) *結(jié)果;records將為從指定文件中讀取出的記錄 *返回:成功0,失敗-1 ***********************************************************************************/ int loadRecords(void){FILE *fp;char fname[30];char str[5];if(numEmpl!=0&&savedFlag==0){printf("請選擇你是要覆蓋現(xiàn)有記錄(y),還是要將");printf("讀取的記錄添加到現(xiàn)有記錄之后(n)?\n");scanf("%s",str);if(str[0]=='n'||str[0]=='N'){/*將讀取的記錄添加到現(xiàn)有記錄之后*/savedFlag=1;}else{if(savedFlag==1){/*覆蓋現(xiàn)有記錄*/scanf("%s",str);if(str[0]!='n'&&str[0]!='N')printf("讀取文件將會更改原來的記錄");printf("是否保存原來的記錄?(Y/n)");saveRecords();}numEmpl=0;}}printf("\n\n請輸入要讀取的文件名:");scanf("%s",fname);if((fp=fopen(fname,"rb"))==NULL){printf("\n\n打不開文件!請重新選擇\n\n");return-1;}printf("\n取文件\n");while(!feof(fp)){/*現(xiàn)在的數(shù)組空間不足,需要重新申請空間*/if(numEmpl>=arraySize){records=realloc(records,(arraySize+INCR_SIZE)*sizeof(EmpInfo));if(records==NULL){printf("memory failed!");exit(-1);}arraySize=arraySize+INCR_SIZE;}if(fread(&records[numEmpl],sizeof(numEmpl),1,fp)!=1)break;numEmpl++;}fclose(fp);printf("現(xiàn)在共有%d條記錄。",numEmpl);return 0; }五、源程序代碼測試
5.1程序主界面
(1) 職工信息管理系統(tǒng)主界面如圖5.1所示。
圖5.1 職工信息管理系統(tǒng)主界面
(2) 職工信息基本信息管理界面如圖5.2所示。
圖5.2 職工信息管理系統(tǒng)主界面
(3)增加員工信息界面如圖5.3所示。
圖5.3增加員工信息界面
(4)修改員工信息界面如圖5.4所示。
圖5.4修改員工信息界面如
(5)查詢員工信息界面如圖5.5所示。
圖5.5查詢員工信息界面
(6)刪除員工信息界面如圖5.6所示。
圖5.6刪除員工信息界面
(7)對員工員工信息進行排序界面如圖5.7所示。
圖5.7對員工員工信息進行排序界面
(8)保存員工信息至記錄文件界面如圖5.8所示。
圖5.8保存員工信息至記錄文件界面
(9)從記錄文件讀取員工信息界面如圖5.9所示。
圖5.9從記錄文件讀取員工信息界面
(10)新建員工信息文件界面如圖5.10所示。
圖5.10新建員工信息文件界面
結(jié)束語
這次專業(yè)實習(xí),我選擇陳和梁*組成三人組共同承擔(dān) “職工信息管理系統(tǒng)”這個課題。確定課題后,我們就這個課題立刻展開數(shù)次的小組討論。我根據(jù)組員的實際能力,把專業(yè)實習(xí)的工作進行分攤。通過大家的努力工作、團結(jié)一致、相互協(xié)作,最后提前按質(zhì)按量完成這次專業(yè)的課程設(shè)計。
通過這次實習(xí)操作,讓我各方面都有了很大的提高。一、專業(yè)知識有了很大的提高。讓我更加熟練C++的編程軟件、更好地掌握C++語言的基本知識和技能;掌握了面向?qū)ο蟪绦蛟O(shè)計的基本思路和方法;能夠更好地利用所學(xué)的基本知識和技能,解決簡單的面向?qū)ο蟪绦蛟O(shè)計問題;成功制作“職工信息管理系統(tǒng)”。
二、團隊意識和團隊精神大大提高。在當(dāng)今信息量龐大的程序世界里,單憑一個人的力量是非常渺小的,必須提高團隊意識和精神并利用好團隊協(xié)作的力量才能更好的把每一個項目做得更快更好。
三、理論最終還是得回到實踐來。在以后的學(xué)習(xí)中必須加強實踐,把學(xué)到的理論回到實踐來。
四、程序?qū)嵺`是對編程設(shè)計能力的綜合訓(xùn)練,對培養(yǎng)具有創(chuàng)新意識、創(chuàng)新能力的高素質(zhì)軟件人才有很大的推動作用。通過采用項目實例來進行c語言編程的綜合訓(xùn)練,可以提高學(xué)生實際分析問題、解決問題、編程實踐、自主創(chuàng)新的能力,同時,還可以培養(yǎng)學(xué)生的團隊合作精神、創(chuàng)新協(xié)作意識及勇于探索的科學(xué)精神。
當(dāng)然在這次專業(yè)實習(xí)中也出現(xiàn)了不少的問題,主要有以下幾個方面:
一、任務(wù)分工不夠合理、公平;
二、工作不夠細心,程序中的代碼出現(xiàn)很多錯誤;
三、對多文件的程序認識和了解不足。最后,在陳**老師和隊員的共同協(xié)作下提前按質(zhì)按量完成這次專業(yè)的課程設(shè)計。
參考文獻:
李丹程.C程序設(shè)計案例實踐.北京:清華大學(xué)出版社,2009
總結(jié)
以上是生活随笔為你收集整理的C语言--职工信息管理系统(含论文)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 密码加密和解密
- 下一篇: java信息管理系统总结_java实现科