欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C语言程序设计基础课程设计工资系统报告.docx

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

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

    C语言程序设计基础课程设计工资系统报告.docx

    目录一、需求求分析-2二、概要要设计-2三、详细细设计-4四、调试试分析-4五、用户户手册-5六、测试试数据-6七、程序序代码-114 第1页页一、需求求分析1. 第一步,依依据身份份进行登登录,管管理员和和职工所所能进行行的操作作不同,具具备较高高安全性性,同时时用户可可根据需需要修改改自己的的密码,管管理员还还可添加加和删除除用户, 首首次使用用时不存存在用户户,管理理员可进进行注册册,注册册成功后后再进入入使用。2. 多多职工信信息进行行操作时时,建立立动态链链表,每每个节点点包含一一个职员员的工号号、姓名名、工资资等全部部信息,通通过链表表构建一一个完整整的职工工信息库库,链表表具备录录入、删删除、修修改、查查询及统统计功能能,各功功能显示示在菜单单中,由由主函数数分别调调用。3. 为为了避免免一个函函数体过过长,进进行细化化子函数数,小型型子函数数在各个个主调函函数里多多次调用用,便于于使用。4. 以以可读可可写可追追加方式式新建一一个文本本文件,用用于存储储链表里里所有节节点上包包含的信信息,将将节点信信息导入入文件时时,从头头指针开开始,依依次写入入。5. 查查询、修修改、删删除、职职工信息息时,调调用子函函数以只只读方式式打开系系统库文文件,并并将文件件从头至至尾读取取一遍,每每次读取取一个节节点的长长度,将将每次读读取到的的信息依依次导入入到链表表的节点点中去,再再对链表表进行所所需功能能的操作作。修改改和删除除完成后后,将整整个链表表包含的的信息重重新写入入文件,写写入之前前打开系系统库文文件同时时进行格格式化。6. 统统计职工工最高、最低工工资及工工资均方方差时,以以同时方方式将职职工工资资等信息息导入到到链表中中,然后后以子菜菜单的形形式输出出统计的的项目,包包括各部部门和全全公司以以及最高高、最低低工资和和工资均均方差。统计各各部门最最高、最最低工资资和工资资均方差差时需再再调用子子函数分分别进行行操作。统计全全公司最最高、最最低工资资和工资资均方差差时采用用多分支支结构进进行。7. 通通过屏幕幕操作等等函数对对界面进进行处理理,相对对美观。菜单及及所有操操作提示示信息均均采用中中文输出出,每一一步操作作后会有有相应的的提示。如文件件不存在在或为空空时,会会提示“文件打打开失败败!”或“文件是是空的!”或输入入有误时时提示重重新输入入。二、 概要设计计1. 函数设计计mainn(); 主函函数控制制整个程程序流程程,先登登录再进进行子函函数调用用menuu1(); 管理员员菜单函函数menuu2(); 职工菜菜单函数数,可操操作范围围比管理理员小creaatelliannbiaao();创建建链表函函数,用用链表构构建整个个信息库库inpuut(); 录入入函数,将将链表存存进文件件readdwennjiaan(sstruuct empployyee_gz *heead);读取取文件内内容到指指定链表表第2页searrch(strructt emmplooyeee_gzz *hheadd,chhar xinnxi);查询员员工工资资信息shucchuxxinxxi(sstruuct empployyee_gz *heead,chaar xxinxxi);输输出查询询到的员员工信息息xiuggai(strructt emmplooyeee_gzz *hheadd,chhar inffor);修改链链表信息息送到主主修改里里去modiify(strructt emmplooyeee_gzz *hheadd); 修改改文件里里员工工工资信息息Deleete(strructt emmplooyeee_gzz *hheadd); 删除除文件里里某员工工信息shannchuujd(strructt emmplooyeee_gzz *hheadd,chhar inffo);删删除节点点信息zhucceyhh(); 注册册账号tiannjiaayh();添添加账户户信息deleeteyyh(); 删删除用户户信息chooose(strructt emmplooyeee_gzz *hheadd,chhar bummen); 选择统统计的项项目counnt_zzdgzz(sttrucct eemplloyeee_ggz *heaad,ccharr buumenn); 用于某某部门计计算最低低工资counnt_zzggzz(sttrucct eemplloyeee_ggz *heaad,ccharr buumenn); 用于某某部门计计算最高高工资ccounnt_ppjgzz(sttrucct eemplloyeee_ggz *heaad,ccharr buumenn); 用于某某部门计计算平均均工资ccounnt_ggzfcc(sttrucct eemplloyeee_ggz *heaad,ccharr buumenn); 用于某某部门计计算工资资方差ccounnt_ggz(sstruuct empployyee_gz *heead,chaar bbumeen);浏浏览统计计的各项项工资指指标tiannjiaayh(); 管管理员可可进行添添加职工工账户信信息,用用于职工工登录系系统查询询信息2. 流程控制制(1) 主函数模模块int maiin()读取账户户文件;do 管理员登登录;函数分支支:1)录入记记录:调调用读取取职工工工资信息息文件函函数和创创建链表表函数后后写入文文件; 2)删删除记录录:调用用读取职职工工资资信息文文件函数数和修改改链表函函数后重重新写入入文件; 3)查查询记录录:调用用读取职职工工资资信息文文件函数数和输出出所查节节点信息息函数; 4)修修改记录录:调用用读取职职工工资资信息文文件函数数和修改改节点信信息函数数后重新新写入文文件; 5)统统计记录录:采用用两层多多分支结结构,第第一层分分支结构构进行部部门选择择,调用用读取职职工工资资信息文文件函数数和统计计最低、最高、平均工工资和工工资方差差函数,统统计全公公司工资资时直接接查找和和计算; 6)重重新登录录:返回回主函数数; 7)添添加登录录账户:调用添添加账户户函数; 8)修修改账户户密码:调用修修改密码码函数; 9)删删除登录录账户:调用删删除账户户函数; 0)退退出系统统:exxit(0); 职工登录录;第3页函数分支支:1)查询个个人记录录:调用用输出符符合搜索索条件的的节点信信息函数数; 2)浏浏览公司司记录:调用统统计工资资函数; 3)重重新登录录:返回回主函数数; 4)修修改登录录密码:调用修修改密码码函数; 0)退退出系统统:exxit(0);whiile(退出系系统:eexitt(0)三、详细细设计1. 基基本数据据类型 (11)字符符串型; (22)长整整数型;2. 程程序设计计步骤说说明及注注释 (1)函函数介绍绍及调用用关系见见概要设设计。 (2)注注释见附附录(源源代码中中以标出出注释)。四、 调试分析析1. 开开始创建建了链表表之后,将将整个链链表中的的信息写写入文件件时,写写入方式式不对,向向文件里里写入数数据块内内容时,数数据以二二进制方方式存储储,新建建文件和和打开文文件的方方式必须须加上bb,并用用循环控控制,从从头结点点开始,每每次写入入一个节节点,数数据长度度为1,而而不是其其他的数数字。2. 修修改和删删除后文文件里的的数据出出现错乱乱,再次次查询时时出现乱乱码,原原因还是是操作后后的写入入方式不不对,需需要以“wb”方式将将原文件件清空再再将整个个链表中中的信息息写入。 3. 进进行工资资信息统统计时,输输出结果果有错误误,加入入员工数数的输出出后发现现输出的的员工数数比录入入的多,且且其工资资为0的的情况,进进行查询询函数检检验时发发现会输输出多余余的空信信息(无无职工名名、无工工号、工工资为零零等)或或者重复复输出,原原因应该该是存入入文件时时存在问问题,因因此在输输出查询询信息及及统计时时加入了了限制条条件将空空节点或或者多余余的信息息筛选掉掉。4. 统统计分为为各部门门和全公公司,如如果只用用一个子子函数实实现所有有统计功功能则比比较繁琐琐、函数数体太大大,因此此需再使使用子函函数分别别对各项项目进行行统计,那那么进行行不同部部门的统统计时调调用子函函数就比比较困难难。因此此在这些些统计最最低工资资、最高高工资、平均工工资、工工资方差差的函数数中,需需要定义义一个部部门变量量,在条条件语句句里把部部门信息息通过参参数传递递在子函函数中使使用,从从而通过过条件语语句找到到该部门门信第4页 息并统统计。5. 在在删除和和修改函函数中,为为了避免免繁琐,同同样调用用子函数数对链表表进行操操作,在在 进进行修改改方式和和删除方方式选择择时,需需要重新新定义一一个共同同变量并并传递给给子函数数,在判判断语句句里采用用“或”语句对对姓名和和工号同同时搜索索。6. 在在进行职职工信息息添加时时,开始始没有避避免重复复信息的的输入,输输入已有有的职工工工号时时,应提提示“已有该该职工信信息!”,因此此要对原原文件的的内容进进行便利利检索,同同时要对对正在建建立的链链表进行行检索,因因为无法法将原文文件内容容与正在在建立的的链 表表连接起起来,只只能通过过对两个个链表进进行两次次检索,将将正在建建立的链链表以追追加的方方式写到到已经建建立好的的文件中中(添加加到元数数据后面面)。7. 进进行菜单单内的操操作提示示输入有有误时,再再按任意意键会直直接退到到主菜单单,再要要进行该该操作需需重新选选择菜单单,耗费费时间,使使用循环环语句控控制,提提示“输入有有误时!”再次提提示输入入,将新新输入的的数据重重新赋给给变量,知知道输入入信息正正确时,包包括部门门及职务务的合法法性检验验。8. 将将职工的的基金、税金、应发工工资等信信息修改改后,输输出查询询的各项项结果除除以修改改的其他他的不变变,那么么就不符符合要求求,因为为应发工工资等于于基本工工资与岗岗位工资资、奖金金之和,实实发工资资等于应应发工资资减去基基金和税税金,因因此修改改这些信信息时,需需要重新新计算,保保证各项项信息正正确。9. 上上一界面面或者上上一语句句操作完完成后需需跳转下下一语句句,有时时会出现现两层信信息重叠叠在一起起,甚至至错误,原原因是没没有清除除上一层层内容,因因此需要要在很多多地方加加入清屏屏操作或或是删除除上一行行的操作作,进行行删除上上面多行行时,要要从所需需删的最最下面一一行开始始删除,依依次向上上。10. 职工登登录后,把把其工号号(用户户名)作作为参数数传递给给子函数数,查询询其个人人信息 时,按按此工号号对文件件里的内内容(先先将文件件内容读读到链表表里)进进行检索索后输出出。11. 开始没没有修改改登录密密码的操操作,不不便于用用户使用用,增加加修改密密码函数数后,管管 理理员和职职工可以以各自修修改自己己的密码码,保证证用户安安全。后后来还同同时添加加了删 除登登录账户户函数,便便于管理理员管理理。12. 考虑到到首次使使用时,没没有任何何账户信信息,也也没有存存储用户户的文件件,而导导致运 行故故障。因因此首次次运行时时,增加加语句完完成管理理员用户户的注册册,注册册成功后后管 理员再再进行相相关操作作。五、用户户手册1. 本程序的的运行环环境为wwinddowss xpp或wiindoows 7(332位)的操作作系统 ,执行行文件为为第5页 GOONGZZI11.EXXE。2. 打打开运行行程序后后,按照照提示进进行登录录操作身身份分为为管理员员和职工工,依据据自己的的身份对对应用户户名及密密码登录录,身份份不符将将不能登登录,需需重新输输入。管管理员首首次运行行应先录录入信息息,并添添加对应应的职工工登录账账户信息息。 3. 职职工登录录后菜单单与管理理员不同同,职工工只能查查询自己己信息和和浏览公公司及各各部门最最高、最最低工资资以及平平均工资资和工资资方差信信息,并并可选择择重新登登录。4. 管管理员进进行管理理时,可可添加、删除登登录账户户,管理理员和职职工用户户可根据据喜好修修改自己己的登录录密码。5. 完完成所需需操作后后可选择择重新登登录或退退出程序序。六、 测试数据据1. 文文件中包包含的所所有数据据 第6页页2. 注注册账户户3.管理理员和职职工菜单单 第7页页4. 录录入职工工信息第8页 5. 查询询信息 6. 修改改信息第9页77. 删删除信息息8. 统统计单位位及项目目选择第10页页 9. 输出出统计信信息第11页页10. 查询个个人信息息 第第12页页11. 信息合合法性校校验 第第13页页12. 提示信信息 第第14页页 133. 修修改密码码 第第15页页 七、 附录 源程程序文件件清单: 数数据:CC:KESSHE(员员工工资资信息文文件) C:XXITOONGJJIAMMI(账账户登录录名及密密码文件件) 源程程序#inccludde<sstdiio.hh>#inccludde<sstdllib.h>#inccludde<sstriing.h>#inccludde<mmathh.h>>#inccludde<cconiio.hh>#inccludde<bbioss.h>>struuct empployyee_gz *crreatteliianbbiaoo();/*声声明创建建链表函函数*/struuct empployyee_gz *innputt(); /*声声明录入入函数*/struuct empployyee_gz *coountt_gzz(sttrucct eemplloyeee_ggz *heaad,ccharr buumenn);/*声明统统计函数数*/struuct empployyee_gz *seearcch(sstruuct empployyee_gz *heead,chaar xxinxxi);/*声明明查询函函数*/struuct empployyee_gz *moodiffy(sstruuct empployyee_gz *heead); /*声明明修改文文件函数数*/struuct empployyee_gz *xiiugaai(sstruuct empployyee_gz *heead,chaar iinfoor);/*声明明修改链链表函数数*/struuct empployyee_gz *Deelette(sstruuct empployyee_gz *heead); /*声明明删除函函数*/struuct empployyee_gz *shhancchujjd(sstruuct empployyee_gz *heead,chaar iinfoo);/*声明删删除节点点函数*/voidd zhhuceeyh(); /*声明注注册账号号函数*/voidd meenu11(); /*声明明管理员员菜单函函数*/voidd meenu22(); /*声明明职工菜菜单函数数*/voidd tiianjjiayyh(); /*声明明添加账账户信息息函数*/voidd deeletteyhh(); /*声明删删除用户户函数*/voidd xiiugaaimmm(chhar yhmm,chaar sshennfenn); /*声声明修改改账户密密码函数数*/voidd chhoosse(sstruuct empployyee_gz *heead,chaar bbumeen); /*声明明统计中中的选择择函数*/struuct empployyee_gz *reeadwwenjjiann(sttrucct eemplloyeee_ggz *heaad);/*声声明读取取文件函函数*/struuct empployyee_gz *shhuchhuxiinxii(sttrucct eemplloyeee_ggz *heaad,ccharr xiinxii);/*声明输输出信息息函数*/voidd coountt_zddgz(strructt emmplooyeee_gzz *hheadd,chhar bummen);/*声声明计算算最低工工资函数数*/voidd coountt_zgggz(strructt emmplooyeee_gzz *hheadd,chhar bummen);/*声声明计算算最高工工资函数数*/voidd coountt_pjjgz(strructt emmplooyeee_gzz *hheadd,chhar bummen);/*声声明计算算平均工工资函数数*/voidd coountt_gzzfc(strructt emmplooyeee_gzz *hheadd,chhar bummen);/*声声明计算算工资方方差函数数*/struuct empployyee_gz chaar ggongghaoo200; /*职工工工号*/ chaar ssfzhh200; /*身份证证号*/ chaar nnamee200; /*姓名*/ chaar bbumeen220; /*部门*/ chaar zzhiwwu220; /*职位*/ chaar jjiguuan20; /*籍贯*/ lonng iint jbggz; /*基本工工资*/ lonng iint jijjin; /*基金*/ lonng iint yfggz; /*应发工工资*/ lonng iint shuuijiin; /*税金*/ lonng iint jiaangjjin; /*奖金*/ lonng iint sfggz; /*实发工工资*/ lonng iint gwggz; /*岗位工工资*/ strructt emmplooyeee_gzz *nnextt; /*指指向下一一节点的的指针*/;struuct passs chaar sshennfenn200; /*用用户身份份*/ chaar yyhm20; /*用用户名*/ chaar mmimaa200; /*密码*/ strructt paass *neext; /*指向下下一节点点的指针针*/;int maiin() FILLE *pfpp; strructt emmplooyeee_gzz *hheadd; strructt paass *pttr,*dl,*mhheadd,*ttaill; chaar bbumeen220; chaar xxinxxi220; chaar yyhm20; chaar sshennfenn200; chaar mmimaa200; intt chhoicce,aa,b=0; sysstemm("ggrafftabbl 9936""); texxtmoode(C800);ttexttcollor(25);teextbbackkgrooundd(7); clrrscrr(); heaad=NNULLL; mheead=NULLL; taiil=NNULLL; if(pffp=ffopeen(""C:xiitonngjiiamii.txxt","rbb")=NNULLL) gootoxxy(220,66);ccpriintff("账账户信息息文件打打开失败败!"); geetchh();clrrscrr(); gootoxxy(220,22);ccpriintff("请请建立文文件并注注册用户户!"); gootoxxy(220,33);ccpriintff("请请完成下下面的注注册!""); zhhuceeyh(); clrrscrr(); pfpp=foopenn("CC:xittonggjiaami.txtt",""rb""); whiile(!feeof(pfpp) /*将文件件中的数数据导入入链表中中*/ pttr=(strructt paass *)mmallloc(sizzeoff(sttrucct ppasss); frreadd(pttr,ssizeeof(strructt paass),1,pfpp); iff(mhheadd=NNULLL) mmheaad=pptr; ellse ttaill->nnextt=pttr; taail=ptrr; pttr->>nexxt=NNULLL; fcllosee(pffp); dl=mheead; gottoxyy(222,5);cpprinntf("您的的身份是是:1(管理员员) 2(职职工)""); /*登录选选择*/ scaanf("%dd",&&a); gottoxyy(222,5);deelliine(); /*删删除光标标所在行行*/ if(a=1) /*管理员员登录*/ sttrcppy(sshennfenn,"gguannliyyuann"); gootoxxy(224,55);ccpriintff("用用户名:"); gootoxxy(224,66);ccpriintff("密密 码码:"); gootoxxy(332,55);sscannf(""%s"",&yyhm); gootoxxy(332,66);sscannf(""%s"",&mmimaa); whhilee(dll!=NNULLL) iif(sstrccmp(dl->shhenffen,sheenfeen)=0&&&sttrcmmp(ddl->>yhmm,yhhm)=0&&&sttrcmmp(ddl->>mimma,mmimaa)=0) b=11; do /*菜单循循环控制制*/ cllrsccr();meenu11(); gootoxxy(116,111);cprrinttf(""输入您您的选择择:"); sccanff("%d",&chhoicce); cllrsccr(); /*清屏*/ swwitcch(cchoiice) /*函函数调用用*/ ccasee 1:inpput();bbreaak; ccasee 2:Delletee(heead);brreakk; ccasee 3:seaarchh(heead,xinnxi);brreakk; ccasee 4:moddifyy(heead);brreakk; ccasee 5:couunt_gz(heaad,bbumeen);breeak; ccasee 6:maiin(); ccasee 7:tiaanjiiayhh();breeak; ccasee 8:xiuugaiimm(yhmm,shhenffen); maiin();brreakk; ccasee 9:delleteeyh();bbreaak; ccasee 0:exiit(00); ddefaaultt:gootoxxy(332,33);ccpriintff("输输入有误误!"); geetchh();breeak; whhilee(chhoicce!=0); ddl=ddl->>nexxt; iff(b=0) cclrsscr();ggotooxy(20,6); ccpriintff("用用户名或或密码错错误!请请重新登登录!"");ggetcch(); mmainn(); elsse iif(aa=22) /*职职工登录录*/ sttrcppy(sshennfenn,"zzhiggongg"); gootoxxy(222,55);ccpriintff("工工 号号:"); gootoxxy(222,66);ccpriintff("密密 码码:"); gootoxxy(330,55);sscannf(""%s"",&yyhm); gootoxxy(330,66);sscannf(""%s"",&mmimaa); whhilee(dll!=NNULLL) iif(sstrccmp(dl->shhenffen,sheenfeen)=0&&&sttrcmmp(ddl->>yhmm,yhhm)=0&&&sttrcmmp(ddl->>mimma,mmimaa)=0) b=11; do /*菜单循循环控制制*/ cllrsccr();meenu22(); gootoxxy(224,111);cprrinttf(""输入您您的选择择:"); sccanff("%d",&chhoicce); cllrsccr(); swwitcch(cchoiice) /*函函数调用用*/ ccasee 1:strrcpyy(xiinxii,yhhm); /*以以工号查查询*/ heaad=rreaddwennjiaan(hheadd); shuuchuuxinnxi(heaad,xxinxxi); gettch();bbreaak; ccasee 2:couunt_gz(heaad,bbumeen);breeak; ccasee 3

    注意事项

    本文(C语言程序设计基础课程设计工资系统报告.docx)为本站会员(you****now)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开