《C語言課程設(shè)計(jì)報(bào)告 (職工信息管理)》由會員分享,可在線閱讀,更多相關(guān)《C語言課程設(shè)計(jì)報(bào)告 (職工信息管理)(6頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、C課程設(shè)計(jì)
C語言課程設(shè)計(jì)報(bào)告
題目:職工信息管理系統(tǒng)
學(xué) 院 信息工程 __________
專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) ________________
年級班別 一年級〈4〉班 _____________
學(xué) 號 2012051449 __________
學(xué)生姓名 張 霞 ______
指導(dǎo)教師 丁富華 _______
成 績 _
2、
一、實(shí)驗(yàn)報(bào)告
實(shí)驗(yàn)名稱:職工信息管理
1.課程設(shè)計(jì)的目的:進(jìn)一步掌握和利用C語言進(jìn)行程設(shè)計(jì)的能力,理解和運(yùn)用結(jié)構(gòu)化程設(shè)計(jì)的思想和方法,熟練掌握條件語句、循環(huán)、數(shù)組、函數(shù)操作,初步掌握開發(fā)一個小型實(shí)用系統(tǒng)的基本方法,學(xué)會搞懂一個較長程序的基本方法和利用流程圖或N-S圖表示算法,將本課程所學(xué)的知識合理地運(yùn)用于實(shí)踐當(dāng)中。了解一些書上沒有的函數(shù)及使用方法。
2.課程設(shè)計(jì)要求:語句簡練、清晰,盡量通俗易懂,使讀者一目了然。
3.設(shè)計(jì)題目分析:職工信息管理系統(tǒng)需要職工姓名、職工號、職工
3、部門、工資、職位;主要運(yùn)用結(jié)構(gòu)體、循環(huán)結(jié)構(gòu)、函數(shù)、選擇結(jié)構(gòu)等C語言結(jié)構(gòu)描述的;在此系統(tǒng)中用了5個函數(shù)分別有:主函數(shù)MAIN();添加職工信息函數(shù)ADD();查找函數(shù)SEEK();顯示職工信息函數(shù)SHOW();刪除職工信息函數(shù)DELETE(),依此完成了職工信息管理系統(tǒng)中的各項(xiàng)操作。
(1) 系統(tǒng)以菜單方式工作。
(2) 職工信息輸入功能(職工信息用文件保存)——輸入。
(3) 職工信息瀏覽功能——輸出。
(4) 查詢功能(至少一種查詢方式)——算法。
(5) 按職工號查找 。
(6) 某職工情況(可選項(xiàng))。
4.分析:
由于題目要求將職工信息用結(jié)構(gòu)體形式輸入,并寫入文件中,所
4、以應(yīng)提供文件的輸入輸出等操作:在過程中需有添加、查找、顯示、刪除學(xué)生選課信息等操作,顧應(yīng)分別建五個功能模塊;另外還應(yīng)提供鍵盤式選擇菜單實(shí)現(xiàn)程序運(yùn)行。
5.課程的設(shè)計(jì)的內(nèi)容:主要是對職工管理系統(tǒng)進(jìn)行一系列的操作:有添加,查找,顯示,刪除操作。
總體設(shè)計(jì):
根據(jù)題目要求,可以將系統(tǒng)分為五個模塊:
1) 系統(tǒng)以菜單方式工作模塊;
2) 職工信息錄入功能模塊;
3) 職工信息查詢功能模塊;
4) 職工信息顯示模塊(按職工號查詢);
5) 職工信息的刪除;
系統(tǒng)以菜單方式工作模塊
職工信息錄入功能模塊
職工信息的查詢模塊
按職工號查詢的模塊
5、職工信息顯示的模塊
職工信息刪除的模塊
職工信息管理系統(tǒng)
主流程圖:
N
結(jié)束
判斷
顯示一系列功能選擇
開始
詳細(xì)設(shè)計(jì):
#include
#include
struct Staff{
char name[10];
int num;
char apartment[20];
int salary;
char duty[20];
}person[
6、10];
void Add()
{
int t,i=0;
do
{
printf("增加職工信息時:\n");
printf("請輸入職工姓名:");
scanf("%s",&person[i].name);
printf("請輸入職工號:");
scanf("%d",&person[i].num);
printf("請輸入職工部門:");
scanf("%s",&person[i].apartment);
printf("請輸入職工工資:");
7、 scanf("%d",&person[i].salary);
printf("請輸入職工職位:");
scanf("%s",&person[i].duty);
printf("職工添加成功!?。?);
i++;
printf("是否還要添加?要添請輸入1不添請輸入0");
scanf("%d",&t);
}while(t);//執(zhí)行條件
}
void Seek()
{ int m,i;
printf("查找某個職員信息時:");
printf("請輸入你要查找
8、的職工工號:");
scanf("%d",&m);
for(i=0;i<10;i++)
{
if(person[i].num==m)
{
printf("職工信息找到?。?!信息如下:\n");
printf("姓名\t工號\t部門\t工資\t職位\n");
printf("%s\t%d\t%s\t%d\t%s\n",person[i].name,person[i].num,person[i].apartment,person[i].salary,pers
9、on[i].duty);
break;
}
}
if(i==10)
printf("職工信息找不到?。。n");
}
void Show()
{
int i;
printf("所有職工信息如下:\n");
printf("姓名\t工號\t部門\t工資\t職位\n");
for(i=0;i<10;i++)
printf("%s\t%d\t%s\t%d\t%s\n",person[i].name,person[i].num,person
10、[i].apartment,person[i].salary,person[i].duty);
}
void Delete()
{
int m,i,n,j;
printf("刪除某個職員信息時:\n");
printf("請輸入你要刪除的職員號:");
scanf("%d",&m);
for(i=0;i<10;i++)
{
if(person[i].num==m)
{
printf("職工信息找到!?。⌒畔⑷缦拢篭n");
11、printf("姓名\t工號\t部門\t工資\t職位\n");
printf("%s\t%d\t%s\t%d\t%s\n",person[i].name,person[i].num,person[i].apartment,person[i].salary,person[i].duty);
break;
}
}
printf("確定刪除嗎?確定刪除請輸入1不刪除請輸入0:\n");
scanf("%d",&n);
if(n)
{
strcpy(person[
12、i].name,"\0");
person[i].num=0;
strcpy(person[i].apartment,"\0");
person[i].salary=0;
strcpy(person[i].duty,"\0");
}
printf("刪除成功!");
printf("刪除成功后的職工信息如下:\n");
printf("姓名\t工號\t部門\t工資\t職位\n");
for(i=0;i<10;i++)
printf("%s\t%d\t%s\t%d\t%s\n"
13、,person[i].name,person[i].num,person[i].apartment,person[i].salary,person[i].duty);
}//刪除某個職工信息
void exit()
{
}
void main()
{
int k;
do{
printf(" ---------------------------- \n");
printf(" 歡迎進(jìn)入公司職工
14、信息管理程序 \n");
printf(" ---------------------------- \n");
printf("請選擇您的操作:\n");
printf(" 1.增加職工信息;\n");
printf(" 2.查找職工信息;\n");
printf(" 3.顯示所有職
15、工信息;\n");
printf(" 4.刪除職工信息;\n");
printf(" 0.退出。\n");
printf("請選擇按鍵(0-4):");
scanf("%d",&k);
開始
switch(k)
{
case 1:Add();break;
case 2:Seek();break;
case 3:Show();break;
輸出
case 4:Delete();break;
error:exit();
}
}while(k);
}
寫入文件并儲存
輸入
結(jié)束
6