- 在线时间
- 490 小时
- 最后登录
- 2024-2-3
- 注册时间
- 2013-2-28
- 听众数
- 117
- 收听数
- 46
- 能力
- 268 分
- 体力
- 39235 点
- 威望
- 1340 点
- 阅读权限
- 255
- 积分
- 31237
- 相册
- 2
- 日志
- 0
- 记录
- 0
- 帖子
- 1388
- 主题
- 937
- 精华
- 0
- 分享
- 0
- 好友
- 111
升级   0% TA的每日心情 | 衰 2020-10-25 11:55 |
|---|
签到天数: 264 天 [LV.8]以坛为家I
- 自我介绍
- 内蒙古大学计算机学院
 群组: 2013年数学建模国赛备 |
#include <stdlib.h>
: i$ V$ f5 }- c2 `/ t#include <stdio.h>
7 ^. @: t% O3 t* [; L- ~" J#include <malloc.h>& B5 V3 w+ f/ z* K- M* g& C) E' @( _
#include <string.h>
# r, K4 }5 W+ f3 dtypedef struct worker
9 j9 `8 _; t( Y& Z4 d# P" x{
! t# [* r, V* Y! G1 O0 x" Fint id;* u2 |5 A, F5 m
char name[20];
0 D" a2 I6 K/ @4 G0 t9 z8 b( @) Schar sex[3];+ O( g. q- y+ d
int age;
/ @" ?& z- H; C/ r6 [char edu[50];
! z h$ |( p5 c1 [3 z! gint wages;
# [6 R8 V7 f/ v: Vchar adr[255];4 I s' n* R, b5 O5 W9 v* G" @% v; p
char phone[13];
( Q# v$ S; A! [+ h}WORKER, *PWORKER;
- ^$ i' p/ Y2 t- ~4 c//typedef struct WORKER *PWORKER;7 W8 f: s- C5 o9 r0 p, E
typedef struct link
+ X8 S/ }9 _/ n0 Y6 Y/ D* a( Z{
1 g% E9 a& Y, ^5 A: |, OWORKER w;
0 r+ l9 B! f4 X3 b; U' rstruct link *next;' x. ^0 ]+ ^5 {
}LINK, *PLINK;
M7 b( K I0 ]5 N6 j//typedef struct LINK *PLINK; /*创建职工信息链表*/3 T) @' r/ }- T& q( H
PLINK create()
/ X: R, E+ L) d7 M4 O; _3 Y/ }( a. S{
* [0 P$ L' g) }PLINK p=(PLINK)malloc(sizeof(LINK));
. \0 l1 m, g5 |/ sif(NULL!=p)
1 ^& c: C9 j# _{
7 `% b0 X; ~; ?4 c* Gp->next=NULL;
- t% d$ ^. g% Freturn p;8 W& k& {' P! o; d- c1 A9 Z
}8 _: O5 [1 Y: Y) t9 m; U
printf("内存不足!\n");
- {9 y* `, U. e" E# \return NULL;' m5 h/ ?- v! {1 i0 ]
} /*显示程序界面文字*/3 K. k5 e& a$ _) e/ H
void message()
/ W+ }# A. R; K; e% z8 [* X{ system("color 0f");/*设置当前窗口的背景色和前景色*/
- R0 X- x j/ S) V# ^/* 0 = 黑色 8 = 灰色) q! W6 K" j8 {4 `, `
1 = 蓝色 9 = 淡蓝色
" Z! `* {: R" @+ |( t- t# G2 = 绿色 A = 淡绿色
3 d8 b) Q- l3 V" D0 v; t3 = 浅绿色 B = 淡浅绿色
& i! G' k$ |' |1 g( j q+ A4 = 红色 C = 淡红色
, x3 e0 S1 s6 L$ F" B" J5 = 紫色 D = 淡紫色" n& V4 N% V$ D( q
6 = 黄色 E = 淡黄色% h% {+ w6 A, m9 ?: H% T& w
7 = 白色 F = 亮白色*/
( L* V: Y* s$ esystem("cls");
- N% {$ `0 x" ]& H* {3 L& N Gprintf("\t\t************************************************\n\n");
8 F- V Z* k: D4 M, Nprintf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");( w0 e6 r5 ^: y7 b
printf("\t\t************************************************\n\n");/ Y& k4 M8 K* \9 q
printf("\t\t ************** Choose Function *************\n\n");
* D( ]6 ^4 B- f7 J1 V1 Hprintf("\t\t ************ 帮助 请输入:0************\n\n");+ Q" \3 C5 a% M# Z0 k- u2 o2 J
printf("\t\t ************录入职工信息 请输入:1************\n\n");
* H. n* R2 F; Rprintf("\t\t ************浏览职工信息 请输入:2************\n\n");
6 G- G: q) a2 y% j k3 z" Oprintf("\t\t ************查询职工信息 请输入:3************\n\n");
- n! B" @5 R) O( Qprintf("\t\t ************删除职工信息 请输入:4************\n\n");' t5 Y6 \% l0 a2 z4 U; l2 W
printf("\t\t ************修改职工信息 请输入:5************\n\n");
5 t! J4 Q% j1 w! ~( zprintf("\t\t ************ 清屏 请输入:6************\n\n");8 _9 {1 X" J; a
printf("\t\t ************ 退出 请输入:7************\n\n");
. {2 }: ]+ w( H5 R0 ]( ~4 ^8 bprintf("\t\t************************************************\n\n");% M6 n* ^" b- W2 b( h- |3 O
printf("\t\t************************************************\n\n");
" z2 s, n) ~4 E; ~$ _} void find_sr(PLINK plink, char* str)
3 q( G% n/ H4 Y y" b( h. T- a{ |, K+ u B+ J1 B+ z) x
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
6 R: g& r' U% t7 g' B; `. K{5 z0 y+ Q0 s& n1 Q( ]4 l0 s
if(strcmp(curr->w.edu, str) == 0). y; _( S( x" R/ [ \
{' v) t# c, f, t8 z
printf("职工工号:%d\n",curr->w.id);* X. C( s9 @3 r6 N( l9 S+ y+ t
printf("职工姓名:%s\n",curr->w.name);! }1 L/ D+ \0 w( @2 k
printf("职工性别:%s\n",curr->w.sex);2 U, L! X% Q& u) I* ]! f
printf("职工年龄:%d\n",curr->w.age);: m. I$ S" e7 T9 N1 Q* [
printf("职工学历:%s\n",curr->w.edu);6 _) L" V: B. n/ V5 D! e; n: H2 x2 c
printf("职工工资:%d\n",curr->w.wages);7 |' M4 U" t f% H' F
printf("职工住址:%s\n",curr->w.adr);4 P1 i# Q5 ?# Q9 Z) c/ E9 \
printf("职工电话:%s\n",curr->w.phone); }
- |2 K, h, I: K# m# D}. q3 T: u4 t- y* ]0 `1 J- B
} void findid(PLINK plink, int id)5 F0 s+ J2 e$ j) h$ h V& v
{( [) ?$ |4 R4 E9 y1 t5 S. p
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)4 W" K Q; ?9 L7 ]
{( G, a0 t2 Z1 ^8 C' l7 O. y
if(curr->w.id == id)9 J- s4 N6 \( B* Q+ c
{
9 u0 {) Q2 b9 a O* R8 Nprintf("职工工号:%d\n",curr->w.id);0 q' D" s7 J( t! k) }. @
printf("职工姓名:%s\n",curr->w.name);" a. Q- Z( m. L7 n/ j: ]
printf("职工性别:%s\n",curr->w.sex);
# R8 p/ Z ]' N7 g* tprintf("职工年龄:%d\n",curr->w.age);2 U1 D" a* j/ a; T# R7 d1 \
printf("职工学历:%s\n",curr->w.edu);5 V- }2 v$ h7 Y* G3 R1 v
printf("职工工资:%d\n",curr->w.wages);
?8 j, H2 N8 V& }6 Xprintf("职工住址:%s\n",curr->w.adr);4 o2 X$ @ N. ]9 @; _8 w. E5 t9 R
printf("职工电话:%s\n",curr->w.phone); }
9 Q7 D4 ~" N3 z3 f% f( _$ G: R}* j8 P$ l) e1 _3 \) x0 Y9 r' A9 e( S
} void show(PLINK plink)( m" ^, f+ S3 P( u( }/ u4 @5 |$ r
{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
/ o- b# }& |! ?( Y& D- b4 ~! X{
x& v# k- ` [: @9 Y; Rprintf("职工工号:%d\n",curr->w.id);9 [* a9 v2 ~ l8 R! C2 k
printf("职工姓名:%s\n",curr->w.name);# b' `" }* ~( B/ W
printf("职工性别:%s\n",curr->w.sex);
8 V( e7 P% o8 B! H/ P0 mprintf("职工年龄:%d\n",curr->w.age);' v9 Z9 u9 b4 W; x3 ?! y8 K
printf("职工学历:%s\n",curr->w.edu);
- p2 W% U/ w1 p3 @7 A! T# _. _printf("职工工资:%d\n",curr->w.wages);. n, d% c! O1 O) k) v9 v) W: `
printf("职工住址:%s\n",curr->w.adr);
$ X7 W3 O" Z4 |; w. g- L! x0 A6 Cprintf("职工电话:%s\n",curr->w.phone);
9 b8 J6 _4 p( e2 T8 ?$ @0 B; ~}" f% T* R, c: X- N, E0 B! P/ G
} /*录入职工信息*/5 D# r( o8 j! H/ R& F5 y+ V2 G
int add(PLINK p)- h2 t" G: G: p8 A" X* {% Z- ]
{
/ Y3 a3 ]3 R q6 r2 D3 i1 tPLINK h = NULL;
, j6 K/ k$ M- h9 e9 Y; ePLINK q=(PLINK)malloc(sizeof(LINK));& V9 f4 h& |" N* \9 F/ K( q c) q7 N, Y
if(NULL==q). D1 r' g* l1 }
{
6 r Q1 |* j+ N, o, y d, _) @printf("录入失败提示:内存不足!\n");
! q! l4 d0 c: y( ~9 @# Ireturn 7;
/ y- y# x9 P+ S}
: l6 ^& a) R5 f7 c' [0 oprintf("请输入职工号(数字):");
. ?, x( y5 `/ a# l1 [scanf("%d",&q->w.id);4 K% n- k/ s9 J7 `, Q) x. x. j
h=p->next;) I) U; O8 b" M Y) C& k1 D
while(h)
0 S1 u. f' O: c# [* D, w{# r3 L) `) k0 G, p* `$ Z% p* P, o
if(h->w.id==q->w.id)' G& S' x4 V& W7 x% d$ X6 ^
{8 b8 @. K% U" P3 Z) T/ Z
free(q);
: U6 H3 s: K p1 k4 Mprintf("录入失败提示:此职工号已经存在!\n");2 a- N9 u A% U: |1 n3 ]# U
return 7;
6 P9 k. B/ {# K3 o5 ^1 M}. z+ G5 a$ R$ x( l2 D
h=h->next;
9 h3 g, g- }( A& O; C o/ J}
* H: T# u j9 j0 i. j( k0 nprintf("请输入职工姓名(文字):");- q% n, B/ ^1 v/ i8 e
scanf("%s",&q->w.name);( z, I+ t6 ~$ u9 I. Q. ?
printf("请输入职工性别(文字):");3 Q& X8 F, U& o# X" @- m0 M
scanf("%s",&q->w.sex);
( `6 f4 B2 q5 Z5 L# G! Z) Mprintf("请输入职工年龄(数字):");
' S( `( H" E1 z. } Nscanf("%d",&q->w.age);
/ e5 y& y; c# `( @printf("请输入职工学历(文字):"); U" U8 o5 Q7 U7 W/ X- z
scanf("%s",&q->w.edu);1 k$ W* X- a2 G Y9 R! k, D1 U
printf("请输入职工工资(数字):");9 n4 Y0 H5 C: |" B3 G& U
scanf("%d",&q->w.wages);7 q! G" h5 M+ m0 Q9 P7 Z& J' p
printf("请输入职工住址(文字):");
! n D6 i+ X! C$ N" o: B; W2 _. R8 _' nscanf("%s",&q->w.adr);
) `% Q5 W4 l" }1 r: o8 d+ M1 n8 Sprintf("请输入职工电话(文字):");
1 a; m9 D* @8 n. Z8 uscanf("%s",&q->w.phone);
1 [* w; B% ^6 ]; I) ]* @" C0 ^% H5 bq->next=p->next;" U6 |9 [* m# }# O9 y4 w1 w
p->next=q;, O! M, A/ Q* f) h, o) X! L6 f
printf(".^_^.录入成功!.^_^.\n");
8 i0 C. V) d8 Areturn 7; k; E1 y+ h6 x/ K7 m
} /*按姓名查询*/
) I9 E- W# P8 R) R {PLINK findname(PLINK p,char *name)5 l, D, j; L+ ?/ k
{2 K( U/ K$ q7 m' o9 {9 ^0 q' g8 W6 z3 i
message();
. k! c) v* S- b; ~6 `& Jprintf("按姓名 查询\n");6 x% L: g2 g+ P3 U8 ~8 m2 x$ M0 E
printf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");; d, b9 W1 s7 |, `9 P0 l6 J5 ^
while(NULL!=p->next)
$ M* c0 H% s* s) Z5 Q K{
3 \- J" r& Z1 L( A* Q9 aif(0==strcmp(p->next->w.name,name))
# Q8 Z1 q1 P4 w+ p{
/ d1 n1 ]/ v4 o/ V# } Xprintf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",6 p# M: s: t" t4 W6 e
p->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,2 Q# b& k4 ]/ w8 c2 r) X- S) g
p->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);$ k8 ~& W) f7 j
return p;6 {0 }6 r0 `/ O
}
+ b1 y1 f3 U9 Y6 q# ?p=p->next;
& c. m1 S3 S+ L5 A" N( H+ M- L% a}
( q0 P0 `9 D5 c5 B/ [printf(".^_^.查询结束!.^_^.\n");2 U7 Y. {8 f. O: z, x6 o
return NULL;
7 T$ E# c) B1 C6 G5 _8 {} /*按职工号删除职工信息*/ Q( y3 S( i* a- c
int del(PLINK p,int id) w# _& }7 r+ w# H: i H9 k+ F! d2 t
{
$ a5 ?5 G( I% l Ymessage();. P, W7 g p. k X7 Z& z$ q6 Q! O
printf("按职工号删除职工信息\n");
, `8 k( N8 [. u; Qwhile(NULL!=p->next)
0 I$ H! M9 U) z% u' Q9 ]9 ?& M. N{* O; U6 P1 d- d3 x" G, C5 Q6 z
if(p->next->w.id==id)
- s- u( P' c _- g{& w& ~- V Y5 q6 V5 d
PLINK q=p->next;" z1 n _- @4 L3 y$ E* {
p->next=p->next->next;
: s% H a. K* [7 l7 E" x" zfree(q);# ]" u! O9 ?6 g: R: W1 y) _6 z; o
printf(".^_^.删除成功!.^_^.\n");
' d2 d2 Q& t8 W% w2 hreturn 1;
3 {( I; J* [- ?7 p [7 a m}
) p1 D7 P& h2 g9 m( h+ D4 cp=p->next;4 s) d$ r$ N$ {- S! K+ z
}
' S V% S$ I1 K7 pprintf("没有你输入的职工号!\n");+ j# t$ f3 P& A8 q; U8 c7 q$ n
return 7;9 w. W) J% L* h
} /*程序结束释放内存*/
+ ~, K0 N: k5 h, b5 Z" U' Svoid release(PLINK p)% y- N- ?% t. Y! i m
{
- A0 t3 T0 C/ K1 ZPLINK q;: b; C% S: c; d4 Z0 Z9 q
while(NULL!=p->next)
8 O* O- k3 T6 A& N0 k+ t6 ~! ]{
3 I+ d* n7 e& J; g0 Z, e% K! dq=p;
5 y/ i7 k- ~( G: H& ^% G8 Kp=p->next;# a& S4 i k! l2 t5 w1 [
free(q);
1 f" s3 N$ C9 u% t( B/ Y}
- z# y" c/ m, z+ ifree(p);
3 [5 b+ @ l5 T6 _ V} /*查询调用*/0 L2 N0 m9 @1 }* a$ t! Y
void search()
8 p. z4 P, u0 _4 |1 [8 a0 R5 S{
3 z. m1 p' E5 g8 g- W5 v5 zint id;* R3 a6 I6 ~& ?. f/ j
char name[20];1 a, ~, P% T( d8 A1 s
char str[20];
* k1 Z3 \( a k4 D% vPLINK pworker; D1 M7 v! F6 `; b$ l- G5 ]) k2 Z8 ]( k+ x
int l;
" ^5 ~9 e& v8 x* k( x5 [printf("\t\t\t\t*姓名查找按:1*\n");( |! B0 |. S! W1 I% B0 K
printf("\t\t\t\t*学历查找按:2*\n");6 \0 u* }+ R! R$ q; s1 d
printf("\t\t\t\t*职工号查按:3*\n");
% c7 k% ~9 V9 \0 s Iscanf("%d",&l);
2 X2 V' `+ w5 t8 y3 kif(l>0&&l<4) }( F$ b/ J8 |* ?3 Q) d% E
{switch(l)
( _3 ~! {' e1 V' X4 I6 v{; \- K0 m: v3 r- ~
case 1:printf("请输入要查询的职工姓名:");
, s G, t& P/ vscanf("%s",name);1 h! x L* M, n7 B" t
findname(pworker,name);3 [/ q9 R( Y s2 ?& _5 V
break;! v4 {7 |2 t0 T7 S8 N7 d. |
case 2:printf("请输入要查询的职工学历: ");3 l9 H. o }8 ]& ]1 F
scanf("%s", str);, D5 Y3 A) c8 ^8 `' H, q/ m
find_sr(pworker, str);6 M. X% y) n/ H2 P+ ^* s: N" k5 m
break;
$ q/ f8 L+ H9 L/ A. |+ J+ Xcase 3:printf("请输入要查询的职工号:");
; Z t- S3 h' V0 p) z7 N8 a0 hscanf("%d",&id);
% \) X1 N, b: k' u! B! |findid(pworker,id);
2 R; q. g, G- A# e' o9 bbreak;
- l. j0 k; N# r$ g}
) H. K9 i1 h% P9 Q2 M5 zprintf("\n\n选择完毕!!!");
. C" ]0 G( w: L}
* f/ Y- w1 Y) I2 S4 D) ]4 n, E( Aelse printf("\t\t\t\t输入有误!!!");) W' R O3 j! Y5 d6 [/ K4 q5 y
} /*修改职工信息*// A3 j" H h/ y+ `( ^! ?! d" T2 G
int modify(PLINK p)5 N+ o: d+ t! H- ~
{ int id;
, `) F! {% J! p6 R. L$ |& D8 kPLINK q;+ C" p: b/ F; \3 B
PLINK h = NULL;
* C" w* [/ w H, ~$ y [8 v2 tprintf("请输入职工号(数字):");
3 c: T0 z [3 m5 c, E2 F Pscanf("%d",&id);0 h$ v! \! b8 Q* N8 o0 n' t1 E0 @
h=p->next;
, Q; w* |+ R, `" Mwhile(h)# ]+ e1 o) x0 {
{
$ W- u$ e4 O% n6 }) z1 ^if(h->w.id==id)
* \- x: h1 ]$ L{
, k @/ k3 J+ m0 E3 X7 k. D qbreak;; Q! G+ a/ M# K: _' R+ B
}( V, T; i1 t# c; E/ n. d5 G
h=h->next;
6 @0 W9 s: g- g2 q; r- W' q" X}
, m) x( K& R& ~% C9 b) g$ Yif (h == NULL)
, `7 L0 N8 i8 o J# Q* F1 u{" M, ~8 L) k: _2 n+ l, u7 w, ?
printf("找不到此职工,请重试\n");/ }- o8 K' v# E4 B Q5 o; m
return 7;
6 J" \: j v. }& \4 ?0 p! L9 m% @}
. I" k7 r) L1 n/ T" ~printf("请输入职工姓名(文字):");
% F, h. @0 Y5 Z0 i6 Mscanf("%s",&h->w.name);$ T# R7 h s; o" ?) x, R0 n" z% n& y
printf("请输入职工性别(文字):");
# X" h5 f* t/ R, u# u% ]: e. K2 Uscanf("%s",&h->w.sex);
* W. i! ^- d0 n+ [. h! jprintf("请输入职工年龄(数字):");
( `# ~* k }8 v1 s( Lscanf("%d",&h->w.age);/ A& T; i9 M( r2 `2 k7 n0 l
printf("请输入职工学历(文字):");
% Q, a: r s7 ?6 D8 tscanf("%s",&h->w.edu);
4 r* K4 J" ?8 Y" Lprintf("请输入职工工资(数字):");
0 c5 n6 X+ N) N* G1 ?) `7 a8 Iscanf("%d",&h->w.wages);
5 L% q: R5 `& o \( p" v; g0 Nprintf("请输入职工住址(文字):");9 T. b% K- { N! H2 x' F" h. W9 @; h
scanf("%s",&h->w.adr);' _2 F. D) z6 D/ T2 Q6 }5 \
printf("请输入职工电话(文字):");' a5 E2 n: @' p( I3 W* }, u2 D/ A
scanf("%s",&h->w.phone);
- u) ~$ d; v+ S3 ?+ W& E9 w# o; Lq->next=p->next;
& K& i5 g7 y+ h* s2 v3 K& {p->next=q;
9 A1 W; t: z- P# d" ?0 M4 d5 x) ~printf(".^_^.修改成功!.^_^.\n");( J. `- ~1 B' L+ p
return 7;: P' R! d7 j# v
} int main()3 G8 }: G) q2 f% j$ O; p
{. q x: M w/ h" V$ t4 J# |
" X' h% d% A/ O
int cmd=0;
/ P- T; R9 c# F7 J: W+ y; y# ^1 ~int id;# ]' w, |' X5 N" ~# d0 ^# N4 Z
char name[20];0 `8 R. e: j3 Q
char str[20];
; {* i7 K8 H+ Q: APLINK pworker;
- O; ~ W" l2 Jif(!(pworker=create()))
`4 E) p' X# o- ~& L{
% L" N* D1 E4 qexit(0);- I. @; ]+ g5 Y4 a7 g9 H% C; C
}% D c3 {# m# u4 T
while(cmd!=7)# S; l8 P1 B/ A) L7 N
{0 S% t% }6 B; W
switch(cmd)8 S- m% D& F8 d1 k8 R5 v
{: O8 v" K/ A4 ]: ^$ j+ o
case 0: message(); break;
$ A3 ?+ O3 S7 j3 _$ i) J# mcase 1: add(pworker); break;8 x7 e" t: ~+ w: m/ j! u: [
case 2: show(pworker); break;
! U; f* T: Q6 lcase 3: search(); break;
I* _' N) W/ T5 E8 h- J4 }case 4: printf("请输入要删除的职工号:");7 @1 T( U$ ?2 ^. C1 N
scanf("%d",&id);+ w8 H$ K: n9 x: G% o2 ?
del(pworker,id);
# j8 k3 t l* k) A; rbreak;
% d* c, e- d0 I( Z- ?1 p' Rcase 5: modify(pworker); break;
3 o# }- q: F( Q5 Kcase 6: message(); break;
, f# _! F1 n" y* k, U: P+ c}4 G# J' k, C+ ^0 D" Z
printf("请输入操作命令数字:\n");, J0 I4 k, D. h# L: ]! r' Y9 u
scanf("%d",&cmd);
2 t" Z1 O" }+ _}2 c3 B! m7 Y7 S( h |$ p' c
printf("谢谢使用!\n");- D' d6 P# x7 z5 @5 F; h
release(pworker);
# j' ~7 `/ ~8 Qreturn 0;- M r% b0 j# C5 r- f) Z4 R8 }
}
; ^; h. ]) z/ X2 f0 }
- e3 m+ m" j' B [6 e0 V; d( J
. V+ P6 J4 @" k- S' ?这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!
6 J( J) z( @' c: G3 P B* Q2 a' |" E
|
zan
|