- 在线时间
- 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>' r8 A) D( Y0 v5 y# ~& f+ [
#include <stdio.h>! q: W+ r ^/ j
#include <malloc.h>
3 G3 t& P6 b* }8 R4 b: o#include <string.h>
5 V" Q- S1 P4 i1 B1 o* Y; {) t, h5 etypedef struct worker
! Y+ e0 w% o" w% q6 N{
Q2 T) M6 L6 E2 I- sint id;3 |9 i' A# s: i+ s9 O% Y' ^* L- f
char name[20];
) b* n9 j8 B/ ~: h8 m' Nchar sex[3];
7 w b# a. n0 q+ \; x/ Bint age;
1 I; m+ m8 l) K- ~& C) Cchar edu[50];
" K" W3 @# |% [ j+ b3 S. vint wages;
8 {1 \6 A4 _; a" Q8 n, n+ l/ p4 lchar adr[255];
9 m. y: j# e: Y" f$ f9 }char phone[13];
/ x, D. ?7 a( a% ^, P* `2 N* |}WORKER, *PWORKER;
6 ]! p, L# M/ D! L) t//typedef struct WORKER *PWORKER;
+ N7 R% l8 {% `1 c! Ttypedef struct link7 _# x1 z; A5 D9 b4 }2 K8 F1 v
{
& g& o2 R; t% n, u' h3 J$ {! r( h6 }, Z" ?WORKER w;& l5 l% w' T2 ?, @- B
struct link *next;
/ y$ _5 n4 ^0 x+ T8 u% _}LINK, *PLINK;
; C$ y* b+ k' X ^3 f- ?% E//typedef struct LINK *PLINK; /*创建职工信息链表*/
: p& `) G! f4 p; ?1 NPLINK create()9 G2 Z3 {, m) _/ w9 K
{5 W6 C- F, Z# s5 ]- M, B3 d
PLINK p=(PLINK)malloc(sizeof(LINK));; |# n. a, ?3 ~: F% y+ V4 c
if(NULL!=p)7 l6 n) H3 C* m" @- ]/ `2 H) R
{
$ U1 x, ~9 w. ]. K; _p->next=NULL;7 f V- L( B) P! p1 h7 }
return p;; ?1 J, [- P: ?8 P$ z; c
}* s/ [* [0 `& h( \4 Y& R
printf("内存不足!\n");
) ~# a+ C9 m( S( N+ areturn NULL;
* y* e! ~) T% n7 ]( L- c& V5 z- [} /*显示程序界面文字*/
0 j0 _# B3 o' h: rvoid message()
- Y0 v& F" P* R: K+ B& q; B{ system("color 0f");/*设置当前窗口的背景色和前景色*/
* `. o9 o* C* J; H1 K: p3 F/* 0 = 黑色 8 = 灰色
% G& U- c3 G3 S: p1 = 蓝色 9 = 淡蓝色8 ]+ M$ z- B+ E9 p. K/ l6 b6 W Z
2 = 绿色 A = 淡绿色
_2 \ z- V8 @* c7 `* J3 = 浅绿色 B = 淡浅绿色
# i p7 r1 F# v$ @1 G) d3 ~$ m1 m4 = 红色 C = 淡红色% p4 u. G& {' U$ A6 s3 S4 F
5 = 紫色 D = 淡紫色
7 P1 A4 f& t' w# `* b N# x6 = 黄色 E = 淡黄色9 S. {( {; t- c' P& }
7 = 白色 F = 亮白色*/
5 _% f: }9 l! esystem("cls");
! Y$ L- u% o4 xprintf("\t\t************************************************\n\n");8 t% `& c" E* [/ j7 w
printf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");7 P8 a1 Y" X! I0 t# w
printf("\t\t************************************************\n\n");4 d/ S' d, g; M4 o: v5 r
printf("\t\t ************** Choose Function *************\n\n");0 N/ m8 Y+ k) K/ |* C1 Y: Y0 H
printf("\t\t ************ 帮助 请输入:0************\n\n");0 g: \$ X' I X0 b* t/ {- y
printf("\t\t ************录入职工信息 请输入:1************\n\n");
) c& a) U/ B' t8 O3 j8 Yprintf("\t\t ************浏览职工信息 请输入:2************\n\n");+ x" C5 U) S1 M8 \. c( V
printf("\t\t ************查询职工信息 请输入:3************\n\n");
9 u- o% Y( g! F% [ v/ Yprintf("\t\t ************删除职工信息 请输入:4************\n\n");
6 P( _ Y5 Q2 x- b: n) Pprintf("\t\t ************修改职工信息 请输入:5************\n\n");' R5 l% d6 y2 m$ |5 q( Z! r
printf("\t\t ************ 清屏 请输入:6************\n\n");, r7 H- {0 e5 C# Q
printf("\t\t ************ 退出 请输入:7************\n\n");
4 A; W4 f0 r3 ^: K& P/ k4 ?printf("\t\t************************************************\n\n");
1 g: W2 e+ x7 p# W# Xprintf("\t\t************************************************\n\n");$ P }$ s5 H3 d. q3 q( l/ S& {1 ~
} void find_sr(PLINK plink, char* str)
' n1 l# S3 J8 @ C4 R{
4 u! z! q7 e' r: Z. Q" G! lfor(PLINK curr = plink->next; curr != NULL; curr = curr->next)
! i2 Q2 X4 A6 \9 @/ x{
1 c8 f2 u7 l. ]6 I! V' Gif(strcmp(curr->w.edu, str) == 0); z T- F. D! |# w, _# o4 j6 ^% G
{
* s$ p; E r# y! Aprintf("职工工号:%d\n",curr->w.id);
$ c$ E7 E. g: m) _# qprintf("职工姓名:%s\n",curr->w.name);1 O5 h9 P5 D1 l" k% F$ ^6 A
printf("职工性别:%s\n",curr->w.sex);& N8 z+ c: R. {, h6 m2 t
printf("职工年龄:%d\n",curr->w.age);7 ]+ m9 @- q, m. a
printf("职工学历:%s\n",curr->w.edu);5 n& Q3 r6 A) z- t
printf("职工工资:%d\n",curr->w.wages);
" S7 s. S: c3 D# _printf("职工住址:%s\n",curr->w.adr);
# x- T9 D$ Q3 a" Cprintf("职工电话:%s\n",curr->w.phone); }
0 z0 e5 C3 k6 e4 Y}
! Q1 {8 X+ I$ m6 B0 h} void findid(PLINK plink, int id)9 m4 { d7 a ^5 e* f% z
{0 Q2 A# s+ R% A+ G L: P
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
! W! G4 z/ ]# Z* S. ^6 z{
3 ]+ `& }4 @6 o3 pif(curr->w.id == id)
+ d* \% B+ p, j{
" U9 R) q$ A+ F" G- J$ ^3 ^printf("职工工号:%d\n",curr->w.id);( v" o+ ]' X/ x- O2 q8 G) \
printf("职工姓名:%s\n",curr->w.name);
! s! _. T) I- Bprintf("职工性别:%s\n",curr->w.sex);- M: W+ P, Y" c
printf("职工年龄:%d\n",curr->w.age);
% R. `' q9 n" A) s- Aprintf("职工学历:%s\n",curr->w.edu);7 A. o" }. \3 P2 j
printf("职工工资:%d\n",curr->w.wages);
5 [" U5 }2 P; g- I6 W- I# ^printf("职工住址:%s\n",curr->w.adr);
+ Z; a5 z2 g4 j! e! V, `/ w; A: R; iprintf("职工电话:%s\n",curr->w.phone); }- [3 X) t$ E3 E# _
}
9 w! \2 N$ L$ n5 ] J} void show(PLINK plink)% i) A: @9 e6 W, O" s- j0 N
{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
0 L: h+ P. D: o; B1 a6 T{( f# I# O: g2 k3 D6 U9 Q+ Q
printf("职工工号:%d\n",curr->w.id);% r1 ~: v( _( H! h- K
printf("职工姓名:%s\n",curr->w.name);
8 w6 o5 p$ \" yprintf("职工性别:%s\n",curr->w.sex);! {7 L; `8 u+ D& U# X" x
printf("职工年龄:%d\n",curr->w.age);
& k" w) X) E) ~! {0 @printf("职工学历:%s\n",curr->w.edu);# s4 B t% b4 U5 i }* p. S
printf("职工工资:%d\n",curr->w.wages);8 U, f5 p# u2 K9 Y, E
printf("职工住址:%s\n",curr->w.adr);
, q! l: s7 \) V. v) [" mprintf("职工电话:%s\n",curr->w.phone);
6 g; O- ?+ e. _! g+ Z+ ?}: V' q. I* ^+ @3 y8 a
} /*录入职工信息*/- w, k7 v7 \' a8 ?- E' {
int add(PLINK p)$ a2 z% V0 m. m6 S4 p8 R( j/ w" O
{
7 P1 h8 X8 Y0 ]4 i* k* CPLINK h = NULL;
* s4 S1 G; h- h# J9 RPLINK q=(PLINK)malloc(sizeof(LINK));
! T& @5 c" W. K/ }if(NULL==q); y3 w X' T; _$ f: Y5 C" ~& ~
{9 O' ^7 a9 c$ G9 F' m1 D2 X
printf("录入失败提示:内存不足!\n");2 y- `. C' ^. f, @
return 7;
Q. }9 \: P8 @}
9 M% ~0 |% ?/ f4 V! i8 R6 rprintf("请输入职工号(数字):");
- v- t; r+ L& K4 }scanf("%d",&q->w.id);
& x" l; @+ E ?$ E* Sh=p->next;
) D! ?- N0 u: n% b' u5 Zwhile(h)
9 L8 f) ?' n$ b+ z6 ~1 t{
8 r9 L7 F- m: D1 zif(h->w.id==q->w.id)
`% A+ Y9 ^# J" a/ u{$ J& b, F [1 d3 X
free(q);
2 _, V( _. p; c: `7 cprintf("录入失败提示:此职工号已经存在!\n");
, |, X3 V2 a1 @/ ]9 K* X" _, Greturn 7;, Y, J1 Z6 T: A9 T# V7 t
}
# d( k9 [/ L# ^8 ~7 xh=h->next;% j* l' y5 n+ k7 ^" c2 n {4 v4 p, Q$ ]
}
) I A* U/ n2 lprintf("请输入职工姓名(文字):"); ]: U% A( g, f% G& W$ ]2 Z3 P
scanf("%s",&q->w.name);
& I9 {9 F% V9 l# p Rprintf("请输入职工性别(文字):");
* H' g. S# _9 v uscanf("%s",&q->w.sex);3 t8 j$ k3 N5 ~' f o! F
printf("请输入职工年龄(数字):");
# y7 j U$ g7 \' f& U- y7 H6 D' Dscanf("%d",&q->w.age);
i* H1 X4 n3 z _printf("请输入职工学历(文字):");
$ D, x( ^0 q1 N7 t6 o; hscanf("%s",&q->w.edu);- t) C9 \6 X V# e, H6 W* y
printf("请输入职工工资(数字):");
( N* R3 h) R1 C; B. y$ }scanf("%d",&q->w.wages);& z2 S" n1 B& q: F. K
printf("请输入职工住址(文字):");" d: Q$ p; l2 t& w+ b/ L- ^$ f9 c
scanf("%s",&q->w.adr);
; x" j8 L2 M3 P. H& W/ p8 Iprintf("请输入职工电话(文字):");
- U( s0 \" H6 x& jscanf("%s",&q->w.phone);% I" z L E, Y. a6 D& S' m9 b4 B5 f
q->next=p->next;
4 v* l, ^- n8 @8 Z: [" b; lp->next=q;
S% H' }9 t0 O- ?) J/ p& i# Fprintf(".^_^.录入成功!.^_^.\n");# r9 s. |$ }; x9 o
return 7;
% w- b f4 |) F( R6 x p} /*按姓名查询*/
8 o* K, h3 [- ]* IPLINK findname(PLINK p,char *name): i8 i8 X( y2 y- p p
{
3 x- @0 t5 U8 a, u" Zmessage();
3 d2 ]. `7 z; [7 V1 zprintf("按姓名 查询\n");
* P+ m+ ]) J* X& I" C1 cprintf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");
% m3 x' g7 s6 `4 j% j$ ~while(NULL!=p->next)% k! M3 Y0 E& l& Z+ f9 ?* c/ Z
{4 ]7 _& f# t' w2 P
if(0==strcmp(p->next->w.name,name))
+ K0 x9 L. g6 `) [{/ N l L1 [+ x p; r; f5 I& A
printf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",
- R. Z7 W- c( e4 R" z- i( o7 {; U: ^0 up->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,( S' {5 V% e! a: m1 r5 g# j
p->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);( a" H8 y3 k+ i5 @
return p;: z. h0 G* _9 [
}4 f2 G" @$ F n
p=p->next;
2 C, A) Y* y) K}
. M4 y7 `6 q7 S: J( J3 y$ G2 `printf(".^_^.查询结束!.^_^.\n");
5 Z& ~+ V$ e7 Z+ ^; C! treturn NULL;
1 q9 B3 G6 f& B( ]! U% ?! N} /*按职工号删除职工信息*/
' Y3 u; Z0 Z# @' p i/ mint del(PLINK p,int id)2 s) U1 r9 j1 n1 \' }5 d+ y/ ?( @
{0 M' J5 S' h: X/ \9 ^
message();
6 m: e) I! a6 B* Q+ u4 y% {printf("按职工号删除职工信息\n");) Z4 B7 L; a( d r3 }
while(NULL!=p->next) N, ?3 M1 z/ {; z. s
{) g( C% X- t: O! S0 z
if(p->next->w.id==id)- l; p4 g6 N* I s
{5 T, y" H: X/ I/ ~) L+ r
PLINK q=p->next;# ]) a# [7 Z5 j) k
p->next=p->next->next;$ r) y: i5 r0 M! w0 k8 s" O
free(q);( x+ C2 f4 L6 z. D# a% Z
printf(".^_^.删除成功!.^_^.\n");7 |1 V! e; d( B/ D+ i
return 1;6 [5 z& z' _' ?0 n: k
}
% f) h* N9 d1 Mp=p->next;/ s7 p* o: B$ c( c* `# e
}
6 Q! i1 I. F8 y( C, @4 p$ u9 Lprintf("没有你输入的职工号!\n");( ?8 `! }& K& U: @6 {- p
return 7;# H0 o2 F" m, d" B0 |
} /*程序结束释放内存*/
, r- @ g6 D7 U, o+ x% i/ E. lvoid release(PLINK p)0 {: k! t+ z j# `% L2 I
{5 u9 F6 ^( d. }* e( z; l
PLINK q;; x/ ?- @; N3 T9 X
while(NULL!=p->next)
6 P# @4 z6 f& W{+ p1 S2 Q* R- `8 _
q=p;6 T* ^0 r" R, z7 g0 ^! `
p=p->next;
' G9 B+ }7 z: F+ u$ L- |& ifree(q);" D7 x9 m- [! ?
}
2 J! I' P; `. y |* C. lfree(p);
- k" Q' @. _1 d k6 P0 F+ k" C} /*查询调用*/
9 I2 P7 Y- }4 Jvoid search()1 W5 P" ^& [+ ]1 Z
{, k0 g8 d p1 ?1 c8 ^7 T2 B
int id;! m( Z1 Z, a4 N/ Q
char name[20];
7 r, a) B, i5 P. [% lchar str[20];
' Y, ]% ]0 N! ]) W% ?, j& @PLINK pworker;' ?( \; Q+ I8 d6 l& I, t5 k* `9 e/ m
int l;
" t3 Z% `- T, Eprintf("\t\t\t\t*姓名查找按:1*\n");3 t& F7 K9 O4 B( i: P
printf("\t\t\t\t*学历查找按:2*\n");
% i# W2 j$ d; K1 Yprintf("\t\t\t\t*职工号查按:3*\n"); }% O; }5 U9 v! ]/ K/ `) r, `
scanf("%d",&l);; o1 b) y) U, a% }8 }
if(l>0&&l<4)" | P! s- e$ o
{switch(l) U/ x7 }# \0 `% E
{, H+ u: ~# q& G$ s
case 1:printf("请输入要查询的职工姓名:");
: s: P9 ~( P _9 N, o+ C0 zscanf("%s",name);
( m. \* s7 q% u: l- b3 c4 m2 H9 Vfindname(pworker,name);
. ?5 T: h* P* r* ebreak;) _$ d5 S% T8 M' c4 O
case 2:printf("请输入要查询的职工学历: ");
8 d) q# c) F e4 Ascanf("%s", str);4 s2 a, L' t& N6 Q" _
find_sr(pworker, str);
& C; d" |9 j- Q" d+ Y0 L* @9 Xbreak;( J& P9 {# N& n
case 3:printf("请输入要查询的职工号:");
( Z6 n( [# p) @/ D1 C- L1 kscanf("%d",&id);" @9 k: V# d. X) W! s0 x5 z& A
findid(pworker,id);5 r3 t' I- n7 X, q h7 S. N1 _
break;1 g L0 V8 L! M( w q7 r* G
}
2 F0 n% y$ K* P3 u* b9 Tprintf("\n\n选择完毕!!!");
+ U9 h4 D, X6 p}
1 A+ j3 }' u2 K# G1 w' |) [9 _else printf("\t\t\t\t输入有误!!!");3 `/ a& n6 |2 z( d( h& H
} /*修改职工信息*/0 w0 f5 U4 m6 W) p! x# r
int modify(PLINK p)
+ A2 o) @& ^- M- Z{ int id;" ~$ h: ?8 R6 p: \- y* c! ^
PLINK q;" F) V6 N4 T1 O, X4 E, P
PLINK h = NULL;
1 X5 D& Q9 C* x/ r; v& Tprintf("请输入职工号(数字):");
) r# r8 h4 w3 V2 j5 B8 y1 Qscanf("%d",&id);- m( S+ }2 d- N! x
h=p->next;0 d; G" t6 J7 X3 V) J+ ~5 F+ u
while(h)
* B+ Z+ \- W% ~{
$ B/ Q% t2 X$ L; C2 o, Cif(h->w.id==id)
+ }! ?' i- G4 I* g3 k% g9 j{, [/ S) V% O: ^
break;1 g$ k/ [7 G2 B- m- j0 ?) H2 o8 i
}
H1 _4 ^% g" J' [& R& c2 ~7 P oh=h->next;
' x6 o" E/ i' r; N3 v6 v}; R; v# W$ |- q7 U, N! T
if (h == NULL)
! X7 C8 b a& W- I: o0 ]6 k+ s{, B+ m: z, m2 ^8 E2 d% a8 t# p) p
printf("找不到此职工,请重试\n");
, M6 |5 h5 u/ i2 breturn 7;; f R( \- F. X5 E. y
}# K( y- B- R9 J% U, t# E
printf("请输入职工姓名(文字):");* \6 L* Z0 Y1 t1 p* A) O
scanf("%s",&h->w.name);5 }) O; V2 K1 X2 ?' w& J+ }+ I3 n3 Y
printf("请输入职工性别(文字):");
5 J" m. a/ a6 T6 L, z( Qscanf("%s",&h->w.sex);7 A2 c& p# u6 H& T8 z) I% b: b3 j" b
printf("请输入职工年龄(数字):");2 Q( F7 _8 V8 S, ^2 d! @
scanf("%d",&h->w.age);- v) z* w9 C% m
printf("请输入职工学历(文字):");3 x, r Y$ Y" q# T4 j& `
scanf("%s",&h->w.edu);+ E& H8 a( ~4 A" d3 v2 b+ |/ m
printf("请输入职工工资(数字):");
3 j. E; Z+ F- }: k2 Y* m( ?scanf("%d",&h->w.wages);% H4 B" c9 a/ q& @1 [. K* w3 z/ [. U
printf("请输入职工住址(文字):");
, Y: Y: S: \/ R* tscanf("%s",&h->w.adr);
6 C4 ~" j4 G2 @, mprintf("请输入职工电话(文字):");
$ S3 `/ `. f' g6 Y1 J8 v2 wscanf("%s",&h->w.phone);0 e r6 v0 m5 m, k2 ?
q->next=p->next;
3 x7 o. N* Z" vp->next=q;% v) m' _# ^1 k& m( X" [
printf(".^_^.修改成功!.^_^.\n");8 _! w& R, g+ }; N
return 7;6 o% P) {7 t) a2 ~6 D) V0 ^2 K
} int main()
# C4 R( C5 d+ M2 y{
, z" x0 f3 ~7 m0 ~
9 e ^5 V+ c. R* m; s: L2 mint cmd=0;6 ~! i }) K/ G: E4 J
int id;8 z0 D' v7 ~! a: u
char name[20];1 P$ `$ Y8 {1 P5 j$ R
char str[20];
$ x# S+ |! A" F* d9 t! ?) u* gPLINK pworker; k5 {! R1 }4 F3 q6 I# t
if(!(pworker=create()))
- {5 G- Q1 p) X L, L+ S{) O2 k% ]1 g4 N- Z
exit(0);" ?: O9 ~, z1 F1 M
}
6 O/ ~* z& N& |! k. ]' E+ _while(cmd!=7)/ y. ?) i V$ q" R' Y, X* H- X
{
8 G! n) v- z& y; k9 U3 i1 J" k' F) `switch(cmd)
. z5 [- ?( S8 L4 L$ F/ c9 f{5 `1 }* e5 Y: }' T" m0 l v
case 0: message(); break;" z8 c& I7 Z: x$ b( Q% K
case 1: add(pworker); break;0 y. I8 @7 n3 U$ \: } y+ q+ h9 D
case 2: show(pworker); break;
5 X1 Q: |# l; A0 L0 C+ S# Mcase 3: search(); break;
. i& }" B6 w+ D+ N8 ocase 4: printf("请输入要删除的职工号:");
0 T# Y/ A9 E* d4 I8 Hscanf("%d",&id);% X5 D# A5 E0 v) V
del(pworker,id);
8 O' o% n6 n; v1 }, x5 cbreak;
M- v& c1 o) i1 h7 dcase 5: modify(pworker); break;+ m+ ~/ k& g9 q a8 S4 c% p
case 6: message(); break;
6 {( Z/ D7 p/ x- M! |7 x8 \7 C7 w6 e}, s1 q3 o$ M1 I3 e- x/ Z
printf("请输入操作命令数字:\n");9 x! e) e9 a1 _: \! g5 z' s: f
scanf("%d",&cmd); l6 V* k: @' X8 h! l6 p- w- v0 O
}
, J" l1 @0 p C& i* ]) [* Hprintf("谢谢使用!\n");# B( B7 d2 A2 v3 x: K: B+ b" }) q" f' ^
release(pworker);/ o/ p+ l% N: K9 L
return 0;
& z. x: p1 @9 D9 G: g6 }" E7 Q) M}, b, J& Y& u" R N' F$ E
8 z) ^- ]6 [: }; ^: R1 N0 X$ c
( E7 G" {+ S0 ?# o3 g! e1 u# N这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!
2 E3 b/ d: U r3 S J/ S( f
" Z% b+ X% w8 P6 g- R1 h |
zan
|