C语言程序设计.docx

上传人:b****3 文档编号:3457074 上传时间:2022-11-23 格式:DOCX 页数:61 大小:262.41KB
下载 相关 举报
C语言程序设计.docx_第1页
第1页 / 共61页
C语言程序设计.docx_第2页
第2页 / 共61页
C语言程序设计.docx_第3页
第3页 / 共61页
C语言程序设计.docx_第4页
第4页 / 共61页
C语言程序设计.docx_第5页
第5页 / 共61页
点击查看更多>>
下载资源
资源描述

C语言程序设计.docx

《C语言程序设计.docx》由会员分享,可在线阅读,更多相关《C语言程序设计.docx(61页珍藏版)》请在冰豆网上搜索。

C语言程序设计.docx

C语言程序设计

《C语言程序设计》

课程设计报告

 

题目:

职工信息管理系统

专业:

数学与计算科学

班级:

1009-301

姓名:

李军陈辉煌曾超群阳恩成张琦

指导教师:

李又良

成绩:

 

二〇一一年六月一日

 

课程设计报告——职工信息管理系统

 

1、研究背景及意义

由于现今的职工信息管理非常繁琐,管理人员付出大量的工作时间,得到的效率很低。

因此为提高工作效率,为了减轻轻单位人工对职工信息进行登记,查找的工作,进而设计出一个功能更完善,合理,先进的职工信息管理系统来管理。

开发此职工信息管理系统软件,以供教学人员及操作者进行职工管理,方便操作者随时添加、查询、修改职工信息。

2、课程设计题目描述和要求

对职工信息的管理是每企业中的重要组成部分,其内容较多,为了简化讨论,职工信息主要包括:

职工号、姓名、性别、出生年月、学历、职务、工资、地址、电话。

系统功能:

1)、输入功能:

可以多次次完成多个职工所有信息

2)、浏览功能:

可以一次性浏览职工的所有信息

3)、查询功能:

可以按职工号和工资两种方式查询

4)、修改功能:

可以随时对职工的信息进行修改

5)、删除功能:

可以对职工的信息进行删除

6)、排序功能:

可以按职工号降序排列

0)、推出本系统

功能模块分工:

李军:

程序设计与信息输入、浏览

陈辉煌:

页面设计与信息查询

曾超群:

信息修改

阳恩成:

信息删除

张琦:

信息排序

3、课程设计报告内容

3.1职工管理系统的理论依据及算法

主要数据结构:

typedefstruct

{

intnumber;/*职工号*/

charname[20];/*姓名*/

charsex[8];/*性别*/

floatyear;/*出生年月日*/

chareducat[20];/*学历*/

charduty[20];/*职务*/

floatwage;/*工资*/

charplace[20];/*住址*/

doubletel;/*电话*/

}Student;

Studentstu[100];/*结构体数组变量*/

各函数的功能和实现:

整个系统除了主函数外,另外还有10个函数,实现七大功能:

输入功能、显示功能、查找功能、修改功能、删除功能、排序功能。

各个函数的详细设计说明分别如下:

1、主函数main()

利用无限次循环for(;;)和swithch()实现各函数的调用,系统根据输入的数字选项来调用相应的函数。

2、菜单选择函数switch(menu())

这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的七大功能,根据每个功能前面的序号进行选择。

等执行完每一个函数功能后,按任一键回到主界面也要通过这个函数来实现!

3、输入记录函数intInput(Studentstud[],intn)

这是一个无参函数,用来执行职工信息的输入,当学生九类信息全部输入后,系统提示“继续写入成绩?

Y/N”,选择“N”函数结束。

4、显示记录函数voidDisplay(Studentstud[],intn)

这是一个不返回值的有参函数,形参为数组,负责对全部职工信息的输出,不足之处就是不能对职工信息进行分页显示。

5、查找记录函数voidSearch(Studentstud[],intn)

这是一个不返回值的有参函数,形参为数组,分别实现按职工号或工资对某个职工进行查找,并显示所查找到的记录。

6、修改函数voidModify(Studentstud[],intn)

这是一个有参函数,形参为数组,能将之前输入的数据进行修改。

7、删除记录函数intDelete(Studentstud[],intn)

这是一个有参函数,形参为数组,先输入要删除的职工的职工号,找到后显示该职工信息,直接进行删除。

8、排序函数voidSort(Studentstud[],intn)

在Studentstud[]这个结构数组中按职工号进行由大到小排序:

voidSort(Studentstud[],intn)/*冒泡法排序*/。

 

3.2流程图

 

3.3、源程序如下:

#include/*引用库函数*/

#include/*输入输出函数*/

#include

#include

typedefstruct

{intnumber;/*职工号*/

charname[20];/*姓名*/

charsex[8];/*性别*/

floatyear;/*出生年月日*/

chareducat[20];/*学历*/

charduty[20];/*职务*/

floatwage;/*工资*/

charplace[20];/*住址*/

doubletel;/*电话*/

}Student;

Studentstu[100];/*结构体数组变量*/

intmenu()/*菜单函数*/

{

charc;

do

{

//system("cls");/*运行前清屏*/

printf("┏---------------------------------MENU---------------------------------┓");/*菜单选择*/

printf("│⊙ω⊙<<1>>录入职工信息│");

printf("│≧ω≦<<2>>显示所有职工信息│");

printf("│ˋ▂ˊ<<3>>查询职工信息│");

printf("│ˇ△ˇ<<4>>修改职工信息并保存│");

printf("│˙︿˙<<5>>删除职工信息│");

printf("│ ̄□ ̄<<6>>按职工号降序排列│");

printf("│●△●<<0>>退出本系统│");

printf("│***********作者:

1009301班完美组合*********│");

printf("┗----------------------------请选择你需要的操作----------------------┛");

printf("========>请输入数字0~9:

\n");

c=getchar();/*读入选择*/

}

while(c<'0'||c>'5');

return(c-'0');/*返回选择*/

}

intInput(Studentstud[],intn)/*输入若干条记录*/

{

inti=0;

charsign='y',x[10];/*x[10]为清除多余的数据所用*/

while(sign!

='n'&&sign!

='N')/*选择判断*/

{

printf("----------请输入职工号----------:

");/*交互输入*/

scanf("%d",&stud[n+i].number);

printf("----------请输入职工的姓名------:

");

scanf("%s",&stud[n+i].name);

printf("----------请输入职工的性别------:

");

scanf("%s",&stud[n+i].sex);

printf("----------请输入职工的出生年月日:

");

scanf("%f",&stud[n+i].year);

printf("----------请输入职工的学历------:

");

scanf("%s",&stud[n+i].educat);

printf("----------请输入职工的职务------:

");

scanf("%s",&stud[n+i].duty);

printf("----------请输入职工的工资------:

");

scanf("%f",&stud[n+i].wage);

printf("----------请输入职工的住址------:

");

scanf("%s",&stud[n+i].place);

printf("----------请输入职工的电话------:

");

scanf("%lf",&stud[n+i].tel);

gets(x);/*清除多余的输入*/

printf("%s\n",stud[n+i].name);

printf("=====>提示:

继续写入成绩?

(Y/N)");

scanf("%c",&sign);/*输入判断*/

i++;

}

return(n+i);

}

voidDisplay(Studentstud[],intn)/*显示所有记录*/

{

inti;

if(!

stud)

printf("没有记录");

else

{

printf("┏--------------------------------------------------------------------------------┓\n");/*格式头*/

printf("职工号\t姓名\t性别\t生日\t学历\t职务\t工资\t住址\t电话\n");

printf("┗--------------------------------------------------------------------------------┛\n");

for(i=1;i

{

printf("%d\t",stud[i-1].number);

printf("%s\t",stud[i-1].name);

printf("%s\t",stud[i-1].sex);

printf("%6.0f",stud[i-1].year);

printf("%s\t",stud[i-1].educat);

printf("%s",stud[i-1].duty);

printf("%8.0f\t",stud[i-1].wage);

printf("%s\t",stud[i-1].place);

printf("%11.0lf",stud[i-1].tel);

printf("\n");

}

printf("\t\t\t\n");

}

}

voidSearch(Studentstud[],intn)/*查找并显示一个记录*/

{

ints=0;

inti=0;

intt=0;

printf("按职工号查找请输入1,按工资查找请输入2\n");

scanf("%d",&t);

switch(t)/*选择判断*/

{

case1:

/*按职工号查找*/

printf("输入需要查找职工的职工号:

\n");

scanf("%d",&s);

while((stud[i].number-s)!

=0&&i

if(i==n)

{

printf("=====>提示:

对不起,无法找到该职工的信息!

\n");/*输入失败信息*/

return;

}

printf("-------------------------------------\n");/*输出该职工信息*/

printf("职工号:

%d\n",stud[n-1].number);

printf("姓名:

%s\n",stud[n-1].name);

printf("性别:

%s\n",stud[n-1].sex);

printf("出生年月日:

%8.0f\n",stud[n-1].year);

printf("学历:

%s\n",stud[n-1].educat);

printf("职务:

%s\n",stud[n-1].duty);

printf("工资:

%f\n",stud[n-1].wage);

printf("住址:

%s\n",stud[n-1].place);

printf("电话:

%11.0lf\n",stud[n-1].tel);

printf("\n");

break;

case2:

/*按姓名查找*/

printf("输入需要查找职工的工资:

\n");

scanf("%d",&s);

while((stud[i].wage-s)!

=0&&i

if(i==n)

{

printf("=====>提示:

对不起,无法找到该职工的信息!

\n");/*输入失败信息*/

return;

}

printf("-------------------------------------\n");/*输出该职工信息*/

printf("职工号:

%d\n",stud[n-1].number);

printf("姓名:

%s\n",stud[n-1].name);

printf("性别:

%s\n",stud[n-1].sex);

printf("出生年月日:

%8.0f\n",stud[n-1].year);

printf("学历:

%s\n",stud[n-1].educat);

printf("职务:

%s\n",stud[n-1].duty);

printf("工资:

%f\n",stud[n-1].wage);

printf("住址:

%s\n",stud[n-1].place);

printf("电话:

%11.0lf\n",stud[n-1].tel);

printf("\n");

break;

}

}

voidModify(Studentstud[],intn)/*修改职工信息*/

{

ints=0;

inti=0;

printf("输入需要修改职工信息的职工号:

\n");

scanf("%d",&s);

while((stud[i].number-s)!

=0&&i

if(i==n)

{

printf("=====>提示:

对不起,无该职工的信息……\n");/*输入失败信息*/

return;

}

printf("-----------------------------------该职工的信息---------------------------------\n");/*格式头*/

printf("┏--------------------------------------------------------------------------------┓\n");/*格式头*/

printf("职工号\t姓名\t性别\t生日\t学历\t职务\t工资\t住址\t电话\n");

printf("┗--------------------------------------------------------------------------------┛\n");

printf("--------------------------------------------------------------------------------\n");

printf("%d\t",stud[i-1].number);

printf("%s\t",stud[i-1].name);

printf("%s\t",stud[i-1].sex);

printf("%6.0f",stud[i-1].year);

printf("%s\t",stud[i-1].educat);

printf("%s",stud[i-1].duty);

printf("%8.0f\t",stud[i-1].wage);

printf("%s\t",stud[i-1].place);

printf("%11.0lf",stud[i-1].tel);

printf("\n");

printf("请输入职工号:

");/*交互输入*/

scanf("%d",&stud[n+i].number);

printf("请输入职工的姓名:

");

scanf("%s",&stud[n+i].name);

printf("请输入职工的性别:

");

scanf("%s",&stud[n+i].sex);

printf("请输入职工的出生年月日:

");

scanf("%f",&stud[n+i].year);

printf("请输入职工的学历:

");

scanf("%s",&stud[n+i].educat);

printf("请输入职工的职务:

");

scanf("%s",&stud[n+i].duty);

printf("请输入职工的工资:

");

scanf("%f",&stud[n+i].wage);

printf("请输入职工的住址:

");

scanf("%s",&stud[n+i].place);

printf("请输入职工的电话:

");

scanf("%lf",&stud[n+i].tel);

printf("%s\n",stud[n+i].name);

}

intDelete(Studentstud[],intn)/*按职工号查找,删除一条记录*/

{

ints=0;

inti=0,j;

printf("输入需要删除职工的职工号:

\n");/*交互式问寻*/

scanf("%d",&s);

while((stud[i].number-s)!

=0&&i

if(i==n)

{

printf("=====>提示:

对不起,无法找到该职工号……\n");/*返回失败信息*/

return(n);

}

for(j=i;j

{

strcpy(stud[j].name,stud[j+1].name);

stud[j].number=stud[j+1].number;

strcpy(stud[j].sex,stud[j+1].sex);

stud[j].year=stud[j+1].year;

strcpy(stud[j].educat,stud[j+1].educat);

strcpy(stud[j].duty,stud[j+1].duty);

stud[j].wage=stud[j+1].wage;

strcpy(stud[j].place,stud[j+1].place);

stud[j].tel=stud[j+1].tel;

}

printf("=====>提示:

已成功删除!

\n");/*返回成功信息*/

return(n-1);

}

voidSort(Studentstud[],intn)/*按职工号排序*/

{

inti,j,k;

floats;

chart[20];

for(i=0;i

for(j=0;j

if(stud[j].number

{

k=stud[j+1].number;

stud[j+1].number=stud[j].number;

stud[j].number=k;

strcpy(t,stud[j+1].name);

strcpy(stud[j+1].name,stud[j].name);

strcpy(stud[j].name,t);

strcpy(t,stud[j+1].sex);

strcpy(stud[j+1].sex,stud[j].sex);

strcpy(stud[j].sex,t);

s=stud[j+1].year;

stud[j+1].year=stud[j].year;

stud[j].year=s;

strcpy(t,stud[j+1].educat);

strcpy(stud[j+1].educat,stud[j].educat);

strcpy(stud[j].educat,t);

strcpy(t,stud[j+1].duty);

strcpy(stud[j+1].duty,stud[j].duty);

strcpy(stud[j].duty,t);

s=stud[j+1].wage;

stud[j+1].wage=stud[j].wage;

stud[j].wage=s;

strcpy(t,stud[j+1].place);

strcpy(stud[j+1].place,stud[j].place);

strcpy(stud[j].place,t);

s=stud[j+1].tel;

stud[j+1].tel=stud[j].tel;

stud[j].tel=s;

}

printf("┏--------------------------------------------------------------------------------┓\n");/*格式头*/

printf("职工号\t姓名\t性别\t生日\t学历\t职务\t工资\t住址\t电话\n");

printf("┗--------------------------------------------------------------------------------┛\n");

for(i=1;i

{

printf("%d\t",stud[i-1].number);

printf("%s\t",stud[i-1].name);

printf("%s\t",stud[i-1].sex);

printf("%6.0f",stud[i-1].year);

printf("%s\t",stud[i-1].educat);

printf("%s",stud[i-1].duty);

printf("%8

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1