职工信息管理系统源代码
数据结构课程设计-职工管理系统
目录一、前言—--——--—-——-———-—————-———-——-———-—————---—-——————-—--————————-————————2二、需求分析—-———-—---—-——————————-———--——-—--——-————-—--——————————---—----—3 三、概要设计—-——-——-—————-———-—-—————————--——-----—--—--————--——-—---—-—————4四、详细设计—-———-———————--—-—-————-—-—————-—-—-———————-——-——-—-----————-—-—5五、调试分析————-————————-—————-——-————--—-——-——--——--—--—---—--——---—--—-——6六、用户使用说明—--——————-————-————-—-—-—-—--—————————-—————-—-———————-——-7 七、测试结果——————-—--—---——--——————--—-———----———--——-—-—-————————---—-———-8八、总结—-———---—-—--———-———-—--—---——--—————--—-—--—————--————————---—----—-11九、主要参考文献和附录—--——-——-—-————--——-——-—--———---—————-——-———————12前言员工管理系统是一个工作单位不可缺少的管理工具,它管理的数据对于公司的决策者和管理者来说都至关重要,所以员工管理系统应该能够为用户提供充足的信息和快捷的查询手段.但一直以来各个公司基本上都是靠传统的人工方式来管理员工信息,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于信息的查找、更新和维护都带来了不少的困难。
java 职工信息管理系统源代码
源代码package lesson2;import java。
sql。
*;public class employee{public String num;public String name;public String sex;public String age;public String edu;public String sla;public String add;public String tel;public void init(String x1,String x2,String x3,String x4,String x5,String x6,String x7,String x8){num=x1;name=x2;sex=x3;age=x4;edu=x5;sla=x6;add=x7;tel=x8;}public void load(String f){try{Class。
forName(”com.microsoft.sqlserver.jdbc。
SQLServerDriver”);String url=”jdbc:sqlserver://localhost:1433;DatabaseName=employee";String userName=”sa”;String password="xhw";Connection conn=DriverManager.getConnection (url,userName,password);if(conn!=null)System.out。
println(”已成功地与SQL Server 2005数据库建立连接!");Statement stmt=conn.createStatement();stmt.executeUpdate(f);stmt。
close();}catch(Exception e){e。
职工工资管理系统设计与实现
《JA V A程序设计》课程设计报告设计题目:职工工资管理系统设计与实现学院名称:专业班级:姓名:学号:目录一需求分析。
..。
.。
..。
..。
.。
.。
.。
..。
.。
3二概要设计。
.。
.。
..。
.。
..。
..。
.。
.。
.。
.。
.。
.。
.。
3三详细设计.。
.。
..。
.。
.。
.。
.。
.。
.。
.。
.。
.。
.。
53.1 数据库设计。
.。
.。
.。
.。
.。
.。
.。
.。
.。
.。
33.2 模块及窗体设计。
.。
.。
.。
.。
.。
...。
..。
.。
.。
.。
.。
.。
.3 3.2.1 数据库模块设计。
.。
..。
.。
.。
..。
.。
.。
..。
.。
.。
53.2.2 用户登录识别模块...。
..。
..。
...。
.。
.。
..。
63.2.3管理员模块。
.。
...。
..。
.。
.。
..。
.。
..。
8职工基本信息管理。
.。
..。
.。
..。
.。
.。
9职工工资管理.。
..。
.。
.。
.。
.。
..。
.。
.。
.。
.。
203。
2。
4 普通用户模块。
.。
.。
.。
..。
.。
.。
..。
.。
.。
.。
28 职工信息...。
.。
.。
..。
.。
..。
.。
.。
..。
.。
283.2。
5 系统管理模块.。
.。
.。
.。
.。
...。
.。
.。
.。
..。
.153.2。
5 主窗体菜单设计。
.。
.。
..。
.。
.。
.。
.。
.。
.。
15 四软件测试.。
..。
.。
.。
.。
.。
.。
..。
.。
.。
.。
.。
.。
...。
36五总结。
.。
.。
.。
..。
..。
.。
.。
.。
.。
.。
.。
.。
36 参考资料:.....................................................。
..17一需求分析本系统的主要目的就是实现职工工资管理系统设计与实现,使职工工资管理工作更加容易, 高效地管理企业职工工资,从而提高工作效率,降低管理成本。
二概要设计/************************************************************************概要设计阶段主要是粗略描述整个软件的框架,并从业务的角度描述软件的模块、工作流程等。
工资管理信息系统设计
工资管理信息系统设计GL990525 彭卫兵一、可行性分析1.技术可行性:工资管理是一项琐碎、复杂而又十分细致的工作,不能发生差错,由于考虑到手工计算十分麻烦,又因为工资的发放必须按照规定的时间严格地进行;并且工资的发放具有重复性、规律性、时间性的特点,使工资的计算和发放采用计算机成为可能。
2.经济可行性:在手工的方式下,工资发放的反复抄写、计算、核对,不仅大量地花费时间,还很容易发生错误。
在计算机方式下,工资的发放与计算由计算机进行,大大提高了工资管理的时间性与准确性,工资管理的效率得到很大的提高。
计算机的核算具有相当的准确性,有利于企业及时地处理内部的成本、财务问题,提高本企业的劳动生产率和管理效率。
3.社会可行性:本次工资管理信息系统设计得到了领导和广大员工的支持,投入资金贰万元,为公司创建一个有效的工资管理系统。
二、数据分析本次工资管理信息系统设计的数据分析包括数据流程图和数据字典。
数据流程图用来描述本系统的处理过程和数据流向。
数据字典则用来描述系统中的元素。
二者都能为系统提供有用的信息。
三、功能模块设计本次工资管理信息系统设计的功能模块包括初始处理、工资核算、信息查询、统计分析、报表输出、系统维护、帮助、退出八项。
具体功能模块结构如下图:代码设计对管理信息系统是一个非常有利的事情,设计出一个好的代码方案对于系统内的许多机器处理变得十分的方便,不仅能提高数据维护、查询统计的及时性与准确性,还能把现阶段的一些计算机很难处理的工作变得简单的处理。
根据代码设计的原则,进行本次代码设计。
具体内容如下:1.性别:其中1代表性别,001表示男002表示女1001 男1002 女2.民族:其中2代表民族,001表示汉族,002表示少数民族2001 汉族2002少数民族3.文化程度:3表示文化程度,根据文化程度的高低依次排列3001文盲3002 小学3003初中3004中专3005 高中3006大专3007 大本3008硕士3009博士3010博士后4.技术职务:其中4表示技术职务,根据职务高低依次排列。
洛阳市职称信息系统单位代码表
职称信息系统主管单位代码表03001 洛阳市建设委员会03002 洛阳市教育局03003 洛阳市体育局03004 洛阳市计划生育委员会03005 洛阳市发展与改革委员会03006 洛阳市农村经济委员会03007 洛阳市科学技术局03008 中国共产主义青年团洛阳市委员会03009 洛阳市水利局03010 洛阳市国有资产管理委员会03013 洛阳市劳动和社会保障局03014 洛阳市环境保护局03016 洛阳市交通局03017 洛阳市农业机械管理局03018 洛阳市农业局03019 洛阳市园林局03020 洛阳市林业局03021 洛阳市粮食局03022 洛阳市文化局03023 洛阳市卫生局03024 河南省洛阳市医药管理局03025 洛阳市司法局03026 洛阳市档案局03027 洛阳市财政局03029 洛阳市商务局03030 洛阳市畜牧局03031 洛阳市公用事业局03032 洛阳市广播电视局03033 洛阳市旅游局03034 洛阳市民政局03035 洛阳市文物管理局03036 洛阳市国土资源局03037 洛阳市房地产管理局03038 洛阳市统计局03039 洛阳市技术监督局03040 洛阳市乡镇企业管理局03041 洛阳市物价局03042 洛阳市城市规划局03043 洛阳市审计局03044 洛阳市黄金管理局03046 洛阳市人民政府外事办公室03047 洛阳市供销合作社03048 洛阳市委宣传部03049 河南省洛阳市中级人民法院03050 洛阳市人事局03051 洛阳市总工会03052 洛阳市煤炭工业管理局03053 洛阳市工商行政管理局03054 洛阳市人民政府办公室03055 洛阳市计划委员会03056 洛阳市委03057 中共洛阳市委组织部03058 中共洛阳市委统一战线工作部03059 洛阳伊洛工业园区管委会03060 洛阳市贫困地区经济开发办公室03062 中共洛阳市委老干部局03064 洛阳市人大常委会03065 洛阳耐火材料集团公司03066 洛阳市经济体制改革委员会03068 河南省洛阳市国家税务分局03069 洛阳市地方税务局03070 洛阳市市场发展服务中心03071 洛阳市公安局03072 洛阳市盐业管理局03073 洛阳市小浪底水库移民安置局03074 洛阳市科学技术协会03075 洛阳市地质矿产局03076 洛阳市政府经济技术协作办公室03077 龙门石窟文物保护区管理局03078 洛阳市法制局03079 洛阳市新区开发建设办公室03128 河南科技大学第一附属医院03230 洛阳市恒天建筑安装工程有限公司03301 洛阳大学03302 中国共产党洛阳市委党校03303 洛阳广播电视大学03304 洛阳日报社03305 洛阳市地方史志编纂委员会办公室03306 中共洛阳市委党史研究室03307 洛阳市人民防空办公室03308 洛阳市人民政府信息中心03309 洛阳市文学艺术界联合会03310 洛阳市接待办公室03312 洛阳市人民政府发展研究中心03313 洛阳市人才人事服务中心流动人才中转库03315 洛阳市人民政府口岸办03316 洛阳市自主择业军转干部管理服务办公室03501 中国石化集团公司洛阳工程公司03502 洛阳机车工厂03503 洛阳巨龙通信设备集团有限公司03504 河南柴油机集团有限公司03505 洛阳北方企业集团有限公司03506 洛阳中集凌宇汽车有限公司03507 河南前进化工有限责任公司03508 洛阳列车段03509 中铁十五局集团有限公司03510 河南省地矿局第一地质调查队03511 中国石油天然气第一建设公司03512 河南黄金建筑安装公司03513 洛阳市电信分公司03514 洛阳市人民银行03515 洛阳市中国银行03516 洛阳市工商银行03517 洛阳市农业银行03518 建设银行洛阳分行03519 洛阳市交通银行03520 洛阳市商业银行03521 洛阳市邮政局03522 洛阳市电业局03523 机械工业部第四设计研究院03524 机械工业部第十设计研究院03525 洛阳有色金属加工设计研究院03526 化学工业部黎明化工研究院03527 洛阳轴承研究所03528 洛阳师范学院03529 洛阳医学高等专科学校03530 河南省针灸推拿学校03531 洛阳医专附院03532 河南省洛阳正骨医院03533 河南洛阳荣康医院03534 煤田地质二队03535 六冶职工医院03536 洛阳市银辉黄金珠宝首饰有限公司03537 河南省陆浑水库灌溉工程管理局03538 河南省农业经济学校03539 河南省林业学校03540 解放军第一五零医院03541 解放军外国语学院03542 洛阳耐火材料研究所03543 中国二建二公司03544 六一三所03545 南峰航空03546 六一二所03547 解放军第五三四医院03548 解放军63883部队03549 中铁遂道集团公司03550 南车集团03551 第四监狱03552 洛阳市静贞儿童医院03553 华康医院03554 中船重工七二五所03555 洛阳石化总厂03556 河南省豫通公路工程监理事务所03557 大唐洛阳热电厂03558 洛阳工业高等专科学校03559 河南省农村信用社联合社03601 中国一拖集团有限公司03602 洛阳轴承集团有限公司03603 中信重工机械股份有限公司03604 中国洛阳浮法集团公司03605 中钢集团耐火材料有限公司03606 洛阳白马集团有限责任公司03607 洛阳钢铁集团有限责任公司03608 洛阳黄河水泥集团有限责任公司03609 洛阳骏马化工有限公司03610 洛阳栾川钼业公司03611 国营第七四四厂03612 洛阳科荣达通信电子设备有限公司03613 洛阳亚细亚商场有限责任公司03614 河南通元集团股份有限公司03616 洛阳单晶硅有限责任公司03617 洛阳铜加工集团有限责任公司03618 洛阳LYC轴承有限公司03620 洛阳中昊化学工业有限公司03621 中实洛阳重型机械有限公司03622 洛阳矿业集团有限公司03701 洛阳市电力机械厂03702 河南力大建设有限公司03703 麦斯克电子材料有限公司03704 洛阳市新世纪实验幼儿园03705 洛阳市永基重载齿轮有限公司03706 大地置业公司03707 洛阳业丰建设工程服务有限公司03708 洛阳市荣华中等职业技术学校03709 洛阳市龙一广告装饰有限公司03710 洛阳康斯坦软轴控制器有限公司03711 洛阳市华林学校03712 洛阳新思路智能控制有限公司03713 洛阳北方玻璃技术股份有限公司03714 洛阳市室内装饰协会办公室03715 洛阳龙羽格锐建材有限公司03717 洛阳市天寓建筑安装工程有限公司03718 洛阳市征昊技术咨询有限公司03719 洛阳盛地工程建设监理咨询公司03723 洛阳华源房地产有限公司03724 洛阳鑫田建筑装饰工程有限公司03728 洛阳高新恒力电气有限公司03729 洛阳龙居装饰工程有限公司03730 洛阳龙羽宜电有限公司03732 洛阳新春都生物制药有限公司03733 洛阳艺之峰装饰设计工程有限公司03734 洛阳博泰机车装备有限公司03735 洛阳众智软件有限公司03736 洛阳中聚建筑设计有限公司03737 洛阳市金科力工程监理有限公司03742 洛阳泰业财务咨询有限公司03743 洛阳水泥工程设计研究院03744 洛阳市通升筑路有限公司03746 洛阳恒大建筑设计有限公司03747 洛阳精密机床有限公司03749 河南省纬达不动产评估有限公司03751 洛阳万山物资有限公司03752 郑州豫通市政监理洛阳分工公司03753 洛阳锐临工贸有限公司03801 洛阳高拓机械设备有限公司03802 洛阳宝诺重型机械有限公司03803 洛阳逖悉开钢丝绳检测技术有限公司03804 洛阳市亿丰石油化工有限责任公司03805 河南虹苑建筑设计有限公司03806 洛阳市立业建筑质量检测有限公司03807 洛阳市轩通公路工程技术咨询有限公司03808 河南永华能源有限公司03809 洛阳巨龙通信集团有限公司03810 洛阳佳能电子有限责任公司03811 洛阳五洲置业有限公司03812 洛阳天浩泰轨道装备制造有限公司03813 洛阳中广石油化工机械设备有限公司03814 洛阳和源机械设备制造有限公司03815 洛阳雷斯达传动有限公司03901 偃师市03902 孟津县03903 新安县03904 嵩县03905 洛宁县03906 伊川县03907 宜阳县03908 汝阳县03909 栾川县03910 西工区03911 涧西区03912 洛阳市老城区人事劳动和社会保障局03913 洛阳市洛龙区03914 洛阳市廛河回族区人民政府03915 洛阳市吉利区03916 洛阳高新区管委会03917 河南省洛阳经济技术开发区03918 洛阳市西工居特隆装饰设计部03919 洛阳市浩宇公路工程监理咨询有限公司03920 洛阳凌宇实业发展有限公司03921 洛阳市雅琦装饰设计工程有限公司03922 洛阳众智软件有限公司职称信息系统单位代码表03001000 洛阳市建设委员会03001002 洛阳市建设委员会机关03001003 洛阳市建设委员会抗震办公室03001004 洛阳市城市建设档案馆03001005 洛阳市建设委员会市政排水泵站管理所03001006 洛阳市建设委员会建材工业管理处03001007 洛阳市建设委员会建筑施工管理处03001008 洛阳市建筑民工管理办公室03001009 洛阳市建筑工程质量监督站03001010 洛阳市建筑工程检测站03001011 洛阳市基本建设招标投标办公室03001012 洛阳市建设工程造价管理处03001013 洛阳市城市建设拆迁管理办公室03001014 洛阳市城市拆迁事务所03001015 洛阳市散装水泥办公室03001016 洛阳市砂石管理办公室03001017 洛阳市墙体改革办公室03001018 洛阳市市容环境卫生管理局03001019 洛阳市城市建设监察大队03001020 洛阳市建设委员会职工教育中心03001021 洛阳建设委员会劳动服务公司03001022 洛阳市政建设集团有限公司03001023 洛阳市市政工程公司03001024 洛阳市建设工程社会保险费管理办公室03001025 洛阳市建设工程安全监督站03001026 河南三建建设集团有限公司03001027 河南六建建筑集团有限公司03001028 河南省安装集团有限责任公司03001029 河南国安建设集团有限公司03001030 洛阳市第三建筑工程公司03001031 洛阳建工集团有限公司03001032 洛阳五建建筑工程有限责任公司03001033 洛阳水泥制品厂03001034 洛阳市坚磊建筑安装工程有限公司03001035 洛阳市建业房地产开发公司03001036 洛阳市恒捷拆迁安置房屋开发公司03001037 洛阳市开拓建材经销部03001038 洛阳市环境卫生管理局03001039 洛阳凯悦房地产置业公司03001040 洛阳市城建开发投资公司03001041 洛阳市城市建设勘察设计院03001042 洛阳市建设工程交易中心03001043 洛阳市垃圾场管理所03001050 洛阳智达建设监理公司03001051 洛阳市正启建设有限公司03001052 洛阳市室内装饰行业管理办公室03001101 洛阳市豪仕房地产置业有限公司03001102 洛阳物产集团03001103 洛阳东展投资有限公司03001104 河南省杭萧钢构有限公司03001105 河南建总国际工程有限公司03001106 洛阳信昌建设集团有限公司03001107 洛阳锦瑞通用设备安装有限公司03001108 洛阳龙羽房地产开发有限公司03001109 洛阳市红日矿山建安工程有限公司03001110 洛阳市文兴置业有限公司03001111 洛阳登高建筑工程有限公司03001112 洛阳宏博勘察设计有限公司03001113 洛阳捷信工程造价咨询有限公司03001114 洛阳市太兴建筑安装工程有限公司03001115 河南省万安工程建设监理有限公司03001116 洛阳居业房地产开发有限公司03001117 河南省海浪消防设备有限公司03001118 洛阳市美伦房地产开发有限公司03001119 洛阳鑫磊基础工程有限公司03001120 洛阳北华房地产开发有限公司03001121 洛阳成翔建筑工程有限公司03001122 洛阳明安营造工程有限公司03001123 洛阳市信军建筑安装工程有限公司03001124 洛阳洁诚电气有限公司03001125 河南六建铝电建筑安装有限公司03001126 洛阳银隆置业有限公司03001127 洛阳黄河混凝土有限责任公司03001128 洛阳市教育建筑工程公司03001129 洛阳市信昌道桥工程有限责任公司03001130 河南海滨路桥建筑工程有限责任公司03001131 洛阳中泰房地产置业有限公司03001132 洛阳市宏达建筑安装工程有限公司03001133 洛阳台兴建筑安装工程有限公司03001134 洛宁县建筑公司03001135 洛阳开拓房地产开发有限公司03001136 洛阳市孟津建设工程集团03001137 洛阳阳光铝业有限公司03001138 洛阳华荣商品混凝土有限公司03001139 洛阳市金谷建筑安装有限公司03001140 河南地久置业有限公司03001141 洛阳申安建筑安装工程有限公司03001142 洛阳上德建筑工程有限公司03001143 洛阳市全安工程监理有限公司03001144 洛阳市圆方工程建设监理咨询公司03001145 洛阳顺驰房地产开发有限公司03001146 洛阳市河阳建筑安装工程有限公司03001147 洛阳科智建筑安装有限公司03001148 洛阳园博建设工程有限公司03001149 洛阳昶昊建筑安装工程有限公司03001150 洛阳宇昊建筑安装有限公司03001151 洛阳市丰李建筑工程有限公司03001152 洛阳宇亮建筑安装工程有限公司03001153 洛阳宏居房地产开发有限公司03001154 洛阳市实源装饰工程有限公司03001155 洛阳市盛地工程建设监理有限公司03001156 洛阳科艺装饰有限公司03001157 洛阳市德众置业有限公司03001158 洛阳世继制冷空调工程有限公司03001159 洛阳市裕安达置业有限公司03001160 洛阳市明炬燃气工程有限责任公司03001161 洛阳市忠冠房地产开发有限公司03001162 洛阳市新龙安房地产置业有限公司03001163 洛阳创展置业有限公司03001164 洛阳富安兴建筑有限公司03001165 偃师市建筑公司03001166 洛阳市新安四方建筑工程有限公司03001167 洛阳宜家装饰工程有限公司03001168 洛阳工程建设监理公司03001169 洛阳豪美幕墙装饰工程有限公司03001170 洛阳滨河水泥制品有限公司03001171 洛阳市万事达装饰工程有限公司03001172 洛阳信昌装修装饰工程有限公司03001173 河南省孟津县电力安装公司03001174 宜阳县公路局路桥工程公司03001175 洛阳四建工程有限责任公司03001176 洛阳市中诚安装工程有限公司03001177 洛阳市正启建设工程有限公司03001178 洛阳市敬业工程建设监理咨询有限公司03001179 凯迈‘洛阳’置业包装有限公司03001180 河南华超工程营造有限公司03001181 洛阳豫洛建筑安装工程有限公司03001182 洛阳上德路桥建筑工程有限公司03001183 洛阳市鸿业建筑安装有限公司03001184 洛阳市信昌道桥工程有限责任公司03001185 洛阳市良凯建筑安装工程有限公司03001186 洛阳轩立建安装饰有限公司03001187 洛阳市远航建筑工程有限公司03001188 河南愚公环艺建造工程有限公司03001189 洛阳市锦程道路工程有限公司03001190 洛阳洛华窑业有限公司03001191 洛阳市蓝天装饰设计工程公司03001192 洛阳凯瑞企业集团有限公司03001193 伊川县伊南水泥制品厂03001194 伊川县建设工程有限公司03001195 河南中瑞置业有限公司03001196 洛阳通荣建筑安装工程有限公司03001197 洛阳鑫聚暖通工程有限公司03001198 洛阳易鑫装饰工程有限公司03001199 洛阳市双雄建筑工程有限公司03001200 洛阳市锦龙建筑安装工程有限公司03001201 洛阳市承大房地产有限公司03001202 洛阳百艺装饰工程有限公司03001203 洛阳第五建筑工程有限责任公司03001204 洛阳市顺磊建筑工程有限公司03001205 洛阳汇成建安服务有限公司03001206 河南中成房地产开发集团有限公司03001207 洛阳市宜阳建安工程有限公司03001208 洛阳市捷信工程造价咨询有限公司03001209 洛阳市华美家具装饰有限公司03001210 河南经天路桥建设有限公司03001211 洛阳高新申泰置业有限公司03001212 洛阳市兴业建筑安装工程有限公司03001213 洛阳广鑫建筑工程有限公司03001214 洛阳市政通建筑安装有限公司03001215 洛阳江天建筑安装有限公司03001216 洛阳市伊川县创佳建筑安装有限公司03001217 嵩县振华建安工程处03001218 洛阳市技改建筑工程有限公司03001219 洛阳市金都建筑安装有限公司03001220 嵩县第六建筑安装公司03001221 洛阳世继制冷空调工程有限公司03001222 洛阳市凯瑞房地产置业有限公司03001223 洛阳润峰房屋开发有限公司03001224 洛阳润峰房屋开发有限公司03001225 洛阳市东兴装饰设计工程有限公司03001228 洛阳昆仑建筑装饰工程公司03001230 洛阳市恒天建筑安装工程有限公司03001232 洛阳市晶烨建筑安装工程有限公司03001233 河南万泰建安开发有限公司03001234 洛阳市亚洛建筑安装有限公司03001235 洛阳恒大建筑设计有限公司03001237 河南万方建设工程有限公司03001238 洛阳市金都建筑安装有限公司03001239 洛阳索克房地产测绘有限公司03001240 洛阳市龙航建筑劳务有限公司03001246 洛阳市隆都建设工程有限公司03001249 洛阳力加力市政工程有限公司03001250 洛阳市建设委员会后勤服务中心03001251 洛阳帝华房地产开发有限公司03001259 洛阳市金鉴工程质量检测中心03001260 河南泰宏房屋营造有限公司03001262 洛阳市普照房地产开发有限公司03001266 洛阳山城建设工程有限公司03001268 洛阳市洛西建筑有限公司03001269 洛阳煤电集团物业管理有限公司03001271 河南东旺建筑工程有限公司03001272 洛阳栾川集团股份有限公司03001273 洛阳市永安建设监理有限公司03001274 洛阳黑马建筑安装工程有限公司03001276 河南圣达装饰涂料有限公司03001277 偃师市建筑公司03001278 洛阳市艺高装饰设计有限公司03001279 栾川县建筑工程质量监督站03001280 伊川县建筑协会03001282 栾川县鸾州建筑安装有限公司03001283 栾川县伏牛山建筑安装有限公司03001284 栾川县惠安建筑有限公司03001285 河南派普建设工程有限公司03001286 河南顺原建筑设计勘测队03001287 洛阳城建院栾川设计所03001288 栾川县规划设计室03001289 洛阳昶威机械制造安装有限公司03001290 栾川县三利工程有限责任公司03001291 栾川县欣茂矿山工程有限公司03001292 洛阳全安工程监理有限公司栾川分公司03001294 洛阳市建设施工图审查中心03001295 洛阳市德源工程有限责任公司03001296 栾川鸾达工程造价咨询事务所有限公司03001297 河南巨力电梯有限公司03001298 洛阳市鑫源建筑安装工程有限公司03001299 洛阳市金科力工程监理有限公司03001301 河南江菱电梯工程有限公司03001303 洛阳季华门窗有限公司03001313 洛阳市城管监察三大队03001316 洛阳市市政设施监管处03001786 洛阳市花城建筑工程有限公司03002000 洛阳市教育局03002001 河南省洛阳市教育学院03002003 洛阳幼儿师范学校03002004 洛阳市洛宁高级中学03002005 洛阳市第一高级中学03002006 洛阳市第一中学03002007 洛阳市第二中学03002008 洛阳市第三中学03002009 洛阳市第一职业高中03002010 洛阳市第五中学03002011 洛阳市第六中学03002012 洛阳市第七中学03002013 洛阳市第九中学03002014 洛阳市第十中学03002016 洛阳外国语学校03002017 洛阳市第十九中学03002018 洛阳市第二十一中学03002019 洛阳市第二十二中学03002020 洛阳市第二十三中学03002021 洛阳市第二十四中学03002022 洛阳市外语实验高中03002023 洛阳市第二十六中学03002024 洛阳市第二十七中学03002025 洛阳市第三职业高中03002026 洛阳市回民中学03002027 洛阳市第三十中学03002028 洛阳市第一职业中等专业学校03002029 洛阳市第三十三中学03002030 洛阳市第三十四中学03002031 洛阳市第三十六中学03002032 洛阳市第三十七中学03002033 洛阳师范学院附属中学03002034 洛阳市实验中学03002035 洛阳市实验小学03002036 洛阳市教育局直属第三小学03002037 洛阳市教育局直属第一小学03002038 洛阳市教育局直属第二小学03002039 洛阳市教育局市属第四小学03002040 洛阳市实验幼儿园03002041 洛阳市旭升中学03002042 洛阳市特殊教育中心学校03002043 洛阳市教育局装备与实验管理中心03002044 洛阳市中小学教师继续教育中心03002045 洛阳市教育局勤工俭学管理中心03002046 洛阳市教育局基建办公室03002047 洛阳市教育局中小学教研室03002048 洛阳市教育局成人教育教研室03002049 洛阳市教育局职业技术教育教研室03002050 洛阳市高等学校招生委员会办公室03002051 洛阳市教育局体育卫生保健站03002052 洛阳市教育委员会招待所03002053 洛阳市电化教育馆03002054 洛阳市直机关第一幼儿园03002055 洛阳市直机关第二幼儿园03002056 洛阳市第十二中学03002057 洛阳市第十四中学03002058 洛阳市第十五中学03002060 洛阳第四十一中学03002061 洛阳市第四职业高中03002062 洛阳市教师进修学校03002063 洛阳市第二外国语学校03002064 洛阳市第二实验中学03002065 洛阳市河洛中学03002066 洛阳市春都路中学03002067 洛阳市春都路中学03002068 洛阳市第四十六中学03002069 洛阳市第四十四中学03002070 洛阳市第四十五中学03002071 洛阳市教育局直属第九小学03002072 洛阳市教育局直属第八小学03002073 洛阳市教育局直属第十一小学03002074 洛阳市教育局直属第七小学03002075 洛阳市教育局直属第十小学03002076 洛阳市第四十二中学03002077 洛阳市第四十三中学03002078 洛阳市教育局直属第五小学03002079 洛阳市教育局直属第六小学03002080 洛阳市第二十二中学03002081 洛阳市第四十七中学03002082 洛阳市教育局直属第十二小学03002083 洛阳市东方高级中学03002084 洛阳市东方第二中学03002085 洛阳市东方第一小学03002086 洛阳市东方第二小学03002087 洛阳市东方第三小学03002088 洛阳市东方第四小学03002089 洛阳理工学院附属中学03002090 洛阳市东升第二中学03002091 洛阳市东升第三中学03002092 洛阳市东升第一小学03002093 洛阳市东升第二小学03002094 洛阳市东升第三小学03002095 洛阳市轴工装学校03002096 洛阳市第四十八中学03002097 洛阳市教育局直属第十三小学03002098 洛阳市第四十九中学03002099 洛阳市第五十五中学03002100 洛阳市第五十六中学03002101 洛阳市第四中学03002102 洛阳市第五十一中学03002104 洛阳市第五十三中学03002105 洛阳市第五十四中学03002106 洛阳市第五十中学03002107 洛阳市第五十八中学03002108 洛阳市东升教育中心03002109 洛阳市第五十七中学03002110 洛阳市第五十九中学03002111 洛阳市第三十二中学03002112 洛阳市东方教育中心03003000 洛阳市体育局03003001 洛阳市体育运动学校03003002 洛阳市重点体校03003003 洛阳市射击单项体校03003004 洛阳市足球单项体校03003005 洛阳市田径体校03003006 洛阳市体育局招待所03003007 洛阳市体育中心03003008 洛阳市足球办公室03004000 洛阳市人口和计划生育委员会03004001 洛阳市计划生育科研所03004002 洛阳市计划生育药具管理站03005001 洛阳市经济贸易委员会机关03005002 洛阳市节能技术服务中心03005003 洛阳市新技术推广站03005004 洛阳市包装管理办公室03005005 洛阳市联合运输管理办公室03005006 洛阳市重工业局集体工业办公室03005007 洛阳市重工业局机关服务站03005008 洛阳市重工局劳动服务公司03005009 洛阳市冶金矿山管理办公室03005010 洛阳市建设投资有限公司03005014 漯河石化集团洛阳染料化学工业有03005015 漯河石化集团洛阳市有机化学工业03005016 洛阳市经贸委劳动服务公司03005017 洛阳市正大集团03005018 洛阳第二水泥厂03005020 洛阳通用机械有限公司03005023 洛阳精密机床厂03005024 洛阳机床厂03005026 洛阳震动机械厂03005027 河南恒达软轴控制件有限公司03005036 洛阳汽车工业贸易总公司03005037 洛阳市钢锉厂03005041 洛阳康乐食品责任公司03005047 洛阳市二轻工业供销公司03005048 洛阳市唐鼎商贸有限公司03005054 洛阳市带钢厂03005060 洛阳市威特包装材料有限公司03005062 洛阳市东风毛毡厂03005064 洛阳市工具工业公司03005069 洛阳市印章艺术总公司03005082 洛阳市玻璃钢厂03005083 洛阳市石油化工供销公司03005087 洛阳市石油化工实业总公司03005088 洛阳市价格认证中心03005089 洛阳市中小企业信用担保服务中心03005090 洛阳市价格监测中心03006001 洛阳市农业科学研究院03006002 洛阳林业科学研究所03006003 洛阳市园林科学研究所03006004 洛阳市农业综合开发办公室03006005 洛阳市花木公司03007000 洛阳市科技局03007001 洛阳市科技情报研究所03007002 洛阳市自动化研究所03007003 洛阳市专利管理局03007004 中软公司洛阳公司03007005 洛阳市技术开发中心03007006 洛阳市科学器材服务公司03007007 洛阳市科学技术委员会03007008 洛阳市技术市场管理办公室03008001 中国共产主义青年团洛阳市委员会03008002 洛阳市青少年儿童活动中心03008003 洛阳中国青年旅行社03008004 洛阳市青年通信有限公司03009000 洛阳市水利局03009001 洛阳市水利局03009002 洛阳水利勘测设计院03009003 洛阳市水资源勘察设计院03009004 洛阳市水利工程处03009005 洛阳市河道管理处03009006 洛阳市中州渠管理处03009007 洛阳市水产科学研究所03009008 洛阳市水利物资供应站03009009 洛阳市水利局劳动服务公司03009010 洛阳市防汛抗旱指挥部办公室03009011 洛阳市防汛通讯站03009013 洛阳市水土保持科技试验推广站03009014 洛阳市渔政监督管理站03009015 洛阳市水产技术推广站03009016 洛阳市农村水利技术指导站03009017 洛阳市塑料制管厂03009018 洛阳市龙脖水库管理所03009019 洛阳市嵩伊渠管理所03009020 洛阳市小浪底南岸引水工程管理处03009021 洛阳市计划节约用水办公室03009022 洛阳市水利水电工程质量监督站03009023 洛阳市地热资源研究开发中心03009024 洛阳市节水技术推广中心03009025 洛阳市洛南水利所03010001 省城镇集体工业联合社洛阳市联社03010002 洛阳市化轻工业设计研究所03010003 洛阳市石油化工局劳动服务公司03010004 洛阳市石化局教育中心03010005 洛阳市石油化工供销公司03010006 洛阳龙门啤酒厂03010007 洛阳市橡胶工业总公司03010008 洛阳市橡胶制品厂03010009 洛阳市化工三厂03010010 洛阳市轻纺劳动服务公司03010011 洛阳市集体工业联社03010012 洛阳市室内装饰行业管理办公室03010013 洛阳市化轻工业设计研究所03010014 洛阳市能源化学工业局教育中心03010015 洛阳市化学工业局劳动服务公司03010016 漯河石化集团洛阳塑胶摩阻工业有03010017 洛阳胶鞋厂03010018 洛阳宇福有机化工有限公司03010019 洛阳无线电厂03010020 洛阳精密机床有限公司03010021 洛阳汽车零部件制造总厂03010022 洛阳市龙门水泥厂03010025 洛阳风动工具有限公司03010026 洛阳国正电子工业有限公司03010029 洛阳市半导体二厂03010030 洛阳链条厂03010031 漯河石化洛阳金属冶炼有限公司03010032 洛阳市标准件厂03010033 洛阳市重工物资供销公司03010034 洛阳市包装食品机械公司。
江苏省中小学(单位)教职工职工信息管理系统学校信息填表说明
江苏省中小学(单位)教职工职工信息管理系统学校信息填表说明1、学校代码:注册时生成,无需填写。
2、学校名称:注册时生成,无需填写。
3、主管部门:注册时生成,无需填写.4、英文名称:可不填。
5、机构代码:按组织机构代码证上号码填写。
6、建校年月:格式为六位的年月(YYYYMM),如1965年3月建校,可填写196503。
7、校庆日:格式同上,可不填。
8、所在地区:按隶属所在行政地区填写,如无,则靠上一级行政地区填写.9、学校类别:根据学校实际类别填写。
10、示范类型:高中(四星级按国家级、三星级按省级、二星级按市级填写),其他根据学校实际类型填写。
11、地区类别:“城市”、“县区”、“乡镇”、“农村",按实际填写。
(建议增加“农村”)12、学校办别:“教育部门和集体办”、“民办”、“其他部门办”、“其他”,按系统提供的选项对照填写。
13、办学性质:“公办"、“民办"“其他”,按系统提供的选项对照填写。
14、服务半径:可不填写.15、覆盖人口:可不填写.16、地形地貌:可不填写.17、经费来源:可不填写。
18、工作部门:可不填写。
19、开户银行:可不填写.20、银行帐号:可不填写。
21、联系电话:(区号)学校号码22、传真电话:可不填写。
23、联系人:人事干部姓名。
24、校长:现任校长,如无校长,填“无”。
25、网址:可不填写。
26、电子信箱:可不填写。
27、学制:职业学校可不填写。
28、邮编:六位数字.29、学校地址:市、县(区)、乡(镇)、街(村)的详细地址。
30、党组织负责人:按实际填写.31、班级和学生:根据学校不同类型,选择相应的学段填写学生数和班级数,四年制、五年制的大中专班,超出高三年级的学生和班级统一填入高三以上的学生数和班级数栏中。
32、编制情况:编制情况这一列,可由教育主管部门负责填写;教师分类情况,可由教职工信息中自动生成,不需填写。
33、学校校产、收入情况、支出情况、资产负债四部分由学校财务部门或总务部门提供数据. 江苏省中小学(单位)教职工职工信息管理系统教职工信息填表说明一、基本情况(一)基本信息1、所在学校:注册时生成,无需填写。
考勤管理系统源代码
{#include<stdio.h> #include<string.h> #include<stdlib.h> #include<conio.h> #include<malloc.h> #include<time.h> /* 所使用的头文件 */ typedef struct/* 时间结构体定义 */{int hour; int minute; }TIME;typedef struct worker /* 职工结构体定义 */ {char id[10]; char name[10];TIME time[20]; struct worker *next; }worker;int menu_select(); void welcome(); void createInfo(); void createRec(); void listRec(); void searchRec(); void saveRec(); void deleteRec(); void modifyRec(); void loadRec(); void resetPassword(); int fun();worker *head=NULL; writeinfo_flag=0;char password[16]="888888"; struct tm *timeinfo; int main()/* 主菜单 *//* 欢迎界面 */ /* 新建职工信息 */ /* 录入考勤信息 *//* 浏览当天考勤信息 */ /*/ 查询考勤信息 *//* 保存所有信息 *//* 删除考勤信息 */ /* 修改考勤信息 *//* 加载文件信息 *//* 重设密码 *//* 判断输入选择是否正确 *//* 链表头指针 head*//* 信息保存标记 *//* 初始密码 *//* 主函数 */char s[16]; welcome();loadRec();/* 欢迎界面 */ /* 加载文件信息 */printf("\n 提示:\n\n 初始密码为:888888\n"); /* 进入系统密码管理*/ printf("\t\t\t\n\n\n\n\n 请输入密码,进去系统( 密码不超过15 个字符):"); scanf("%s",s);while(strcmp(password,s)!=0){printf("\n 密码错误,请重新输入:"); scanf("%s",s);} system("cls");for(;;) /* 菜单循环*/{ switch(menu_select()) {case 0:system("cls");createInfo();break;case 1:system("cls");createRec();break;case 2:system("cls");listRec();break;case 3:system("cls");searchRec();break;case 4:system("cls");deleteRec();break;case 5:system("cls");modifyRec();break;case 6:system("cls");saveRec();break;case 7:system("cls");resetPassword();break;case 8:system("cls");if(writeinfo_flag==1)saveRec();return 0; default:{printf("\n 选择错误,请按回车键返回后,重新输入(0~8)!"); getchar();getchar();system("cls"); break;}}}return 0;}/* 选择菜单*/ int menu_select(){worker *p=head;int c,k;time_t nowtime; time( &nowtime );timeinfo = localtime( &nowtime );printf("\t\t** ************ 选择菜单************* *\t");/* 在菜单中显示当前时间*/if(timeinfo->tm_wday==0){printf(" 时间:星期天");printf(" %d:%d",timeinfo->tm_hour,timeinfo->tm_min);}elseprintf(" 时间: 星期%d %d:%d",timeinfo->tm_wday,timeinfo->tm_hour,timeinfo->tm_min);printf("\n ------------------------------------------------------------------ ");printf("\t\t\t0. 新建职工信息\n");printf("\t\t1. 录入考勤信息\n");printf("\t\t2. 浏览考勤信息\n");printf("\t\t3. 查询考勤信息\n");printf("\t\t4. 删除考勤信息\n");printf("\t\t5. 修改考勤信息\n");printf("\t\t6. 保存所有信息\n");printf("\t\t7. 重设密码\n");printf("\t\t8. 退出(退出后信息会自动保存在磁盘中)\n\t\t( 任何情况下按Ctrl+C 退出程序)\n ”);printf("\n ------------------------------------------------------------------ ");printf("\n\n 请输入您的选择(0~8):");scanf("%d",&c); if(timeinfo->tm_wday==0&&p!=NULL) /* 每周周日所有考勤信息初始化*/{for(k=0;k<20;k++){p->time[k].hour=88; p->time[k].minute=88;}}return c;}void loadRec() /* 从磁盘导入信息*/{worker *rear,*p,*pre; FILE *fp,*key; int i,pos=0; key=fopen("key.txt","r"); if(key!=NULL){}fscanf(key,"%s",password); fclose(key);p=(worker*)malloc(sizeof(worker)); /* 开辟一个新单元 */ fscanf(fp,"%s%s",p->id,p->name); for(i=0;i<20;i++)fscanf(fp,"%d%d",&p->time[i].hour,&p->time[i].minute); if(head==NULL){head=p; pre=p; rear=p;}else{rear->next=p; pre=rear; rear=p;}}pre->next=NULL; fclose(fp); return;}fp=fopen("workerRec.txt","r"); if(fp!=NULL){fseek(fp, 0, SEEK_END); pos= ftell(fp);}if(fp==NULL||0 == pos)件*/{printf("\n\n\n\n\n\n\t\t 提示:在!\n");printf("\n\t\t getchar();\n\n\t\t 数据库中没有职工信息请按回车键进入主菜单新建职工信息/* 指针移到文件末尾 *//* 打开职工信息文件和密码文,文本为空或文件不存system("cls"); return;}fseek(fp, 0, SEEK_SET); while(!feof(fp)){Un");/*清屏 *//* 指针移到文件开头 */ /*fp 不指向文件末尾 *//* 关闭文件 */void createInfo() /* 新建职工信息*/{worker *p,*rear;int i,k,n;char s[10];if(head!=NULL){printf("\n\n\n\n\n\n\n\t\t\t 职工信息数据库已存在\n\n\t\t\t 新建职工信息将续接在信息库的后面\n\n\n\t\t\t 按回车键继续");getchar();getchar();rear=head; while(rear->next!=NULL) rear=rear->next;system("cls");}printf("\n\n 请输入希望建立职工信息条数:");scanf("%s",s);if(fun(s)==0)return;elsen=atoi(s);printf("\n 请输入职工的工号(至多6 个字符)和姓名( 至多5 个字符):\n"); for(i=0;i<n;i++){p=(worker*)malloc(sizeof(worker));scanf("%s%s",p->id,p->name); if(strlen(p->id)>6||strlen(p->name)>5){printf("\n 职工工号或姓名输入长度不合法!\n\n 请按回车键返回主菜单\n",n);rear->next=NULL;free(p);getchar();getchar();system("cls");return;}for(k=0;k<20;k++) /* 时间初始化为88:88*/{p->time[k].hour=88;p->time[k].minute=88;}if(head==NULL){head=p;rear=p;}else{ rear->next=p; rear=p;}} p->next=NULL;printf("\n%d 条信息建立完毕!\n\n 请按回车键返回主菜单\n",n); getchar();getchar();system("cls");writeinfo_flag=1;return;}void createRec() /* 录入考勤信息*/{time_t nowtime;worker *p;char s[10],k[10],*g=k,ss[10];int c,m,week;time( &nowtime );timeinfo = localtime( &nowtime );week=timeinfo->tm_wday; if(head==NULL){printf("\n\n\n\n\t\t\t 数据库中没有职工信息\n\n\t\t\t 无法使用该功能\n\n\t\t\t 请按回车键返回主菜单新建职工信息!");getchar();getchar();system("cls");return;} if(timeinfo->tm_wday==6||timeinfo->tm_wday==0){printf("\n\n\n\n\t\t\t 今天不是工作日\n\n\t\t\t 无法录入考勤信息\n\n\t\t\t 请按回车键返回主菜单!");getchar();getchar();system("cls");return;}printf("\n\n\n\t\t\t 请选择录入考勤种类:\n\n\t\t\t1. 上午上班(8:00)\n\n\t\t\t2. 上午下班(11:30)\n\n\t\t\t3. 下午上班(14:00)\n\n\t\t\t4. 下午下班(17:30)\n\n");printf("\n\t\t 您的选择(以回车键结束):");scanf("%s",k); if(fun(k)==0)return;elsem=atoi(k);if(m<1||m>4){printf("\n\n\t\t 输入错误!\n\n\t\t 请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return ;}system("cls");if(m==1&&(timeinfo->tm_hour>11||(timeinfo->tm_hour==11&&timeinfo->tm_min>30))) {printf("\n\n\n\t\t\t 现在已经过了上午下班的时间(11:30)\n\n\t\t\t 无法录入上班的时间(8:00)信息\n\n\t\t\t 请按回车键返回主菜单");getchar();getchar();system("cls");return;}if(m==3&&(timeinfo->tm_hour>17||(timeinfo->tm_hour==17&&timeinfo->tm_min>30))){printf("\n\n\n\t\t\t 现在已经过了下午下班的时间(17:30)\n\n\t\t\t 无法录入上班的时间(14:00)信息\n\n\t\t\t 请按回车键返回主菜单");getchar();getchar();system("cls");return;}/* 可通过工号或姓名;录入*/printf("\n\n\n\t\t\t 请选择输入工号还是姓名:\n\n\t\t\t1. 选择输入工号\n\n\t\t\t2. 选择输入姓名\n\n");printf("\n\t\t 您的选择(以回车键结束):");scanf("%s",ss); if(fun(ss)==0)return;elsec=atoi(ss);if(c<1||c>2){printf("\n\n\t\t 输入错误!\n\n\t\t 请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls"); return ;} system("cls"); switch(c) { case 1:{ printf("\n\n\n\n\n\n\t\t\t 请输入工号(以回车键结束):"); scanf("%s",s);for(p=head;strcmp(p->id,s)!=0&&p->next!=NULL;p=p->next);if(strcmp(p->id,s)!=0&&p->next==NULL){printf("\n\n\n\n\t\t\t 不存在该工号\n");printf("\n\n\n\n\t\t\t 请按回车键返回主菜单重新开始!\n"); getchar();getchar();system("cls"); return;} if((m==2||m==4)&&p->time[4*week+m-6].hour==88){printf("\n\n\n\n\t\t\t 该职工无上班记录,无法记录下班信息, 请先录入上班信息\n");printf("\n\n\n\n\t\t\t 请按回车键返回主菜单重新开始!\n"); getchar();getchar();system("cls"); return;}p->time[4*week+m-5].hour=(timeinfo->tm_hour); /* 存储时间*/p->time[4*week+m-5].minute=(timeinfo->tm_min);break;}case 2:{ printf("\n\n\n\n\n\n\t\t\t 请输入姓名(以回车键结束):"); scanf("%s",s);for(p=head;strcmp(p->name,s)!=0&&p->next!=NULL;p=p->next);if(strcmp(p->name,s)!=0&&p->next==NULL){printf("\n\n\n\n\t\t\t 不存在该姓名\n");printf("\n\n\n\n\t\t\t 请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return;} if((m==2||m==4)&&p->time[4*week+m-6].hour==88) {printf("\n\n\n\n\t\t\t 该职工无上班记录,无法记录下班信息, 请先录入上班信息\n");printf("\n\n\n\n\t\t\t 请按回车键返回主菜单重新开始!\n"); getchar();getchar();system("cls");return;}time( &nowtime );timeinfo = localtime( &nowtime );week=timeinfo->tm_wday;p->time[4*week+m-5].hour=(timeinfo->tm_hour); p->time[4*week+m-5].minute=(timeinfo->tm_min); break;}}system("cls");printf("\n\n\n\n\n\n\t\t\t 考勤成功! 请按回车键返回主菜单\n");getchar();getchar();writeinfo_flag=1;system("cls");return;}void listRec() /* 浏览当天的考勤信息*/{worker *p=head;int m,week;week=timeinfo->tm_wday;if(head==NULL){printf("\n\n\n\n\t\t\t 数据库中没有职工信息\n\n\t\t\t 无法使用该功能\n\n\t\t\t 请按回车键返回主菜单新建职工信息!");getchar();getchar();system("cls");return;}if(timeinfo->tm_wday==6||timeinfo->tm_wday==0) {printf("\n\n\n\n\t\t\t 今天不是工作日,无考勤记录\n\n\t\t\t 无法浏览当天的考勤信息\n\n\t\t\t 请按回车键返回主菜单!");getchar();getchar();system("cls");return;}printf("\n 职工今天整体出勤情况如下:\n\n");printf(" 职工号姓名上午上班上午下班下午上班下午下班\n"); while(p!=NULL){m=0;printf("\n%s %s",p->id,p->name);if((p->time[(week-1)*4].hour>8&&p->time[(week-1)*4].hour<25)||(p->time[(week-1)*4].hour==8&&p->time[(week-1)*4].minute>0))printf(" 迟到"); /* 上班时间之后来的都算迟到*/else if(p->time[(week-1)*4].hour==88&&(timeinfo->tm_hour>11||(timeinfo->tm_hour==11&&timein fo->tm_min>30)))printf(" 旷工"); /* 过了下班时间就是旷工*/else if(p->time[(week-1)*4].hour==88&&(timeinfo->tm_hour<11||(timeinfo->tm_hour==8&&timeinf o->tm_min==30)))printf(" 无记录"); /* 下班之前还没有来显示无记录*/else if(p->time[(week-1)*4].hour!=88){printf(" ");m++;}if((p->time[(week-1)*4+1].hour<11&&p->time[(week-1)*4].hour!=0)||(p->time[(week-1)*4+1].hour==11&&p->time[(week-1)*4+1].minute<30))printf(" 早退");else {printf(" ");m++;}if((p->time[(week-1)*4+2].hour>14&&p->time[(week-1)*4+2].hour<25)||(p->time[(week-1)*4+2].hour==14&&p->time[(week-1)*4+2].minute>0))printf(" 迟到");else if(p->time[(week-1)*4+2].hour==88&&(timeinfo->tm_hour>17||(timeinfo->tm_hour==17&&timeinfo->tm_min>30)))printf(" 旷工");else if(p->time[(week-1)*4+2].hour==88&&(timeinfo->tm_hour<17||(timeinfo->tm_hour==17&&tim einfo->tm_min==30)))printf(" 无记录");else if(p->time[(week-1)*4+2].hour!=88){printf(" ");m++;}if((p->time[(week-1)*4+3].hour<17&&p->time[(week-1)*4+2].hour!=0)||(p->time[(week-1)*4+3].hour==17&&p->time[(week-1)*4+3].minute<30))printf(" 早退");else {printf(" ");m++;}if(m==4&&(timeinfo->tm_hour>17||(timeinfo->tm_hour==17&&timeinfo->tm_min>30))) printf(" 全勤!");p=p->next;}printf("\n\n 显示完毕,按回车键返回主菜单!");getchar();getchar();system("cls");return;}void searchRec() /* 根据工号或姓名查找考勤信息*/{worker *p=head;int c,i;char s[10],k[10];if(head==NULL){printf("\n\n\n\n\t\t\t 数据库中没有职工信息\n\n\t\t\t 无法使用该功能\n\n\t\t\t 请按回车键返回主菜单新建职工信息!");getchar();getchar();system("cls");return;}printf("\n\n\n\t\t\t 请选择输入工号还是姓名:\n\n\t\t\t1. 选择输入工号\n\n\t\t\t2. 选择输入姓名\n\n");printf("\n\t\t 您的选择(以回车键结束):");scanf("%s",k); if(fun(k)==0)return;elsec=atoi(k); if(c<1||c>2){ printf("\n\n\t\t 输入错误!\n\n\t\t 请按回车键返回主菜单重新开始getchar();getchar();system("cls"); return ;!\n");} system("cls"); switch(c) { case 1:{ printf("\n\n\n\n\n\n\t\t\t 请输入工号(以回车键结束):"); scanf("%s",s);for(p=head;strcmp(p->id,s)!=0&&p->next!=NULL;p=p->next);if(strcmp(p->id,s)!=0&&p->next==NULL){printf("\n\n\n\n\t\t\t 不存在该工号\n"); printf("\n\n\n\n\t\t\t 请按回车键返回主菜单重新开始!\n"); getchar();getchar();system("cls"); return;}break;}case 2:{ printf("\n\n\n\n\n\n\t\t\t 请输入姓名(以回车键结束):"); scanf("%s",s);for(p=head;strcmp(p->name,s)!=0&&p->next!=NULL;p=p->next);if(strcmp(p->name,s)!=0&&p->next==NULL){printf("\n\n\n\n\t\t\t 不存在该姓名\n"); printf("\n\n\n\n\t\t\t 请按回车键返回主菜单重新开始!\n"); getchar();getchar();system("cls"); return;}break;}system("cls");printf(" 职工号姓名\n\n");printf(" %s %s",p->id,p->name);printf(" 周一");for(i=0;i<4;i++) {上午上班上午下班下午上班下午下班if(p->time[i].hour==88)printf(" --:--if(p->time[i].hour!=88) printf(" %2d:%2d if(i==4) printf("\n\n"); ");",p->time[i].hour,p->time[i].minute);printf("\n 周二"); for(i=4;i<8;i++){if(p->time[i].hour==88)printf(" --:--if(p->time[i].hour!=88) printf(" %2d:%2d if(i==8) printf("\n\n"); ");",p->time[i].hour,p->time[i].minute);}printf("\n 周三"); for(i=8;i<12;i++){if(p->time[i].hour==88)printf(" --:--if(p->time[i].hour!=88) printf(" %2d:%2d if(i==12) printf("\n\n"); ");",p->time[i].hour,p->time[i].minute);}printf("\n 周四"); for(i=12;i<16;i++){if(p->time[i].hour==88)printf(" --:--if(p->time[i].hour!=88) printf(" %2d:%2d ");",p->time[i].hour,p->time[i].minute);if(i==16)printf("\n\n");}printf("\n 周五");for(i=16;i<20;i++){if(p->time[i].hour==88)printf(" --:-- ");if(p->time[i].hour!=88)printf(" %2d:%2d ",p->time[i].hour,p->time[i].minute); if(i==20)printf("\n\n");}printf("\n\n\n\n\n\n\t\t\t 显示完毕,按回车键返回主菜单!"); getchar();getchar();system("cls");return;}void saveRec() /* 储存所有信息*/{worker *p=head;FILE *fp,*key;int i;if(writeinfo_flag==0){printf("\n\n\n\n\t\t\t 信息无改动,无需保存!\n\n\t\t\t 请按回车键返回主菜单\n");getchar();getchar();system("cls");return;}if(writeinfo_flag==1){ if((fp=fopen("workerRec.txt","w"))==NULL||(key=fopen("key.txt","w"))==NULL) {printf("\n\t\t\t 提示:\n\n\t\t\t 存储信息失败!\n"); printf("\n\t\t\t 请按回车键进入主菜单重新开始\n"); getchar();getchar();system("cls");return;} while(p!=NULL){fprintf(fp,"%s\n%s\n",p->id,p->name); for(i=0;i<20;i++)fprintf(fp,"%d\n%d\n",p->time[i].hour,p->time[i].minute); p=p->next;} fprintf(key,"%s",password);fclose(fp),fclose(key);writeinfo_flag=0; /* 消除改动标志*/ printf("\n\n\n\n\n\t\t\t 保存完毕,按回车键继续!");getchar();getchar();system("cls");return;}}void deleteRec() //删除考勤信息*/{worker *p,*pre=head;char s[16],k[10];int c; if(head==NULL){printf("\n\n\n\n\t\t\t 数据库中没有职工信息\n\n\t\t\t 无法使用该功能\n\n\t\t\t 请按回车键返回主菜单新建职工信息!");getchar();getchar(); system("cls"); return;}printf("\n\n\n\t\t\t 提示:\n\n\t\t\t 初始密码为:888888\n"); printf("\n\n\n\t\t\t 请输入密码(密码不超过15 个字符):"); scanf("%s",s);while(strcmp(password,s)!=0){printf("\n\n\t\t\t 密码错误!\n\n"); printf("\t\t\t 按回车键返回主菜单!"); getchar();getchar();system("cls");return;} printf("\n\n\n\t\t\t 密码输入成功!\n\n\t\t\t 请按回车键继续"); getchar();getchar();system("cls");printf("\n\n\n\t\t\t 请选择输入工号还是姓名:\n\n\t\t\t1. 选择输入工号\n\n\t\t\t2. 选择输入姓名\n\n");printf("\n\t\t 您的选择(以回车键结束):");scanf("%s",k); if(fun(k)==0)return;elsec=atoi(k); if(c<1||c>2){ printf("\n\n\t\t 输入错误!\n\n\t\t 请按回车键返回主菜单重新开始getchar();getchar();system("cls"); return ;!\n");} system("cls"); switch(c) { case 1:{ printf("\n\n\n\n\n\n\t\t\t 请输入工号:"); scanf("%s",s);for(p=head;strcmp(p->id,s)!=0&&p->next!=NULL;p=p->next);if(strcmp(p->id,s)!=0&&p->next==NULL){printf("\n\n\n\n\t\t\t 不存在该工号\n"); printf("\n\n\n\n\t\t\t 请按回车键返回主菜单重新开始!\n"); getchar();getchar();system("cls"); return;}break;}case 2:{ printf("\n\n\n\n\n\n\t\t\t 请输入姓名:"); scanf("%s",s);for(p=head;strcmp(p->name,s)!=0&&p->next!=NULL;p=p->next);if(strcmp(p->name,s)!=0&&p->next==NULL){printf("\n\n\n\n\t\t\t 不存在该姓名\n"); printf("\n\n\n\n\t\t\t 请按回车键返回主菜单重新开始!\n"); getchar();getchar();system("cls");return;} break;}} system("cls"); if(p==head) head=p->next;else{ for(;pre->next!=p;pre=pre->next); pre->next=p->next;}free(p);printf("\n\n\n\n\n\n\t\t\t 删除成功,请按回车键返回主菜单!"); getchar();getchar();system("cls"); writeinfo_flag=1; return;}void modifyRec() /* 修改考勤信息*/{worker *p,*pre=head; char s[16],k[10];int c; if(head==NULL){ printf("\n\n\n\n\t\t\t 数据库中没有职工信息\n\n\t\t\t 无法使用该功能\n\n\t\t\t 请按回车键返回主菜单新建职工信息!");getchar();getchar(); system("cls"); return;}printf("\n\n\n\t\t\t 提示:\n\n\t\t\t 初始密码为:888888\n"); printf("\n\n\n\t\t\t 请输入密码(密码不超过15 个字符):"); scanf("%s",s);if(strcmp(password,s)!=0){printf("n\n\n\t\t\t 密码错误!\n\n"); printf("\t\t\t 按回车键返回主菜单!"); getchar();getchar();system("cls");return;}printf("\n\n\n\t\t\t 密码输入成功!\n\n\t\t\t 请按回车键继续"); getchar();getchar();system("cls");printf("\n\n\n\t\t\t 请选择通过工号修改还是姓名修改:\n\n\t\t\t1. 选择输入工号\n\n\t\t\t2. 选择输入姓名\n\n");printf("\n\n\n\t\t 您的选择(以回车键结束):"); scanf("%s",k);if(fun(k)==0)return;elsec=atoi(k); if(c<1||c>2){printf("\n\n\t\t 输入错误!\n\n\t\t 请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return ;} system("cls"); switch(c) { case 1:{printf("\n\n\n\n\n\n\t\t\t 请输入工号:"); scanf("%s",s);for(p=head;strcmp(p->id,s)!=0&&p->next!=NULL;p=p->next);if(strcmp(p->id,s)!=0&&p->next==NULL){printf("\n\n\n\n\t\t\t 不存在该工号\n");printf("\n\n\n\n\t\t\t 请按回车键返回主菜单重新开始!\n"); getchar();getchar();system("cls");return;}break;} case 2:{ printf("\n\n\n\n\n\n\t\t\t 请输入姓名:"); scanf("%s",s);for(p=head;strcmp(p->name,s)!=0&&p->next!=NULL;p=p->next);if(strcmp(p->name,s)!=0&&p->next==NULL){printf("\n\n\n\n\t\t\t 不存在该姓名\n"); printf("\n\n\n\n\t\t\t 请按回车键返回主菜单重新开始!\n"); getchar();getchar();system("cls");return;}break;}} system("cls");printf("\n\n\n\t\t\t 请选择要修改的内容:\n\n\t\t\t1. 工号\n\n\t\t\t2. 姓名\n\n\t\t\t3. 上午上班时间\n\n\t\t\t4. 上午下班时间\n\n\t\t\t5. 下午上班时间\n\n\t\t\t6. 下午下班时间");printf("\n\n\n\t\t 您的选择(以回车键结束):");scanf("%s",&k);if(fun(k)==0)return;elsec=atoi(k);if(c<1||c>6) {printf("\n\n\t\t 输入错误!\n\n\t\t 请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls"); return ;}system("cls");switch(c){case 1: printf("\n\n\n\t\t 请输入要修改的工号(至多10 个字符):"); scanf("%s",p->id);break; case 2: printf("\n\n\n\t\t 请输入要修改的姓名(至多10 个字符):"); scanf("%s",p->name);break; case 3: printf("\n\n\n\t\t 请输入要修改星期几的考勤( 请输入1~5):"); scanf("%d",&c);printf("\n\n\n\t 请输入要修改的时间和分钟(如:10 点5 分就输入10:05):");scanf("%d:%d",&p->time[(c-1)*4].hour,&p->time[(c-1)*4].minute);break;case 4: printf("\n\n\n\t\t 请输入要修改星期几的考勤( 请输入1~5):"); scanf("%d",&c);printf("\n\n\n\t 请输入要修改的时间和分钟(如:10 点5 分就输入10:05):");scanf("%d:%d",&p->time[(c-1)*4+1].hour,&p->time[(c-1)*4+1].minute);break;case 5:printf("\n\n\n\t\t 请输入要修改星期几的考勤( 请输入1~5):"); scanf("%d",&c);printf("\n\n\n\t 请输入要修改的时间和分钟(如:10 点5 分就输入10:05):");scanf("%d:%d",&p->time[(c-1)*4+2].hour,&p->time[(c-1)*4+2].minute);break; case 6: printf("\n\n\n\t\t 请输入要修改星期几的考勤( 请输入1~5):"); scanf("%d",&c);printf("\n\n\n\t 请输入要修改的时间和分钟(如:10 点5 分就输入10:05):");scanf("%d:%d",&p->time[(c-1)*4+3].hour,&p->time[(c-1)*4+3].minute);break;} printf("\n\n\n\t\t\t 修改成功,请按回车键返回主菜单!"); getchar();getchar();system("cls"); writeinfo_flag=1;return;}void resetPassword() /* 重设密码*/{char s[16];printf("\n\n\n\t\t 提示:\n\n\t\t 初始密码为:888888\n"); printf("\n\t\t 请输入密码(密码不超过15个字符):"); scanf("%s",s);if(strcmp(password,s)!=0){printf("\n\n\n\t\t 密码错误!\n\n"); printf("\n\n\n\t\t 按回车键返回主菜单!");getchar();getchar();system("cls");return;}printf("\n\n\t\t 密码输入成功!\n\n\t\t 请按回车键继续"); getchar();getchar();system("cls");printf("\n\n\n\t 请输入要修改的密码(密码不超过15 个字符):"); scanf("%s",s);strcpy(password,s);printf("\n\n\t 修改成功,请按回车键返回主菜单!"); getchar();getchar();system("cls"); writeinfo_flag=1;return;}void welcome() //欢迎界面{ printf("\n\n\n\n\n\n\n\t\t\t 欢迎使用职工考勤管理系统"); printf("\n\n\n\t\t\t 请按任意键进入系统,开始您的操作"); printf("\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t 作者:XXX");getch(); system("cls");return;}int fun(char *g){do{ if(*g<'0'||*g>'9') {printf("\n\n\t\t 输入错误!\n\n\t\t 请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls"); return 0 ;}g++; }while(*g!=0); return 1;}。
员工管理系统
程序设计实习实验报告班级:信A0812学号: 25姓名:万明指导老师:周小雄2010-2011第1学期实验员工管理系统班级:信A0812 学号:25 姓名:万明指导教师签名:__________ 成绩:__________ 一、问题描述设计一个计算机程序,能够实现简单的员工管理功能。
设计要求:1.每个员工的信息包括:编号、姓名、性别、出生年月、学历、职务、电话、住址等。
2.系统的功能包括:(1)查询:按特定条件查找员工。
(2)修改:按编号对某个员工的某项信息进行修改。
(3)插入:加入新员工的信息。
(4)删除:按编号删除已离职员工的信息。
(5)排序:按特定条件对所有员工的信息进行排序。
二、算法说明1.算法功能(1)采用结构体WORKER来存储员工的相关信息,定义一个由结构体组成的链表来实现对多个员工信息的存储,以及插入、删除、修改等操作。
(2)注册新员工信息:采用链表的操作,向链表接点的前一个接点插入信息。
(3)查询、修改:采用链表的操作进行信息的查找,找到后可以进行修改覆盖原来的内容。
(4)删除:按链表的操作进行,按关键字找到相应的接点,然后删除此接点的前一个接点即可。
(5)排序:按照员工的工号升序排序,采用冒泡排序法,并且交换所有信息。
2.函数说明Link Create(Link Head);//创建链表void Release(Link Head);//释放链表空间Link Search(Link Head);//按条件查找链表节点Link Searchbywno(Link Head);//按员工号查找员工信息Link Updata(Link Head);//修改员工信息Link Insert(Link Head);//插入员工信息Link Del(Link Head);//删除退休员工的信息Link rankbywno(Link Head);//按员工号将员工排序void Display(Link Head);//查找链表所有节点void Display_Node(Link pNode);//显示链表节点的信息Link Searchwithoutprint(Link Head);//查找链表节点的信息但是不用输出3.数据结构说明struct worker//定义员工结构体链表来存储员工的信息{int wnum;//工号char name[15];//姓名char sex[4];//性别char age[12];//出生年月char post[6];//学历char job[10];//职位unsigned int telnum;//电话号码char add[23];//家庭地址struct worker *next;定义下一个接点};typedef struct worker Node;typedef Node *Link;//定义链表节点三、测试结果第一组测试:(1):测试目的:注册新信息并显示出来。
人员信息管理系统
三: 系统详细设计
1: 设计思路
使用面向对象的程序设计思想进行分析, 整个系统涉及两大类信息和操作, 公司, 人员。因此系统主要涉及两个大类: 公司类business、 人员类person。系统的总体框架就是公司类, 人员类的定义; 主函数中定义一个公司对象, 循环显示主菜单并根据用户选择调用公司类的相应方法(成员函数)。
在实现程序功能的基础上, 尽量运用所学知识, 改进程序实现方法, 提高程序的可读性、 模块性、 可扩展性、 可重用性和健壮性。
工资计算公式:
经理 : 固定为8000
技术人员: 工作时间*每小时酬金( 100RMB)
销售经理: 1%提成+固定工资( 5000RMB)
推销员 : 4%提成
二: 系统总体设计
4)void show()——显示
用while判断语句打印出所有人员信息。
5)void repair()——修改
利用ofstream h1("f2.txt",ios :: binary|ios :: out);覆盖要修改的人员信息。
6)错误判断
四: 系统源代码
#include<iostream.h>
2:功能模块设计
1)voidwrite()——新增
将向要新增的人员经过文件指令
ofstream myfile("f1.txt",ios :: binary|ios :: ate);
myfile.write((char*)&p,sizeof p);
myfile.close();
将信息自动存入txt文档中。
cout<<"请输入职工的姓名:" ;
个人信息管理系统C++
面向对象课程设计报告个人管理系统*****班级:091141学号: ********专业:网络工程****: ***1目录1、实验题目 (3)2、实验时间、地点 (3)3、实验目的 (3)4、实验要求 (3)5、实现过程 (7)6、心得体会 (16)2一、实验题目:个人管理系统二、实验时间及地点:时间:第十四周(周一至周四)地点:软件楼505室。
三、实验目的:(1)要求学生达到熟练掌握C++语言的基本知识和技能;(2)基本掌握面向对象程序设计的基本思路和方法;(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
四、实验要求:1、使用面向对象方法进行课程设计。
要求使用对象/类,继承,多态性等技术2、独立完成课程设计,并完成课程设计报告报告记录设计的过程,尤其是分析/设计/实现过程中的决策课程设计报告的内容应当包括以下内容:声称要完成的功能设计的具体描述完整的实现设计的源代码执行的结果的典型记录设计的优点和需要进一步改进的地方软件的主要结构包括:用户登录,数据的录入、查询、删除、修改、统计等功能。
根据结合自己的实际情况,酌情选择相关的功能,并完成设计。
五、实现过程:(1)登陆界面:3(2)录入功能:4(4)删除:5(6)保存:6代码:#include <string>#include <iostream>#include <fstream>#include <iomanip>using namespace std;struct Employee{ //声明个人的结构作为链表节点。
//-----数据域-----string m_Code;string m_Name;int m_Year;string m_Sex;string m_Post;string m_Department;int m_Wage;//链表节点的指针域---struct Employee* Next;};typedef struct Employee Node; typedef Node* Link;//-------函数声明------------- Link Create(Link Head);void Release(Link Head);7Link Add(Link Head);bool Search(Link Head);Link Search_Unique(Link Head);void Display_List(Link Head);void Display_Node(Link pNode);Link Modify(Link Head);Link Del(Link Head);void Save_ByFile(Link Head,fstream& ofile); Link Sort(Link Head);//-------函数实现------------Link Create(Link Head){ //创建一个带头节点的空链表。
考勤管理系统源代码
#include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>#include<malloc.h>#include<time.h> /*所使用的头文件*/typedef struct /*时间结构体定义*/{int hour;int minute;}TIME;typedef struct worker /*职工结构体定义*/{char id[10];char name[10];TIME time[20];struct worker *next;}worker;int menu_select(); /*主菜单*/void welcome(); /*欢迎界面*/void createInfo(); /*新建职工信息*/void createRec(); /*录入考勤信息*/void listRec(); /*浏览当天考勤信息*/ void searchRec(); /*/查询考勤信息*/void saveRec(); /*保存所有信息*/ void deleteRec(); /*删除考勤信息*/void modifyRec(); /*修改考勤信息*/void loadRec(); /*加载文件信息*/ void resetPassword(); /*重设密码*/int fun(); /*判断输入选择是否正确*/worker *head=NULL; /*链表头指针head*/ writeinfo_flag=0; /*信息保存标记*/char password[16]="888888"; /*初始密码*/struct tm *timeinfo;int main() /*主函数*/{char s[16];welcome(); /*欢迎界面*/loadRec(); /*加载文件信息*/printf("\n提示:\n\n初始密码为:888888\n"); /*进入系统密码管理*/ printf("\t\t\t\n\n\n\n\n请输入密码,进去系统(密码不超过15个字符):");scanf("%s",s);while(strcmp(password,s)!=0){printf("\n密码错误,请重新输入:");scanf("%s",s);}system("cls");for(;;) /*菜单循环*/{switch(menu_select()){case 0:system("cls");createInfo();break;case 1:system("cls");createRec();break;case 2:system("cls");listRec();break;case 3:system("cls");searchRec();break;case 4:system("cls");deleteRec();break;case 5:system("cls");modifyRec();break;case 6:system("cls");saveRec();break;case 7:system("cls");resetPassword();break;case 8:system("cls");if(writeinfo_flag==1)saveRec();return 0;default:{printf("\n 选择错误,请按回车键返回后,重新输入(0~8)!");getchar();getchar();system("cls");break;}}}return 0;}/*选择菜单*/int menu_select(){worker *p=head;int c,k;time_t nowtime;time( &nowtime );timeinfo = localtime( &nowtime );printf("\t\t**************选择菜单**************\t");/*在菜单中显示当前时间*/if(timeinfo->tm_wday==0){printf("时间:星期天");printf(" %d:%d",timeinfo->tm_hour,timeinfo->tm_min);}elseprintf("时间:星期%d %d:%d",timeinfo->tm_wday,timeinfo->tm_hour,timeinfo->tm_min);printf("\n---------------------------------------------------------------------------");printf("\t\t\t0.新建职工信息\n");printf("\t\t1.录入考勤信息\n");printf("\t\t2.浏览考勤信息\n");printf("\t\t3.查询考勤信息\n");printf("\t\t4.删除考勤信息\n");printf("\t\t5.修改考勤信息\n");printf("\t\t6.保存所有信息\n");printf("\t\t7.重设密码\n");printf("\t\t8.退出(退出后信息会自动保存在磁盘中)\n\t\t(任何情况下按Ctrl+C退出程序)\n");printf("\n---------------------------------------------------------------------------");printf("\n\n 请输入您的选择(0~8):");scanf("%d",&c);if(timeinfo->tm_wday==0&&p!=NULL) /*每周周日所有考勤信息初始化*/{for(k=0;k<20;k++){p->time[k].hour=88;p->time[k].minute=88;}}return c;}void loadRec() /*从磁盘导入信息*/{worker *rear,*p,*pre;FILE *fp,*key;int i,pos=0;key=fopen("key.txt","r");if(key!=NULL){fscanf(key,"%s",password);fclose(key);}fp=fopen("workerRec.txt","r");if(fp!=NULL){fseek(fp, 0, SEEK_END); /*指针移到文件末尾*/pos= ftell(fp);}if(fp==NULL||0 == pos) /*打开职工信息文件和密码文件*/{printf("\n\n\n\n\n\n\t\t提示:\n\n\t\t数据库中没有职工信息,文本为空或文件不存在!\n");printf("\n\t\t请按回车键进入主菜单新建职工信息^_^\n");getchar();system("cls"); /*清屏*/return;}fseek(fp, 0, SEEK_SET); /*指针移到文件开头*/ while(!feof(fp)) /*fp不指向文件末尾*/{p=(worker*)malloc(sizeof(worker)); /*开辟一个新单元*/fscanf(fp,"%s%s",p->id,p->name);for(i=0;i<20;i++)fscanf(fp,"%d%d",&p->time[i].hour,&p->time[i].minute);if(head==NULL){head=p;pre=p;rear=p;}else{rear->next=p;pre=rear;rear=p;}}pre->next=NULL;fclose(fp); /*关闭文件*/return;}void createInfo() /*新建职工信息*/{worker *p,*rear;int i,k,n;char s[10];if(head!=NULL){printf("\n\n\n\n\n\n\n\t\t\t职工信息数据库已存在\n\n\t\t\t新建职工信息将续接在信息库的后面\n\n\n\t\t\t按回车键继续");getchar();getchar();rear=head;while(rear->next!=NULL)rear=rear->next;system("cls");}printf("\n\n请输入希望建立职工信息条数:");scanf("%s",s);if(fun(s)==0)return;elsen=atoi(s);printf("\n请输入职工的工号(至多6个字符)和姓名(至多5个字符):\n");for(i=0;i<n;i++){p=(worker*)malloc(sizeof(worker));scanf("%s%s",p->id,p->name);if(strlen(p->id)>6||strlen(p->name)>5){printf("\n职工工号或姓名输入长度不合法!\n\n请按回车键返回主菜单\n",n);rear->next=NULL;free(p);getchar();getchar();system("cls");return;}for(k=0;k<20;k++) /*时间初始化为88:88*/{p->time[k].hour=88;p->time[k].minute=88;}if(head==NULL){head=p;rear=p;}else{rear->next=p;rear=p;}}p->next=NULL;printf("\n%d条信息建立完毕!\n\n请按回车键返回主菜单\n",n);getchar();getchar();system("cls");writeinfo_flag=1;return;}void createRec() /*录入考勤信息*/{time_t nowtime;worker *p;char s[10],k[10],*g=k,ss[10];int c,m,week;time( &nowtime );timeinfo = localtime( &nowtime );week=timeinfo->tm_wday;if(head==NULL){printf("\n\n\n\n\t\t\t数据库中没有职工信息\n\n\t\t\t无法使用该功能\n\n\t\t\t请按回车键返回主菜单新建职工信息!");getchar();getchar();system("cls");return;}if(timeinfo->tm_wday==6||timeinfo->tm_wday==0){printf("\n\n\n\n\t\t\t今天不是工作日\n\n\t\t\t无法录入考勤信息\n\n\t\t\t请按回车键返回主菜单!");getchar();getchar();system("cls");return;}printf("\n\n\n\t\t\t请选择录入考勤种类:\n\n\t\t\t1.上午上班(8:00)\n\n\t\t\t2.上午下班(11:30)\n\n\t\t\t3.下午上班(14:00)\n\n\t\t\t4.下午下班(17:30)\n\n");printf("\n\t\t您的选择(以回车键结束):");scanf("%s",k);if(fun(k)==0)return;elsem=atoi(k);if(m<1||m>4){printf("\n\n\t\t输入错误!\n\n\t\t请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return ;}system("cls");if(m==1&&(timeinfo->tm_hour>11||(timeinfo->tm_hour==11&&timeinfo->tm_min>30))) {printf("\n\n\n\t\t\t现在已经过了上午下班的时间(11:30)\n\n\t\t\t无法录入上班的时间(8:00)信息\n\n\t\t\t请按回车键返回主菜单");getchar();getchar();system("cls");return;}if(m==3&&(timeinfo->tm_hour>17||(timeinfo->tm_hour==17&&timeinfo->tm_min>30))) {printf("\n\n\n\t\t\t现在已经过了下午下班的时间(17:30)\n\n\t\t\t无法录入上班的时间(14:00)信息\n\n\t\t\t请按回车键返回主菜单");getchar();getchar();system("cls");return;}/*可通过工号或姓名;录入*/printf("\n\n\n\t\t\t请选择输入工号还是姓名:\n\n\t\t\t1.选择输入工号\n\n\t\t\t2.选择输入姓名\n\n");printf("\n\t\t您的选择(以回车键结束):");scanf("%s",ss);if(fun(ss)==0)return;elsec=atoi(ss);if(c<1||c>2){printf("\n\n\t\t输入错误!\n\n\t\t请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return ;}system("cls");switch(c){case 1:{printf("\n\n\n\n\n\n\t\t\t请输入工号(以回车键结束):");scanf("%s",s);for(p=head;strcmp(p->id,s)!=0&&p->next!=NULL;p=p->next);if(strcmp(p->id,s)!=0&&p->next==NULL){printf("\n\n\n\n\t\t\t不存在该工号\n");printf("\n\n\n\n\t\t\t请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return;}if((m==2||m==4)&&p->time[4*week+m-6].hour==88){printf("\n\n\n\n\t\t\t该职工无上班记录,无法记录下班信息,请先录入上班信息\n");printf("\n\n\n\n\t\t\t请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return;}p->time[4*week+m-5].hour=(timeinfo->tm_hour); /*存储时间*/p->time[4*week+m-5].minute=(timeinfo->tm_min);break;}case 2:{printf("\n\n\n\n\n\n\t\t\t请输入姓名(以回车键结束):");scanf("%s",s);for(p=head;strcmp(p->name,s)!=0&&p->next!=NULL;p=p->next);if(strcmp(p->name,s)!=0&&p->next==NULL){printf("\n\n\n\n\t\t\t不存在该姓名\n");printf("\n\n\n\n\t\t\t请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return;}if((m==2||m==4)&&p->time[4*week+m-6].hour==88){printf("\n\n\n\n\t\t\t该职工无上班记录,无法记录下班信息,请先录入上班信息\n");printf("\n\n\n\n\t\t\t请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return;}time( &nowtime );timeinfo = localtime( &nowtime );week=timeinfo->tm_wday;p->time[4*week+m-5].hour=(timeinfo->tm_hour);p->time[4*week+m-5].minute=(timeinfo->tm_min);break;}}system("cls");printf("\n\n\n\n\n\n\t\t\t考勤成功!请按回车键返回主菜单\n");getchar();getchar();writeinfo_flag=1;system("cls");return;}void listRec() /*浏览当天的考勤信息*/{worker *p=head;int m,week;week=timeinfo->tm_wday;if(head==NULL){printf("\n\n\n\n\t\t\t数据库中没有职工信息\n\n\t\t\t无法使用该功能\n\n\t\t\t请按回车键返回主菜单新建职工信息!");getchar();getchar();system("cls");return;}if(timeinfo->tm_wday==6||timeinfo->tm_wday==0){printf("\n\n\n\n\t\t\t今天不是工作日,无考勤记录\n\n\t\t\t无法浏览当天的考勤信息\n\n\t\t\t请按回车键返回主菜单!");getchar();getchar();system("cls");return;}printf("\n职工今天整体出勤情况如下:\n\n");printf("职工号姓名上午上班上午下班下午上班下午下班\n");while(p!=NULL){m=0;printf("\n%s %s",p->id,p->name);if((p->time[(week-1)*4].hour>8&&p->time[(week-1)*4].hour<25)||(p->time[(week-1)*4].ho ur==8&&p->time[(week-1)*4].minute>0))printf(" 迟到"); /*上班时间之后来的都算迟到*/elseif(p->time[(week-1)*4].hour==88&&(timeinfo->tm_hour>11||(timeinfo->tm_hour==11&&timein fo->tm_min>30)))printf(" 旷工"); /*过了下班时间就是旷工*/elseif(p->time[(week-1)*4].hour==88&&(timeinfo->tm_hour<11||(timeinfo->tm_hour==8&&timeinf o->tm_min==30)))printf(" 无记录"); /*下班之前还没有来显示无记录*/else if(p->time[(week-1)*4].hour!=88){printf(" ");m++;}if((p->time[(week-1)*4+1].hour<11&&p->time[(week-1)*4].hour!=0)||(p->time[(week-1)*4 +1].hour==11&&p->time[(week-1)*4+1].minute<30))printf(" 早退");else {printf(" ");m++;}if((p->time[(week-1)*4+2].hour>14&&p->time[(week-1)*4+2].hour<25)||(p->time[(week-1) *4+2].hour==14&&p->time[(week-1)*4+2].minute>0))printf(" 迟到");elseif(p->time[(week-1)*4+2].hour==88&&(timeinfo->tm_hour>17||(timeinfo->tm_hour==17&&tim einfo->tm_min>30)))printf(" 旷工");elseif(p->time[(week-1)*4+2].hour==88&&(timeinfo->tm_hour<17||(timeinfo->tm_hour==17&&tim einfo->tm_min==30)))printf(" 无记录");else if(p->time[(week-1)*4+2].hour!=88){printf(" ");m++;}if((p->time[(week-1)*4+3].hour<17&&p->time[(week-1)*4+2].hour!=0)||(p->time[(week-1) *4+3].hour==17&&p->time[(week-1)*4+3].minute<30))printf(" 早退");else {printf(" ");m++;}if(m==4&&(timeinfo->tm_hour>17||(timeinfo->tm_hour==17&&timeinfo->tm_min>30))) printf(" 全勤!");p=p->next;}printf("\n\n显示完毕,按回车键返回主菜单!");getchar();getchar();system("cls");return;}void searchRec() /*根据工号或姓名查找考勤信息*/{worker *p=head;int c,i;char s[10],k[10];if(head==NULL){printf("\n\n\n\n\t\t\t数据库中没有职工信息\n\n\t\t\t无法使用该功能\n\n\t\t\t请按回车键返回主菜单新建职工信息!");getchar();getchar();system("cls");return;}printf("\n\n\n\t\t\t请选择输入工号还是姓名:\n\n\t\t\t1.选择输入工号\n\n\t\t\t2.选择输入姓名\n\n");printf("\n\t\t您的选择(以回车键结束):");scanf("%s",k);if(fun(k)==0)return;elsec=atoi(k);if(c<1||c>2){printf("\n\n\t\t输入错误!\n\n\t\t请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return ;}system("cls");switch(c){case 1:{printf("\n\n\n\n\n\n\t\t\t请输入工号(以回车键结束):");scanf("%s",s);for(p=head;strcmp(p->id,s)!=0&&p->next!=NULL;p=p->next);if(strcmp(p->id,s)!=0&&p->next==NULL){printf("\n\n\n\n\t\t\t不存在该工号\n");printf("\n\n\n\n\t\t\t请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return;}break;}case 2:{printf("\n\n\n\n\n\n\t\t\t请输入姓名(以回车键结束):");scanf("%s",s);for(p=head;strcmp(p->name,s)!=0&&p->next!=NULL;p=p->next);if(strcmp(p->name,s)!=0&&p->next==NULL){printf("\n\n\n\n\t\t\t不存在该姓名\n");printf("\n\n\n\n\t\t\t请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return;}break;}}system("cls");printf("职工号姓名上午上班上午下班下午上班下午下班\n\n");printf(" %s %s",p->id,p->name);printf(" 周一");for(i=0;i<4;i++){if(p->time[i].hour==88)printf(" --:-- ");if(p->time[i].hour!=88)printf(" %2d:%2d ",p->time[i].hour,p->time[i].minute);if(i==4)printf("\n\n");}printf("\n 周二");for(i=4;i<8;i++){if(p->time[i].hour==88)printf(" --:-- ");if(p->time[i].hour!=88)printf(" %2d:%2d ",p->time[i].hour,p->time[i].minute);if(i==8)printf("\n\n");}printf("\n 周三");for(i=8;i<12;i++){if(p->time[i].hour==88)printf(" --:-- ");if(p->time[i].hour!=88)printf(" %2d:%2d ",p->time[i].hour,p->time[i].minute);if(i==12)printf("\n\n");}printf("\n 周四");for(i=12;i<16;i++){if(p->time[i].hour==88)printf(" --:-- ");if(p->time[i].hour!=88)printf(" %2d:%2d ",p->time[i].hour,p->time[i].minute);if(i==16)printf("\n\n");}printf("\n 周五");for(i=16;i<20;i++){if(p->time[i].hour==88)printf(" --:-- ");if(p->time[i].hour!=88)printf(" %2d:%2d ",p->time[i].hour,p->time[i].minute);if(i==20)printf("\n\n");}printf("\n\n\n\n\n\n\t\t\t显示完毕,按回车键返回主菜单!");getchar();getchar();system("cls");return;}void saveRec() /*储存所有信息*/{worker *p=head;FILE *fp,*key;int i;if(writeinfo_flag==0){printf("\n\n\n\n\t\t\t信息无改动,无需保存!\n\n\t\t\t请按回车键返回主菜单\n");getchar();getchar();system("cls");return;}if(writeinfo_flag==1){if((fp=fopen("workerRec.txt","w"))==NULL||(key=fopen("key.txt","w"))==NULL){printf("\n\t\t\t提示:\n\n\t\t\t存储信息失败!\n");printf("\n\t\t\t请按回车键进入主菜单重新开始\n");getchar();getchar();system("cls");return;}while(p!=NULL){fprintf(fp,"%s\n%s\n",p->id,p->name);for(i=0;i<20;i++)fprintf(fp,"%d\n%d\n",p->time[i].hour,p->time[i].minute);p=p->next;}fprintf(key,"%s",password);fclose(fp),fclose(key);writeinfo_flag=0; /*消除改动标志*/printf("\n\n\n\n\n\t\t\t保存完毕,按回车键继续!");getchar();getchar();system("cls");return;}}void deleteRec() //删除考勤信息*/{worker *p,*pre=head;char s[16],k[10];int c;if(head==NULL){printf("\n\n\n\n\t\t\t数据库中没有职工信息\n\n\t\t\t无法使用该功能\n\n\t\t\t请按回车键返回主菜单新建职工信息!");getchar();getchar();system("cls");return;}printf("\n\n\n\t\t\t提示:\n\n\t\t\t初始密码为:888888\n");printf("\n\n\n\t\t\t请输入密码(密码不超过15个字符):");scanf("%s",s);while(strcmp(password,s)!=0){printf("\n\n\t\t\t密码错误!\n\n");printf("\t\t\t按回车键返回主菜单!");getchar();getchar();system("cls");return;}printf("\n\n\n\t\t\t密码输入成功!\n\n\t\t\t请按回车键继续");getchar();getchar();system("cls");printf("\n\n\n\t\t\t请选择输入工号还是姓名:\n\n\t\t\t1.选择输入工号\n\n\t\t\t2.选择输入姓名\n\n");printf("\n\t\t您的选择(以回车键结束):");scanf("%s",k);if(fun(k)==0)return;elsec=atoi(k);if(c<1||c>2){printf("\n\n\t\t输入错误!\n\n\t\t请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return ;}system("cls");switch(c){case 1:{printf("\n\n\n\n\n\n\t\t\t请输入工号:");scanf("%s",s);for(p=head;strcmp(p->id,s)!=0&&p->next!=NULL;p=p->next);if(strcmp(p->id,s)!=0&&p->next==NULL){printf("\n\n\n\n\t\t\t不存在该工号\n");printf("\n\n\n\n\t\t\t请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return;}break;}case 2:{printf("\n\n\n\n\n\n\t\t\t请输入姓名:");scanf("%s",s);for(p=head;strcmp(p->name,s)!=0&&p->next!=NULL;p=p->next);if(strcmp(p->name,s)!=0&&p->next==NULL){printf("\n\n\n\n\t\t\t不存在该姓名\n");printf("\n\n\n\n\t\t\t请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return;}break;}}system("cls");if(p==head)head=p->next;else{for(;pre->next!=p;pre=pre->next);pre->next=p->next;}free(p);printf("\n\n\n\n\n\n\t\t\t删除成功,请按回车键返回主菜单!");getchar();getchar();system("cls");writeinfo_flag=1;return;}void modifyRec() /*修改考勤信息*/{worker *p,*pre=head;char s[16],k[10];int c;if(head==NULL){printf("\n\n\n\n\t\t\t数据库中没有职工信息\n\n\t\t\t无法使用该功能\n\n\t\t\t请按回车键返回主菜单新建职工信息!");getchar();getchar();system("cls");return;}printf("\n\n\n\t\t\t提示:\n\n\t\t\t初始密码为:888888\n");printf("\n\n\n\t\t\t请输入密码(密码不超过15个字符):");scanf("%s",s);if(strcmp(password,s)!=0){printf("n\n\n\t\t\t密码错误!\n\n");printf("\t\t\t按回车键返回主菜单!");getchar();getchar();system("cls");return;}printf("\n\n\n\t\t\t密码输入成功!\n\n\t\t\t请按回车键继续");getchar();getchar();system("cls");printf("\n\n\n\t\t\t请选择通过工号修改还是姓名修改:\n\n\t\t\t1.选择输入工号\n\n\t\t\t2.选择输入姓名\n\n");printf("\n\n\n\t\t您的选择(以回车键结束):");scanf("%s",k);if(fun(k)==0)return;elsec=atoi(k);if(c<1||c>2){printf("\n\n\t\t输入错误!\n\n\t\t请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return ;}system("cls");switch(c){case 1:{printf("\n\n\n\n\n\n\t\t\t请输入工号:");scanf("%s",s);for(p=head;strcmp(p->id,s)!=0&&p->next!=NULL;p=p->next);if(strcmp(p->id,s)!=0&&p->next==NULL){printf("\n\n\n\n\t\t\t不存在该工号\n");printf("\n\n\n\n\t\t\t请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return;}break;}case 2:{printf("\n\n\n\n\n\n\t\t\t请输入姓名:");scanf("%s",s);for(p=head;strcmp(p->name,s)!=0&&p->next!=NULL;p=p->next);if(strcmp(p->name,s)!=0&&p->next==NULL){printf("\n\n\n\n\t\t\t不存在该姓名\n");printf("\n\n\n\n\t\t\t请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return;}break;}}system("cls");printf("\n\n\n\t\t\t请选择要修改的内容:\n\n\t\t\t1.工号\n\n\t\t\t2.姓名\n\n\t\t\t3.上午上班时间\n\n\t\t\t4.上午下班时间\n\n\t\t\t5.下午上班时间\n\n\t\t\t6.下午下班时间");printf("\n\n\n\t\t您的选择(以回车键结束):");scanf("%s",&k);if(fun(k)==0)return;elsec=atoi(k);if(c<1||c>6){printf("\n\n\t\t输入错误!\n\n\t\t请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return ;}system("cls");switch(c){case 1:printf("\n\n\n\t\t请输入要修改的工号(至多10个字符):");scanf("%s",p->id);break;case 2:printf("\n\n\n\t\t请输入要修改的姓名(至多10个字符):");scanf("%s",p->name);break;case 3:printf("\n\n\n\t\t请输入要修改星期几的考勤(请输入1~5):");scanf("%d",&c);printf("\n\n\n\t请输入要修改的时间和分钟(如:10点5分就输入10:05):");scanf("%d:%d",&p->time[(c-1)*4].hour,&p->time[(c-1)*4].minute);break;case 4:printf("\n\n\n\t\t请输入要修改星期几的考勤(请输入1~5):");scanf("%d",&c);printf("\n\n\n\t请输入要修改的时间和分钟(如:10点5分就输入10:05):");scanf("%d:%d",&p->time[(c-1)*4+1].hour,&p->time[(c-1)*4+1].minute);break;case 5:printf("\n\n\n\t\t请输入要修改星期几的考勤(请输入1~5):");scanf("%d",&c);printf("\n\n\n\t请输入要修改的时间和分钟(如:10点5分就输入10:05):");scanf("%d:%d",&p->time[(c-1)*4+2].hour,&p->time[(c-1)*4+2].minute);break;case 6:printf("\n\n\n\t\t请输入要修改星期几的考勤(请输入1~5):");scanf("%d",&c);printf("\n\n\n\t请输入要修改的时间和分钟(如:10点5分就输入10:05):");scanf("%d:%d",&p->time[(c-1)*4+3].hour,&p->time[(c-1)*4+3].minute);break;}printf("\n\n\n\t\t\t修改成功,请按回车键返回主菜单!");getchar();getchar();system("cls");writeinfo_flag=1;return;}void resetPassword() /*重设密码*/{char s[16];printf("\n\n\n\t\t提示:\n\n\t\t初始密码为:888888\n");printf("\n\t\t请输入密码(密码不超过15个字符):");scanf("%s",s);if(strcmp(password,s)!=0){printf("\n\n\n\t\t密码错误!\n\n");printf("\n\n\n\t\t按回车键返回主菜单!");getchar();getchar();system("cls");return;}printf("\n\n\t\t密码输入成功!\n\n\t\t请按回车键继续");getchar();getchar();system("cls");printf("\n\n\n\t请输入要修改的密码(密码不超过15个字符):");scanf("%s",s);strcpy(password,s);printf("\n\n\t修改成功,请按回车键返回主菜单!");getchar();getchar();system("cls");writeinfo_flag=1;return;}void welcome() //欢迎界面{printf("\n\n\n\n\n\n\n\t\t\t 欢迎使用职工考勤管理系统");printf("\n\n\n\t\t\t请按任意键进入系统,开始您的操作");printf("\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t作者:XXX");getch();system("cls");return;}int fun(char *g){do{if(*g<'0'||*g>'9'){printf("\n\n\t\t输入错误!\n\n\t\t请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return 0 ;}g++;}while(*g!=0);return 1;}。
数据结构课程设计-职工信息管理系统-单链表实现程序源代码
printf(”请你输入要查找的工号:");
scanf(”%s",findmess);
p=Locate(l,findmess,”num”);
if(p)
{
printf(”\t\t\t\t查找结果\n”);
printstart(); //打印横线
printc(); //打印各学科标题
printe(p); //打印p结点各个数据成员的值
printf(”\t* [7] 排序 [8] 保存职工信息 *\n");
printf(”\t* [9] 显示数据 [0] 退出系统 *\n”);
printf(”\t* *\n”);
printf("\t*****************************************************************\n”);
}
void Wrong()
{
printf("\n=====>提示:输入错误!\n");
}
void Nofind()
{
printf("\n=====〉提示:没有找到该职工!\n”);
}
void printc() /* 本函数用于输出中文 */
{
printf(" 工号\t 姓名 性别 部门 职称 工资 总工资 平均工资\n");
Node *p,*r; /*实现删除操作的临时的结构体指针变量*/
char findmess[20];
if(!l—〉next) //当list无后继结点时,提示和结束返回del()
{
printf("\n=====>提示:没有记录可以删除!\n");
职工信息包括职工号
职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。
试设计一职工信息管理系统,使之能提供以下功能:系统以菜单方式工作职工信息录入功能(职工信息用文件保存)--输入职工信息浏览功能--输出查询和排序功能:--算法按工资查询按学历查询等职工信息删除、修改功能(任选项)课程设计内容2.2课程设计整体设计说明2.2.1课程设计内容2.2.2系统功能模块结构图2.2.3数据结构设计及用法说明2.2.4程序结构(画流程图)2.2.5各模块的功能2.3程序源代码及注释第3章课程设计总结参考资料问题补充:着急啊``求求啦```马上就交了``我来帮他解答程序:#include<iostream>#include<string>#include<fstream>using namespace std;const N=50; // 定义系统可录入的员工最大数值string Ename[N];long Enum[N];char Esex[N];int Eage[N];char Emarriage[N];int Edepart[N];int Eposition[N];int Edegree[50];int Eworktime[N];float Epay[N];class Employee{public:string Employeename;long Employeenum;char Employeesex;int Employeeage;char Employeemarriage;int Employeedepart;int Employeeposition;int Employeedegree;int Employeeworktime;float Employeepay;static long EmployeeMaxNum; static float EmployeeBasePay;void NewInfo();void ShowInfo();void showall();void showdepart(int depart); void showdegree(int degree); void showage(int min,int max); void shownum(long number); void RefreshInfo();void DeleteInfo();float Pay(int Employeegrade); static int MaxNum();};class DBOperate{public:string Employeename;long Employeenum;char Employeesex;int Employeeage;char Employeemarriage;int Employeedepart;int Employeeposition;int Employeedegree;int Employeeworktime;float Employeepay;static long EmployeeMaxNum;static float EmployeeBasePay;void WriteIn(int iflag);void ReadOut();void RefreshMaxNum(int iflag); //i=1 or -1 or 0};long Employee::EmployeeMaxNum = 1000;float Employee::EmployeeBasePay = 1500;int Employee::MaxNum() //返回系统已经存储的人数{int MN = 0;ifstream myf;myf.open("EmployeeMaxNum.txt");myf>>MN;cout<<MN<<endl;myf.close();return MN;}void Employee::NewInfo() //添加新成员函数{cout<<"新员工姓名: ";cin>>Employee::Employeename;Employee::Employeenum = EmployeeMaxNum + Employee::MaxNum()+1;cout<<"新员工性别(F为女性,M为男性): ";cin>>Employee::Employeesex;cout<<"新员工年龄: ";cin>>Employee::Employeeage;cout<<"新员工婚姻状况(Y为已婚,N为未婚): ";cin>>Employee::Employeemarriage;cout<<"新员工学历,请输入相应学历的序号: "<<endl;cout<<" [1:初中2:高中3:本科4:硕士5:博士] ";cin>>Employee::Employeedegree;while(Employee::Employeedegree !=1&&Employee::Employeedegree !=2&&E mployee::Employeedegree !=3&&Employee::Employeedegree !=4&&Employe e::Employeedegree !=5){cout<<"输入有误,请重新输入:"<<endl;cout<<" [1:初中2:高中3:本科4:硕士5:博士]";cin>>Employee::Employeedegree;}cout<<"新员工所在部门,请输入相应部门的序号:"<<endl;cout<<" [1:董事会2:市场部3:公关部4:客服中心5:信息中心] ";cin>>Employee::Employeedepart;while(Employee::Employeedepart !=1&&Employee::Employeedepart !=2&&E mployee::Employeedepart !=3&&Employee::Employeedepart !=4&&Employee ::Employeedepart!=5){cout<<"输入有误,请重新输入:"<<endl;cout<<" [1:董事会2:市场部3:公关部4:客服中心5:信息中心] ";cin>>Employee::Employeedepart;}cout<<"新员工职位, 请输入相应职位的序号: "<<endl;cout<<" [1:临时职员2: 正式职员3:主任4:部门经理5:董事长] ";cin>>Employee::Employeeposition;while(Employee::Employeeposition !=1&&Employee::Employeeposition !=2&& Employee::Employeeposition !=3&&Employee::Employeeposition !=4&&Empl oyee::Employeeposition !=5){cout<<"输入有误,请重新输入:"<<endl;cout<<" [1:临时职员2: 正式职员3:主任4:部门经理5:董事长] ";cin>>Employee::Employeeposition;}cout<<"新员工的工作时(不需要输入单位): ";cin>>Employee::Employeeworktime;Employee::Employeepay = Employee::Pay(Employee::Employeeposition);DBOperate dbo;dbo.ReadOut();int MaxNum = Employee::MaxNum();Enum[MaxNum] = Employee::Employeenum;Ename[MaxNum] = Employee::Employeename;Esex[MaxNum] = Employee::Employeesex;Eage[MaxNum] = Employee::Employeeage;Emarriage[MaxNum] = Employee::Employeemarriage;Edegree[MaxNum] = Employee::Employeedegree;Edepart[MaxNum] = Employee::Employeedepart;Eposition[MaxNum] = Employee::Employeeposition;Eworktime[MaxNum] = Employee::Employeeworktime;Epay[MaxNum] = Employee::Employeepay;dbo.WriteIn(1);cout<<" 添加新成员成功!"<<endl;return;}void Employee::ShowInfo() //程序主体数据输出函数{int choice1,choice2,min,max;long searchnum;Employee e;cout<<" 请选择查询方式:"<<endl;cout<<"******************************************"<<endl;cout<<"* 输出全体职工信息--------------------- 1"<<endl;cout<<"* 按职工部门输出----------------------- 2"<<endl;cout<<"* 按职工学历输出----------------------- 3"<<endl;cout<<"* 按职工年龄输出----------------------- 4"<<endl;cout<<"* 按职工编号输出----------------------- 5"<<endl;cout<<"******************************************"<<endl;cin>>choice1;switch(choice1){case 1: showall();break;case 2: cout<<"请输入要查询职工的部门编号: [1:董事会2:市场部3:公关部4:客服中心5:信息中心] " ;cin>>choice2;e.showdepart(choice2);break;case 3: cout<<"请输入要查询职工的学历编号: [1:初中2:高中3:本科4:硕士5:博士] ";cin>>choice2;e.showdegree(choice2);break;case 4: cout<<"请输入要查询的年龄范围: ";cout<<"最小值: ";cin>>min;cout<<"最大值: ";cin>>max;e.showage(min,max);break;case 5: cout<<"请输入要查询的员工号: ";cin>>searchnum;e.shownum(searchnum);break;default: cout<<"出错啦! "<<endl;break;}}void Employee::showall() //全体员工输出函数{ int i;long number;for(i=0;i<Employee::MaxNum();i++)number = Enum[i];shownum(number);}}void Employee::showdepart(int depart) //按员工所在部门输出函数{int i;switch(depart){case 1: cout<<"董事会的成员有: >"<<endl; break;case 2: cout<<"市场部的成员有: >"<<endl; break;case 3: cout<<"公关部的成员有: >"<<endl; break;case 4: cout<<"客服中心成员有: >"<<endl; break;case 5: cout<<"信息中心成员有: >"<<endl; break;default: cout<<"输入错误!>"<<endl; break;}for(i=0;i<Employee::MaxNum();i++){if(Edepart[i] == depart){long number = Enum[i];shownum(number);} else continue;}}void Employee::showdegree(int degree) //按员工学历输出函数{int i;switch(degree){case 1:cout<<"初中学历的员工有:"<<endl;break;case 2:cout<<"高中学历的员工有:"<<endl;break;case 3:cout<<"本科学历的员工有:"<<endl;break;case 4:cout<<"硕士学位的员工有:"<<endl;break;case 5:cout<<"博士学位的员工有:"<<endl;break;}for(i=0;i<Employee::MaxNum();i++){if(Edegree[i] == degree){long number = Enum[i];shownum(number);} else continue;}}void Employee::showage(int min,int max) //按员工年龄段输出函数{int i;for(i=0;i<Employee::MaxNum();i++){if(Eage[i]>=min&&Eage[i]<=max){long number = Enum[i];shownum(number);}else continue;}}void Employee::shownum(long number) //按员工编号输出函数{int i;for(i=0;i<Employee::MaxNum();i++){if(Enum[i] == number){cout<<"**********************************"<<endl;cout<<"员工编号>"<<Enum[i]<<endl;cout<<"姓名>"<<Ename[i]<<endl;cout<<"性别>";if(Esex[i]=='F') cout<<"女"<<endl;else if(Esex[i]=='M') cout<<"男"<<endl;cout<<"年龄>"<<Eage[i]<<"岁"<<endl;cout<<"婚姻情况>";if(Emarriage[i]=='Y') cout<<"已婚"<<endl;else if(Emarriage[i]=='N') cout<<"未婚"<<endl; cout<<"学历>";switch (Edegree[i]){case 1:cout<<"初中"<<endl;break;case 2:cout<<"高中"<<endl;break;case 3:cout<<"本科"<<endl;break;case 4:cout<<"硕士"<<endl;break;case 5:cout<<"博士"<<endl;break;}cout<<"所在部门>";switch (Edepart[i]){case 1:cout<<"董事会"<<endl;break;case 2:cout<<"市场部"<<endl;break;case 3:cout<<"公关部"<<endl;break;case 4:cout<<"客服中心"<<endl;break;case 5:cout<<"信息中心"<<endl;break;}cout<<"所任职务>";switch (Eposition[i]){case 1:cout<<"临时成员"<<endl;break;case 2:cout<<"正式员工"<<endl;break;case 3:cout<<"主任"<<endl;break;case 4:cout<<"部门经理"<<endl;break;case 5:cout<<"董事长"<<endl;break;}cout<<"工作时长>"<<Eworktime[i]<<"小时"<<endl; cout<<"额定工资>"<<Epay[i]<<"元"<<endl;cout<<"**********************************"<<endl;}else continue;}}void Employee::RefreshInfo() //修改员工信息的函数{int cNum = 1000;DBOperate dbo;dbo.ReadOut();void Employee::shownum(long number);cout<<"请输入您要修改的员工编号:>";cin>>cNum;int MN;MN = Employee::MaxNum();for(int i=0;i<MN;i++) //遍历数据文件,查找要修改的员工数据{if(Enum[i] == cNum){Employee::shownum(cNum);cout<<"请输入该员工的新信息: "<<endl;cout<<"新员工姓名: "; //录入员工的新的数据,员工号保持不变cin>>Employee::Employeename;Ename[i] = Employee::Employeename;cout<<"新员工性别: [F为女性,M为男性]: ";cin>>Employee::Employeesex;Esex[i] = Employee::Employeesex;cout<<"新员工年龄: ";cin>>Employee::Employeeage;Eage[i] = Employee::Employeeage;cout<<"新员工婚姻状况(Y为已婚,N为未婚): ";cin>>Employee::Employeemarriage;Emarriage[i] = Employee::Employeemarriage;cout<<"新员工学历,请输入相应学历的序号:"<<endl;cout<<" [1:初中2:高中3:本科4:硕士5:博士] ";cin>>Employee::Employeedegree;while(Employee::Employeedegree !=1&&Employee::Employeedegree !=2&&E mployee::Employeedegree !=3&&Employee::Employeedegree !=4&&Employe e::Employeedegree !=5){cout<<"输入有误,请重新输入:"<<endl;cout<<" [1:初中2:高中3:本科4:硕士5:博士] ";cin>>Employee::Employeedegree;}Edegree[i] = Employee::Employeedegree;cout<<"新员工所在部门,请输入相应部门的序号: "<<endl;cout<<" [1:董事会2:市场部3:公关部4:客服中心5:信息中心] ";cin>>Employee::Employeedepart;while(Employee::Employeedepart !=1&&Employee::Employeedepart !=2&&E mployee::Employeedepart !=3&&Employee::Employeedepart !=4&&Employee ::Employeedepart!=5){cout<<"输入有误,请重新输入:"<<endl;cout<<" [1:董事会2:市场部3:公关部4:客服中心5:信息中心] ";cin>>Employee::Employeedepart;}Edepart[i] = Employee::Employeedepart;cout<<"新员工职位,请输入相应职位的序号:"<<endl;cout<<" [1:临时职员2: 正式职员3:主任4:部门经理5:董事长] ";cin>>Employee::Employeeposition;while(Employee::Employeeposition !=1&&Employee::Employeeposition !=2&& Employee::Employeeposition !=3&&Employee::Employeeposition !=4&&Empl oyee::Employeeposition !=5){cout<<"输入有误,请重新输入:"<<endl;cout<<" [1:临时职员2: 正式职员3:主任4:部门经理5:董事长] ";cin>>Employee::Employeeposition;}Eposition[i] = Employee::Employeeposition;cout<<"新员工的工作时(不需要输入单位): ";cin>>Employee::Employeeworktime;Eworktime[i] = Employee::Employeeworktime;Epay[i] = Employee::Pay(Employee::Employeeposition);break;}}dbo.WriteIn(0);}void Employee::DeleteInfo() //删除员工数据的函数{ char tmp;int cNum = 1000;DBOperate dbo;dbo.ReadOut();void Employee::shownum(long number);cout<<"请输入您要修改的员工编号>:";cin>>cNum;int MN;MN = Employee::MaxNum();for(int i=0;i<MN;i++) //遍历数据文件,查找要删除的员工{if(Enum[i] == cNum)Employee::shownum(cNum);}cout<<"确认要删除该员工信息?(Y为确认N为放弃):"; cin>>tmp;if(tmp=='Y'){if(i==MN-1)dbo.WriteIn(-1);else{for(int j=i;j<MN-1;j++){ Enum[j] = Enum[j+1]; }dbo.WriteIn(-1);}cout<<" 删除操作成功! "<<endl;}}float Employee::Pay(int Employeeposition) //根据员工职位计算工资的函数{float tmpPay;tmpPay = Employee::EmployeeBasePay + Employee::Employeeposition * Employee::EmployeeBasePay;return tmpPay;}void DBOperate::WriteIn(int iflag) //数据操作函数写入{DBOperate::RefreshMaxNum(iflag);ofstream myf("Employee.txt");Employee e;int MN;MN = e.MaxNum();for(int i=0;i<MN;i++){myf<<Enum[i]<<'\n'<<Ename[i]<<'\n'<<Esex[i]<<'\n'<<Eage[i]<<'\n'<<Emarriag e[i]<<'\n'<<Edegree[i]<<'\n'<<Edepart[i]<<'\n'<<Eposition[i]<<'\n'<<Eworktime[i ]<<'\n'<<Epay[i]<<'\n';}myf.close();return;}void DBOperate::ReadOut() //数据操作函数读出{ifstream myf("Employee.txt");Employee e;int MN;MN = e.MaxNum();for(int i=0 ;i<MN;i++){myf>>DBOperate::Employeenum>>DBOperate::Employeename>>DBOperate ::Employeesex>>DBOperate::Employeeage>>DBOperate::Employeemarriage >>DBOperate::Employeedegree>>DBOperate::Employeedepart>>DBOperate ::Employeeposition>>DBOperate::Employeeworktime>>DBOperate::Employe epay;Enum[i] = DBOperate::Employeenum;Ename[i] = DBOperate::Employeename;Esex[i] = DBOperate::Employeesex;Eage[i] = DBOperate::Employeeage;Emarriage[i] = DBOperate::Employeemarriage;Edegree[i] = DBOperate::Employeedegree;Edepart[i] = DBOperate::Employeedepart;Eposition[i] = DBOperate::Employeeposition;Eworktime[i] = DBOperate::Employeeworktime;Epay[i] = DBOperate::Employeepay;}myf.close();}void DBOperate::RefreshMaxNum(int iflag) //更新系统中员工计数文件的函数{int MaxNum = 0;ifstream myif("EmployeeMaxNum.txt");myif>>MaxNum;myif.close();MaxNum = MaxNum+iflag;ofstream myof("EmployeeMaxNum.txt");myof<<MaxNum;myof.close();}int main() //主函数{system("color 06f"); //设置当前窗口的背景色和前景色0 = 黑色8 = 灰色// 1 = 蓝色9 = 淡蓝色// 2 = 绿色A = 淡绿色// 3 = 浅绿色B = 淡浅绿色// 4 = 红色C = 淡红色// 5 = 紫色D = 淡紫色// 6 = 黄色E = 淡黄色// 7 = 白色F = 亮白色int select = 0;while(select!=5){cout<<" ╭————————————《主菜单》———————————╮"<<endl;cout<<" ∣请选择功能∣"<<endl;cout<<" ├————————————————————————————┤"<<endl; cout<<" ∣1.新建并输入职工数据∣"<<endl;cout<<" ∣2.按条件输出职工数据∣"<<endl;cout<<" ∣3.修改指定职工的数据∣"<<endl;cout<<" ∣4.删除数据∣"<<endl;cout<<" ∣5.退出∣"<<endl;cout<<" ╰————————————————————————————╯"<<endl;cout<<" ——————————————————————————————"<<endl; cout<<" 请选择您要服务的类别: " ;cin>>select;Employee e;DBOperate dbo;switch(select){case 1:e.NewInfo(); break;case 2:dbo.ReadOut();e.ShowInfo(); break;case 3:e.RefreshInfo(); break;case 4:e.DeleteInfo(); break;case 5: break;default:cout<<"命令错误!"<<endl; }if(select == 5)break;}exit(1);return 0;}。
VF教职工信息管理系统-源程序
*主程序**********************************************set talk offset esca offset excl onset cent onset hour to 24set sysmenu toSET SAFE OFFSET SYSMENU OFFSET EXCL ONSET STATUS BAR OFFSET CLOCK STATUSSET DELE ONpublic qxqx=0_screen.visible=.f._screen.maxbutton=.f._screen.minbutton=.f._screen.windowstate=1_screen.closable=.f._screen.caption='沈阳市现代科技学校教职工信息管理系统'do form fmread events*fm.scx click 事件**********************************************thisform.releasedo form 密码*密码.scx 确定按钮 click 事件**********************************************sele czyxxi=i+1if i <= 3if alltrim(密码)<>thisform.mm.valuemessagebox('用户名称或密码无效,请重试!',16,'警告窗口') retuelseif 权限='特权用户'qx=1elseqx=0endithisform.release_screen.visible=.t._screen.windowstate=2_SCREEN.PICTURE = 'D:\GZGL\PIC\clouds.jpg'do form cshdo zhu.mprendielsemessagebox("输入密码超过三次","确认")quitendi*操作员维护菜单**********************************************if qx=1do form czyendi*字典库维护菜单**********************************************if qx=1do form weihuendi*增加人员菜单**********************************************if qx=1do form zjryendi*减少人员菜单**********************************************if qx=1do form gzdelendi*工资变动菜单**********************************************if qx=1do form gzbdendi*工资修改菜单**********************************************if qx=1do form gzxgendi*打印名册**********************************************do form mc*工资变动单**********************************************do form dy2*工资汇总台帐**********************************************do form hztz*weihu.scx (字典库维护)增加按钮**********************************************sele &bdgo bottappe blankthisform.refresh*weihu.scx(字典库维护)删除按钮thisform.refreshsele &bddelethisform.refresh*weihu.scx(字典库维护)恢复按钮**********************************************sele &bd=TABLEREVERT(.T.)*weihu.scx (字典库维护)保存按钮**********************************************sele &bd=TABLEUPDATE(.T.)*weihu.scx (字典库维护)修改按钮**********************************************thisform.&bd2..readonly =.f.thisform.refresh*zjry.scx (增加人员)增加按钮事件**********************************************sele gzbxSET FILT TOsele max(dm) into ARRAY jl from gzbx where .t.go bottomthisform.grdm.value=jl(1) + 1go toploca for gzbx.sfz = thisform.sfz.valueif found()wait window '输入的人员重复,身份证号不唯一'retuelseif thisform.xb.value=1xbb='男'elsexbb='女'endiappe blankappe blankrepl dm with jl+1 ,xm with thisform.xm. value,bm with thisform.dwdm.valuerepl mz with thisform.mz.value ,xl with thisform.xl.value,gzsj with thisform.gzsj.value, rjsj with thisform.rjsj.valuerepl zc with thisform.zc.value, dp with thisform.dp.value,cssj with thisform.cssj.value,ygxz with thisform.ygxz.value,zb with thisform.zb.value,gk with thisform.gkdw.valuerepl zw with thisform.zw.value,djgw with thisform.djgw.value,gwlb with thisform.gwlb.value,jnlb with thisform.jnlb.value,gwgz with thisform.gwgz.valuerepl jndj with thisform.jndj.value,jngz with thisform.jngz.value,qtgz with thisform.qtgz.value repl zhbt with thisform.zhbt.value,djgz with thisform.djgz.value,mlbt with thisform.mlbt.value,jbbx with thisform.ylbx.value,gbbx with val(thisform.cxbx.displayvalue) repl jsbt with val(thisform.jsbt.displayvalue),gzyy with thisform.gzyy.value,ryly with thisform.ryly.valuerepl sfz with thisform.sfz.value,ryly with thisform.ryly.valuerepl jljt with val(thisform.jljt.value),xb with xbbendisele bddappen from gzbx for dm=jl+1thisform.refresh*gzdel.scx (减少人员)删除按钮click**********************************************set dele onsele gzbxrepl gzyy with thisform.text2.valuesele bddappe from gzbx for alltrim(xm)= alltrim(thisform.xmm.value) and dm= thisform.dm.valuerepl jslb with bo1.value for alltrim(xm)= alltrim(thisform.xmm.value) and dm= thisform.dm.valuerepl gzyy with thisform.text2.valuerepl gzrq with date()sele gzdelappe from gzbd for alltrim(xm)= alltrim(thisform.xmm.value) and dm= thisform.dm.valueappe from gzbx for alltrim(xm)= alltrim(thisform.xmm.value) and dm= thisform.dm.valuerepl jslb with bo1.value for alltrim(xm)= alltrim(thisform.xmm.value) and dm= thisform.dm.valuerepl gzyy with thisform.text2.valuerepl gzrq with date()sele gzbddele for alltrim(xm)= alltrim(thisform.xmm.value) and dm= thisform.dm.valuesele gzbxdelewait windows '删除成功!'set filt tothisform.refresh*gzxg.scx (个人修改)保存按钮click**********************************************sele gzbxif thisform.xb.value=1xbb='男'elsexbb='女'endirepl gzbx.sfz with thisform.sfz.valuerepl gzbx.xm with thisform.xm.valuerepl gzbx.cssj with thisform.cssj.valuerepl gzbx.mz with thisform.mz.valuerepl gzbx.xl with thisform.xl.valuerepl gzbx.rjsj with thisform.rjsj.valuerepl gzbx.gzsj with thisform.gzsj.valuerepl gzbx.zb with thisform.zb.valuerepl gzbx.dp with thisform.dp.valuerepl gzbx.ygxz with thisform.ygxz.valuerepl gzyy with thisform.gzyy.valuerepl ryly with thisform.ryly.value,xb with xbb*plxg.scx (批量修改)确定按钮事件click*********************************************set excl ontr=''if !empty(thisform.txl.value)if !empty(tr)tr=tr+ ' and alltrim(xl) = alltrim(thisform.txl.value )' elsetr= ' alltrim(xl) = alltrim(thisform.txl.value )'endiendiif !empty(thisform.tzc.value)if !empty(tr)tr=tr+ ' and alltrim(zc) = alltrim(thisform.tzc.value) ' elsetr = ' alltrim(zc) = alltrim(thisform.tzc.value) 'endiendiif !empty(thisform.tqtgz.value)if !empty(tr)tr=tr+ ' and qtgz = vaL(thisform.tqtgz.value) 'elsetr= ' qtgz = val(thisform.tqtgz.value) 'endiendiif !empty(thisform.tzw.value)if !empty(tr)tr=tr+ ' and alltrim(zw) = alltrim(thisform.tzw.value) ' elsetr= ' alltrim(zw) = alltrim(thisform.tzw.value) 'endiendiif !empty(thisform.tdjgz.value)if !empty(tr)tr=tr+ ' and djgz = val(thisform.tdjgz.value) 'elsetr= ' djgz = val(thisform.tdjgz.value) 'endiendiif !empty(thisform.tjngz.value)if !empty(tr)tr=tr+ ' and jngz = val(thisform.tjngz.value) 'elsetr= ' jngz = val(thisform.tjngz.value) 'endiendiif !empty(thisform.gkdw.value)if !empty(tr)tr=tr+ ' and alltrim(gk) = alltrim(thisform.tgkdw.value) ' elsetr= ' alltrim(gk) = alltrim(thisform.tgkdw.value) 'endiendiif !empty(thisform.tjndj.value)if !empty(tr)tr=tr+ ' and jndj = thisform.tjndj.value 'elsetr= ' jndj = thisform.tjndj.value 'endiendiif !empty(thisform.tmlbt.value)if !empty(tr)tr=tr+ ' and mlbt = val(thisform.tmlbt.value) 'elsetr= ' mlbt = val(thisform.tmlbt.value) 'endiendiif !empty(thisform.tgwgz.value)if !empty(tr)tr=tr+ ' and gwgz = val(thisform.tgwgz.value) 'elsetr= ' gwgz = val(thisform.tgwgz.value) 'endiendiif !empty(thisform.tdwdm.value)if !empty(tr)tr=tr+ ' and bm = thisform.tdwdm.value 'elsetr= ' bm = thisform.tdwdm.value 'endiendiif !empty(thisform.tdjgw.value)if !empty(tr)tr=tr+ ' and djgw = thisform.tdjgw.value 'elsetr= ' djgw = thisform.tdjgw.value 'endiendiif !empty(thisform.tylbx.value)if !empty(tr)tr=tr+ ' and jbbx = val(thisform.tylbx.value) 'elsetr= ' jbbx = val(thisform.tylbx.value) 'endiendiif !empty(thisform.tjsbt.value)if !empty(tr)tr=tr+ ' and jsbt = val(thisform.tjsbt.value) 'elsetr= ' jsbt = val(thisform.tjsbt.value) 'endiendiif !empty(thisform.tjljt.value)if !empty(tr)tr=tr+ ' and jljt = val(thisform.tjljt.value) 'elsetr= ' jljt = val(thisform.tjljt.value) 'endiendiif !empty(thisform.tjnlb.value)if !empty(tr)tr=tr+ ' and alltrim(jnlb) = alltrim(thisform.tjnlb.value) ' elsetr= ' alltrim(jnlb) = alltrim(thisform.tjnlb.value) 'endiendiif !empty(thisform.tgwlb.value)if !empty(tr)tr=tr+ ' and alltrim(gwlb) = alltrim(thisform.tgwlb.value) ' elsetr= ' alltrim(gwlb) = alltrim(thisform.tgwlb.value) 'endiendiif !empty(thisform.tcxbx.value)if !empty(tr)tr=tr+ ' and gbbx = vaL(thisform.tcxbx.value) 'elsetr= ' gbbx = val(thisform.tcxbx.value) 'endiendiif !empty(BO1.value)if !empty(thisform.TEXT1.value)if !empty(tr)IF BO1.value = '>='tr=tr+ ' and cssj >= thisform.TEXT1.value 'ENDIIF BO1.value = '>'tr=tr+ ' and cssj > thisform.TEXT1.value 'ENDIIF BO1.value = '='tr=tr+ ' and cssj = thisform.TEXT1.value 'ENDIIF BO1.value = '<='tr=tr+ ' and cssj <= thisform.TEXT1.value 'ENDIIF BO1.value = '<'tr=tr+ ' and cssj < thisform.TEXT1.value 'ENDIelsetr= ' cssj >= thisform.TEXT1.value 'ENDIIF BO1.value = '>'tr= 'cssj > thisform.TEXT1.value 'ENDIIF BO1.value = '='tr= ' cssj = thisform.TEXT1.value 'ENDIIF BO1.value = '<='tr= ' cssj <= thisform.TEXT1.value 'ENDIIF BO1.value = '<'tr=' cssj < thisform.TEXT1.value 'ENDIendiendiENDIif !empty(BO2.value)if !empty(thisform.TEXT2.value)if !empty(tr)IF bo2.value = '>='tr=tr+ ' and rjsj >= thisform.text2.value ' ENDIIF bo2.value = '>'tr=tr+ ' and rjsj > thisform.text2.value ' ENDIIF bo2.value = '='tr=tr+ ' and rjsj = thisform.text2.value ' ENDIIF bo2.value = '<='tr=tr+ ' and rjsj <= thisform.text2.value ' ENDIIF bo2.value = '<'tr=tr+ ' and rjsj < thisform.text2.value ' ENDIelseIF bo2.value = '>='tr= ' rjsj >= thisform.text2.value 'ENDIIF bo2.value = '>'tr= 'rjsj > thisform.text2.value 'ENDIIF bo2.value = '='tr= ' rjsj = thisform.text2.value 'ENDIIF bo2.value = '<='tr= ' rjsj <= thisform.text2.value 'ENDIIF bo2.value = '<'tr=' rjsj < thisform.text2.value 'ENDIendiendiENDIif !empty(bo3.value)if !empty(thisform.text3.value)if !empty(tr)IF bo3.value = '>='tr=tr+ ' and gzsj >= thisform.text3.value ' ENDIIF bo3.value = '>'tr=tr+ ' and gzsj > thisform.text3.value ' ENDIIF bo3.value = '='tr=tr+ ' and gzsj = thisform.text3.value ' ENDIIF bo3.value = '<='tr=tr+ ' and gzsj <= thisform.text3.value ' ENDItr=tr+ ' and gzsj < thisform.text3.value 'ENDIelseIF bo3.value = '>='tr= ' gzsj >= thisform.text3.value 'ENDIIF bo3.value = '>'tr= 'gzsj > thisform.text3.value 'ENDIIF bo3.value = '='tr= ' gzsj = thisform.text3.value 'ENDIIF bo3.value = '<='tr= ' gzsj <= thisform.text3.value 'ENDIIF bo3.value = '<'tr=' gzsj < thisform.text3.value 'ENDIendiendiENDIsele gzbxSET FILT TO &trif !empty(tr)sele gzbxif !empty(thisform.zc.value)repl ALL zc with alltrim(thisform.zc.value)endiif !empty(thisform.qtgz.value)if type('thisform.qtgz.value')="C"thisform.qtgz.value=val(thisform.qtgz.value) endirepl all qtgz with (thisform.qtgz.value)endiif !empty(thisform.zw.value)REPL ALL zw WITH alltrim(thisform.zw.value) endiif !empty(thisform.djgz.value)if type('thisform.djgz.value')="C"thisform.djgz.value=val(thisform.djgz.value) endiREPL ALL djgz WITH (thisform.djgz.value)endiif !empty(thisform.jngz.value)REPL ALL jngz WITH val(thisform.jngz.value) endiif !empty(thisform.gkdw.value)repl all gk with alltrim(thisform.gkdw.value) endiif !empty(thisform.jndj.value)repl all jndj with thisform.jndj.valueendiif !empty(thisform.mlbt.value)repl all mlbt with val(thisform.mlbt.value) endiif !empty(thisform.gwgz.value)if type('thisform.gwgz.value')="C"thisform.gwgz.value=val(thisform.gwgz.value) endirepl all gwgz with (thisform.gwgz.value)endiif !empty(thisform.dwdm.value)repl all bm with thisform.dwdm.valueendiif !empty(thisform.djgw.value)repl all djgw with thisform.djgw.valueendiif !empty(thisform.ylbx.value)repl all jbbx with val(thisform.ylbx.value)endiif !empty(thisform.ryly.value)repl all ryly with alltrim(thisform.ryly.value)endiif !empty(thisform.zhbt.value)repl all zhbt with thisform.zhbt.valueendiif !empty(thisform.jsbt.value)repl all jsbt with val(thisform.jsbt.value)endiif !empty(thisform.jljt.value)repl all jljt with val(thisform.jljt.value)endiif !empty(thisform.jnlb.value)repl all jnlb with alltrim(thisform.jnlb.value)endiif !empty(thisform.gwlb.value)repl all gwlb with alltrim(thisform.gwlb.value)endiif !empty(thisform.cxbx.value)repl all gbbx with val(thisform.cxbx.value)endiif !empty(thisform.gzyy.value)repl all gzyy with alltrim(thisform.gzyy.value)endiif !empty(thisform.rjsj.value)repl all rjsj with alltrim(thisform.rjsj.value)endiif !empty(thisform.gzsj.value)repl all gzsj with alltrim(thisform.gzsj.value)endiELSEMESSAGEBOX("修改条件不能为空","确认")ENDIthisform.refresh*allocate.scx(综合查询)搜索按钮click事件**********************************************sele gzbxtr=''if !empty(thisformset.locate.sfz.value)if !empty(tr)tr=tr+ ' and alltrim(sfz) = alltrim(thisformset.locate.sfz.value) ' elsetr= ' alltrim(sfz) = alltrim(thisformset.locate.sfz.value) 'endiendiif !empty(thisformset.locate.xm.value)if !empty(tr)tr=tr+ ' and alltrim(xm) = alltrim(thisformset.locate.xm.value) ' elsetr= ' alltrim(xm) = alltrim(thisformset.locate.xm.value) 'endiendiif !empty(thisformset.locate.xl.value)if !empty(tr)tr=tr+ ' and alltrim(xl) = alltrim(thisformset.locate.xl.value )' elsetr= ' alltrim(xl) = alltrim(thisformset.locate.xl.value )'endiendiif thisformset.locate.xb.value=1if !empty(tr)tr=tr+ ' and xb = "男" 'elsetr= ' xb = "男" 'endiendiif thisformset.locate.xb.value=2if !empty(tr)tr=tr+ ' and xb = "女" 'elsetr= ' xb = "女" 'endiendiif !empty(thisformset.locate.mz.value)if !empty(tr)tr=tr+ ' and alltrim(mz) = alltrim(thisformset.locate.mz.value) ' elsetr= ' alltrim(mz) = alltrim(thisformset.locate.mz.value) 'endiendiif !empty(thisformset.locate.dp.value)if !empty(tr)tr=tr+ ' and alltrim(dp) = alltrim(thisformset.locate.dp.value) ' elsetr= ' alltrim(dp) = alltrim(thisformset.locate.dp.value) 'endiendiif !empty(thisformset.locate.zc.value)if !empty(tr)tr=tr+ ' and alltrim(zc) = alltrim(thisformset.locate.zc.value) ' elsetr = ' alltrim(zc) = alltrim(thisformset.locate.zc.value) 'endiendiif !empty(thisformset.locate.grdm.value)if !empty(tr)tr=tr+ ' and dm = val(thisformset.locate.grdm.value) 'elsetr= ' dm = val(thisformset.locate.grdm.value) 'endiendiif !empty(thisformset.locate.qtgz.value)if !empty(tr)tr=tr+ ' and qtgz = vaL(thisformset.locate.qtgz.value) 'elsetr= ' qtgz = val(thisformset.locate.qtgz.value) 'endiendiif !empty(thisformset.locate.zw.value)if !empty(tr)tr=tr+ ' and alltrim(zw) = alltrim(thisformset.locate.zw.value) ' elsetr= ' alltrim(zw) = alltrim(thisformset.locate.zw.value) 'endiendiif !empty(thisformset.locate.djgz.value)if !empty(tr)tr=tr+ ' and djgz = val(thisformset.locate.djgz.value) 'elsetr= ' djgz = val(thisformset.locate.djgz.value) 'endiendiif !empty(thisformset.locate.jngz.value)if !empty(tr)tr=tr+ ' and jngz = val(thisformset.locate.jngz.value) 'elsetr= ' jngz = val(thisformset.locate.jngz.value) 'endiendiif !empty(thisformset.locate.gkdw.value)if !empty(tr)tr=tr+ ' and alltrim(gk) = alltrim(thisformset.locate.gkdw.value) ' elsetr= ' alltrim(gk) = alltrim(thisformset.locate.gkdw.value) 'endiendiif !empty(thisformset.locate.jndj.value)if !empty(tr)tr=tr+ ' and jndj = thisformset.locate.jndj.value 'elsetr= ' jndj = thisformset.locate.jndj.value 'endiendiif !empty(thisformset.locate.mlbt.value)if !empty(tr)tr=tr+ ' and mlbt = val(thisformset.locate.mlbt.value) 'elsetr= ' mlbt = val(thisformset.locate.mlbt.value) 'endiendiif !empty(thisformset.locate.gwgz.value)if !empty(tr)tr=tr+ ' and gwgz = val(thisformset.locate.gwgz.value) 'elsetr= ' gwgz = val(thisformset.locate.gwgz.value) 'endiendiif !empty(thisformset.locate.dwdm.value)if !empty(tr)tr=tr+ ' and bm = thisformset.locate.dwdm.value 'elsetr= ' bm = thisformset.locate.dwdm.value 'endiendiif !empty(thisformset.locate.djgw.value)if !empty(tr)tr=tr+ ' and djgw = thisformset.locate.djgw.value 'elsetr= ' djgw = thisformset.locate.djgw.value 'endiendiif !empty(thisformset.locate.ylbx.value)if !empty(tr)tr=tr+ ' and jbbx = val(thisformset.locate.ylbx.value) 'elsetr= ' jbbx = val(thisformset.locate.ylbx.value) 'endiendiif !empty(thisformset.locate.ryly.value)if !empty(tr)tr=tr+ ' and alltrim(ryly) = alltrim(thisformset.locate.ryly.value) ' elsetr= ' alltrim(ryly) = alltrim(thisformset.locate.ryly.value) 'endiendiif !empty(thisformset.locate.zhbt.value)if !empty(tr)tr=tr+ ' and zhbt = thisformset.locate.zhbt.value 'elsetr= ' zhbt = thisformset.locate.zhbt.value 'endiendiif !empty(thisformset.locate.jsbt.value)if !empty(tr)tr=tr+ ' and jsbt = val(thisformset.locate.jsbt.value) 'elsetr= ' jsbt = val(thisformset.locate.jsbt.value) 'endiendiif !empty(thisformset.locate.jljt.value)if !empty(tr)tr=tr+ ' and jljt = val(thisformset.locate.jljt.value) 'elsetr= ' jljt = val(thisformset.locate.jljt.value) 'endiendiif !empty(thisformset.locate.jnlb.value)if !empty(tr)tr=tr+ ' and alltrim(jnlb) = alltrim(thisformset.locate.jnlb.value) ' elsetr= ' alltrim(jnlb) = alltrim(thisformset.locate.jnlb.value) 'endiendiif !empty(thisformset.locate.gwlb.value)if !empty(tr)tr=tr+ ' and alltrim(gwlb) = alltrim(thisformset.locate.gwlb.value) ' elsetr= ' alltrim(gwlb) = alltrim(thisformset.locate.gwlb.value) 'endiendiif !empty(thisformset.locate.cxbx.value)if !empty(tr)tr=tr+ ' and gbbx = vaL(thisformset.locate.cxbx.value) 'elsetr= ' gbbx = val(thisformset.locate.cxbx.value) 'endiendiif !empty(thisformset.locate.gzyy.value)if !empty(tr)tr=tr+ ' and alltrim(gzyy) = alltrim(thisformset.locate.gzyy.value) ' elsetr= ' alltrim(gzyy) = alltrim(thisformset.locate.gzyy.value) 'endiendiif !empty(BO1.value)if !empty(thisformset.locate.TEXT1.value)if !empty(tr)IF BO1.value = '>='tr=tr+ ' and cssj >= thisformset.locate.TEXT1.value 'ENDIIF BO1.value = '>'tr=tr+ ' and cssj > thisformset.locate.TEXT1.value 'ENDIIF BO1.value = '='tr=tr+ ' and cssj = thisformset.locate.TEXT1.value 'ENDIIF BO1.value = '<='tr=tr+ ' and cssj <= thisformset.locate.TEXT1.value 'ENDIIF BO1.value = '<'tr=tr+ ' and cssj < thisformset.locate.TEXT1.value 'ENDIelseIF BO1.value = '>='tr= ' cssj >= thisformset.locate.TEXT1.value 'ENDIIF BO1.value = '>'tr= 'cssj > thisformset.locate.TEXT1.value 'ENDIIF BO1.value = '='tr= ' cssj = thisformset.locate.TEXT1.value 'ENDIIF BO1.value = '<='tr= ' cssj <= thisformset.locate.TEXT1.value 'ENDIIF BO1.value = '<'tr=' cssj < thisformset.locate.TEXT1.value 'ENDIendiendiENDIif !empty(BO2.value)if !empty(thisformset.locate.TEXT2.value)if !empty(tr)IF bo2.value = '>='tr=tr+ ' and rjsj >= thisformset.locate.text2.value 'ENDIIF bo2.value = '>'tr=tr+ ' and rjsj > thisformset.locate.text2.value 'ENDIIF bo2.value = '='tr=tr+ ' and rjsj = thisformset.locate.text2.value 'ENDIIF bo2.value = '<='tr=tr+ ' and rjsj <= thisformset.locate.text2.value ' ENDIIF bo2.value = '<'tr=tr+ ' and rjsj < thisformset.locate.text2.value ' ENDIelseIF bo2.value = '>='tr= ' rjsj >= thisformset.locate.text2.value 'ENDIIF bo2.value = '>'tr= 'rjsj > thisformset.locate.text2.value 'ENDIIF bo2.value = '='tr= ' rjsj = thisformset.locate.text2.value 'ENDIIF bo2.value = '<='tr= ' rjsj <= thisformset.locate.text2.value 'ENDIIF bo2.value = '<'tr=' rjsj < thisformset.locate.text2.value 'ENDIendiendiENDIif !empty(bo3.value)if !empty(thisformset.locate.text3.value)if !empty(tr)IF bo3.value = '>='tr=tr+ ' and gzsj >= thisformset.locate.text3.value ' ENDIIF bo3.value = '>'tr=tr+ ' and gzsj > thisformset.locate.text3.value ' ENDIIF bo3.value = '='tr=tr+ ' and gzsj = thisformset.locate.text3.value ' ENDIIF bo3.value = '<='tr=tr+ ' and gzsj <= thisformset.locate.text3.value ' ENDIIF bo3.value = '<'tr=tr+ ' and gzsj < thisformset.locate.text3.value ' ENDIelseIF bo3.value = '>='tr= ' gzsj >= thisformset.locate.text3.value 'ENDIIF bo3.value = '>'tr= 'gzsj > thisformset.locate.text3.value 'ENDIIF bo3.value = '='tr= ' gzsj = thisformset.locate.text3.value 'ENDIIF bo3.value = '<='tr= ' gzsj <= thisformset.locate.text3.value 'ENDIIF bo3.value = '<'tr=' gzsj < thisformset.locate.text3.value 'ENDIendiendiENDIsele gzbxset filt to &trgo topcount to thisformset.xs.text1.valuesum gwgz ,jngz,djgz,qtgz to g1,g2,g3,g4thisformset.xs.text2.value =g1thisformset.xs.text3.value =g2thisformset.xs.text4.value =g3thisformset.xs.text5.value=g4thisformset.xs.refreshthisformset.xs.showgo topthisformset.refresh*allocate.scx清空按钮事件**********************************************thisformset.locate.sfz.value=''thisformset.locate.xb.value=0thisformset.locate.xm.value=''thisformset.locate.xl.value =''thisformset.locate.dp.value=''thisformset.locate.zc.value=''thisformset.locate.grdm.value=''thisformset.locate.qtgz.value=''thisformset.locate.zw.value=''thisformset.locate.djgz.value=''thisformset.locate.jngz.value=''thisformset.locate.gkdw.value=''thisformset.locate.jndj.value=''thisformset.locate.mlbt.value=''thisformset.locate.gwgz.value=''thisformset.locate.dwdm.value=''thisformset.locate.djgw.value=''thisformset.locate.ylbx.value=''thisformset.locate.ryly.value=''thisformset.locate.zhbt.value=''thisformset.locate.jsbt.value=''thisformset.locate.jljt.value=''thisformset.locate.jnlb.value=''thisformset.locate.gwlb.value=''thisformset.locate.gzyy.value=''thisformset.locate.cxbx.value=''thisformset.locate.zb.value=''*allocate.scx打印按钮click 事件**********************************************x= thisformset.xs.text1.valuex1= thisformset.xs.text2.valuex2= thisformset.xs.text3.valuex3= thisformset.xs.text4.valuex4= thisformset.xs.text5.valuereport form gzbxdy.frx previ*czy.scx (操作员信息)修改按钮click 事件**********************************************sele czyxxgo toploca for 编号==this.parent.text1.valueif foun()repl 姓名with this.parent.text2.value,密码with this.parent.text3.value,权限with bo1.valueendithisform.refreshwait window '修改完毕' time 3*czy (操作员信息)增加按钮click 事件**********************************************sele czyxxgo toploca for 编号=this.parent.text1.valueif not foun()if !empty(this.parent.text1.value)appe blankrepl 姓名with this.parent.text2.value,密码with this.parent.text3.value,权限with bo1.valuerepl 编号 with this.parent.text1.valueendielse?chr(7)+chr(7)wait window '输入的操作员重复' time 3retuendithisform.refreshwait window '增加新操作员完毕' time 3*czy (操作员信息)删除按钮click事件**********************************************sele czyxxgo toploca for 编号=this.parent.text1.valueif foun()if recno()<>1delepackelsewait window '第一个记录不能删除,可以修改' retuendiendithisform.refreshwait window '删除完毕' time 3*gzbd.scx (工资变动)保存按钮click 事件**********************************************sele gzbdappe from gzbx for dm = thisform.dm.valuerepl gzrq with thisform.bdrq.valuesele bddappe from gzbx for dm = thisform.dm.valuea1=bmrepl bdd.xbm with thisform.dwdm.valuerepl bdd.xdw with dwbmmc.bmmcrepl bdd.xzw with thisform.zc.valuerepl bdd.xzc with thisform.zc.valuerepl bdd.xgk with thisform.gkdw.valuerepl bdd.xdjgw with thisform.djgw.valuerepl bdd.xgwlb with thisform.gwlb.valuerepl bdd.xjnlb with thisform.jnlb.valuerepl bdd.xjndj with thisform.jndj.valuerepl bdd.xzhbt with thisform.zhbt.valuerepl bdd.xgwgz with thisform.gwgz.valuerepl bdd.xjngz with val(thisform.jngz.value)repl bdd.xdjgz with thisform.djgz.valuerepl bdd.xqtgz with thisform.qtgz.valuerepl bdd.xjljt with thisform .jljt.valuerepl bdd.jsbt with thisform.jsbt.valuerepl bdd.xjbbx with thisform .ylbx.valuerepl bdd.xgbbx with thisform .cxbx.valuerepl bdd.xmlbt with thisform.mlbt.valuerepl bdd.gzyy with thisform.gzyy.valuesele dwbmmcloca for bmdm=a1a2=bmmcsele bddrepl ydw with a2sele gzbxrepl gzbx.bm with thisform.dwdm.valuerepl gzbx.zw with thisform.zw.valuerepl gzbx.zc with thisform.zc.valuerepl gzbx.gk with thisform.gkdw.valuerepl gzbx.djgw with thisform.djgw.valuerepl gzbx.gwlb with thisform.gwlb.valuerepl gzbx.jnlb with thisform.jnlb.valuerepl gzbx.jndj with thisform.jngz.valuerepl gzbx.zhbt with thisform.zhbt.valuerepl gzbx.gwgz with thisform.gwgz.valuerepl gzbx.jngz with val(thisform.jngz.value)repl gzbx.djgz with thisform.djgz.valuerepl gzbx.qtgz with thisform.qtgz.valuerepl gzbx.jljt with thisform .jljt.valuerepl gzbx.jsbt with thisform.jsbt.valuerepl gzbx.mlbt with thisform.mlbt.valuerepl gzbx.jbbx with thisform .ylbx.valuerepl gzbx.gbbx with thisform .cxbx.valuerepl gzbx.gzyy with thisform.gzyy.valuerepl gzbx.gzrq with thisform.bdrq.value、*gzcx.scx (查询)输入姓名查找********************************************** thisform.dm.value=gzbx.dmdwdm=gzbx.bmsele dwbmmcloca for bmdm=gzbx.bm。
c语言课程设计报告 职工工资管理系统
一.设计需求说明一、职工工资管理系统功能设计要求1. 输入记录:将每一个职工的姓名、ID 号以及基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个记录。
•该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。
2. 显示记录:根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平均工资。
3. 修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。
4.查找记录:可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。
5. 删除记录:可删除数据文件中的任一记录。
6.恢复记录:能恢复被删除的任一记录。
7. 统计: (A) 计算各项工资平均工资及总工资, (B)•统计符合指定条件(如职工工资前三项之和在2000 元以上、2000~1500 元、1500~1000 元) 以内的工资职工人数及占总职工人数的百分比。
(C)按字符表格形式打印全部职工工资信息表及平均工资(•包括各项总的平均工资)。
8.保存数据文件功能。
9.打开数据文件功能。
经过逐层逐块、不断细化、求精过程,编写程序并进行测试、验证,可以逐个模块地分开调试,并通过文件包含或用工程文件的形式进行逐步联合调试。
程序运行结果如下表所示(记录个数至少8 个)。
二.模块设计分析系统功能模块图:工作程序分析①输入:输入职工工资资料通过结构体的数组来进行操作,先头定义数组em[],先输入需要输入的职工人数m,然后进入循环,每次循环将各项输入结构体数组对应项的对应成员中,当循环次数等于人数时,完成全部员工的资料输入,退出循环。
同时将数据储存在ckerk_list文件中并自动保存至磁盘。
注:如首次使用,尚未输入数据,请先输入数据。
输入的数据将自动保存。
再次选择输入功能时原数据将被覆盖。
②保存:将输入的资料存入磁盘读取文件clerk_list,若文件不存在,打印“打开失败并退出。
若存在,则通过循环语句将输入到结构体数组的数据逐个输入磁盘。
C语言职工管理系统源代码及运行截图(简单版)
#include<stdio.h>#include<string.h>#define N 100typedef struct worker{char name[20];long number;int y,m,d;char zhicheng[20];char bumen[20];float salary;}Worker;void Display(){printf("\n\n\n\t\t***************职工管理系统*************\n\n");printf("\t\t\t0.退\t\t 出\n");printf("\t\t\t1.新\t\t 建\n");printf("\t\t\t2.显\t\t 示\n");printf("\t\t\t3.查\t\t 询\n");printf("\t\t\t4.删\t\t 除\n\n");}/*******1.新建**********/void Add( Worker w[],int n){int i;printf("\t姓名\t工号\t进场时间\t职称\t部门\t工资\n\n");for(i=0;i< n;i++){printf("员工%d: ",i+1);scanf("%s %ld %d %d %d %s %s %f",w[i].name,&w[i].number, &w[i].y,&w[i].m,&w[i].d,w[i].zhicheng,w[i].bumen,&w[i].salary);}}/*******2.显示**********/void Browse( Worker w[],int n ){int i;printf("\t姓名\t工号\t进场时间\t职称\t部门\t工资\n\n");for(i=0;i< n;i++){printf("员工%d:",i+1);printf("%s\t%ld\t%d-%d-%d\t%s\t%s\t%f\n\n",w[i].name,w[i].number,w[i].y,w[i].m, w[i].d,w[i].zhicheng,w[i].bumen,w[i].salary);}}/*******3.1查询姓名**********/void SearchName( Worker w[],int n ){char name[20];int i;printf("\t\t\t输入要查询的名字:");scanf("%s",name);for( i = 0; i < n; i ++ ){if( strcmp( w[i].name,name ) == 0 ){printf("\n\t\t\t查得信息如下:\n\n");printf("姓名\t工号\t进场时间\t职称\t部门\t工资\n\n");printf("%s\t%ld\t%d-%d-%d\t%s\t%s\t%f\n\n",w[i].name,w[i].number,w[i].y,w[i].m,w[i].d,w[i].zhicheng,w[i].bumen,w[i].salary);return;}}printf("\t\t\t查无此人!");}/*******3.2查询工号**********/void SearchNumber( Worker w[],int n ){long number;int i,k=0;printf("\t\t\t输入要查询的工号:");scanf("%ld",&number);for( i = 0; i < n; i ++ ){if( w[i].number == number ){printf("\n\t\t\t查得信息如下:\n\n");printf("姓名\t工号\t进场时间\t职称\t部门\t工资\n\n");printf("%s\t%ld\t%d-%d-%d\t%s\t%s\t%f\n\n",w[i].name,w[i].number,w[i].y,w[i].m, w[i].d,w[i].zhicheng,w[i].bumen,w[i].salary);return;}}printf("\n\t\t\t查无此人!");}/*******3.查询**********/void Search( Worker w[],int n ){int x;printf("\t\t\t选择查询方式(1.姓名/2.工号):");scanf("%d",&x);printf("\n");switch(x){case 1:SearchName(w,n);break;case 2:SearchNumber(w,n);break;}}/*******4.删除**********/void Delete( Worker w[],int n ){char name[20];int i,j;printf("\t\t\t输入要删除的名字:");scanf("%s",name);printf("\n");for( i = 0; i < n; i ++ ){if( strcmp( w[i].name,name ) == 0 ){printf("\t\t\t将删除以下信息:\n\n");printf("\t姓名\t工号\t进场时间\t职称\t部门\t工资\n\n");printf("\t%s\t%ld\t%d-%d-%d\t%s\t%s\t%f\n\n",w[i].name,w[i].number,w[i].y,w[i]. m,w[i].d,w[i].zhicheng,w[i].bumen,w[i].salary);for( j = i;j<n-1;j++ ){w[j] = w[j+1];}printf("\t\t\t成功删除!\n\n");return;}}printf("\t\t\t查无此人!");}void Run( Worker w[],int n ){int choice;do{Display();printf("\t\t\t输入你的选择:");scanf("%d",&choice);printf("\n");switch( choice ){case 0:break;case 1:Add(w,n);break;case 2:Browse(w,n);break;case 3:Search(w,n);break;case 4:Delete(w,n);n--;break;}}while(choice);}void main(){int n;Worker w[N];printf("\t输入职员个数:");scanf("%d",&n);Run(w,n);}友情提示:范文可能无法思考和涵盖全面,供参考!最好找专业人士起草或审核后使用,感谢您的下载!。
java毕业论文范文5篇(3)
java毕业论文范文5篇(3)java毕业论文范文篇四:摘要本文围绕Java编程语言在网络编程方面的具体应用,论述了使用面向对象方法,对计算器程序进行需求分析、概要设计、详细设计,最后使用Java编程实现的全过程。
java语言,是目前比较流行的编程语言。
经过10多年的发展,java已经渗透到全球每个角落。
在当今这个网络的时代,java语言在网络编程方面的优势使得网络编程有了更好的选择。
Java语言最令人瞩目的特点是具有跨平台性,使其不受平台不同的影响,并得到了广泛的应用。
设计内容:设计GUI界面的计算器。
用户可以通过鼠标依次输入参加计算的数值,进行加、减、乘、除等混合运算。
设计要求:1.系统界面的上面是数字输入对话框,用来显示所输入的数字和运行的结果。
2.系统界面下面的左侧是记忆 + - * /。
3. 系统界面下面的中部是数字输入按钮,用来输入数字。
4.系统界面下面的右侧是运算符号按钮,用来实现具体的运算。
关键字:java面向对象计算器网络编程第一章概述1.1 设计目的计算器是日常生活中十分便捷有效的工具,能实现加、减、乘、除、开方、求倒数等简单运算的功能。
本论文采用java编程语言实现计算器功能。
该计算器大大的降低了数字计算的难度并且提高了计算的准确度和精确度。
使用简单,适合广大工作人员和中小学生使用。
1.2 计算器系统概述标准计算器的界面采用“图形界面程序设计(GUI)”。
GUI为用户和应用程序之间的交互提供了直观、方便的交流方式。
用户使用鼠标、键盘操作图形界面上的按钮、菜单等元素湘计算机系统发送命令,系统运行的结果以图形的方式显示给用户。
编写java计算器主要使用了Swing组件和AWT布局类。
Swing 组件主要包括按钮、标签、文本输入类、等组件,AWT主要运用了其中的布局管理器。
1.2.1 Swing组件Swing组件的按钮用JButton类表示,计算器的界面主要由JButton按钮组成,以响应用户的操作;Swing中的标签用JLabel类表示,标签上可以显示图标和文本;Swing的文本输入类包括文本框JTextField、文本区JTextArea和密码框JPasswordField。
人事管理系统(源代码
附录:毕业设计程序清单设计题目人事管理系统教学班:学生姓名:学号:指导教师:完成日期:Option ExplicitDim Bupdata As BooleanDim i As IntegerPrivate Sub Cmbdegree_Click()If Cmbdegree.Text = "定制" ThenFrmTable.ShowCmbdegree.ListIndex = 0End IfEnd SubPrivate Sub Cmbdepart_Click()If Cmbdepart.Text = "定制" ThenFrmTable.ShowCmbdepart.ListIndex = 0End IfEnd SubPrivate Sub CmdAddNew_Click()If CmdAddNew.Caption = "添加" ThenCmdAddNew.Caption = "确认"CmdDel.Enabled = FalseCmdOK.Enabled = FalseDataA.ReadOnly = FalseFor i = 1 To 12If Txt(i).Text = "" Then Txt(i).Text = 0 'DataA.Recordset.Fields(i) = 0Next iDataA.Recordset.AddNewTxt(0).Locked = FalseIf FrmMain.cutable = "employee" ThenDataA.Recordset.Fields(13) = frmLogin.EmploIDDataA.Recordset.Fields(14) = NowIf Opsex(0) ThenDataA.Recordset.Fields(4) = "男"ElseDataA.Recordset.Fields(4) = "女"End IfDataA.Recordset.Fields(7) = Cmbdegree.TextDataA.Recordset.Fields(8) = Cmbdepart.TextElseIf FrmMain.cutable = "leave" ThenDataA.Recordset.Fields(8) = frmLogin.EmploIDDataA.Recordset.Fields(9) = NowElseDataA.Recordset.Fields(13) = frmLogin.EmploIDDataA.Recordset.Fields(14) = NowEnd IfTxt(0).SetFocusElse 'OKIf Txt(0).Text = "" ThenMsgBox "不可以为空"Txt(0).SetFocusExit SubEnd IfFor i = 1 To 12If Txt(i).Text = "" Then Txt(i).Text = 0 'DataA.Recordset.Fields(i) = 0 Next iIf FrmMain.cutable = "employee" ThenDataB.Recordset.FindFirst "职工编号=" + Txt(0).TextIf Not DataB.Recordset.NoMatch ThenMsgBox "职员编号重复"Txt(0).Text = ""Txt(0).SetFocusExit SubEnd IfElseIf FrmMain.cutable = "leave" ThenDataB.Recordset.FindFirst "假条编号=" + Txt(0).TextIf Not DataB.Recordset.NoMatch ThenMsgBox "假条编号重复"Txt(0).Text = ""Txt(0).SetFocusExit SubEnd IfElseFor i = 4 To 10If Not IsNumeric(Txt(i).Text) ThenMsgBox "not a number"Txt(i).SetFocusExit SubEnd IfNext iDataB.Recordset.FindFirst "工资编号=" + Txt(0).TextIf Not DataB.Recordset.NoMatch ThenMsgBox "工资编号重复"Txt(0).Text = ""Txt(0).SetFocusExit SubEnd IfEnd IfDataA.Recordset.UpdateDataA.Recordset.MoveLastFrmMain.DataA.RefreshFrmMain.DataB.RefreshDataB.RefreshCmdAddNew.Caption = "添加"CmdDel.Enabled = TrueCmdOK.Enabled = TrueEnd IfEnd SubPrivate Sub CmdCacel_Click()If CmdAddNew.Caption = "确认" ThenDataA.Recordset.CancelUpdateEnd IfFrmMain.Enabled = TrueFrmMain.SetFocusUnload MeFrmMain.DataA.RefreshIf FrmMain.cutable = "employee" ThenFrmMain.DBGA.Columns("性别").Button = TrueFrmMain.DBGA.Columns("学历").Button = TrueFrmMain.DBGA.Columns("部门").Button = True End IfEnd SubPrivate Sub CmdDel_Click()DataA.ReadOnly = FalseDataA.Recordset.DeleteDataA.Recordset.MoveNextIf DataA.Recordset.EOF ThenDataA.Recordset.MoveLastEnd IfFrmMain.DataA.RefreshEnd SubPrivate Sub cmdOK_Click()If Txt(0).Text = "" ThenMsgBox "不可以为空"Txt(0).SetFocusExit SubEnd IfBupdata = FalseDataA.Recordset.EditIf FrmMain.cutable = "leave" ThenDataA.Recordset.Fields(8) = frmLogin.EmploIDDataA.Recordset.Fields(9) = NowElseIf FrmMain.cutable = "employee" ThenDataA.Recordset.Fields(13) = frmLogin.EmploIDDataA.Recordset.Fields(14) = NowIf Opsex(0) ThenDataA.Recordset.Fields(4) = "男"ElseDataA.Recordset.Fields(4) = "女"End IfDataA.Recordset.Fields(7) = Cmbdegree.TextDataA.Recordset.Fields(8) = Cmbdepart.TextDataA.Recordset.Fields(13) = frmLogin.EmploIDDataA.Recordset.Fields(14) = NowElseFor i = 4 To 10If Not IsNumeric(Txt(i).Text) ThenMsgBox "not a number"Txt(i).SetFocusExit SubEnd IfNext iDataA.Recordset.Fields(13) = frmLogin.EmploIDDataA.Recordset.Fields(14) = NowEnd IfFor i = 1 To 12If Txt(i).Text = "" Then Txt(i).Text = 0 'DataA.Recordset.Fields(i) = 0 Next iDataA.Recordset.UpdateFrmMain.DataA.RefreshDataB.RefreshEnd SubPrivate Sub DataA_V alidate(Action As Integer, Save As Integer)If Action = 11 And Bupdata ThenSave = 0End IfEnd SubPrivate Sub Lab_Click(Index As Integer)End SubPrivate Sub Txt_KeyPress(Index As Integer, KeyAscii As Integer)If (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> vbKeyBack And Index = 0 Then KeyAscii = 0Exit SubEnd IfIf FrmMain.cutable = "leave" And Index = 1 ThenIf (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> vbKeyBack ThenKeyAscii = 0Exit SubEnd IfEnd IfIf FrmMain.cutable = "salary" ThenIf Index <= 3 ThenIf (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> vbKeyBack ThenKeyAscii = 0Exit SubEnd IfEnd IfIf Index = 13 Then Exit SubIf (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> vbKeyBack And KeyAscii <> 46 ThenKeyAscii = 0Exit SubEnd IfEnd IfEnd SubPrivate Sub Txt_change(Index As Integer)If Bupdata = False Then Bupdata = TrueIf FrmMain.cutable = "salary" ThenIf Txt(Index).Text = "" Then Exit SubIf Index >= 4 And Index <= 6 ThenTxt(7).Text = V al(Txt(4).Text) + V al(Txt(5).Text) + V al(Txt(6).Text)Txt(12).Text = V al(Txt(7).Text) - V al(Txt(11).Text)End IfIf Index >= 8 And Index <= 10 ThenTxt(11).Text = V al(Txt(8).Text) + V al(Txt(9).Text) + V al(Txt(10).Text)Txt(12).Text = V al(Txt(7).Text) - V al(Txt(11).Text)End IfEnd IfEnd SubPrivate Sub Form_Load()DataA.DatabaseName = App.Path + "\sm.mdb"DataB.DatabaseName = App.Path + "\sm.mdb"DataA.Caption = FrmMain.cutableDataA.RecordSource = "select * from " + FrmMain.cutableDataB.RecordSource = "select * from " + FrmMain.cutableDataA.RefreshTxt(0).Locked = True'If FrmMain.DBGA.Row = 0 Then Exit SubIf FrmMain.cutable = "employee" Then 'employeeFor i = 0 To 12Lab(i).Caption = DataA.Recordset.Fields(i).NameNext iTxt(0).DataField = DataA.Recordset.Fields(0).NameTxt(1).DataField = DataA.Recordset.Fields(1).NameTxt(2).DataField = DataA.Recordset.Fields(2).NameTxt(3).DataField = DataA.Recordset.Fields(3).NameTxt(4).V isible = FalseTxt(5).DataField = DataA.Recordset.Fields(5).NameTxt(6).DataField = DataA.Recordset.Fields(6).NameTxt(7).V isible = FalseTxt(8).V isible = FalseTxt(9).DataField = DataA.Recordset.Fields(9).NameTxt(10).DataField = DataA.Recordset.Fields(10).NameTxt(11).DataField = DataA.Recordset.Fields(11).NameTxt(12).DataField = DataA.Recordset.Fields(12).NameTxt(13).DataField = DataA.Recordset.Fields(15).NameIf FrmMain.cuAp > -1 ThenDataA.Recordset.Move (FrmMain.cuAp)ElseDataA.Recordset.MoveFirstEnd IfIf DataA.Recordset.Fields(4) = "男" ThenOpsex(0).V alue = TrueElseOpsex(1).V alue = TrueEnd If'设置lsdegree的显示项For i = 0 To FrmMain.LsDegree.ListCount - 2Cmbdegree.AddItem FrmMain.LsDegree.List(i)If FrmMain.LsDegree.List(i) = DataA.Recordset.Fields(7) ThenCmbdegree.ListIndex = iEnd IfNext iIf Cmbdegree.ListIndex = -1 ThenCmbdegree.AddItem DataA.Recordset.Fields(7)Cmbdegree.ListIndex = Cmbdegree.ListCount - 1End IfCmbdegree.AddItem "定制"'设置lsdepart的显示项For i = 0 To FrmMain.LsDepart.ListCount - 2Cmbdepart.AddItem FrmMain.LsDepart.List(i)If FrmMain.LsDepart.List(i) = DataA.Recordset.Fields(8) ThenCmbdepart.ListIndex = iEnd IfNext iIf Cmbdepart.ListIndex = -1 ThenCmbdepart.AddItem DataA.Recordset.Fields(8)Cmbdepart.ListIndex = Cmbdepart.ListCount - 1End IfCmbdepart.AddItem "定制"'设置完毕ElseIf FrmMain.cutable = "leave" Then 'leaveTxt(7).V isible = TrueCmbdegree.V isible = FalseCmbdepart.V isible = FalseFrame1.V isible = FalseFor i = 8 To 12Lab(i).Visible = FalseTxt(i).V isible = FalseNext iFor i = 0 To 7Lab(i).Caption = DataA.Recordset.Fields(i).NameTxt(i).DataField = DataA.Recordset.Fields(i).NameNext iTxt(13).DataField = DataA.Recordset.Fields(10).NameIf FrmMain.cuAp > -1 ThenDataA.Recordset.Move (FrmMain.cuAp)ElseDataA.Recordset.MoveFirstEnd IfElse 'salaryFrame1.V isible = FalseCmbdegree.V isible = FalseCmbdepart.V isible = FalseFor i = 0 To 12Lab(i).Caption = DataA.Recordset.Fields(i).NameTxt(i).DataField = DataA.Recordset.Fields(i).NameNext iTxt(13).DataField = DataA.Recordset.Fields(15).NameTxt(7).Locked = TrueTxt(11).Locked = TrueTxt(12).Locked = TrueIf FrmMain.cuAp > -1 ThenDataA.Recordset.Move (FrmMain.cuAp)ElseDataA.Recordset.MoveFirstEnd IfEnd IfEnd SubPrivate Sub Form_Unload(Cancel As Integer)FrmMain.Enabled = TrueFrmMain.SetFocusUnload MeFrmMain.DataB.RefreshEnd SubOption ExplicitConst MxUser = 100Public EmploID As IntegerPublic CurUser As StringPublic CurId As StringPublic CurPsw As StringDim user(MxUser), pws(MxUser), state(MxUser), Emplo(MxUser) As StringPrivate Sub Form_Load()Dim i As IntegerIf App.PrevInstance ThenMsgBox ("程序已经运行,不能再次装载。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include<stdio.h>#include<string.h>#include<stdlib.h>int N=2;struct worker /*定义一个职工信息的结构体*/{int num; /*定义一个职工信息的结构体*/char name[20]; /*定义一个职工信息的结构体*/char sex[10]; //用字符串存放职工的性别数据char birth[20]; //用字符串存放职工的出生年月数据char deta[20]; //用字符串存放职工的工作年月数据char education[20]; //用字符串存放职工的学历数据double salary; //用字符串存放职工的性别数据char work[30]; //用字符串存放职工的职务数据char addr[20]; //用字符串存放职工的地址数据char tel[20]; //用字符串存放职工的电话数据}worker[100]; //用结构体数组存放职工的所有信息void menu();void input();void save();void read();void display();void add();void search();void search_education();void search_num();void del();void modify();void main(){char s;system("color 3f");printf("\n\n");printf(" \t┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");printf(" \t┃**********************************************************┃\n");printf(" \t┃***┏━━━━━━━━━━━━━━━━━━━━━━━━┓***┃\n");printf(" \t┃***┃************************************************┃***┃\n");printf(" \t┃***┃*** ****┃***┃\n");printf(" \t┃***┃*** 欢迎使用职工信息管理系统****┃***┃\n");printf(" \t┃***┃*** ****┃***┃\n");printf(" \t┃***┃*** ****┃***┃\n");printf(" \t┃***┃*** 制作人吴青伶****┃***┃\n");printf(" \t┃***┃*** ****┃***┃\n");printf(" \t┃***┃*** 2013.12.28 ****┃***┃\n");printf(" \t┃***┃*** ****┃***┃\n");printf(" \t┃***┃************************************************┃***┃\n");printf(" \t┃***┗━━━━━━━━━━━━━━━━━━━━━━━━┛***┃\n");printf(" \t┃**********************************************************┃\n");printf(" \t┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");do{menu();printf("Do you want to continue?(y/n)");s=getchar();}while(s=='Y'||s=='y');}void menu()/*菜单函数*/{int b;printf("\t \n");printf("\t \n");printf("\t \n");printf("\t \n");printf("\t \n");printf("\t 请选择\n");printf("\t ------------------------------\n");printf("\t || || \n");printf("\t || 1. 职工信息录入|| \n");printf("\t || 2. 职工信息浏览|| \n");printf("\t || 3. 职工信息添加|| \n");printf("\t || 4. 职工信息查询|| \n");printf("\t || 5. 职工信息删除|| \n");printf("\t || 6. 职工信息修改|| \n");printf("\t || 0. 退出|| \n");printf("\t -------------------------------\n");printf("\n 输入你的选择项(0~6):\n");scanf("%d",&b);switch(b){case 1 : //职工信息录入、保存input();save();getchar();break;case 2 ://读入职工信息并显示read();display();getchar();break;case 3 : //添加职工信息add();getchar();break;case 4 : //查询职工信息search();getchar();break;case 5 : //读入职工信息并实现职工信息删除功能read();del();getchar();break;case 6 : //读入职工信息并修改职工信息read();modify();getchar();break;case 0 : exit(0);//退出default:break;}}void input() //录入职工信息{int i,flag,j;printf("输入职工个数(默认个数为2):");scanf("%d",&N);fflush(stdin);//清除缓存for(i=0;i<N;i++){loop:printf("职工号:");scanf("%d",&worker[i].num); fflush(stdin);flag=1;if(worker[N].num<0)printf("请输入正整数:\n");elsefor(j=0;j<i;j++){if(worker[i].num==worker[j].num){flag=0;printf("工号重复,请重新输入!\n");goto loop;}}printf("姓名:");scanf("%s",worker[i].name); fflush(stdin);printf("性别:");scanf(" %s",worker[i].sex); fflush(stdin);printf("出生年月:");scanf("%d",&worker[i].birth); fflush(stdin);printf("工作年月:");scanf("%lf",&worker[i].deta); fflush(stdin);printf("请输入学历(中专=zz,大专=dz,本科=bk,研究生=yjs):\n");scanf("%s",worker[i].education);fflush(stdin);printf("工资:");scanf("%lf",worker[i].salary); fflush(stdin);printf("职务:");scanf("%s",worker[i].work); fflush(stdin);printf("住址:");scanf("%s",worker[i].addr); fflush(stdin);printf("电话:");scanf("%s",worker[i].tel); fflush(stdin);}printf("\n创建完毕!\n");}void save() //保存函数{FILE *fp;int i;if((fp=fopen("worker.txt","wb"))==NULL)//以只写方式打开一个二进制文件{printf("\ncannot open file\n");exit(0);}for(i=0;i<N;i++)fwrite(&worker[i],sizeof(struct worker),1,fp);//将内存中的职工信息数据输出到磁盘文件中去(二进制)fclose(fp);}void read() //读入函数{FILE *fp;int i=0;if((fp=fopen("worker.txt","rb"))==NULL) //以只读方式为输出打开磁盘文件中的一个二进制文件{printf("\ncannot open file\n");exit(0);}do{fread(&worker[i],sizeof(struct worker),1,fp);//从worker.txt文件向内存读入数据(二进制)i++;}while(!feof(fp));fclose(fp);N=i-1;}void display() //信息浏览函数{int i;for(i=0;i<N;i++){printf("职工号:%d\n",worker[i].num);printf("姓名:%s\n",worker[i].name);printf("性别:%s\n",worker[i].sex);printf("出生年月:%d\n",worker[i].birth);printf("工作年月:%d\n",worker[i].deta);printf("学历:%s\n",worker[i].education);printf("工资:%lf\n",worker[i].salary);printf("职务:%d\n",worker[i].work);printf("住址:%s\n",worker[i].addr);printf("电话:%s\n",worker[i].tel);}}void add() //添加函数{FILE *fp;int i;struct worker p;double t;printf("\n请输入新增加职工的信息:\n");printf("请输入职工号:\n");scanf("%d",&p.num);for(i=0;i<N;i++){while(worker[i].num==p.num){printf("工号重复,请重新输入!\n");scanf("%d",&p.num);}}printf("请输入姓名:\n");scanf("%s",);printf("请输入性别:\n");scanf("%s",p.sex);printf("请输入出生年月:\n");scanf("%d",&p.birth);printf("请输入工作年月:\n");scanf("%d",&p.deta);printf("请输入学历(中专=zz,大专=dz,本科=bk,研究生=yjs:):\n");scanf("%s",cation);printf("请输入工资:\n");scanf("%lf",&t);p.salary=t;printf("请输入职务:\n");scanf("%s",p.work);printf("请输入住址:\n");scanf("%s",p.addr);printf("请输入电话:\n");scanf("%s",p.tel);printf("\n添加完毕!\n");if((fp=fopen("worker.txt","ab"))==NULL)//以追加方式打开一个二进制文件尾部{printf("\ncannot open file\n");exit(0);}fwrite(&p,sizeof(struct worker),1,fp);fclose(fp);}void search() //查询函数{int c;do{puts("\nsearch by=>\n1.学历2.职工号3.取消并返回");printf("Which you needed?:\n");if(c>3||c<1){puts("\nchoice error!please again!");getchar();//此语句用于接受在执行上一句时最后输出的回车符}}while(c>3||c<1);{switch(c){case 1:search_education();break;case 2:search_num();break;case 3:menu();break;}}}void search_education() //按学历查询函数{int i,flag=0;char s[10];printf("\n请输入你要查询的学历:\n");scanf("%s",s);for(i=0;i<N;i++){if(strcmp(s,worker[i].education)==0){printf("职工号:%d\n",worker[i].num);printf("姓名:%s\n",worker[i].name);printf("性别:%s\n",worker[i].sex);printf("出生年月:%d\n",worker[i].birth);printf("工作年月:%d\n",worker[i].deta);printf("学历(中专=zz,大专=dz,本科=bk,研究生=yjs):%s\n",worker[i].education);printf("工资:%lf\n",worker[i].salary);printf("职务:%lf\n",worker[i].work);printf("住址:%s\n",worker[i].addr);printf("电话:%s\n",worker[i].tel);flag++;}}if(flag==0)printf("\n对不起没有找到!\n");getchar();}void search_num() //按工号查询函数{int i,s,flag=0;printf("\n输入要查询的职工号!:\n");for(i=0;i<N;i++){if(s==worker[i].num){printf("职工号:%d\n",worker[i].num);printf("姓名:%s\n",worker[i].name);printf("性别:%s\n",worker[i].sex);printf("出生年月:%d\n",worker[i].birth);printf("工作年月:%d\n",worker[i].deta);printf("学历(中专=zz,大专=dz,本科=bk,研究生=yjs):%s\n",worker[i].education);printf("工资:%lf\n",worker[i].salary);printf("职务:%lf\n",worker[i].work);printf("住址:%s\n",worker[i].addr);printf("电话:%s\n",worker[i].tel);flag++;}}if(flag==0)printf("\n对不起没有找到! please");getchar();}void del() //删除函数{int i,j;FILE *fp;char name[20];char c;if((fp=fopen("worker.txt","wb"))==NULL)//以只写方式打开一个二进制文件{printf("\ncannot open file\n");exit(0);}printf("请输入要删除的职工的姓名:");scanf("%s",name);for(i=0;i<N;i++){if(strcmp(name,worker[i].name)==0)//判断输入的姓名和原来的姓名是否相同{printf("找到该职工,是否删除?(y/n) ") ;fflush(stdin);scanf("%c",&c);if(c =='Y'||c=='y'){for(j=i;j<N;j++)worker[j]=worker[j+1];printf("删除成功! \n");//break;}}}if(i>=N){printf("没有找到该职工!\n ");return;}else{N=N-1;for(i=0;i<N;i++)if(fwrite(&worker[i],sizeof(struct worker),1,fp)!=1){printf("\ncannot save file\n");getchar();}fclose(fp);}}void modify() //修改函数{struct worker p;FILE *fp;int i,n;double t;printf("\n输入要修改的职工号:\n");scanf("%d",&n);for(i=0;i<N;i++){if(n==worker[i].num){printf("找到该职工的信息(任意键继续)!");printf("\n请输入职工的信息!\n");printf("请输入姓名:\n");scanf("%s",);printf("请输入性别:\n");scanf("%s",p.sex);printf("请输入出身年月:\n");scanf("%d",&p.birth);printf("请输入工作年月:\n");scanf("%lf",&p.deta);printf("请输入学历(中专=zz,大专=dz,本科=bk,研究生=yjs):\n");scanf("%s",cation);printf("请输入工资:\n");scanf("%lf",&t);p.salary=t;printf("请输入职务:\n");scanf("%s",p.work);printf("请输入住址:\n");scanf("%s",p.addr);printf("请输入电话:\n");scanf("%s",p.tel);p.num=n;if((fp=fopen("worker.txt","r+"))==NULL)//以读写的方式将修改的信息写入磁盘文件{printf("\ncannot open file\n");exit(0);}fseek(fp,i*sizeof(struct worker),0);//将位置指针移到i*sizeof(struct worker)个字节处fwrite(&p,sizeof(struct worker),1,fp);fclose(fp);printf("修改成功!\n");break;}}if(i>=N)printf("\n未找到该职工!\n");}。