欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    职工信息管理系统设计.docx

    • 资源ID:1416219       资源大小:299.83KB        全文页数:35页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    职工信息管理系统设计.docx

    1、职工信息管理系统设计北京理工大学珠海学院实验报告ZHUHAI CAMPAUS OF BEIJING INSTITUTE OF TECHNOLOGY班级:计算机(2)班 学号:* 姓名:徐岩 指导教师:王日桂 成绩:实验题目:职工信息管理系统设计 实 验 时 间 : 2011年6月26日星期日一、实验设计目的通过亲自设计程序,可以令我们熟悉C语言操作,更熟练的掌握C语句。初步体会编程的过程,为将来的程序深入学习打下基础和培养兴趣。二、实验设计要求试设计一职工信息管理系统,使之能提供以下功能:1.职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。2.系统以菜单方式工作

    2、3.职工信息录入功能(职工信息用文件保存)输入4.职工信息浏览功能输出5.查询和排序功能:按工资查询、按学历查询等(至少一种查询方式)算法6.职工信息删除、修改功能(任选项)三、实验总体设计录入函数:用键盘输入职工信息 写入文件:将信息写入指定文本文件 导出函数:将信息从文件中导出放在结构数组中浏览函数:将所有信息显示在屏幕上显示主菜单 查询函数:按职工号查询、按学历查询、按电话查询 删除函数:删除原有的职工信息添加函数:添加新的职工信息四、实验详细设计1.菜单函数menu 使用printf语句在屏幕上打印出工作菜单,包括录入职工信息、浏览职工信息、查询职工信息、删除职工信息、添加职工信息、修

    3、改职工信息、退出。2.主函数main调用菜单函数menu,显示系统工作菜单,罗列该系统所有功能。运用dowhile语句和选择函数switch即可根据使用者所输入的功能代号进入对应的功能程序。程序开头的宏定义define N指定首次输入的职工人数为100,可根据不同需要随时更改。3.录入函数input 定义一个结构struct employee和数组emN用来储存N个职工的所有信息(职工号emi.number、姓名emi.name性别emi.sex年龄emi.age学历emi.xueli工资emi.wage住址emi.addr电话emi.tel)。通过for循环输入所有职工信息。用printf语

    4、句提示需要输入的内容,接着用scanf语句输入相应内容。输入完毕后套用保存函数save(m)将所输入的信息写入指定文件。4.保存文件函数save定义文件指针fp,创建文件并用if语句判断能否打开,若fopen返回值不为,则可继续下面操作。用for循环通过fwrite语句将结构数组em中的内容写入保存在盘的文本文件里面。形参m指需要写入文件的职工人数。最后关闭文件。5.导出函数load首先判断文件打开是否成功,若fopen返回值不为零,继续下面操作。用dowhile循环通过fread语句将文件中的职工信息取出放到em结构数组里面。最后关闭文件。6.浏览函数display声明整形变量i和m,其中i

    5、记录输出的职工序数,m用来接收调用浏览函数时所传递过来的实参,接着将其值传递给导出函数load(m),使得导出的职工人数与浏览的职工人数保持一致。通过调用load函数后(即给em数组附值),用for循环输出每个职工的各种信息。7.删除函数del声明整形变量i,j,n,t,flag和char形数组name20。调用浏览函数display(),显示所有职工信息,便于使用者审阅需删除的对象。用printf语句提示“输入要删除的职工名字”,接着用scanf语句输入删除对象名字。用for循环,循环主体是先判断em.name中是否存在所输入的名字(调用字符串比较函数stecmp)。若存在,printf语句

    6、提示是否确认删除,用scanf语句输入确认指令,再用for循环从要删除的这个职工开始,依次用后一个职工的信息覆盖前一个的。循环结束后当前职工人数m自减1,并保存,跳出大循环;若不存在,输出“输入错误,无此人”。 printf提示下一步操作“n继续删除请按1,不再删除请按0n”。switch根据键盘输入的指令代号选择下一步连接的函数。8.添加函数add声明整形变量i,n,m,定义文件指针fp,用追加的方式打开文件,printf提示“输入要添加的人数”scanf输入要添加的人数存放在n。用for循环输入要添加的职工信息,浏览增加后的所有职工信息。将输入的新信息追加写入文件保存。关闭文件。9.查询函

    7、数search 声明整形变量t,先用printf语句显示查询菜单,用scanf输入选择的查询方式代号,用switch(t)进入所选择的具体查询函数,包括按职工号查询、按学历查询、按电话查询三中方式。10.按职工号查询search_num声明两个整形变量:i记录职工的序数,num存放键盘输入的职工号。调用导出函数load()表示当前的职工人数。通过scanf语句从键盘输入需要查询的职工号,并赋值给num。用for循环,循环主体是先判断em.num中是否有输入的职工号,如果有,用printf语句输出与职工号相对应的该职工所有信息,再跳出循环;如果没有,输出“查无此人”,并调用search()返回查

    8、询菜单。按学列查询和按电话查询与此方法类似,就不多说,以下只附按职工号查询程序流程图。五、调试与测试整个程序代码是分块书写的,每个函数都可以独立运行。只有输入函数查询、菜单函数写得很顺利,一次性就能够成功运行,其他函数在调试过程中或多或少都出现了问题。而且串联所有函数时,调试提示出错:有几个函数“redefinition; different basic types”解决:在函数名前加void指明类型。1.保存函数save()在调试和链接的时候都没有出现错误提示,但在运行的时候出现了问题。写入指定位置的文件,打开后总会有乱码。与c语言课本上的例题对照后发现,我写的fopen指向的文件没有指定文

    9、件的存储类型。2.导出函数load()遇到一个问题。是用fscanf语句时,漏写地址符。调试和链接都没问题,但点击运行后,总出现一个提示出错的蓝色小窗口。经过网上的查询发现了原因所在。解决:在emi.name等之前加上地址符。3.浏览函数display()遇到的问题虽然不大,但解决起来很麻烦。理想的运行结果是美观整齐。即下面的职工信息分别与第一个printf输出的中文项目提示对齐。解决方法:不断修改空格个数,不断运行察看效果。4.按学历查询函数search_xueli(),要考虑输入一种学历,可能对应出很多职工,这就不能延用按姓名和职工号查询中判断是否输入错误的方法了。为了显示出所有具有该学历

    10、的职工,就需要让for循环一直运行到最后一个为止。这时计量数i始终会等于职工人数,不能再用i来判断是否不存在此人。这就需要再定一个整形变量k,用来计量单独的一个循环次数。5.删除函数del()的难点在于多次删除。即在删除掉第一个人以后,现有职工人数发生改变,而宏定义中的N却是不变的。最开始我想到了用static定义一个整形变量a来计量当前人数。这在单独运行删除函数时,可以成功的连续删除。最后所有函数串在一起时,有了更好的解决方法指针。6.添加函数add()遇到的问题是用printf输入新职工信息后,保存到文件里面,发现原有的信息不见了。解决:文件打开方式改用a追加写入。六、源程序代码#incl

    11、ude#include#include#include#define N 100struct employee int num; char name10; char sex; int age; char xueli30; int wage; char addr30; long int tel;em100; /*定义一个结构体*/void menu();void input();void save(int);void display();void del();void add();void search();void search_num();void search_xueli();void s

    12、earch_tel();void modify(); /*定义各函数*/void menu() /*菜单函数*/ printf(n); printf(n); printf( *职工信息管理*n); printf( 1.录入职工信息); printf( 2.浏览职工信息n); printf( 3.查询职工信息); printf( 4.删除职工信息n); printf( 5.添加职工信息); printf( 6.修改职工信息n); printf( 7.退出n); printf( *谢谢使用*n); printf(n); printf(n);void main() menu(); /*调用菜单函数*

    13、/ int n,flag; char a; do printf(请选择你需要操作的步骤(1-7):n); scanf(%d,&n); if(n=1&n=7) flag=1; break; else flag=0; printf(您输入有误,请重新选择!); while(flag=0); while(flag=1) switch(n) case 1:printf( 输入职工信息n);printf(n);input();break; case 2:printf( 浏览职工信息n);printf(n);display();break; case 3:printf( 按职工号查询职工信息n);prin

    14、tf(n);search();break; case 4:printf( 删除职工信息n);printf(n);del();break; case 5:printf( 添加职工信息n);printf(n);add();break; case 6:printf( 修改职工信息n);printf(n);modify();break; case 7:exit(0);break; default :break; getchar(); printf(n); printf(是否继续进行(y or n):n); scanf(%c,&a); if(a=y) flag=1; system(cls); /*清屏*/ menu();


    注意事项

    本文(职工信息管理系统设计.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

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

    收起
    展开