职工工资管理系统课程设计论文(编辑修改稿)内容摘要:
wage:。 cinp1paid[0]。 while((p1paid[0])0||(p1paid[0])100000) { ()。 (1024,39。 \n39。 )。 cout sorry for you to input error! Please reenter 0~100000 numerical:。 cinp1paid[0]。 } cout Overtime Wage:。 cinp1paid[1]。 while((p1paid[1])0||(p1paid[1])100000) { ()。 (1024,39。 \n39。 )。 cout sorry for you to input error! Please reenter 0~100000 numerical:。 cinp1paid[1]。 } cout Other Bonuses:。 cinp1paid[2]。 while((p1paid[2])0||(p1paid[2])100000) { ()。 (1024,39。 \n39。 )。 cout sorry for you to input error! Please reenter 0~100000 numerical:。 cinp1paid[2]。 } 新疆大学软件学院《面向对象程序设计》 课程设计报告 22 p1total=p1paid[0]+p1paid[1]+p1paid[2]。 //Calculate the total amount if(n==0) head=p1。 else p2next=p1。 p2=p1。 n++。 //The number of employees n value plus 1. cout\n Name:。 cinch。 //The stored input name into a character array Ch. } p2next=NULL。 return (head)。 } //The Establishment of The List Information 信息类中链表的总体信息函数,其内容详细具体而丰富。 这也是程序完成的一个关键环节。 void Information::output(worker *head) { system(cls)。 if(head==NULL) cout This Is An Empty Table, Please Enter The Information Workers!\n。 else { cout\n。 cout *Salary Information Table*\n。 cout\n。 新疆大学软件学院《面向对象程序设计》 课程设计报告 23 cout|Id |Name| |Sex| |Basic wage| |Overtime wage| |other bonuses| |Total|\n。 cout\n。 p1=head。 //The head pointer is assigned to p. do { coutp1id setw(8)p1name setw(12)p1sex setw(12)p1paid[0] setw(12)p1paid[1] setw(12)p1paid[2] setw(12)p1totalendl。 cout\n。 p1=p1next。 } while(p1!=NULL)。 } } 信息类中输出类的实现,通过指针链表将信息按一定规范性打印出来,此函数的实现使程序功能进一步完善。 int Information::count(struct worker *head) { if(head==NULL)return(0)。 else return(1+count(headnext))。 } //Number of staff and workers in the statistical function. 新疆大学软件学院《面向对象程序设计》 课程设计报告 24 职工人员的记录,用于记录公司内员工人数,以便于给工人分发工资。 worker *Information::insert( worker *head) { system(cls)。 cout\tPlease enter new information wages of staff and workers\nendl。 p1=(worker *)malloc(LEN)。 //使 p1指向插入的新结点 cout Id:。 cinp1id。 while((p1id)0||(p1id)100000) { ()。 (1024,39。 \n39。 )。 cout Sorry for you to input error! Please reenter 0~100000 numerical:。 cinp1id。 //将输入的编号存放到 p1所指结构体的数组 id中 } cout Name:。 cinp1name。 //将输入的姓名存放到结构体名为 p1 的数组 name 中 cout Sex:。 cinp1sex。 cout Basic wage:。 cinp1paid[0]。 while((p1paid[0])0||(p1paid[0])100000) { ()。 (1024,39。 \n39。 )。 cout Sorry for you to input error! Please reenter 0~100000 numerical:。 新疆大学软件学院《面向对象程序设计》 课程设计报告 25 cinp1paid[0]。 //将输入的基本工资存放到 p1所指结构体的数组 paid 中 } cout Overtime wage:。 cinp1paid[1]。 while((p1paid[1])0||(p1paid[1])100000) { ()。 (1024,39。 \n39。 )。 cout Sorry for you to input error! Please reenter 0~100000 numerical:。 cinp1paid[1]。 //将输入的加班工资存放到 p1 所指结构体的数组 paid 中 } cout other bonuses:。 cinp1paid[2]。 while((p1paid[2])0||(p1paid[2])100000) { ()。 (1024,39。 \n39。 )。 cout Sorry for you to input error! Please reenter 0~100000 numerical:。 cinp1paid[2]。 //将输入的其他奖金存放到 p1 所指结构体的数组 paid 中 } p1total=p1paid[0]+p1paid[1]+p1paid[2]。 //计算总工资 p2=head。 //将头指针赋给 p2 if(head==NULL) //若没调用次函数以前的头指针 head 为空 { head=p1。 p1next=NULL。 } //则将 p1赋给头指针 head并将 p1所指结构体成员指针 next赋空值 else 新疆大学软件学院《面向对象程序设计》 课程设计报告 26 { while(( p1id p2id ) amp。 amp。 (p2next !=NULL )) { p3=p2。 //p3 指向原 p2指向的结点 p2=p2next。 } //p2 后移一个结点 if(p1id=p2id) { if(head==p2) { p1next=head。 head=p1。 } //插入到第一个结点之前 else { p3next=p1。 p1next=p2。 } //插入到 p3 所指结点之后 } else { p2next=p1。 p1next=NULL。 } //插入到尾结点之后 } n++。 //将职工人数加 1 cout\tYou enter the employee information has been successfully insertedendl。 return (head)。 新疆大学软件学院《面向对象程序设计》 课程设计报告 27 } //Add the wage of staff function 信息类中添加工人工资的函数的实现,此函数的实现给工厂员工的流动提供了记录依据,员工流动给公司分发工资提供保障。 worker *Information::cancel(worker *head,long id) { system(cls)。 if(head==NULL) //若调用次函数以前的头指针 head 为空 { return(head)。 } else { p1=head。 //否则将头指针赋给 p1 while(id!=p1idamp。 amp。 p1next!=NULL) { p2=p1。 p1=p1next。 } //p2指向原 p1指向的结点 p1后移一个结点 if(id==p1id) //如果输入的职工编号是 p1所指的职工编号//结点找到后删除 { if(p1==head) head=p1next。 else p2next=p1next。 cout Delete the id ofidworker is\n。 n。 //将职工人数减 1 } return(head)。 //将头指针返回 } 新疆大学软件学院《面向对象程序设计》 课程设计报告 28 } 删除职工信息 ,类成员函数在此得以实现,员工离去后,为了便于管理,企业将离去员工信息删除以便判断是否招收新员工。 worker *Information::modify(worker *head,long id) { system(cls)。 cout\tSalaryinformationpleaseinputmustbemodified\nendl。 p1=(worker *)malloc(LEN)。 //使 p1指向输入的结点 p1=head。职工工资管理系统课程设计论文(编辑修改稿)
相关推荐
由副斜井下放至主运输巷。 经石门运输巷运到各用料地点。 开拓开采系统评价 因煤矿实际揭露的 K4煤层与设计提供的赋存条件不相符,致使我矿的“回采煤量”不能 满足。 在试生产期间,各系统安全正常运行,未出现影响工作面生产的现象,系统布局合理,能满足矿井达产安全生产需要。 (二)通风系统 通风系统介绍 矿井采用 中央并列式 通风 方式 ,机械抽出式通风方法。 全矿井 2 个进风井(主斜井、副斜井)、
江苏雨发建设有限公司 ★ 联合泵站项目部 ★ 9 ( 1) 开挖基坑或 排水 沟时,应合理确定开挖顺序、路线及开挖深度。 ( 2) 土方开挖宜从上到下分层分段依次进行。 随时作成一定坡势,以利泄水。 ( 3) 在开挖过程中,应随时检查槽壁和边坡的状态。 深度大于 做好自然放坡 ,根据土质变化情况,应做好基坑的支撑准备, 备好临时抢险材料, 以防坍陷。 ( 4) 开挖基坑和 排水 沟
数据库所需要的数据,由客户自己定义的报表格式输出,并且这些报表全部可以通过 EXCEL 输出。 分布式平台体系结构设计。 联通手机 一卡通方案 第 8 页 共 59 页 联通手机 一卡通方案 第 9 页 共 59 页 第二章 各应用系统的优越性 . 消费管理 过 在 单位内部的 食堂 或单位内部小卖铺的 消费 POS 机上 轻轻一挥 手机,便可 完成消费功能的扣费过程。 同时
件的附件以及带宏的 Office 文档等经常携带一些可执行程序,这些程序中很可能携带计算 技术方案说明 15 机病毒、特洛伊木马和 BO 等黑客工具,具有潜在的危险性,系统应该能够对这些可疑目标进行检测,隔离未知应用。 在内部网络上,也可能存在来自内部的一些恶意攻击,甚至可能存在来自外部的恶意入侵,安全防护体系应该能够监视内部关键的网段,扫描网络上的所有数据,检测服务拒绝型袭击、可疑活动
铺筑到边产生不大于 20mm 的缝隙时,可适当调整砖之间的接缝宽度来弥补,不宜使用水泥砂浆填补。 需用细石混凝土填补的地方,应在当日用规定的强度等级的砼填补。 铺完路后,应采用小型手扶振动胶轮压路机由边缘向中间路面碾压 2~3 17 次。 一字型铺筑时,振动压路机前进方向应与砖的长度方向垂直,前进速度应与步行 速度相当,并不宜使路面砖受到扰动。 砖之间的接缝应采用砂灌满填实
800TVL 最低照度 (彩色 ) 日夜转换 IRCUT 双滤光片切换 视频帧率 25 帧 /秒 视频压缩码率 500Kbit/S~ 3Mbit/S RS485 接口 1 个(可选) 双向音频 1 路(可选) 报 警 2 路(可选) 音频压缩算法 支持协议 TCP、 UDP、 IP、 HTTP、 FTP、 SMTP、 DHCP、 DNS、 ARP、ICMP、 POP NTP 视频输出接口