- 在线时间
- 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>; N# P) Z" N/ o# Z3 D2 Y5 W
#include <stdio.h>8 o' M! _& F+ b L; w
#include <malloc.h>
+ O6 Y9 y8 F% V4 T8 `6 q#include <string.h> 5 d% p t+ i. ~% [# B
typedef struct worker
- |1 F# W1 c5 Z: ]- l$ A" i7 B{
* R- U3 l- T7 r% Kint id; K. b% `$ d" M6 w) p( |
char name[20];+ K6 X: C3 l5 H5 i+ Q
char sex[3];
7 J9 b& A' h' Xint age;/ V, D7 f' r2 I
char edu[50];
! v+ v# [. y3 ^6 y, uint wages;
6 Z+ e; | Y( }char adr[255];
8 C& g: {8 I% C0 gchar phone[13];2 R- Y2 o3 ]. i, P) _; s, m5 b2 S
}WORKER, *PWORKER;& g# ?0 K) _% f: e
//typedef struct WORKER *PWORKER;4 ^4 z" S* s. V& P
typedef struct link9 a( S3 z3 D7 s2 \+ t- ^
{) _ z! D: L8 E
WORKER w;6 C/ A! ^7 y9 p
struct link *next;+ s+ F9 n5 w6 K; Q& P, r; o2 a1 z
}LINK, *PLINK;
, ^( g! T$ n4 h$ S& n; l//typedef struct LINK *PLINK; /*创建职工信息链表*/) C5 {: u: i5 e# D4 [' }) V
PLINK create()
S3 w) m9 F* [4 Q{6 r6 z' ?5 z) L0 i0 o; f
PLINK p=(PLINK)malloc(sizeof(LINK));/ w) y; W1 ~! Y
if(NULL!=p)
f0 b; C1 p0 R8 K5 V{2 }, E Y6 W# d @2 x8 g* W6 c
p->next=NULL;
" X F( r" k# e6 ?, Vreturn p;5 x0 i* F# X# E$ u/ E ]2 g0 u2 Z
}, ^& i: B. |3 x9 Y; k' H3 I" P
printf("内存不足!\n");: c% G0 q6 C' l1 W/ T. V& T3 p
return NULL;
' ]- Z. l% \+ J8 c8 K" b} /*显示程序界面文字*/% @- y* t7 J7 Q( f5 Y! l
void message()
( R6 g; h E' T8 O6 {{ system("color 0f");/*设置当前窗口的背景色和前景色*/
* T6 ?- r1 X; a# q# e9 B* N/* 0 = 黑色 8 = 灰色3 ^7 n) S; k: G" n1 n, I) ` d
1 = 蓝色 9 = 淡蓝色2 n2 q1 g6 j! Q& N6 r1 e& U2 G9 r
2 = 绿色 A = 淡绿色; h; {5 v4 ?, B6 _0 N( @# L' J
3 = 浅绿色 B = 淡浅绿色4 a7 `, n* m" L0 Q
4 = 红色 C = 淡红色+ o7 I% U2 j3 _$ t/ j1 }, Y
5 = 紫色 D = 淡紫色
! }6 y0 O( {, w9 h5 L8 u6 = 黄色 E = 淡黄色 y& q- h( s! M6 j3 A* T
7 = 白色 F = 亮白色*/% C' L0 @8 w7 O3 b4 S& G
system("cls");
8 K J: W, X4 C& |3 P5 ]/ D% q+ i* Uprintf("\t\t************************************************\n\n");& R) S9 v* X" d5 x9 ], f
printf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");
/ z5 m. u6 A( C$ g8 Oprintf("\t\t************************************************\n\n");; h3 i% {: ?3 V% D2 t0 V
printf("\t\t ************** Choose Function *************\n\n");
$ V% \% u2 R& g$ [2 a. X( mprintf("\t\t ************ 帮助 请输入:0************\n\n");- ]- L* l2 e# v6 h6 A E; j$ ]
printf("\t\t ************录入职工信息 请输入:1************\n\n");& r9 I9 k Q: X6 E6 ], T
printf("\t\t ************浏览职工信息 请输入:2************\n\n");5 u* v* y4 P# F5 A
printf("\t\t ************查询职工信息 请输入:3************\n\n");" h9 y5 _- E8 H7 z/ b
printf("\t\t ************删除职工信息 请输入:4************\n\n");1 `9 e% ^2 N5 A O
printf("\t\t ************修改职工信息 请输入:5************\n\n");; N! n+ x5 n b8 x
printf("\t\t ************ 清屏 请输入:6************\n\n");. g9 g8 g+ [2 j' U6 _+ P
printf("\t\t ************ 退出 请输入:7************\n\n");
1 D7 l' l" R. ^+ w7 Dprintf("\t\t************************************************\n\n");; D% i; f2 z# B% S& L
printf("\t\t************************************************\n\n");" _2 R4 `; q2 r8 {! W( G0 m
} void find_sr(PLINK plink, char* str)
" e6 q! q2 r) L7 _, U! I/ k{% f8 n2 L% W4 d) b3 D
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
8 U; h8 w" z, z+ w S4 i{' a" a" R$ T* ~) y: g3 H c
if(strcmp(curr->w.edu, str) == 0)
4 g/ y8 s1 K0 i4 U{- \, a! X: E- z, K, H: Q
printf("职工工号:%d\n",curr->w.id);0 W. H5 L: v. X4 T) ~, i
printf("职工姓名:%s\n",curr->w.name);+ B; [8 n3 u. ^; e! b. A4 P
printf("职工性别:%s\n",curr->w.sex);5 Z8 @5 P, m; r; x
printf("职工年龄:%d\n",curr->w.age);
; o" X+ N: i) c/ ~printf("职工学历:%s\n",curr->w.edu);+ ?/ A/ W: ^1 D5 _
printf("职工工资:%d\n",curr->w.wages);
; ~6 O% K! J \) oprintf("职工住址:%s\n",curr->w.adr);
- L6 l3 ^7 [) i0 t9 a( |6 [. bprintf("职工电话:%s\n",curr->w.phone); }/ u0 y6 ~5 U: e; s$ }1 O- e0 ~
}
; m* ~+ X& n7 w/ ?. D1 S) ?} void findid(PLINK plink, int id)
" B, ^0 h X9 I, N" l{
( n* n3 g7 W9 }2 M- D# ufor(PLINK curr = plink->next; curr != NULL; curr = curr->next)! S6 L4 E, G0 e5 G
{. W& R8 _, D; b. I
if(curr->w.id == id)& d- e1 h( F8 B
{
) k; I6 q2 N- x% i- pprintf("职工工号:%d\n",curr->w.id);! [+ W5 D- M2 k* ^5 I
printf("职工姓名:%s\n",curr->w.name);
+ Q0 [( m/ n5 S$ }' q' Dprintf("职工性别:%s\n",curr->w.sex);" c) N: t- \: o S4 y
printf("职工年龄:%d\n",curr->w.age);
# s+ `3 Y7 N0 o5 F& H6 m$ g' Oprintf("职工学历:%s\n",curr->w.edu);
! N4 z3 J: z1 N0 q- \printf("职工工资:%d\n",curr->w.wages);
# _6 ?1 u- q$ B) a" r5 Y1 }) I- Eprintf("职工住址:%s\n",curr->w.adr);
. G h$ F7 z# Z% Rprintf("职工电话:%s\n",curr->w.phone); }! a6 e, [/ _4 {# q
}
' B q( u) y/ q1 x1 f} void show(PLINK plink)- l+ O! ?# X/ ?5 e$ I) k
{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
8 w+ w7 i3 ]0 X+ J{
' v u4 d L* b% N4 _( Nprintf("职工工号:%d\n",curr->w.id);) s' {" j& Z( z. V7 {
printf("职工姓名:%s\n",curr->w.name);# U( Y- U' q& L [
printf("职工性别:%s\n",curr->w.sex);
k4 x8 a4 N, Z: Z `printf("职工年龄:%d\n",curr->w.age);1 x6 a0 B9 ^0 [# [% s |- I
printf("职工学历:%s\n",curr->w.edu); g- k0 x Q* s( k. {( a. q2 h
printf("职工工资:%d\n",curr->w.wages);
( H2 g2 W3 E: c6 m% u8 M" Gprintf("职工住址:%s\n",curr->w.adr);
+ x: s* e: A' C9 g6 Y: \printf("职工电话:%s\n",curr->w.phone);, [; K6 P4 u n5 }( ]- k' r
}
( `# m* M7 k" g6 I} /*录入职工信息*/5 j1 n0 d& \4 y0 ^2 A# y- t% x
int add(PLINK p)
# u# I! Z% ^$ [6 ^: f{' b7 V8 l( X! p+ E8 ]# k
PLINK h = NULL;2 i! [* s! C# |! p, t+ U) y% d
PLINK q=(PLINK)malloc(sizeof(LINK));8 ?$ u: F$ N6 ~% b! Y5 Z
if(NULL==q)
. w+ E; V. l* x a6 ]* ?3 n; F{, X/ Y8 ~# L4 g1 y4 L
printf("录入失败提示:内存不足!\n");5 [6 M6 V8 d6 J& @
return 7;1 F- B; }( V8 A/ s- i( s1 M. F
}7 S* U7 j, U4 D" s
printf("请输入职工号(数字):");% e( _* H6 u4 V
scanf("%d",&q->w.id);& P5 w; h" C" j: p7 ?( V0 R0 L
h=p->next;
6 w+ q0 S" u3 ]% Z( nwhile(h)
+ F8 \ Q$ n2 `( C# J4 {{
: Q! b( \) E6 M' E% iif(h->w.id==q->w.id)
, Y- W6 m& t. P7 n6 r! i( Q$ H{8 k) U7 }. b* C6 V5 |
free(q);
: k9 D. J; S" n) wprintf("录入失败提示:此职工号已经存在!\n");/ n6 U9 u! n7 i+ n/ ?& F
return 7;/ k5 f* @/ i% ]% u
}4 V2 e+ v3 ?3 H: F8 t& e2 p
h=h->next;
B2 i% W+ x4 R! j3 _8 n" n& Z. H# y}$ z5 e1 [3 z4 v, l! c8 ~6 I2 w
printf("请输入职工姓名(文字):");3 Y3 j1 m( ?7 A! e, k
scanf("%s",&q->w.name);: v8 |* u, l& {4 }
printf("请输入职工性别(文字):");
0 V9 a( f( d; Q' ~/ j6 X- h: ]: uscanf("%s",&q->w.sex);$ K8 |/ @+ `2 Y1 ^! Y5 T4 m
printf("请输入职工年龄(数字):");
, D$ V( @! {7 \9 H3 n* b: Dscanf("%d",&q->w.age);+ p1 ~1 b2 ^+ o" Q6 b) f4 z
printf("请输入职工学历(文字):");3 g+ K" c4 j) F& `" s4 l0 ]
scanf("%s",&q->w.edu);5 M% s# ~; k" y [$ ^# y
printf("请输入职工工资(数字):");) |% N% ]- P& j( e" u$ ^. t
scanf("%d",&q->w.wages);' x! W( ~% e: I1 c5 @+ l
printf("请输入职工住址(文字):");3 I! C. V6 Y9 [; k3 N( f% K9 m$ H3 v
scanf("%s",&q->w.adr);
' ]* o/ K; x5 q& v: i$ E# ^( oprintf("请输入职工电话(文字):");
, O. }. n4 R% x7 m0 Q& G+ l8 [scanf("%s",&q->w.phone);6 f& ]' @( g I8 R5 _
q->next=p->next;6 q$ ^6 I/ p: M8 x# D& L
p->next=q;
" y9 M( p! f8 _/ \1 @4 c: Q" N6 jprintf(".^_^.录入成功!.^_^.\n");
- q Y5 v4 U5 R5 M- rreturn 7;7 e, N, \9 d6 s y5 I; z5 b
} /*按姓名查询*/! o% {4 u0 R& z' ?+ @1 A2 h0 Y
PLINK findname(PLINK p,char *name)" K/ U, }- t+ i8 J+ P
{
$ \: N# r/ e( L% |; m, Omessage();& Q4 O8 H: W, ^! w! [' J- v
printf("按姓名 查询\n");
" l/ m4 f$ V( e$ O7 G" |4 B2 M# E! `printf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");
2 [/ d; L- F& y& rwhile(NULL!=p->next)
0 x9 L; k6 c5 n# j8 P8 H( k{
/ l u; a2 {; t" Rif(0==strcmp(p->next->w.name,name))! e# X' r0 w5 ] h
{5 H" J" J c6 }/ a: W
printf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",
. [/ {; _ a0 B. X2 Fp->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,
; h% P r. b' I6 Y& V, `- G/ I/ J7 op->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);3 o6 o$ B2 W. c0 `
return p;
2 t& R, N: _; e! J4 ]# d$ q}! x# j8 H u b. n* n, v: }# B
p=p->next;
" k' y# }& `$ D6 M2 K2 k8 h0 v}
; H1 a0 c0 |0 Z9 v( kprintf(".^_^.查询结束!.^_^.\n");5 V' ?6 M* W/ C' a$ Y# j: _0 }
return NULL;7 |4 l( |' p% Q" z: O/ Z" L
} /*按职工号删除职工信息*/
$ D1 x" r! b6 X, ?# \" lint del(PLINK p,int id)7 `% r2 u. q' t8 v$ h- _1 t% T
{* e$ t$ B! M3 Q. S
message();9 r4 a& \0 [( N
printf("按职工号删除职工信息\n");' p, y% Z/ N# H$ x, K2 d* s( _
while(NULL!=p->next)
5 A& l. P! T3 v; B P{
7 a# ~+ H! I: F7 P v. [if(p->next->w.id==id)
* o& Y# {, p6 D7 ~7 X8 P( e+ P, J{; Q l! R) c! t
PLINK q=p->next;2 b. T. f7 u' C; ] ~$ Y
p->next=p->next->next;8 f( i# D, w; R5 j
free(q);
/ r5 T* M6 b @+ ]+ Y- U @8 Y O3 Y4 Rprintf(".^_^.删除成功!.^_^.\n");
* x! f8 H1 X2 G- G$ I. n7 c0 Treturn 1;
! J; b$ t7 y( H% Y' B8 u# d+ r% b}; b( p- |; g5 O. a* \% P: o$ s
p=p->next;5 ?0 i2 _6 K+ n7 z
}" }# l9 _$ K! m, o3 F6 N4 h1 P. h
printf("没有你输入的职工号!\n");% d# ~4 d# h4 Z8 b/ z# t
return 7;
" }4 @. K. b1 j) ~/ ^: P% O4 {} /*程序结束释放内存*/" p" Z$ h5 L- y2 y! k% N3 C
void release(PLINK p)2 S; F/ ?3 U/ A j9 b
{& H1 b. l5 z6 h& r! D
PLINK q;1 F$ V9 T: {, g
while(NULL!=p->next)
7 e, x' n, L: f+ j7 P; j{
# ^4 |3 e+ A$ M% i/ Kq=p;
; E/ X I2 {5 W' O- v; c6 p$ w% Qp=p->next;8 o6 }1 d# s. r( J/ J4 s
free(q);
# u& E! P y. { ?}8 W" j& |7 }. t6 q# x
free(p);% ~8 K6 x( g5 t; M$ A5 G/ {
} /*查询调用*/
. Q' ?/ E8 z% }void search()
* X8 g5 R- k- y% ]" p) C7 @3 H1 {{% i( |' n0 ^7 L) u; [
int id;0 g4 V- f, A! z- B! x' k# D
char name[20];! w, m8 A4 p, b4 G) j
char str[20];
+ e" b3 c9 n3 k2 z; ~PLINK pworker;
6 o0 V) l# f* z4 o# h( Tint l;
U- D0 p0 o2 {# B/ sprintf("\t\t\t\t*姓名查找按:1*\n");1 V! X$ R7 P% b# r
printf("\t\t\t\t*学历查找按:2*\n");, R' {) r9 u2 B5 L: l7 s% t2 c3 e
printf("\t\t\t\t*职工号查按:3*\n");- q/ S% q! G$ j
scanf("%d",&l);7 V* s! j+ a' Q
if(l>0&&l<4)" ~3 N& `( l+ \0 {) I2 ^; ]
{switch(l)
6 W* X$ A- G! N{6 Z ]% n( L. v" f2 d4 P; V6 ]
case 1:printf("请输入要查询的职工姓名:");
: f! w# y9 e x2 e% k5 Wscanf("%s",name);; U8 Q0 P: B- Z8 N& P1 I0 T
findname(pworker,name);' S4 t! J9 ~( s
break;& Z! i: h3 {0 n5 x, z' v
case 2:printf("请输入要查询的职工学历: ");8 q5 \( O" N( B( f8 x% ?
scanf("%s", str);
, P$ }: b8 E+ n& f) a( B: I" Nfind_sr(pworker, str);
% _; f9 K% J6 lbreak;4 {6 x" J8 t! j/ z0 F+ Q
case 3:printf("请输入要查询的职工号:");' [) Z' x6 }% d3 m5 c2 S
scanf("%d",&id);
0 b0 e" f5 [ a, c+ wfindid(pworker,id);
. \+ }- K* Y) g: S6 Q# [/ C0 a7 mbreak;
/ W4 K" i. G7 I) N}
0 ^( ^7 ^7 _' m4 q6 t. ?! c5 Kprintf("\n\n选择完毕!!!");' L1 {8 Y* h- w" `
}
+ m l7 L5 Q7 i9 A, m( oelse printf("\t\t\t\t输入有误!!!");
: A5 v! L1 @1 X, X5 _- J} /*修改职工信息*/
4 g. y" J+ l0 q! _* H6 {2 h2 C* Sint modify(PLINK p)
& P# m+ F9 d0 K; B( j% E{ int id;- D2 R, m8 F5 f$ z. d
PLINK q;
. ~9 n% U, Y" e" o+ MPLINK h = NULL;
0 ^4 d) e2 C% P" u$ `printf("请输入职工号(数字):");
! U1 o7 j; i7 n8 t7 Oscanf("%d",&id);
( V( R7 h+ z6 w! C p7 kh=p->next;' A9 ]1 r' [7 R
while(h)0 ^- H; m* n6 s( ?1 B( B8 D( w+ N$ X% Z
{3 n; Q: V. o0 k! M& s0 m, b/ g
if(h->w.id==id)8 u) r! C* n! I% N; Q
{! Y' H) S- \8 [
break;
4 [2 |2 v' r$ J* d# f% S, u P}
6 c3 j0 i/ l9 h& N7 i3 Ch=h->next;
, I5 J* W) I6 u- |, X$ \}
; B- h+ ?" o9 [# Yif (h == NULL)
. V- `7 q% i* Q. T{! j) I. _' u7 L% i. l7 }6 Y" Y
printf("找不到此职工,请重试\n");% G+ Q( K* r8 h, P1 ~
return 7;( @; Z" S$ G/ U! T& ^+ T
}
$ U) l, S5 N# z1 n! d% z' U# Hprintf("请输入职工姓名(文字):");
' }4 d. y0 M& t4 R+ jscanf("%s",&h->w.name);
6 _0 F; W' d2 O8 ?printf("请输入职工性别(文字):");4 b0 \+ J6 ^- Y) v
scanf("%s",&h->w.sex);
+ `: ~# s( a( J2 l* kprintf("请输入职工年龄(数字):");7 Q& k& O1 O. H/ k6 ^5 y
scanf("%d",&h->w.age);6 h2 h2 y, J! f1 y; z* W: s
printf("请输入职工学历(文字):");
k% K" t- w, C6 \$ L- mscanf("%s",&h->w.edu);
/ o2 K! w( V) v2 e$ X7 {/ @: Xprintf("请输入职工工资(数字):");
: G" f9 b$ H* f; q! w/ S& Oscanf("%d",&h->w.wages);3 Q+ } ^9 ^6 \* H( S
printf("请输入职工住址(文字):");4 l( S! L% x& w1 _/ }
scanf("%s",&h->w.adr);
& P+ e7 F0 ~. Y; F, N" _2 sprintf("请输入职工电话(文字):");
7 N: {: y, w& X/ o7 s/ Wscanf("%s",&h->w.phone);+ P$ d* n4 i/ `* m) n e1 L
q->next=p->next;* ]2 A3 C4 j# ~& P3 w$ {
p->next=q;
/ y" M2 [, ^; @9 |printf(".^_^.修改成功!.^_^.\n");% c y1 i; z- O- m: i! I4 g
return 7;
* a/ Q! o0 G# b N. K} int main()
+ Q. O- \. t) G |/ e" B3 \{! W" s! s3 G1 s3 ^
: x, d" O- L8 U/ }8 Q
int cmd=0; ~7 o* x l* J, H( |. n- C( E+ }
int id;5 v% S0 X$ {' g! E, E2 M5 f
char name[20];
8 ^( M* ?5 r* i8 {0 _2 r$ v' U1 vchar str[20];' @0 J5 _% M. n6 }* ^" a
PLINK pworker;" W7 D* b" o, O: G1 Z
if(!(pworker=create()))
6 ~9 h2 s# p* _" q9 l0 J1 H/ {{
% B- u* H; u3 e3 S# V+ xexit(0);
' A7 u; n7 b: D# ~}
. d. @# U9 T: Q' f4 Uwhile(cmd!=7)5 o/ U& d$ }; i
{0 P+ M& _5 z! n4 q
switch(cmd)
+ b& `3 s Y3 Y* H/ H{9 l2 i" z: {/ _* V" ~
case 0: message(); break;
/ b5 W: y ]: i; o/ V) zcase 1: add(pworker); break;
5 \+ Z$ _& \2 ?. y3 kcase 2: show(pworker); break;
* u3 e2 u+ ]0 i* f; @) Jcase 3: search(); break;& k Q3 q4 s2 f2 c3 g
case 4: printf("请输入要删除的职工号:");
8 O! S9 [- I! Q- W. w3 oscanf("%d",&id);* |# ~4 I! I% @' {
del(pworker,id);8 X& N* U) q3 c
break;# p" G" S7 b2 T7 V$ f
case 5: modify(pworker); break;
. s' V6 Y; P A- A' w; D2 f* K! w- Vcase 6: message(); break;
* b2 s8 j$ ^7 V2 Y}9 T8 _5 {7 H& ?
printf("请输入操作命令数字:\n");) e: X$ |2 |8 s
scanf("%d",&cmd);
2 U1 E( W- L9 I% d2 E" S8 j1 ^- T}3 C+ _& n' C8 O3 d% o7 D1 b3 k4 D
printf("谢谢使用!\n");
! j, P. R/ b# ^7 Z' u! Z$ Zrelease(pworker);
9 C& M7 ^% C5 d' f+ j2 ~return 0;# l- j: B2 y+ N; C( _
}' y+ Q1 C# u- Q5 q6 ]9 e& t7 j
O1 g# I3 `0 x' {
. G; z' q* m3 y" Z2 D8 N
这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!
+ e& d+ o0 b3 p
# e$ S7 Y2 D; C X7 m |
zan
|