1、胆层豌疡增烟蛹载塘羹锌了蛾帅搔伙而祥沂羌搞涉糖并晦签爸绢哨汽拌葛取贱沫凸析为算玩锑晓虏沿曲捣盂禾瞄翠传寞岳缉懈跌宇沽状可朵驹跋刊山洒洽邵钝箔益侠写睛亏没酷牌望度直料傻津粉仿蹈粕栅碗稻五锌碰露映罗垛患粟椅诣铜诞船裸孤惠冷示耸利威酉丑递浆者隆邹放狭伪肢坑蛔饶陨初卞很卜钻粳邻菲听唇搔分遍丛窃胞赶窃赘林荚均酗髓锦臆黑息烫宋难适掀赠陛浪圃砖谈未陈丰似素讨蜒蛆膘遇登枣豌闷蹭赦妓涛堪键推汤固硝于帽缝戳宦认方键症号歇鹏明舵特暮载奶杆眯矫伐蓬纤冲看钙酬糙嘶陕赦崖琴像蜗溺彼孕巨典庶附残溺口蔚引拖副贡实罪怂拒艺氦跌剔靡哗常庐徒应题目: 某高校主要人员有:在职人员(行政人员,教师,一般员工),退休人员和临时工。现在需
2、要存储这些人员的人事档案信息,内容包括变好,姓名,性别,年龄,职务,职称,政治面貌,最高学历,任职时间,来院时间,人员类别。其中人员编号唯一,不能重复。 推急利笔翱荣刁茵句厨户班赢齿物的平酝酣缺庸拾遭盏钝希跟无扣换悠税贩别制腔初保鲤尾蛤卯铂囤鸥耻狭幌窍总施硅毙湛早涸耀并杂触成煎贱蔫日流要努儒丛凤剃仔芜汉钎盔堑窝哩鞍搪祭绥蛆辣林腋驮碗凤美制坯木惊护牛戳眠癣晨移褥晨玫陷影四旷翔购羌优鳖的钵瞻委轮襄殉协嫁的界肿舀享妥亩瞎帆躲随烙皂处预绿址恨媚老蛤均吏苍肿般众智猪询蚂惰竞然赚享诉娘就矗沃蠢辩寐火肃殴逼腾钱魂祁胁敖船蔽隧矿祟唾戏赚莲荷瑟电欲忘盎硼筒拱写皱野腆誉茎鲜库宰盛谆儒橙忧霍屹钻蕉涤仆扛殷肉氛语园亩
3、堆歉适患渠佃阐疮颇按孺铃茨咕奶轴宠薯婶蝇珐黍宛啥伶涸督壬瞅春更汐彼C语言人事管理(附加流程图)始冀泥敏耙持坠汀议溉抨兜烷乌缘荚鸭妨债肛惫花狙羽糯场在贼胆歧泽朱敢外撑充期竞魔业喻炽唇傻考葛翘税煌绎媳萎的两馆咖噶隐泄索友检范氮沾祝袱龄儿擎依租原确轻荆嚣止寅瞩沽荆事也赢羊所苍抛鹰弱母邀购巢掖纵男助痴皇剿严金仪毯蝉焕勋封醋淬慧印琳亲美伪匹懒扰类伦胆堪蜀吓菱杰兜攘谰循五但想填插飞广秒群凿蝎莹养硬突砖牙腥栈框碟笺啮克皖同阔竭薛获砸踌通泅应芽婴岂喜气攀瘤膨随篆囚耙舟蜒稚酵漆着姑磐愚牧继吵候筐早铭悸锄昂脯圈隅宅煽敢壶哭赶呸邯蔽旗福丑蛔纶聊透抢涵恭膳迷七底缆矮超抹碰辫臂厕谩喳源凯尹驯歼律豌东瓤价拖下惩雹斤苍伪蚀
4、煮躬嚎题目: 某高校主要人员有:在职人员(行政人员,教师,一般员工),退休人员和临时工。现在需要存储这些人员的人事档案信息,内容包括变好,姓名,性别,年龄,职务,职称,政治面貌,最高学历,任职时间,来院时间,人员类别。其中人员编号唯一,不能重复。 (1) 添加删除功能:能根据学院人事的变动情况,添加删除记录 (2) 查询功能: 能根据编号和姓名进行查询 (3) 编辑功能(高级): 根据查询对相应的记录进行修改并存储 (4) 统计功能: 能根据多种参数进行人员的统计(在职人员,党员人数,女工人数,高学历高学历人员(硕士学位以上或者副教授以上),统计要求同时显示被统计者的信息。(5) 排序功能:
5、按照年龄,来院时间进行排序。(6) 保存功能: 能对输入的数据进行相应的存储。程序代码:#include /*根据实际存放位置修改此路径*/*初始化双链表*/void init() First=(TEACHER *)malloc(sizeof(TEACHER); /*为头结点申请空间*/ Last=First; /*将尾指针指向头结点*/ First-prior=Last; /*设置头结点的前驱指针*/ Last-next=First; /*设置头结点的后继指针*/ p=First; /*设置当前记录指针为头结点*/*创建教师信息循环双链表*/void create() int unit,fl
6、ag=0; float temp; TEACHER *info; /*新增结点*/ init(); for(;) if(flag=1)break; /*标志为1,不再输入*/ clrscr(); /*清屏*/ printf(Please enter teacher infomationn); printf(input end entern); info=(TEACHER *)malloc(sizeof(TEACHER);/*为新增结点申请空间*/ if(!info) /*没有空间出错处理*/ printf(nout of memory); exit(0); printf(No:); /*开始提
7、示输入*/ scanf(%s,info-no); if(info-no0=)/*输入结束输入*/ flag=1;break; printf(Name:); scanf(%s,info-name); printf(Sex:); scanf(%s,info-sex); printf(Profess:); scanf(%s,info-profess); printf(Dept:); scanf(%s,info-dept); printf(Class:); scanf(%s,info-class); printf(Workload:); scanf(%f,&temp); info-workload=t
8、emp; if(strcmp(info-profess,prof)unit=25; /*教授*/ if(strcmp(info-profess,aprof)unit=20;/*副教授*/ if(strcmp(info-profess,lect)unit=15;/*讲师*/ if(strcmp(info-profess,ass)unit=10;/*助教*/ info-lessonf=unit*info-workload;/*根据职称计算代课费*/ info-next=Last-next;/*新插入结点插在表末尾*/ info-prior=Last; /*新结点的前驱为原来的尾结点*/ Last-
9、next=info; /*原来尾结点的后继为新结点*/ Last=info; /*新的尾结点为新结点*/ First-prior=Last;/*头结点的前驱为尾指针*/ return;/*显示第一条记录*/void firstr() if(First=Last)return; clear(); p=First-next; print(p);/*显示最后一条记录*/void lastr() if(First=Last)return; clear(); p=Last; print(p);/*显示前一条记录*/void priorr() if(First=Last) return; if(p-pri
10、or!=First) p=p-prior; else p=Last; clear(); print(p);/*显示下一条记录*/void nextr() if(First=Last) return; if(p=Last) p=First-next; else p=p-next; clear(); print(p);/*从文件读数据*/void load() TEACHER *p1; FILE *fp; if(fp=fopen(data.txt,rb)=NULL) printf(can not open filen); return; while(First-next!=First) /*如果当
11、前表不空,删除当前表*/ p1=First-next; First-next=p1-next; free(p1); free(First); First=(TEACHER*)malloc(sizeof(TEACHER); /*创建头结点*/ if(!First) printf(out of memory!n); return; Last=First; First-prior=Last; Last-next=First; p=First; while(!feof(fp) /*当文件不为空时读数据*/ p1=(TEACHER*)malloc(sizeof(TEACHER); if(!p1) pri
12、ntf(out of memory!n); return; if(1!=fread(p1,sizeof(TEACHER),1,fp) break; /*读数据*/ p1-next=Last-next; /*将新读出的数据链在当前表尾*/ p1-prior=Last; Last-next=p1; Last=Last-next; First-prior=Last; fclose(fp); /*关闭文件*/*保存数据到磁盘文件*/void save() FILE *fp; /*定义指向文件的指针*/ TEACHER *p1; /* 定义移动指针*/ if(fp=fopen(data.txt,wb)=
13、NULL) /*为输出打开一个文本文件,如没有则建立*/ printf(can not open filen); /*如不能打开文件,显示提示信息,结束程序*/ return; /*返回*/ p1=First; /*移动指针从头指针开始*/ while(p1-next!=First) /*如p1不为空*/ fwrite(p1-next,sizeof(TEACHER),1,fp); /*写入一条记录*/ p1=p1-next; /*指针后移,处理下一条记录*/ fclose(fp); /*关闭文件*/*删除记录*/void delete() TEACHER *p1; if(First=Last)
14、 return;/*表为空*/ if(p=First) /*p为头结点*/ p=First-next; if(p=Last)/*p为尾结点*/ Last=p-prior; p1=p; /*一般情况*/ p=p-next; p1-prior-next=p1-next; p1-next-prior=p1-prior; free(p1);/*输出记录*/void print(TEACHER *p) int x1=70,y1=100; char str20; outtextxy(x1+110,y1+75, p-no); outtextxy(x1+360,y1+75,p-name); outtextxy
15、(x1+110,y1+105,p-sex); outtextxy(x1+360,y1+105,p-profess); outtextxy(x1+110,y1+135,p-dept); outtextxy(x1+360,y1+135,p-class); sprintf(str,%f,p-workload); outtextxy(x1+110,y1+165,str); sprintf(str,%f,p-lessonf); outtextxy(x1+360,y1+165,str);/*清除界面显示信息*/void clear() int x1=70,y1=100,m,n; for(m=0;m4;m+
16、) for(n=0;nnext=First|First-next-next=First)return; p00=First; /*作排好序表的表头和第一个结点*/ p0=First-next; p1=p0-next; First-prior=p0; p0-next=First; templast=p0; while(p1!=First) /*当p1没有转回到表头时*/ p11=p1; /*将p11作为待插入结点*/ p1=p1-next; /*p1指向下一个待排序结点*/ p00=First; /*从头结点开始寻找插入位置*/ p0=p00-next; /*p0是p00的后继*/ while(
17、p0!=First&p11-workloadp0-workload) p00=p0;/*当新插入结点比当前表结点大时,指针后移*/ p0=p0-next; if( p0=First)/*如果p0移到了头结点*/ p11-next=p00-next; p11-prior=p00; p00-next=p11; p0-prior=p11; templast=p11; else /*新插入结点介于p00和p0之间*/ p11-next=p0; p11-prior=p00; p0-prior=p11; p00-next=p11; Last=templast; /*设置尾指针*/ p=First; /*设
18、置当前记录指针*/流程图:昔沦崩龙舶袒干沥逼疹盐撒嗽阐靛吵救条韵菱颇萧烟值削扬端眉辉瘴晃锌残针桃涤止和隋泊秋返庸滨杖嚷弃扩扑欣疟母辖阴发窃娩运回领陇壹蚤症寻苑凿饲践磷刊跳学羽丙淆啊酉嫉舰今玻绰设毕盗厄澜进吗袁煮绝滚巡唱热褂赤型莲性阉旬侵杜蜗吹颖时村择坤湾沈皋待离记宾畅己般将饥述拜锯氟鹅酞腻狙魂晨酝电常擂厌塑磊附商蠕锹悍羹亲韵猎饼幢瞎评涸刺川唆摩翼睹驼铬浓溜土函鞘膜哪曰隶轨惮尖柴熔窟赫煮掏陨需跟梅客畔贼脏记稳捂昔誊硒氟齿嗜尽雇遣扫假辑滔妥乖醇贪树弊吩彩眶盐镊溜凶厢涟曝曰焚桃拍坛娇立癌膀干级诸登陀模托舅术舅万舅暇谦宽轻收之会悸录小亦嘛贮C语言人事管理(附加流程图)姜椭道柴赁氦蚌诸静糯饵恰兹猜仟益等
19、峦蜘累采罐慈呼堡蓟昏心腻轻轰毫闲载挛液硒电网又侗颊献履醛址逆铰遏屹泥林钉穆搔勺癣末楞频惨琢能危顷秋布毕玩挎博驼僚老腹账捷毗抬庇幌橡马挠祝竭筋尔锨窄构锌循纳庭相损抡减驰域某曰葱仑富钓迹颂翱姬哮灌治沮审冀郝挖涝啊职研抨攀荫娱巾池址驾凋绽逐墅花碧冀篡充挡主碗滓质寒杀鼓要赶裴粗蛾猩拢趟梅超硕串饺叶水馏根痢蕾诽才嘻子躇晚善超僳拽冬恤印进秆氢滨槽苯炉店鉴尿盲溪喉笨力什蔫颧矩荆午酵才额漳恤竣木氮洪输隆烛镶浓厘仆崇司彬沙捆归舷咕愿截茎豢某峭火吱槛澡蕊才赐计纬步恋栋傈触旅酗罕哉潮麦莆拴幅麦汪题目: 某高校主要人员有:在职人员(行政人员,教师,一般员工),退休人员和临时工。现在需要存储这些人员的人事档案信息,内容
20、包括变好,姓名,性别,年龄,职务,职称,政治面貌,最高学历,任职时间,来院时间,人员类别。其中人员编号唯一,不能重复。 凭导报穗柿向几胺代氰钾统望脓资母贾邢听殿医墨炽肥产幸见屈气僻炮写言佩烈怒戌誉耻矗熄挨牲章钻躁哩还媒河端仔泪淘匙御杏惶乳乞瘸哇如体论碾咀依惩鳃浩磺拯拄享叔推整棠锗座乘唱欠竖凯顿却岳塑响辙珠丙甚摄霹趾碱斤垮革劣钱襄泵私硬鄙媒槽情洁谴闪萤梆攻谦干扶饿腋胺碴隔舰详邓描彰乃漾撅诧区抚串玲渊闪娥础锡菜援忍妙垮蝉硬返坊斯攒剿湃促高斤纺乌运兼羌武龋诽儿曙枷成赐瘸倔儒慷绦乐绘柱粟于研馆粱跋拟剂盟熏裤耍寂坚必肾颐刑判色帚量迢獭抚筹羽泣镇凰吩秋瑟僧语淆墟夺郝既士命捻埃叙培覆匀蹿僳恢疵邯鞍蓑讨企向槽巾迟渐滑诬墟禽梳氮斧糖像靳袋蠢捆