- 在线时间
- 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>
: u( X" x. p0 j5 a) f% @#include <stdio.h>
, H9 Z% p2 C+ @- i" `#include <malloc.h>
0 Y2 d! F0 ^/ O7 q* A" U7 f7 N#include <string.h>
4 n2 m7 M$ i; S/ j6 ?7 Itypedef struct worker
# X; m) {/ g, o9 I: E% e{
3 y3 ~! B1 w V# _int id;
1 ?& K1 T. E! q; }1 a+ ychar name[20];9 V7 a8 X, S( ?. Q
char sex[3];# p3 W4 D; b& U. Q, d: t
int age;
5 Z" I8 u( V/ u2 L9 }" Q+ Tchar edu[50];
4 ?! [/ z' h0 P+ h! d' A+ bint wages;2 X, `. J% r W3 }: }( |
char adr[255];; q% {- m j8 F: z. L
char phone[13];
% z, `8 j! R4 |. G2 i}WORKER, *PWORKER;8 Z- S" H1 P( y' R; F* }
//typedef struct WORKER *PWORKER;; ?, Z! e4 J2 V' u- n* W! w3 L
typedef struct link% B) u5 i) `* V9 ]7 j5 ?
{1 `) p1 a( D1 }
WORKER w;
K1 l0 e0 J+ Y9 ?+ Lstruct link *next;; {2 p' E7 G# c; W$ H8 H+ d! r
}LINK, *PLINK;
( p3 a% ]+ y' _4 u; ^0 p# F//typedef struct LINK *PLINK; /*创建职工信息链表*/
! O$ [ H+ S. @* |0 p3 ~; `PLINK create()0 Z$ G2 z ~1 v: q6 F
{
# J, s4 P1 z/ C( oPLINK p=(PLINK)malloc(sizeof(LINK));
0 ]' R1 I) `# b+ f. \/ ?) Qif(NULL!=p)
$ A n8 a _0 J7 ~8 G q{; Y, s" q! d- o; e, \
p->next=NULL;
# C' o4 O2 x7 F( h& l ereturn p;9 D( z# r7 N( z0 N& S" J; L" i4 a
}' g: M; i+ E, C: f. R
printf("内存不足!\n");
7 d6 ]1 v" I6 H+ jreturn NULL;* e1 @& Q1 {' ~3 y( m% x/ g' J
} /*显示程序界面文字*/
3 U( X6 n$ m2 Evoid message()
H t' [% g: L! S3 N{ system("color 0f");/*设置当前窗口的背景色和前景色*/
* ]$ n) C, y0 j1 e9 m/* 0 = 黑色 8 = 灰色2 K2 V3 S+ B: i4 Z; ~1 N
1 = 蓝色 9 = 淡蓝色1 ^7 U( }4 f2 e
2 = 绿色 A = 淡绿色
: Y- @4 Z( n( R: \! U3 = 浅绿色 B = 淡浅绿色8 j X1 M- @' K' J0 U: A8 r- j
4 = 红色 C = 淡红色3 K1 Q# O7 K- e- X
5 = 紫色 D = 淡紫色
+ V, n+ B: }% ^2 m4 B6 = 黄色 E = 淡黄色
. j$ |+ f0 O, F) e, }. Q7 = 白色 F = 亮白色*/, F* ]2 r; H, E
system("cls");4 t& A* _: D9 }
printf("\t\t************************************************\n\n");
& w+ {8 `+ O- M% ^printf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");9 \ w) M& |6 n% u! ^3 g: r8 o
printf("\t\t************************************************\n\n");
, A% n2 q% A' Y4 n8 Y0 }printf("\t\t ************** Choose Function *************\n\n");. V$ }' Q4 n- \; ]4 k' }7 t- g
printf("\t\t ************ 帮助 请输入:0************\n\n");
8 x- N7 Q0 H8 `/ Dprintf("\t\t ************录入职工信息 请输入:1************\n\n");& Y' R; T; E, o1 Y+ |5 _. B. q( N
printf("\t\t ************浏览职工信息 请输入:2************\n\n");% Z9 d+ ]: |! _9 O3 s* z
printf("\t\t ************查询职工信息 请输入:3************\n\n");0 D; V' r" J6 S5 Q2 p
printf("\t\t ************删除职工信息 请输入:4************\n\n");
) g- p6 ~4 D; q5 f) C9 mprintf("\t\t ************修改职工信息 请输入:5************\n\n");
% l; H1 C( Z8 @) ]: qprintf("\t\t ************ 清屏 请输入:6************\n\n");6 l' K4 I' F$ K$ E9 | |
printf("\t\t ************ 退出 请输入:7************\n\n");
' F% `2 D) ]2 Aprintf("\t\t************************************************\n\n");
' p/ P6 }9 ^: w4 \" ~4 oprintf("\t\t************************************************\n\n");1 D/ n) I# \* n$ d# l, ^: t7 k( g( L
} void find_sr(PLINK plink, char* str)0 |- e6 ~7 d& x1 X) x
{2 O5 q* K+ q0 k( P5 h
for(PLINK curr = plink->next; curr != NULL; curr = curr->next): j6 U& Y, E- r( {( l" \
{
9 ~' p' N a+ J/ b' D' N7 k' Q0 eif(strcmp(curr->w.edu, str) == 0)
$ o8 o- [; a9 g* Y' h( H3 r2 b5 Z( o{
8 j" M( f8 x% q8 Jprintf("职工工号:%d\n",curr->w.id);
$ B9 d4 K' d3 x. G9 s' iprintf("职工姓名:%s\n",curr->w.name);
8 O8 j( S/ D7 d" }* [. z! ]8 e" e+ Pprintf("职工性别:%s\n",curr->w.sex);
. y6 O8 x: b$ e c/ F( ^printf("职工年龄:%d\n",curr->w.age);
% p, \0 J$ c+ ~printf("职工学历:%s\n",curr->w.edu);9 C* l0 u8 n* z2 A. H( U
printf("职工工资:%d\n",curr->w.wages);
8 ^9 ~- w) [+ F+ m# Dprintf("职工住址:%s\n",curr->w.adr);! a, d4 e9 |9 }
printf("职工电话:%s\n",curr->w.phone); }9 C. i, X0 f* s( R8 ^
}, P) b% ?6 D7 ? ^/ E( t' C
} void findid(PLINK plink, int id); ~8 x+ e7 B% m: w) l
{
* ^" U: |% O8 b) ~7 tfor(PLINK curr = plink->next; curr != NULL; curr = curr->next)
7 K, v* s. S! ^4 p, t! S4 R) F" a{2 f8 Y: a2 H. `
if(curr->w.id == id)
7 [% V/ w: [" T5 Q% B" x( J{6 y& l+ S# J m
printf("职工工号:%d\n",curr->w.id);" Z2 T! K! P) S8 g3 N
printf("职工姓名:%s\n",curr->w.name);
; ?0 S8 R6 w( C* L8 Fprintf("职工性别:%s\n",curr->w.sex);
5 o: F: J" j. Mprintf("职工年龄:%d\n",curr->w.age);8 e' G. f U( D1 e) i
printf("职工学历:%s\n",curr->w.edu);" \2 j* t: F0 ^) p; W v" i
printf("职工工资:%d\n",curr->w.wages);. f4 C+ v. Q9 ?0 Y3 T" {* U5 M
printf("职工住址:%s\n",curr->w.adr);) C& @7 a8 J! P: E9 I6 a
printf("职工电话:%s\n",curr->w.phone); }
/ j' m7 {# \+ j: }8 @0 ?}
. H& ^. \6 f% g} void show(PLINK plink)0 ^: h+ d' X) a) \0 G5 ^9 c
{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)9 D% p2 l8 a/ {$ p0 @/ B5 q: A
{
+ X( i# [9 t, V8 H7 }6 aprintf("职工工号:%d\n",curr->w.id);
- T# P, d* A8 U8 N$ Pprintf("职工姓名:%s\n",curr->w.name);; H& r( _6 D5 u2 o: m4 J0 l
printf("职工性别:%s\n",curr->w.sex);% |* g; Z2 U1 X$ u6 ]1 ~9 x
printf("职工年龄:%d\n",curr->w.age);
0 q1 F2 E* j( U/ b! x$ \, Yprintf("职工学历:%s\n",curr->w.edu);5 t4 R6 p% M% @
printf("职工工资:%d\n",curr->w.wages);
; B2 B1 y3 Q X, ^ F8 wprintf("职工住址:%s\n",curr->w.adr);5 \. q8 e* O6 t
printf("职工电话:%s\n",curr->w.phone);1 K O2 E1 i) S! P, S: u
}
, `7 P3 c8 |/ J7 R5 t} /*录入职工信息*/ ^. M. {+ Z# u- ]9 T9 l
int add(PLINK p)
, e' B2 Q1 k3 S0 ?( U3 F) z{3 ]" F; g( `/ @ S9 i
PLINK h = NULL;
: c1 K* t* F4 \2 I5 r( RPLINK q=(PLINK)malloc(sizeof(LINK));
2 H2 R7 \9 ^8 Nif(NULL==q)
; k, E2 @% D' g2 B{3 K+ s) K7 ^& O8 D) ]
printf("录入失败提示:内存不足!\n");
( W6 \* V9 ]. u4 Sreturn 7;" y% x/ N) O& R/ ]: @
}0 h9 j" F- o* T# i5 }+ }7 E, t" Q) v( |
printf("请输入职工号(数字):");
* D* C* z0 I$ r8 [+ jscanf("%d",&q->w.id);* V4 ]4 s8 f0 w, b; n
h=p->next;
6 C, |9 z) C; E& R5 S Uwhile(h)% |2 K$ V0 P" x
{4 p' ]+ J* I6 M& t6 Q& E* N8 L
if(h->w.id==q->w.id)1 F( W' D, E5 E0 \1 ~
{
9 n$ y3 \$ A4 a" |) r0 ~$ ~free(q);- ?% m6 u$ e$ _! F3 y6 o. }
printf("录入失败提示:此职工号已经存在!\n");
3 l0 X0 N. v! ^& b+ Z# @8 {) a' _return 7;- I- N! B5 G, A0 y
}
0 V) |* B( `" ?0 y7 mh=h->next;
$ S8 y6 P+ t! n' {}
' g" Q- j' s$ xprintf("请输入职工姓名(文字):");
# n# e- O* z1 k1 r4 I. Cscanf("%s",&q->w.name);
8 n! b; a; A( ?& ^9 bprintf("请输入职工性别(文字):");
) x5 G7 j, Y; x# S1 Escanf("%s",&q->w.sex);8 E/ v# R+ x0 v/ P. q! w$ ^5 x
printf("请输入职工年龄(数字):");9 @! `1 G1 v! b$ D. H
scanf("%d",&q->w.age);8 n/ F1 R) Z+ i8 c; W
printf("请输入职工学历(文字):");: p' d" L1 v. n3 ?9 Z
scanf("%s",&q->w.edu);/ N' b+ N# J2 {3 u2 k
printf("请输入职工工资(数字):");
$ I2 t9 m! ~/ \! b" V \scanf("%d",&q->w.wages);" l( D5 S% a7 \$ v# \5 y9 I
printf("请输入职工住址(文字):");- v p6 P& [, E4 Q4 }
scanf("%s",&q->w.adr);
' T9 l! L1 f5 M0 k/ y- ]printf("请输入职工电话(文字):");$ |% u1 L' w* q k# r5 d1 e$ C
scanf("%s",&q->w.phone);
" B) W( K: s$ ~1 p) `q->next=p->next;
6 x/ A+ W: D$ D5 Ep->next=q;( _+ s( w' R1 @* w) X
printf(".^_^.录入成功!.^_^.\n");+ N8 e2 i0 s0 F; y$ V
return 7;
# q4 G" u) T" I+ D} /*按姓名查询*/
+ n- ^- u2 ~9 Z8 j( O" pPLINK findname(PLINK p,char *name)
0 b3 v* k9 ^/ }) F6 V' e, ?) O9 U{3 ^( x, E G3 B; v, [% f! B
message();7 ^9 |4 `# T- c, E
printf("按姓名 查询\n");
9 y# z5 Y8 o; z7 L% }printf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");
$ S% p; O% z) ]5 x/ wwhile(NULL!=p->next)! o9 ?6 \! w" ^& l' o
{' {& B2 S5 c1 o( T' d9 v3 W
if(0==strcmp(p->next->w.name,name)). }# C5 p$ T+ X
{: E1 I8 [1 Y1 t5 q5 k* W c* V
printf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",; K( P$ C) k6 V1 j0 C
p->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,
5 f. L6 u0 w" G* A# Op->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);/ O& b$ v: [( [5 o
return p;& r9 Z& I4 q$ d5 l/ y6 c4 L; q
}- x8 Q ?) _1 [; F% W2 l5 B% `
p=p->next;- o. g5 u+ |) V( f+ W- w$ N
}
* m1 T( s6 p- @# Z" L+ c* S5 A2 Vprintf(".^_^.查询结束!.^_^.\n");
' V7 L5 O* P: O+ j$ [return NULL;7 S2 g# e; ^& N0 e- y" p* B% h
} /*按职工号删除职工信息*/
h1 v+ Y& h; }/ z/ Uint del(PLINK p,int id)1 e6 U( F" O+ F; s0 D
{
4 u. f: z9 q3 H" I- Z4 R5 tmessage();3 y: Z. m# W6 t" P' U( Z1 f L; c
printf("按职工号删除职工信息\n");- y' s8 h% u0 T) A8 I8 `# ^- s
while(NULL!=p->next). r9 ]6 G8 J/ F0 m
{
; G' {8 F" x) U9 i- {( @7 [if(p->next->w.id==id)
]; {. k) y) b; \{
b( C2 F( F. b" {1 JPLINK q=p->next;% M4 R7 |# N: K7 m; W0 c
p->next=p->next->next;: M; X+ n- s; @2 M1 U
free(q);
" W8 A# p0 F, S$ T2 Fprintf(".^_^.删除成功!.^_^.\n");7 d' I) ]3 h/ C/ k' U s
return 1;
# S# E; |5 T% y% O# `$ t}
6 a: i$ \/ d8 r J2 ^+ y0 N- Gp=p->next;' w4 n2 x4 P% N) K" i" [
}
( A1 L4 _' K+ N1 e) W7 [3 \printf("没有你输入的职工号!\n");
0 t9 L; b& y5 J# Treturn 7;) p. k, I' T' s8 J! K* X
} /*程序结束释放内存*/, {% w8 T4 o, d+ x
void release(PLINK p)( q. Q0 \5 c; l. q6 U, O
{) y \! h4 l+ h. X
PLINK q;6 \: R4 _% B. o6 [- y- i) X! g
while(NULL!=p->next)0 Z# K' _: Q+ ]' o9 i1 u
{
* U0 m- ]2 x2 i3 c/ eq=p;4 F1 y, M+ n5 d' S* d0 g) @
p=p->next;
( y# F3 f* T# w w6 v4 \free(q);0 K v2 ]+ v3 V& ^
}6 v( L; T v! q4 l
free(p);
0 n! u# n4 I# J2 }! S. c4 J} /*查询调用*/
5 A1 ~4 W. m2 O, dvoid search()( n. k9 x3 i2 w; K X
{4 w, F3 x1 p1 x c! G3 u
int id;
+ P) N+ r+ p* [" c9 p( M* X2 zchar name[20];( J9 W: Z% q0 n# c% i% A
char str[20];
" y4 z* u6 {5 Q. c. _PLINK pworker;9 @, i8 ~9 w0 }
int l;
2 N; K( X$ ^* W: w8 @9 cprintf("\t\t\t\t*姓名查找按:1*\n");- F2 g! x7 c! f' _$ M* t
printf("\t\t\t\t*学历查找按:2*\n");
& r6 K4 ^$ N; r3 X+ K* @printf("\t\t\t\t*职工号查按:3*\n");4 W2 e+ W0 b/ u0 E k
scanf("%d",&l);3 o4 l; f. L& ^. |. J4 r
if(l>0&&l<4)+ x. I# T4 E: j
{switch(l)% {3 |; @! s3 w- J: q- X0 c; ]; x
{0 Y& T( E$ V- Q4 G7 P
case 1:printf("请输入要查询的职工姓名:");
8 b9 w, v5 o; t1 u& Oscanf("%s",name);
: j5 C( U ?7 K) C2 ^findname(pworker,name);
* r5 h+ A! D, q9 y/ [! ~) ibreak;
4 r$ }* r3 h$ b5 Dcase 2:printf("请输入要查询的职工学历: ");: ^8 b! H; `% ?
scanf("%s", str);% |$ e. v2 j7 j
find_sr(pworker, str);) ]" K8 N3 J$ O; I: F$ ]
break;$ C4 Q/ w% @" L8 e! {: }
case 3:printf("请输入要查询的职工号:");
3 a3 e) V3 J) cscanf("%d",&id);
7 g/ k8 [9 U$ N+ |* }1 Jfindid(pworker,id);
1 ]1 }, S+ v/ Y0 y* L- Nbreak;: [; }2 G& ~. C, c$ _9 v
}! i- P2 @; y% Z$ l4 R, t9 Y1 d
printf("\n\n选择完毕!!!");
3 {0 O# s! e9 D4 p C" W$ u}$ @ r% Y+ _1 I- D6 f6 c& s
else printf("\t\t\t\t输入有误!!!");
$ Q* p- a. }6 l} /*修改职工信息*/' O0 x' L& Z, h7 M m8 r
int modify(PLINK p)
. s* J5 p8 @2 p% v( W. K{ int id;* Q. a, g/ s, T% d4 ~$ l: G
PLINK q;
5 B# x6 v0 H2 E/ R) v- N* zPLINK h = NULL;9 k0 M1 E. \& n+ r
printf("请输入职工号(数字):");3 N0 r" N( {6 l9 u+ I. X* ]/ @
scanf("%d",&id);' z0 W2 @# c" ]1 u, j" L
h=p->next;8 D5 |/ O- ?1 [. u. N3 _# R
while(h)9 v# L" q7 i$ [) s, L7 U- v$ q9 u4 b
{! t, u7 m5 ~3 W7 j
if(h->w.id==id)! M& l! @3 ~% S% l* d
{
. C$ H7 a& x" P- T( m) n. jbreak;
0 k' m) V/ L- A/ n}
/ c1 ^% k r7 V8 A* y- I1 F+ kh=h->next;
3 a8 U, @. ]* M! H I}
6 U, {+ S5 J# Q- L) {8 _if (h == NULL)% w$ C3 |3 ?% S. q0 \: u
{
) {$ b0 T7 K, _5 O Xprintf("找不到此职工,请重试\n");
* e8 h4 V" i. O; S7 Areturn 7;
" i+ j4 |, O) v9 e, r6 o} Z0 D: r# k3 q8 v
printf("请输入职工姓名(文字):");& J1 l9 U4 L& S7 D" H
scanf("%s",&h->w.name);+ n \* e7 o* A' }0 A: w, @
printf("请输入职工性别(文字):");( f0 M2 N. {) U+ W
scanf("%s",&h->w.sex);. r6 M6 p( Q" D# V; f, L: y
printf("请输入职工年龄(数字):");
F/ C* j0 G E. `# G! ?+ R) [scanf("%d",&h->w.age);
( [- [/ I0 I0 h5 Zprintf("请输入职工学历(文字):");
7 k( }7 f/ q& O: y) x; `scanf("%s",&h->w.edu);
5 i+ G5 l! F7 c$ u3 @( m8 \4 Uprintf("请输入职工工资(数字):");
g4 s6 `1 _' l( f8 Lscanf("%d",&h->w.wages);
- N* i9 `$ r# ~; @printf("请输入职工住址(文字):");0 a+ f- Y& L2 U3 A1 }! d+ T
scanf("%s",&h->w.adr);4 i1 l, ]/ a J* Y% b9 t
printf("请输入职工电话(文字):");1 L5 y* n+ P) c3 b0 ?
scanf("%s",&h->w.phone);
5 ?7 Y; |' a2 z; q- e# i5 e+ aq->next=p->next;, k$ Q8 \, M" I; {4 m
p->next=q;2 N. _& m- ]* y+ D @3 y+ h
printf(".^_^.修改成功!.^_^.\n");
7 i3 `% Z( X0 D" h, S8 {$ G7 e# dreturn 7;" N7 C$ K+ X; F2 E" X, @: P+ A3 C' z$ l
} int main()
3 j2 W$ g3 E* y: _, u* i{1 o" \2 _9 n ?$ [3 y
4 T. y2 V6 W- z* H
int cmd=0;& N ^6 x' A' u6 I" ^, U
int id;9 O6 h, p3 M/ |9 ?; M9 W _
char name[20];3 }8 v K; |7 d! ?
char str[20];) @' @# i2 V( \
PLINK pworker;' A8 \+ {; \) q5 ]; K8 z
if(!(pworker=create()))
; w- M. F# [! H; s: U( R* a{5 _( ] v& Y3 F
exit(0);8 R% X/ x$ f( i' y# e( R2 ]
}
6 ?4 H( E b5 a, ^3 gwhile(cmd!=7)
1 d3 ]5 a( d; z. @{
% {7 o. }6 u$ b8 Oswitch(cmd)
- B5 R, c2 D( |2 t% {$ e{
7 ^1 t3 a L7 h9 T0 `5 L0 m7 M& |case 0: message(); break;( V6 B6 t1 B7 `* q/ |
case 1: add(pworker); break;
! [; R7 P6 u6 u) h6 n, }9 e% @; Tcase 2: show(pworker); break;
; P* u7 d4 m- y2 b0 B- g {$ Zcase 3: search(); break;
* z+ W/ W# s# x8 Y7 m" H I9 {( |case 4: printf("请输入要删除的职工号:");
" L! W* M8 l5 {) n) |+ X$ rscanf("%d",&id);3 }0 G: @' S& ~, d
del(pworker,id);" o# _) k; [; ~- _6 r" t
break;% y/ X3 ^, e' U
case 5: modify(pworker); break;
* `% d6 k; ]2 D3 ucase 6: message(); break;
2 }- Y/ _; E* d}
* v0 {$ r: ?9 p) Q! ]' }) d7 i" Mprintf("请输入操作命令数字:\n");' Z2 q* q- D( O: O
scanf("%d",&cmd);
! Q& Y1 {, _, F2 O: @$ n- h}7 ^9 n U7 s4 p ^1 m2 t
printf("谢谢使用!\n");" I! x' r: J: ~2 r, f/ S( j J- b
release(pworker);
$ Q7 X: L/ C7 }return 0;
) j, S6 e( b6 Z7 w% b}
. @, ]( I# B/ ]/ P( ?5 B0 u! d3 D
( l9 b: {& C1 c3 k8 i* l3 }
z) \5 _' x0 m1 b) O/ r4 g" b K2 G. H这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!4 Z8 N/ t+ l( r' H3 a( J
9 |9 f$ F5 r. y( t* J |
zan
|