欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    C语言课程设计报告:职工信息管理系统.doc

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

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

    C语言课程设计报告:职工信息管理系统.doc

    C语言课程设计报告题 目:职工信息管理系统班 级:电科二班 学生姓名:钱 浩 宇 学 号:100110021118指导老师:陈 维日 期: 2011-6-29 目 录1、 前言.22、需求分析.33、总体设计.34、详细设计.45、调试过程.56、结束语.77、参考文献.78、附录.81.前言C语言是近年来在国内外都得到迅速推广的一种现代通用的程序设计语言,它不但具有丰富的数据类型与运算符、灵活的控制结构、简洁而高效的表达式、清晰的程序结构和良好的可移植性等优点,还具有直接支持计算机硬件编程的强大功能。其既具有高级语言的优点,有具有低级语言的优点,具有完善的结构化、模块化程序结构,是世界最流行、使用最广泛的高级程序设计语言之一。但由于课堂教学和实验的深度和广度有限,练习的深度也受到一定的限制。所以开设了课程设计这门课。它比教学实验复杂一些,涉及的深度也广些,这样便可培养我们学生实际分析问题、编程和动手能力,也可以让我们更好的掌握C语言这门课程。2.需求分析根据要设计职工信息管理系统可以知道职工数据由职工编号、姓名、部门、职称、基 本工资、加班工资、奖金和总工资构成。功能要求如下:(1)添加职工的记录(2)查询职工(分别按职工编号和姓名)(3)对职工数据排序(分别按总工资的降序)(4)删除职工记录(5)修改职工记录(6)插入职工信息(7)输出职工信息表(8)保存职工信息3.总体设计根据上面的需求分析,可以将这个系统设计分为以下模块:增加职工信息、删除职工信息、查询职工信息、修改职工信息、插入职工信息、排序、保存职工信息、显示职工信息。系统功能模块如下: 职 工 信 息 管 理 系 统 菜 单 选 择显 示 职 工 信 息保 存 职 工 信 息排 序插 入 职 工 信 息修 改 职 工 信 息查 询 职 工 信 息增 加 职 工 信 息删 除 职 工 信 息按姓名 按工号 按姓名 按工号 按姓名 按工号 4.详细设计 (1).主函数:创建一个链表,并使用指针。 void main() Link list; FILE *fp; int choose; char ch; int count=0; struct node *p,*r; pintf("tttt职工信息管理系统nttttn"); list=(struct node*)malloc(sizeof(struct node); if(!list) printf("n allocate memory failure "); return ; (2).定义各部分功能函数: void Add(Link l) 增加职工信息 void Del(Link l) 删除职工信息 void Qur(Link l) 查询职工信息 void Modify(Link l) 修改职工信息 void Insert(Link l) 插入职工信息 void Sort(Link l) 排序(3) 菜单函数: void menu() printf("t*n"); printf("t* *n"); printf("t* 职工信息管理系统 *n"); printf("t* *n"); printf("t* 1 增加职工信息 2 删除职工信息 *n"); printf("t* 3 查询职工信息 4 修改职工信息 *n"); printf("t* 5 插入职工记录 6 排序 *n"); printf("t* 7 保存职工信息 8 显示职工信息 *n"); printf("t* 0 退出系统 *n"); printf("t* *n"); printf("t*n"); (4) .输出中文标题函数: void printstart(); void Wrong(); void Nofind(); void printc(); 5、调试过程1.主菜单2.增加职工信息3.删除职工信息4.查询职工信息5.修改职工信息6.插入职工信息7排序.6.结束语通过为期二周的课程设计学习,我对C语言这门课程有了更深一步的了解。它是计算机程序设计的重要理论技术基础,在我们电子科学与技术专业的学习中占据着十分重要的地位。同时也使我知道,要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。因为我们学习知识就是为了实践。而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西。然而这个程序还有不足之处,比如说:界面会跟随输入的数据而变得整齐或不整齐等等,这些都是有待改进的地方。7.参考文献:1.网站搜索:2.程序设计基础(c语言) 杨有安 陈维 曹慧雅 鲁丽 编著3.C程序设计 课程设计 刘振安,孙 忱 刘燕君 编著4.C语言程序设计-实验指导.课程设计.习题解答 高涛 陆丽娜 编著5.C语言课程设计 案例精编 姜灵芝 余健 编著8.附录(源程序): #include <stdio.h> #include <stdlib.h> #include <string.h> int saveflag=0; struct employee char name15; char num10;char sex4; char bm15; char zc20; int gz;int jbgz;int jj;int zgz; typedef struct node struct employee data; struct node *next; Node,*Link; void add(Link l); void disp(Link l); void del(Link l); Node* Locate(Link l,char findmess,char nameornum);void Qur(Link l); void Sort(Link l); void Modify(Link l); void save(Link l); void printe(Node *p); void printstart(); void Wrong(); void Nofind(); void printc();void menu()printf("t*n");printf("t* *n");printf("t* 职工信息管理系统 *n");printf("t* *n");printf("t* 1 增加职工信息 2 删除职工信息 *n");printf("t* 3 查询职工信息 4 修改职工信息 *n");printf("t* 5 插入职工记录 6 排序 *n");printf("t* 7 保存职工信息 8 显示职工信息 *n");printf("t* 0 退出系统 *n");printf("t* *n");printf("t*n"); int count=0; Node *p; p=l->next; if(!p) printf("n=>提示:没有职工记录可以显示!n");return; printf("tttt显示结果n"); printstart(); printc(); printf("n"); while(p) printe(p); p=p->next; printstart(); printf("n"); void printstart() printf("-n"); void Wrong() printf("n=>提示:输入错误!n"); void Nofind() printf("n=>提示:没有找到该职工!n"); void printc() printf("工号t 姓名 性别 部门 职称 工资 加班工资 奖金 总工资n"); void printe(Node *p) printf("%-12s%st%st%st%st%dt%dt%dt%dn",p->data.num,p->data.name,p->data.sex,p->data.bm,p->data.zc,p->data.gz,p->data.jbgz,p->data.jj,p->data.zgz); Node* Locate(Link l,char findmess,char zcornum) Node *r; if(strcmp(zcornum,"num")=0) r=l->next; while(r!=NULL) if(strcmp(r->data.num,findmess)=0) return r; r=r->next; else if(strcmp(zcornum,"zc")=0) r=l->next; while(r!=NULL) if(strcmp(r->data.zc,findmess)=0) return r; r=r->next; return 0; void Add(Link l) Node *p,*r,*s; char num10;int flag=0;r=l; s=l->next; while(r->next!=NULL)while(1) printf("请你输入工号(以'0'返回上一级菜单:)"); scanf("%s",num); if(strcmp(num,"0")=0) break; s=l->next;while(s) if(strcmp(s->data.num,num)=0) printf("=>提示:工号为'%d'的职工已经存在,若要修改请你选择'4 修改'!n",num); flag=1; break;return ; s=s->next; p=(Node *)malloc(sizeof(Node); strcpy(p->data.num,num); printf("请你输入姓名:"); scanf("%s",p->data.name); getchar(); printf("请你输入性别:"); scanf("%s",p->data.sex); getchar(); printf("请你输入职工所在部门:"); scanf("%s",&p->data.bm); getchar(); printf("请你输入职工职称:"); scanf("%s",&p->data.zc); getchar(); printf("请你输入职工工资:"); scanf("%d",&p->data.gz); getchar();printf("请你输入职工加班工资:"); scanf("%d",&p->data.jbgz); getchar();printf("请你输入职工奖金:"); scanf("%d",&p->data.jj); getchar();p->data.zgz=p->data.gz+p->data.jbgz+p->data.jj; p->next=NULL; r->next=p; r=p; saveflag=1; void Del(Link l) int sel; Node *p,*r; char findmess20; if(!l->next) printf("n=>提示:没有记录可以删除!n"); return; printf("n=>1按工号删除n=>2按姓名删除n"); scanf("%d",&sel); if(sel=1) /按工号删除 printf("请你输入要删除的工号:"); scanf("%s",findmess);p=Locate(l,findmess,"num");if(p) r=l; while(r->next!=p) r=r->next; r->next=p->next; free(p); printf("n=>提示:该职工已经成功删除!n"); saveflag=1; else Nofind(); else if(sel=2) printf("请你输入要删除的姓名:"); scanf("%s",findmess); p=Locate(l,findmess,"name"); if(p) r=l; while(r->next!=p) r=r->next; r->next=p->next; /r r->next(p) p->nextfree(p); printf("n=>提示:该职工已经成功删除!n"); saveflag=1; else Nofind(); /if(sel=2)else Wrong(); void Qur(Link l) int sel; char findmess20; Node *p; if(!l->next) printf("n=>提示:没有资料可以查询!n"); return; printf("n=>1按工号查找n=>2按职称查找n"); scanf("%d",&sel); if(sel=1)/* 工号 */ printf("请你输入要查找的工号:"); scanf("%s",findmess); p=Locate(l,findmess,"num"); if(p) printf("tttt查找结果n"); printstart(); printc(); printe(p); printstart(); else Nofind(); else if(sel=2) printf("请你输入要查找的职称:"); scanf("%s",findmess); p=Locate(l,findmess,"zc"); if(p) printf("tttt查找结果n"); printstart(); printc(); printe(p); printstart(); else Nofind(); else Wrong(); void Modify(Link l) /修改功能 Node *p; char findmess20; if(!l->next) printf("n=>提示:没有资料可以修改!n"); return; printf("请你输入要修改的职工工号:"); scanf("%s",findmess); p=Locate(l,findmess,"num"); if(p) printf("请你输入新工号(原来是%s):",p->data.num); scanf("%s",p->data.num); printf("请你输入新姓名(原来是%s):",p->data.name); scanf("%s",p->data.name); getchar(); printf("请你输入新性别(原来是%s):",p->data.sex); scanf("%s",p->data.sex); getchar(); printf("请你输入新的部门(原来是%s):",p->data.bm); scanf("%s",&p->data.bm); printf("请你输入新的职称(原来是%s):",p->data.zc); scanf("%s",&p->data.zc); getchar(); printf("请你输入新的工资(原来是%d):",p->data.gz); scanf("%d",&p->data.gz); getchar(); printf("请你输入新的加班工资(原来是%d):",p->data.jbgz); scanf("%d",&p->data.jbgz); getchar(); printf("请你输入新的奖金(原来是%d):",p->data.jj); scanf("%d",&p->data.jj); getchar(); p->data.zgz=p->data.gz+p->data.jbgz+p->data.jj; printf("n=>提示:资料修改成功!n"); else Nofind(); void Insert(Link l) Node *s,*r,*p; char ch,new_num10,old_num10; int flag=0; s=l->next; system("cls"); Disp(l); while(1) printf("请你输入已存在的工号(以'0'返回上一级菜单:)"); scanf("%s",old_num); if(strcmp(old_num,"0")=0) return; s=l->next; flag=0; while(s) if(strcmp(s->data.num,old_num)=0) flag=1; break; s=s->next; if(flag=1) break; else getchar();printf("n=>The number %s is not existing,try again?(y/n):",old_num); scanf("%c",&ch); if(ch='y'|ch='Y') continue; else return; printf("请你输入待插入的工号(以'0'返回上一级菜单:)"); scanf("%s",new_num); if(strcmp(new_num,"0")=0) return; s=l->next; while(s) if(strcmp(s->data.num,new_num)=0) printf("=>提示:工号为'%s'的职工已经存在'!n",new_num); flag=1; return ; s=s->next; p=(Node *)malloc(sizeof(Node); if(!p) printf("n allocate memory failure "); return ; strcpy(p->data.num,new_num); printf("请你输入姓名:"); scanf("%s",p->data.name); getchar(); printf("请你输入性别:"); scanf("%s",p->data.sex); getchar(); printf("请你输入部门:"); scanf("%s",&p->data.bm); getchar(); printf("请你输入职称:"); scanf("%s",&p->data.zc); getchar(); printf("请你输入工资:"); scanf("%d",&p->data.gz); getchar(); printf("请你输入加班工资:"); scanf("%d",&p->data.jbgz); getchar(); printf("请你输入奖金:"); scanf("%d",&p->data.jj); getchar(); p->data.zgz=p->data.gz+p->data.jbgz+p->data.jj; p->next=NULL; 待添加的隐藏文字内容2 saveflag=1; r=l->next; while(1) if(strcmp(r->data.num,old_num)=0) p->next=r->next; r->next=p; break; r=r->next; Disp(l); printf("nn"); void Sort(Link l) Link ll; Node *p,*rr,*s; int i=0; if(l->next=NULL) system("cls"); printf("n=>Not employee record!n"); getchar(); return ; ll=(Node*)malloc(sizeof(Node); if(!ll) printf("n allocate memory failure "); return ; ll->next=NULL; system("cls"); Disp(l); p=l->next; while(p) s=(Node*)malloc(sizeof(Node); if(!s) /*s=NULL*/ printf("n allocate memory failure "); return ; s->data=p->data; s->next=NULL; rr=ll; while(rr->next!=NULL && rr->next->data.zgz>=p->data.zgz) rr=rr->next; if(rr->next=NULL) rr->next=s; else s->next=rr->next; rr->next=s; p=p->next; l->next=ll->next; Disp(l); saveflag=1; printf("n =>sort complete!n"); void Save(Link l) FILE* fp; Node *p; int flag=1,count=0; fp=fopen("employee.txt","wb"); if(fp=NULL) printf("n=>提示:重新打开文件时发生错误!n"); return; p=l->next; while(p) if(fwrite(p,sizeof(Node),1,fp)=1) p=p->next; count+; else flag=0; break; if(count>0) printf("n=>提示:文件保存成功.(有%d条记录已经保存.)n",count); saveflag=0; else system("cls"); printf("保存文件失败,'0'条记录被保存!n"); fclose(fp); void main() Link list; FILE *fp; int choose; char ch; int count=0; struct node *p,*r; printf("tttt职工信息管理系统nttttn"); list=(struct node*)malloc(sizeof(struct node); if(!list) printf("n allocate memory failure "); return ; list->next=NULL; r=list; p=fopen("employee.txt","rb"); if(fp=NUL

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开