课程设计指导书职工信息管理系统设计.docx

上传人:b****5 文档编号:24840131 上传时间:2023-06-02 格式:DOCX 页数:60 大小:433.50KB
下载 相关 举报
课程设计指导书职工信息管理系统设计.docx_第1页
第1页 / 共60页
课程设计指导书职工信息管理系统设计.docx_第2页
第2页 / 共60页
课程设计指导书职工信息管理系统设计.docx_第3页
第3页 / 共60页
课程设计指导书职工信息管理系统设计.docx_第4页
第4页 / 共60页
课程设计指导书职工信息管理系统设计.docx_第5页
第5页 / 共60页
点击查看更多>>
下载资源
资源描述

课程设计指导书职工信息管理系统设计.docx

《课程设计指导书职工信息管理系统设计.docx》由会员分享,可在线阅读,更多相关《课程设计指导书职工信息管理系统设计.docx(60页珍藏版)》请在冰豆网上搜索。

课程设计指导书职工信息管理系统设计.docx

课程设计指导书职工信息管理系统设计

课程设计报告

(本科)

课程:

高级语言程序设计

学号:

姓名:

班级:

教师:

时间:

计算机科学与技术系

 

设计名称:

职工信息管理系统设计

设计内容、目的与要求:

内容:

职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)

目的与要求:

设计一职工信息管理系统,使之能提供以下功能:

1、职工信息录入功能(职工信息用文件保存)--输入

2、职工信息浏览功能--输出

3、职工信息查询功能--算法

查询方式:

按学历查询、按职工号查询、条件组合查询职工信息删除、修改功能(可选项)

计划与进度安排:

12月16日—12月29日:

完成设计思路

作出草稿;

完成程序的输入;

完成对基本功能的编译、链接、修改并运行无误;

增加对开始的源程序的功能;

寻找程序的缺点并改进;

提交;

12月30日—1月6日:

对程序进行进一步调试并完成。

设计过程、步骤(可加页):

1.此程序要用到结构体

Structemployee{…………};

函数的声明和调用:

voidmainmenu();//主菜单

voidinput();//输入模块

voiddisplay();//显示模块

voiddel();//删除模块

voidadd();//添加模块

voidcount();//统计模块

voidchange();//修改模块

intchangeposition();//修改职位

intchangecult();//修改学历

intchangesalary();//修改工资

intchangestate();//修改身体状况

voidchangmany();//修改多项信息

voidprint();//打印函数

voidselect();//查询模块

voidnumselect();//按工号查询

voidnameselect();//按姓名查询

voidcultselect();//按学历查询

voidpositionselect();//按职位查询

voidstateselect();//按身体状况查询

voidsexselect();//按性别查询

voidageselect();//按年龄区间查询

voidsalaryselect();//按工资区间查询

voidpaixu();//排序模块

voidnumpx();//按工号排序

voidcultpx();//按学历排序

voidpositionpx();//按职位排序

voidstatepx();//按身体状况排序

voidagepx();//按年龄排序

voidsalarypx();//按工资排序

2.选择功能,用到了For语句进行循环,用switch语句来进行选择

scanf("%d",&choicemanage);

switch(choicemanage)

{

case1:

input();//输入职工信息

break;

case2:

display();//显示职工信息

break;

case3:

select();//查询职工信息

break;

case4:

change();//修改职工信息

break;

case5:

add();//追加一个职工信息

break;

case6:

del();//删除一个职工信息

break;

case7:

count();//统计职工信息

break;

case8:

paixu();//对职工信息进行排序

break;

case9:

printf("谢谢你的使用再见\n");

exit(0);

default:

printf("你的输入有错请重新输入\n");

}

4.定义的函数完成功能的实现:

职工信息录入、浏览、查询、删除、修改功能

5.执行程序

结果与分析(可以加页):

密码输入码ma____________________________________________________________________________________________________________________________

使用菜单

浏览职工信息

职工信息查询

 

职工信息删除

职工信息统计

 

职工信息修改

职工信息排序

该职工信息查询系统可实现职工信息录入功能(职工信息包括职工号、姓名、性别、年龄、学历、工资职位、健康状况、住址、电话等)、职工信息浏览功能、职工信息查询功能(按学历查询、按职工号查询、条件组合查询)、职工信息修改功能、职工信息追加功能、职工信息统计功能、职工信息排序功能、职工信息删除功能等。

 

设计体会与建议:

 

两周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。

通过这次的课程设计,我更加了解C语言,学会更好的使用C语言函数调用和结构体等,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。

最重要的还是激发了我编程的兴趣和热情,让我从一个只懂理论变成了能做一些小型程序,让我对编程更加热爱了。

整体地评价这次课程设计,我认为收获很大,正如上面所说的那样,通过课程设计,既复习了以前的旧知识,又学到了一些新的知识;设计增强了我们用所学知识去解决具体问题的能力,进一步培养了我们独立思考问题和解决问题的能力。

 

#include

#include

#include

#include

#include

#defineN100

structemployee//职工基本情况

{

intnum;//工号

charname[10];//姓名

intsex;//性别

intposition;//职位

intage;//年龄

intcult;//学历

intsalary;//工资

intstate;//健康情况

chartel[15];//联系电话

charadr[50];//住址

}em[N];

intnum[N]={0};

structemployeenewem;

voidmainmenu();//主菜单

voidinput();//输入模块

voiddisplay();//显示模块

voiddel();//删除模块

voidadd();//添加模块

voidcount();//统计模块

voidchange();//修改模块

intchangeposition();//修改职位

intchangecult();//修改学历

intchangesalary();//修改工资

intchangestate();//修改身体状况

voidchangmany();//修改多项信息

voidprint();//打印函数

voidselect();//查询模块

voidnumselect();//按工号查询

voidnameselect();//按姓名查询

voidcultselect();//按学历查询

voidpositionselect();//按职位查询

voidstateselect();//按身体状况查询

voidsexselect();//按性别查询

voidageselect();//按年龄区间查询

voidsalaryselect();//按工资区间查询

voidpaixu();//排序模块

voidnumpx();//按工号排序

voidcultpx();//按学历排序

voidpositionpx();//按职位排序

voidstatepx();//按身体状况排序

voidagepx();//按年龄排序

voidsalarypx();//按工资排序

 

voidmain()//主函数

{

charpassword[7]="myz";

chars[7];

intflag=0;

intn=3;

system("modecon:

lines=100cols=120");

do

{

printf("请你输入密码:

\n");

scanf("%s",s);

if(!

strcmp(s,password))//若密码正确

{

printf("恭喜你成功登陆了\n\n\n");

flag=1;

break;

}

else

{

printf("输入有错误请重新输入:

\n");

n--;

}

}while(n>0);

if(!

flag)

{

printf("你的输入次数已到再见\n");

exit(0);

}

printf("请按任意键继续!

\n");

getch();

mainmenu();

}

voidmainmenu()//主菜单

{

intchoicemanage=0;

while

(1)

{

system("cls");

printf("☆★☆计算机科学与技术学系☆★☆\n");

printf("\n");

printf("☆★马有志★☆\n");

printf("\n");

printf("◎◎◎◎◎◎◎职工信息管理系统◎◎◎◎◎◎◎\n");

printf("◎1.输入职工信息◎\n");

printf("◎2.显示职工信息◎\n");

printf("◎3.查询职工信息◎\n");

printf("◎4.修改职工信息◎\n");

printf("◎5.追加职工信息◎\n");

printf("◎6.删除职工信息◎\n");

printf("◎7.统计职工信息◎\n");

printf("◎8.对职工信息排序◎\n");

printf("◎9.退出◎\n");

printf("◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎\n");

printf("\n");

printf("\n");

scanf("%d",&choicemanage);

switch(choicemanage)

{

case1:

input();//输入职工信息

break;

case2:

display();//显示职工信息

break;

case3:

select();//查询职工信息

break;

case4:

change();//修改职工信息

break;

case5:

add();//追加一个职工信息

break;

case6:

del();//删除一个职工信息

break;

case7:

count();//统计职工信息

break;

case8:

paixu();//对职工信息进行排序

break;

case9:

printf("谢谢你的使用再见\n");

exit(0);

default:

printf("你的输入有错请重新输入\n");

}

}

}

voidinput()//输入模块

{

FILE*fp;

intk,flag=0,i=0,p,v,h;

charchoice;

system("cls");

if((fp=fopen("employee.txt","w"))==NULL)

exit(0);

srand(time(NULL));

while

(1)

{

i++;

system("cls");

printf("第%d个职工\n",i);

printf("\n");

printf("请输入职工号:

");

scanf("%d",&em[i].num);

for(v=1;v==1;)

{for(p=0;p

{if(em[i].num==em[p].num)

h=1;

}

if(h==1)

{h=0;

printf("\n您输入的职工号重复,请重新输入\n");

printf("职工号:

");

scanf("%d",&em[i].num);

}

else

v=0;}

printf("请输入姓名:

\n");//输入姓名

scanf("%s",em[i].name);

printf("\n");

do

{

printf("请选择性别以1为男2为女:

\n");//输入性别

scanf("%d",&k);

if(k>=1&&k<=2)

{

em[i].sex=k;

break;

}

else

printf("您的输入有误,请重新输入!

\n");

}while

(1);

printf("\n");

do

{

printf("请选择职位1.董事长2.总经理3.副总经理4.经理5.副经理6.秘书7.技术员8.领班9.普通员工:

\n");//输入职位

scanf("%d",&k);

if(k>=1&&k<=9)

{

em[i].position=k;

break;

}

else

printf("您的输入有误,请重新输入!

\n");

}while

(1);

printf("\n");

printf("请输入年龄:

");

scanf("%d",&em[i].age);

printf("\n");

do

{

printf("请选择文化程度1为专家2为博士3为硕士4为学士5为其他:

\n");//输入文化程度

scanf("%d",&k);

if(k>=1&&k<=5)

{

em[i].cult=k;

break;

}

else

printf("您的输入有误,请重新输入!

\n");

}while

(1);

printf("\n");

printf("请输入工资:

\n");//输入工资

scanf("%d",&em[i].salary);

printf("\n");

do

{

printf("请你选择身体情况1好2为一般3为差:

\n");//身体情况

scanf("%d",&k);

if(k>=1&&k<=3)

{

em[i].state=k;

break;

}

else

printf("您的输入有误,请重新输入!

\n");

}while

(1);

printf("\n");

printf("请输入联系电话:

");

scanf("%s",em[i].tel);

printf("\n");

printf("请输入地址:

");

scanf("%s",em[i].adr);

printf("\n");

fwrite(&em[i],sizeof(structemployee),1,fp);

printf("是否继续输入?

(y/n)\n");

scanf("%s",&choice);

if(choice=='n'||choice=='N')

break;

}

fclose(fp);

if((fp=fopen("num.txt","w"))==NULL)

exit(0);

for(i=0;num[i];i++)

fwrite(&num[i],sizeof(int),1,fp);

fclose(fp);

printf("输入完毕,任意键返回\n");

getch();

}

voiddisplay()//显示职工信息

{

FILE*fp;

inti;

system("cls");

if((fp=fopen("employee.txt","r+"))==NULL)

{

printf("文件不存在或为空,请先输入员工信息!

\n");

mainmenu();

}

printf("输出结果:

\n");

printf("工号\t姓名\t年龄\t性别\t职位\t\t文化程度\t身体情况\t工资\t电话\t\t住址\n");

for(i=0;fread(&em[i],sizeof(structemployee),1,fp)!

=0;i++)

{

print(em[i]);

}

printf("完毕按任意键返回\n");

getch();

fclose(fp);

}

voidchange()//修改模块

{

FILE*fp;

inti,k,l=0;

intchnum;

intchoicechange;

system("cls");

printf("请你输入要修改的人的工号:

\n");

scanf("%d",&chnum);

if((fp=fopen("employee.txt","r+"))==NULL)

{

printf("不能够打开这个文件\n");

exit(0);

}

for(i=0;fread(&em[i],sizeof(structemployee),1,fp)!

=0;i++)

;

k=i;

fclose(fp);

if((fp=fopen("employee.txt","w+"))==NULL)

{

printf("不能够打开这个文件\n");

exit(0);

}

for(i=0;i

{

if(chnum==em[i].num)

{

l=1;

printf("这是你要修改的人的信息\n");

printf("工号\t姓名\t年龄\t性别\t职位\t\t文化程度\t身体情况\t工资\t电话\t\t住址\n");

print(em[i]);

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

printf("请选择要修改的部分:

\n");

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

printf("\t\t1仅修改职位\n");

printf("\t\t2仅修改文化程度\n");

printf("\t\t3仅修改工资\n");

printf("\t\t4仅修改身体情况\n");

printf("\t\t5修改多项\n");

printf("\t\t0返回主菜单\n");

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

printf("请选择\n");

scanf("%d",&choicechange);

switch(choicechange)

{

case1:

em[i].position=changeposition();

break;

case2:

em[i].cult=changecult();

break;

case3:

em[i].salary=changesalary();

break;

case4:

em[i].state=changestate();

break;

case5:

newem=em[i];

changmany();

em[i]=newem;

break;

case0:

mainmenu();

default:

printf("输入有错误");

}

}

fwrite(&em[i],sizeof(structemployee),1,fp);

}

fclose(fp);

if(l==0)

{printf("该员工不存在,请查证后再输入!

\n");

select();

}

else

printf("操作完成按任意键返回主菜单\n");

getch();

}

intchangeposition()

{

intnewposition;

printf("请选择新职位1为董事长2为总经理3为副总经理4为经理5为副经理6为秘书7为技术员8为领班9为普通员工:

\n");

scanf("%d",&newposition);

return(newposition);

}

intchangecult()

{

intnewcult;

printf("请选择新的文凭1为专家2为博士3为硕士4为学士5为其他:

\n");

scanf("%d",&newcult);

return(newcult);

}

intchangesalary()

{

intnewsalary;

printf("请输入新的工资:

\n");

scanf("%d",&newsalary);

return(newsalary);

}

intchangestate()

{

intnewstate;

printf("请选择现在的身体情况1好2为一般3为差:

\n");

scanf("%d",&newstate);

return(newstate);

}

voidchangmany()

{

intk;

system("cls");

printf("请依次输入该员工的新信息\n");

do

{

printf("请选择职位1.董事长2.总经理3.副总经理4.经理5.副经理6.秘书7.技术员8.领班9.普通员工:

\n");//输入职位

scanf("%d",&k);

if(k>=1&&k<=9)

{

newem.position=k;

break;

}

else

printf("您的输入有误,请重新输入!

\n");

}while

(1);

printf("\n");

printf("请输入年龄:

");

scanf("%d",&newem.age);

printf("\n");

do

{

printf("请选择文化程度1为专家2为博士3为硕士4为学士5为其他:

\n");//输入文化程度

scanf("%d",&k);

if(k>=1&&k<=5)

{

newem.cult=k;

break;

}

else

printf("您的输入有误,请重新输入

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

当前位置:首页 > PPT模板 > 其它模板

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

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