- 在线时间
- 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>
$ n0 E7 p) J" S) O' ^#include <stdio.h>
8 @( F% d( f1 W( }- z% y9 z#include <malloc.h>% o6 Q! b. Q& f8 s' l: i
#include <string.h> * V8 t/ T. ]$ F; l4 M
typedef struct worker' |6 V- m; |* W: ~
{6 d( y' i. S( D2 T& X7 E& Y
int id; X- z( h4 v! i" A9 [! X( M
char name[20];! n! X+ d2 P. X$ b
char sex[3];( y [! v; I& Z. L+ q+ K3 S% W# s* L4 w
int age;
1 a2 y2 _% B7 E# g; c) i( Dchar edu[50];
! ?+ S. |5 J ?3 {& F% b8 hint wages;
4 c2 B* i. ^4 v% A6 Kchar adr[255];7 T3 `) o" F& `0 b; E- h- I
char phone[13];
/ I" D$ {6 ^$ ?! F5 A}WORKER, *PWORKER;( p1 A* X% W% h+ p
//typedef struct WORKER *PWORKER;# N2 s; U5 n% V k4 [2 J: g4 w, F
typedef struct link+ ^9 c" N3 l" x F! `" w5 ~9 M
{1 p3 H6 n x, i: ?& F0 w
WORKER w;
0 L. b4 b& Z* L+ sstruct link *next;# O0 G5 j& e; h# j* w: {
}LINK, *PLINK;
; G( t, m1 }3 \* b//typedef struct LINK *PLINK; /*创建职工信息链表*/5 C( A2 e8 K& c# Y3 _; a+ f
PLINK create()
( _& h. b8 L7 G6 e& F{
& ^" t& T" Q, o0 F- x$ T8 O" f* zPLINK p=(PLINK)malloc(sizeof(LINK));- X* ?+ D, p: ]" E. p/ K- E
if(NULL!=p)4 U2 B& q+ }6 h, M
{8 A& _0 S# V! @+ e/ B
p->next=NULL;7 c1 f) O/ Z7 p$ v9 F e
return p;
3 n; Y. I/ f. v}
+ n' Z5 u+ ]8 j$ L2 R( u7 Gprintf("内存不足!\n");0 ~, r9 o! [- U
return NULL;
4 a2 C$ M2 H/ \} /*显示程序界面文字*/
4 O: ]& n, J: e& w. l5 O- Avoid message()1 d: F( V$ g) H$ M7 g2 z
{ system("color 0f");/*设置当前窗口的背景色和前景色*/
& ?. x/ J7 {3 H$ G/* 0 = 黑色 8 = 灰色
3 g% G% H" a) F/ ^4 A1 = 蓝色 9 = 淡蓝色. d* X# p: o/ i' ^3 x' ?+ ?
2 = 绿色 A = 淡绿色9 m3 T O( W1 t1 ]3 Z9 W
3 = 浅绿色 B = 淡浅绿色2 w% W- y- f+ b+ M
4 = 红色 C = 淡红色8 e3 x% Z' S; S5 l9 `4 E. t
5 = 紫色 D = 淡紫色
* V; q! e2 g4 B% B8 H# k9 y6 = 黄色 E = 淡黄色( B9 r/ p( s M9 k) t7 r
7 = 白色 F = 亮白色*/
6 d5 Y% S2 R7 I2 i; C7 Hsystem("cls");7 ]* i& R1 E. P4 b: r2 R- ^
printf("\t\t************************************************\n\n");! ]/ \, W& t; {9 p" E) V" v1 F
printf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");2 U1 T# u$ p8 s4 B$ {
printf("\t\t************************************************\n\n");
' w8 N' l+ d& @# J2 |printf("\t\t ************** Choose Function *************\n\n");
/ @% h2 g3 {+ `* E7 Sprintf("\t\t ************ 帮助 请输入:0************\n\n");
" O, N0 p2 F. s$ X! R" b! w7 z hprintf("\t\t ************录入职工信息 请输入:1************\n\n");! l1 F. g/ _6 |: W' z- S3 |: m9 B7 `
printf("\t\t ************浏览职工信息 请输入:2************\n\n");
$ S" Y( J2 F. u* Aprintf("\t\t ************查询职工信息 请输入:3************\n\n");
6 q5 Y. A$ W c: C' Y1 pprintf("\t\t ************删除职工信息 请输入:4************\n\n");3 N4 P/ ^1 z, ] X- p1 `; n$ Y
printf("\t\t ************修改职工信息 请输入:5************\n\n");9 |8 N! p; r6 V4 p, k/ ~
printf("\t\t ************ 清屏 请输入:6************\n\n");0 @. \3 e' H% W. `7 e, u
printf("\t\t ************ 退出 请输入:7************\n\n");9 e2 t- L6 T1 U5 s
printf("\t\t************************************************\n\n");) o: ]+ W- P7 U+ c" c+ E2 Y: v
printf("\t\t************************************************\n\n");' o- m& P( m3 ^% c5 Y) E5 W4 c
} void find_sr(PLINK plink, char* str)
1 c: J X6 x" I4 d- a1 \{% Y; @+ r9 C/ H: g
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
, T; j5 v& s. O& U# S; N; ^{
4 z7 i6 V3 g5 C! @' yif(strcmp(curr->w.edu, str) == 0)5 u4 R' p d4 M Z: z
{
" P+ ^0 I: f; C- I' |+ ?3 ~. Vprintf("职工工号:%d\n",curr->w.id);+ c. Q- g7 K* v& J, p2 ]" q
printf("职工姓名:%s\n",curr->w.name);& q9 Z o' ?8 d6 r2 n( e
printf("职工性别:%s\n",curr->w.sex);- ~: _8 @' e+ r, k
printf("职工年龄:%d\n",curr->w.age);% ]0 w9 b1 ?& G( k
printf("职工学历:%s\n",curr->w.edu);
! v8 ?7 m B8 A: V% {$ y r" S7 Mprintf("职工工资:%d\n",curr->w.wages);
4 f' i+ G# u# o7 tprintf("职工住址:%s\n",curr->w.adr);
6 T/ f3 O. r7 ], S+ i/ f' W5 @ l; Wprintf("职工电话:%s\n",curr->w.phone); }; H, z; |9 H4 S" Y
}, D |/ I6 }* _) L: N4 x# [; t
} void findid(PLINK plink, int id): X5 c5 u8 `+ i
{- B% k9 c: B9 N8 ?9 r& I) }
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)6 f# h8 t* [( l5 L. M( O; T0 j
{
4 h/ p. U; J7 [5 Zif(curr->w.id == id)
! O% e8 V" Y P+ I{
( j# m) f% W+ d# X1 a- ]& eprintf("职工工号:%d\n",curr->w.id);; ]7 r1 L- T3 O1 t
printf("职工姓名:%s\n",curr->w.name);
k7 ^1 T$ y. T+ {2 lprintf("职工性别:%s\n",curr->w.sex);
# u+ G9 g5 R. ^$ m; h! W6 E) Mprintf("职工年龄:%d\n",curr->w.age);
, ]. O! G3 ~8 P6 qprintf("职工学历:%s\n",curr->w.edu);
5 ]( m0 E& w$ G6 O! Lprintf("职工工资:%d\n",curr->w.wages);
. ?# w# d8 {2 Q. h) M* q. S" Iprintf("职工住址:%s\n",curr->w.adr);2 Y, |" Y& B$ L6 r- d4 V
printf("职工电话:%s\n",curr->w.phone); }
. K$ r& ]: X4 X8 ]}
6 F' a4 Z$ Y. I8 \* V0 t} void show(PLINK plink)' n- o" |/ X2 q& v% w( H
{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
: B* w5 G. h2 D% J% |7 W- @{1 v0 u0 a3 c2 F+ t* o5 |. _
printf("职工工号:%d\n",curr->w.id);
3 c7 Z; a6 _: W B( xprintf("职工姓名:%s\n",curr->w.name);
& e6 o6 u. n/ }; Wprintf("职工性别:%s\n",curr->w.sex);
# e5 R& U% p$ z9 Z8 E, G' n; r) S3 ?printf("职工年龄:%d\n",curr->w.age);# F; E8 p8 d/ Q
printf("职工学历:%s\n",curr->w.edu);
. q' G) W. T/ j- z* W* U4 _8 tprintf("职工工资:%d\n",curr->w.wages);+ H: I S0 ~* s. d
printf("职工住址:%s\n",curr->w.adr);1 H& H) U; N& L( F/ O
printf("职工电话:%s\n",curr->w.phone);
3 l* P0 j7 g7 o}
4 [) l) _, z; M0 L" ? D5 }+ ~} /*录入职工信息*/+ U: E9 F* ?- P0 t) W
int add(PLINK p)
" S, q) ` K5 n0 ^) [{9 B( b( |3 m8 q+ f# [2 D2 p
PLINK h = NULL;
8 S* y& i5 g$ d/ D. {PLINK q=(PLINK)malloc(sizeof(LINK));! G. p- ?6 F8 E( k# Q- G% \) C
if(NULL==q)
' W, @) b3 r9 P8 K$ V3 m{& `- z$ N+ f- T% v3 h0 V
printf("录入失败提示:内存不足!\n");
+ Z3 E8 E& c' d& e! ?( P2 Rreturn 7;
" N, U9 f( K9 W7 {: d0 a4 [: L}0 ^+ [; b l8 I+ [
printf("请输入职工号(数字):");: X4 ~/ E* }8 J2 \6 @5 c
scanf("%d",&q->w.id);
- C3 E Y; o% l# gh=p->next;) p$ z+ I* d* D: j6 q# v/ c4 @, S
while(h)
% w: h V; u# ^+ F{
. J8 `% w( a/ h, N) Lif(h->w.id==q->w.id)
* b- p' [, m4 W) Y7 n{: t9 m8 @: S, ]/ [' d m I! D
free(q);: I3 q* D6 B8 D( y) h( r9 ^
printf("录入失败提示:此职工号已经存在!\n");- L7 e3 A* W+ b
return 7;: Z% x h6 n; l2 w. ], r4 s0 j8 Q
} x5 p R& V- {2 f1 e/ t" ^
h=h->next;
, u! {2 N( q1 ^}9 t' \+ f5 m# n& h! T
printf("请输入职工姓名(文字):");4 @3 h S; t9 E/ J1 \
scanf("%s",&q->w.name);: k( M; V1 m' \+ v" b8 J' U; o
printf("请输入职工性别(文字):");
' U9 A* l) e0 ]6 K; E# c' Zscanf("%s",&q->w.sex);
# A( c/ T& m- }) R6 y( n" eprintf("请输入职工年龄(数字):");
( p0 p$ ]- i; I( oscanf("%d",&q->w.age);4 d# `; Q. s% r8 [
printf("请输入职工学历(文字):");; Y M+ Y" R" x3 ?( Z
scanf("%s",&q->w.edu);
& f' K6 T, I; @printf("请输入职工工资(数字):");
. r f- s+ }7 ]7 sscanf("%d",&q->w.wages);
! [. f* ]8 b2 ?, r- o8 @printf("请输入职工住址(文字):");
/ j* h2 B1 o. a d1 H2 w* wscanf("%s",&q->w.adr);
# U1 E) M) D9 |9 q: ?printf("请输入职工电话(文字):");) g; a& N: V! ^. j2 O
scanf("%s",&q->w.phone);
0 T" L# ]8 E6 [$ uq->next=p->next;
$ Q, F0 B; z/ M4 Fp->next=q;) \2 o5 H/ W- b3 N( A$ Z! D [
printf(".^_^.录入成功!.^_^.\n");
2 l/ K/ N; B- P5 Z' treturn 7;
, a/ l5 h: V, l( _1 g9 t3 ]! W} /*按姓名查询*/
. M" Q7 P7 x, t; \0 CPLINK findname(PLINK p,char *name)
' _ a8 k) i. W u- u{
9 J$ {: q9 E9 E: Vmessage();
4 h: c* X- Q) a9 M8 L( qprintf("按姓名 查询\n");
# o- z2 W$ Z; i6 @( dprintf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");+ ?. G! P7 ^/ M4 k* z p
while(NULL!=p->next)
3 s8 @8 @& q5 J" S( q{
9 o& M( _( }' u% Oif(0==strcmp(p->next->w.name,name))
8 u; R+ J" b3 t. r1 Y+ s# @8 }{
. r+ i( l- H1 A/ J0 G0 w) Iprintf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",/ B; Y3 A# l/ S, }% V
p->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,: u0 c" z: T1 {) ~: m. H
p->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);* H: t8 d4 d- N/ m3 p; |" P
return p;! o" a6 D {( S/ x# ?2 n" {
}
$ q* B v P, x- R0 _+ dp=p->next;
9 f& Y" G6 A3 H! o4 W}4 ]3 d6 D- D- S0 g/ S. o$ _. N
printf(".^_^.查询结束!.^_^.\n");$ Q/ x2 N5 ~) ]+ K1 Q; q' S
return NULL;- a1 U/ A" t/ K1 j
} /*按职工号删除职工信息*/
; B4 d- Z# V) @; S: Z% ]int del(PLINK p,int id)/ p+ b4 `$ F0 J+ q
{
: y4 s1 ^. p+ e+ g/ Xmessage();
7 G0 n, Z0 `9 b- K6 M" H1 |+ Qprintf("按职工号删除职工信息\n");
' z2 n3 f' f+ g% z3 e0 ~while(NULL!=p->next)' f; } N) L# `% t6 r' G8 I
{
6 o0 M$ L- v9 e$ R1 [4 {if(p->next->w.id==id)
@! v$ @! `2 d5 W( L( K$ `; A5 c5 s{
) J- k2 s# R# a* `" `PLINK q=p->next;) _1 `, v0 E! E* A4 T8 [+ H/ B
p->next=p->next->next;- [* E$ _, m0 s6 i$ k- }# z
free(q);
) ~ ~% | s, @$ u- `3 d, s* rprintf(".^_^.删除成功!.^_^.\n");* [% m' Z) M: ~: N! M7 t& Q
return 1;. f X' d, @( C* w2 x4 c; q
}
5 M# c! g0 Y" w/ yp=p->next;
- K6 G! w" z3 V1 t" t O7 ^}8 e4 M% U; p- Q& I5 k
printf("没有你输入的职工号!\n");
3 x, D0 E& ?6 w% A0 }7 C- g& ^return 7;; W4 E i, @( h, `6 U& h- u
} /*程序结束释放内存*/8 ^- ]' D& ~5 i' r/ x
void release(PLINK p)
! I* G3 H; Z5 k5 O{
|% J/ B$ l7 e e9 ` N( jPLINK q;
! v" m5 ?" L7 t! g0 R* @" cwhile(NULL!=p->next)# b9 v9 Z8 C3 R) i
{
+ @- s" e/ n% ?- Y# Xq=p;4 ` | l8 d* g, B) W' M6 \
p=p->next;0 i- z9 E$ v' N5 R/ d6 o
free(q);
+ O1 O# e. n/ K}( _4 O1 B" [* e& O/ _# W
free(p);
/ W2 [1 _* H9 J, i+ U) V! F} /*查询调用*/
- A3 R! r& K8 z* v3 a. ]' {6 P2 l( Nvoid search()3 r1 M9 F: {4 p- p4 z" R. t
{; H9 y* {% F0 x' D, ~: y& w
int id;
1 X- N2 w% \0 O5 U, j2 ` Uchar name[20];9 A, Y( a, D5 p6 N0 K, i
char str[20];
! e+ l4 @$ h# H' ]7 v8 F* \PLINK pworker;4 R' R2 y8 n0 P' j% a4 u
int l;; c: u/ Q2 I. T- f9 j6 \) b( n
printf("\t\t\t\t*姓名查找按:1*\n");
% p& D' S+ h4 q* A! M2 eprintf("\t\t\t\t*学历查找按:2*\n");! \& ], s8 U- W4 F+ x- b1 @% ~& J& z
printf("\t\t\t\t*职工号查按:3*\n");
3 ^! B. ^4 k6 ]- A7 Iscanf("%d",&l);
$ P6 f6 f1 V" q" r. ~$ Uif(l>0&&l<4)5 r8 R0 D5 y k" n+ U3 @
{switch(l)
2 R/ P2 s% U; _* P{4 a# q: {. w6 p5 a' P. l
case 1:printf("请输入要查询的职工姓名:");" u9 |8 k$ V: }* c' e# h, F
scanf("%s",name);5 y0 u4 S' X6 Y3 n0 Q/ h. Y! B
findname(pworker,name);
2 B8 r* g$ c) l2 Q5 s1 V3 F, {break;3 W$ X( _ D% D0 x' P/ p
case 2:printf("请输入要查询的职工学历: ");
( r K! ]1 S: h9 bscanf("%s", str);1 c7 B) j# f6 C- X
find_sr(pworker, str);# G! S4 G. d& ]+ j+ ^% h% Z
break;
0 X' E% j8 K, ~5 ?case 3:printf("请输入要查询的职工号:");8 v( t, j4 A( d- y$ L; r9 H1 s
scanf("%d",&id); J" B- E- b1 t: a7 [; U$ T
findid(pworker,id);
* a! l! k7 h6 X$ wbreak;
0 o [0 j, C/ p2 s |1 ^} r0 r9 I7 Z* Y5 `
printf("\n\n选择完毕!!!");% z6 c! q8 q8 L" `0 z: s! T
} p* C& R" p, _: C
else printf("\t\t\t\t输入有误!!!");
0 [6 m. W" O- f. ^} /*修改职工信息*/ g2 u7 h& j, i) p; ^* {- D- P$ k
int modify(PLINK p)
& ?2 X3 a% A( K0 s) O7 \) o{ int id;3 Y |2 Q/ K( {$ d( \+ K: n
PLINK q; u. Y' t/ L- E8 M/ O$ `1 q+ T5 B
PLINK h = NULL;& b" [* O# I E: H. c% d$ B5 s; _
printf("请输入职工号(数字):");7 \) V. b6 k' C- }4 k! ?3 f# R
scanf("%d",&id);
5 o1 W: i3 N- m6 B% }h=p->next;; t7 r6 X: e; d, x8 M4 W2 ?6 n
while(h)
! F' q& X9 l z) a7 e{
( y7 P0 B: g2 S( }/ c2 b6 Q$ v- Vif(h->w.id==id)+ U$ ?. S6 T* O. Z3 [! O
{
; O% {. {6 V4 d: tbreak;
H ~# s- R( u( j. l! Z7 G}
0 v$ d5 S& d1 \- d3 c& ?/ T: {* k2 Ch=h->next;# u4 G" h* z, l5 r9 C. @
}
& I7 L ]( {! k& ^: T$ yif (h == NULL)6 n& j# e' Q* R4 w* `% ]. P& C
{
+ `( F4 E6 t8 [8 E+ E% j) ?printf("找不到此职工,请重试\n");
, q& n3 o" d" p! P, W: C- Vreturn 7;* z7 |5 C) O3 @1 z1 t/ y3 Q- b
}6 X; ~) d" j$ W. w7 V
printf("请输入职工姓名(文字):");# w5 o) l* C7 V, B
scanf("%s",&h->w.name);4 C7 z z' c: Z. _; z5 |$ e
printf("请输入职工性别(文字):");
9 Q" h/ w H7 ?' `1 G' m8 X. S; @$ c) Iscanf("%s",&h->w.sex);* ~4 M: z) v) q/ r
printf("请输入职工年龄(数字):");0 V( b$ r$ Y/ i* u4 R
scanf("%d",&h->w.age);
2 d$ F. C) z6 ]! X) _9 l1 [1 L& q* [printf("请输入职工学历(文字):");
4 J# Z" r+ O0 `0 _scanf("%s",&h->w.edu);
9 h' s+ K5 U; S3 M1 iprintf("请输入职工工资(数字):");3 y3 T; D6 q: C+ S" x5 \* J& U
scanf("%d",&h->w.wages);
8 x2 q7 J, ~7 a$ pprintf("请输入职工住址(文字):");7 {) e X0 ?# o- T: m9 h
scanf("%s",&h->w.adr);6 [7 H9 z- q5 y$ M, [
printf("请输入职工电话(文字):");" o ]. \; q8 y' R! `
scanf("%s",&h->w.phone);
9 D0 U# l4 F: E0 ?q->next=p->next;
" k- _# [4 l# |9 Y: ^p->next=q;% x0 Y5 O: k% t1 @8 s- H
printf(".^_^.修改成功!.^_^.\n");8 v' R: a- e1 v0 |% D1 R) v
return 7;0 }# [ a' W" K; u; H/ S5 Y
} int main()
& c! L5 ^, m* {7 C) c+ F# a{
9 E2 P' |$ W" X, r, `$ y6 o- ?% @$ p' x; P! N% K$ N
int cmd=0;
+ F: ^' e9 i3 Z4 U6 |$ h' vint id;7 W5 U H8 c' U. p' F
char name[20];
I7 e* `3 \" Schar str[20];
) N% F* z8 Y* R, V- I3 yPLINK pworker;
# D- N4 M% f5 Z3 R; `3 Fif(!(pworker=create()))- @( m9 Z! ]$ Z) s& ?! ?
{
* H% h) ~3 \" V2 a7 qexit(0);) [5 A! y/ L: F9 o" V/ @& u
}
+ W: k8 H' g# v4 L) Q- Iwhile(cmd!=7)
( F5 Q4 ^: `) m/ o$ x1 |{" o1 l- F% I. P/ m' @1 I
switch(cmd)/ o# `' `- c. A; V2 T
{3 ^' g+ P! m0 V9 n$ K
case 0: message(); break;( J% \: `2 {$ P6 ?/ f
case 1: add(pworker); break;
) j( w* i4 ^0 P0 ^2 ^( dcase 2: show(pworker); break;
Y E/ u# c% V8 _& j; {case 3: search(); break;
) \& I2 C, Y$ `# o3 ocase 4: printf("请输入要删除的职工号:");+ F2 j" L& |: |9 i; q1 d1 z+ ^" V
scanf("%d",&id);6 N8 ~2 i6 B1 Y3 c* N( @
del(pworker,id);% V+ q4 i. W- s, O+ y0 x: ~
break;
+ B2 K) K0 n7 D7 Ecase 5: modify(pworker); break;% G i% c6 N& F- e. [) C% q
case 6: message(); break;
# A k, K. N D" p}
! l/ p( k! R% D3 B( Dprintf("请输入操作命令数字:\n");' f; P, p7 G2 A k, @
scanf("%d",&cmd);4 }/ Q3 N9 Q g" i( C6 E. w
}" Y- ]" V9 B8 g) w# B
printf("谢谢使用!\n"); ?' u: b; S% Y8 z) n& I' {
release(pworker);
6 V1 w8 u* s& Z, w4 creturn 0;
2 Z0 ?' g6 M7 F4 B: e- h: l: {}/ C4 Y- K& c8 S% R
, D+ s8 D% w$ A7 i
# |4 _1 ~$ e2 ^/ ~这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!( ~- K; }5 Z2 {5 c
$ Y0 N" p, x3 N; ^5 v |
zan
|