公司雇员管理系统的设计青岛科技大学信息学院课程设计报告_(编辑修改稿)内容摘要:

int index_1() //程序首页面 11) int scan_login() //登陆界面显示 12) int scan() //系统主界面显示 13) int login() //登陆函数 14) int changepass() //密码修改函数 15) void main() //主函数 系统功能结构图 4. 详细设计 数据类型定义 结构体定义 typedef struct LNode //雇员数据结构描述 { double number。 //编号 char name[20]。 //名字 char department[20]。 //部门 double time。 //工作时间 double pay。 //时薪 struct LNode *next。 //指针 } LNode,*LinkedList。 系统主要子函数设计 函数原型: LinkedList SelectSort2(LinkedList L) 函数功能: 对雇员信息进行排序,按照薪资(工作时间 *时薪)升序排列 算法要点: 1) 对链表中的信息以此进行比较,若后面节点信息小于前面节点,则对两个节点的信息进行互换,以此类推 2) 遍历结束以后,返回头结点的地址 主要算法: LinkedList SelectSort2(LinkedList L) //排序函数实现 { LinkedList p,q,small。 double temp,i,j。 char cop[20]。 for(p = Lnext。 pnext != NULL。 p = pnext) { small = p。 for(q = pnext。 q。 q = qnext) { i=(qtime)*(qpay)。 j=(smalltime)*(smallpay)。 if(ij) { small = q。 } } if(small != p) { temp = pnumber。 pnumber = smallnumber。 smallnumber = temp。 temp = ppay。 ppay = smallpay。 smallpay = temp。 temp = ptime。 ptime = smalltime。 smalltime = temp。 strcpy(cop,pname)。 strcpy(pname,smallname)。 strcpy(smallname,cop)。 strcpy(cop,pdepartment)。 strcpy(pdepartment,smalldepartment)。 strcpy(smalldepartment,cop)。 } } return L。 } 函数原型: LinkedList LinkedListInit() 函数功能: 建立一个空链表 算法要点: ( 1) 申请一段空间,并将 L的指针指向 NULL 主要算法: LinkedList LinkedListInit() //线性链表初始化 { LinkedList L。 L=(LinkedList)malloc(sizeof(LNode))。 Lnext=NULL。 return L。 } 函数原型: LinkedList LinkedListInit() 函数功能: 建立一个空链表 算法要点: ( 1) 对存储的雇员信息一一进行遍历,并按照固定格式输出 ( 2) 遍历的判断条件为 p!=NULL 主要算法: void LinkedListTraverse(LinkedList L) //单链表的遍历 { LinkedList p。 p=Lnext。 printf(编号 |姓名 |部门 |工时 |时薪 \n)。 while(p!=NULL) { printf( % %s %s % %\n,pnumber,pname,pdepartment,ptime,ppay)。 p=pnext。 printf(\n)。 } } 函数原型: int LinkedListLength(LinkedList L) 函数功能: 求现有链表的长度 算法要点: 1) 循环判断条件为 p!=NULL 主要算法: int LinkedListLength(LinkedList L) //求链表长度 { LinkedList p。 int j。 p=Lnext。 j=0。 while(p!=NULL) { j++。 p=pnext。 } return j。 } 5. 查询编号为 i的雇员信息 函数原型: LinkedList LinkedListGet(LinkedList L, double i) 函数功能: 查询编号为 i的雇员信息 算法要点: 1) 判断的条件为传过来的形参 i 与判断节点的信息相等并且循环条件为p!=0amp。 amp。 (j=k) 主要算法: LinkedList LinkedListGet(LinkedList L, double i) //查询编号为 i 的雇员信息 { LinkedList p。 double j=1,k。 k=LinkedListLength(L)。 p=Lnext。 while(p!=0amp。 amp。 (j=k)) { if (pnumber==i) return p。 else p=pnext。 j++。 } return 0。 } name的雇员信息 函数原型: LinkedList LinkedListGet_name(LinkedList L, char name[20]) 函数功能: 查询姓名为 name的雇员信息 算法要点: 1) 判断的条件为传过来的形参 name[20]与判断节点的信息相等并且循环条件为 p!=0amp。 amp。 (j=k) 主要算法: LinkedList LinkedListGet_name(LinkedList L, char name[20]) //查询姓名为 name的雇员信息 { LinkedList p。 double j=1,k。 k=LinkedListLength(L)。 p=Lnext。 while(p!=0amp。 amp。 (j=k)) { if (strcmp(pname,name)==0) return p。 else p=pnext。 j++。 } return 0。 } 7. 雇员信息删除 函数原型: int LinkedListDel(LinkedList L,double num) 函数功能: 删除编号为 num的雇员信息 算法要点: 1) 操作完成以后要释放节点 p 主要算法: int LinkedL。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。