- 在线时间
- 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>
g* R' L+ v# ^. a#include <stdio.h>
1 H3 ]: v4 c) z% Q; d# R+ u#include <malloc.h>
/ Q$ i' w7 k) z, L8 Q#include <string.h> & x( x" X2 u3 K) [8 F- t( L' c# x" X& [
typedef struct worker2 y E$ F3 \# \: ? l* X6 D
{' L( y$ i6 {& L5 [, [+ O4 g
int id;+ A+ |6 b: D; t" {5 e, ^- x$ x
char name[20];, a5 g# e. u/ `3 |! ?8 w; ~2 O! O; T3 E
char sex[3];5 c, l s2 L+ L/ m8 B
int age;
' S" Y0 Q% p4 a" o6 n4 a( ? fchar edu[50];
3 {+ y5 q" u9 X/ g3 Jint wages;) b4 a; D! w! @, r( I
char adr[255];
) O# T1 ]' G* R. E/ e4 Q* fchar phone[13];' ?/ e6 l3 D# k b
}WORKER, *PWORKER;
' G t5 V4 F% U) P' |//typedef struct WORKER *PWORKER;
) E& O+ A4 {; Q- o wtypedef struct link' S+ ^( c E- u4 R( q, j# x
{: m6 p2 i0 h; A& Z- I( G
WORKER w;
* b$ Y% P# k+ e, M; fstruct link *next;
. Y7 y6 y0 r4 M/ r, h3 G}LINK, *PLINK;/ c# h6 p- W* ^* Q( M
//typedef struct LINK *PLINK; /*创建职工信息链表*/
$ M+ s( e& x# w, Y1 b: wPLINK create()
6 _ I. g3 z5 n* J4 D2 y2 Y{
6 A/ F3 h/ l3 J& nPLINK p=(PLINK)malloc(sizeof(LINK));! K8 h: g& ~- L$ c3 @- M4 I
if(NULL!=p)7 M! O2 K2 Y+ I1 j+ ~2 n& ]
{
5 _4 W( H' `. v5 Zp->next=NULL;
$ S7 X' n- z. i! h: T" I) _return p;
5 q) I) D: y+ r$ m}; d4 P/ P" }6 A# ?0 }; O
printf("内存不足!\n");/ ?: B! n, t; P' V
return NULL;
+ z& U" c2 i- `} /*显示程序界面文字*/0 T% L$ \# W* J0 U# R$ }
void message()
& f; e: h2 z# X* j% I5 c{ system("color 0f");/*设置当前窗口的背景色和前景色*/% H, b; r- t( H0 F9 I" g- R) @
/* 0 = 黑色 8 = 灰色( X! N7 U* |( ^/ U: E6 F
1 = 蓝色 9 = 淡蓝色- n; t+ G& o0 b \ f/ i
2 = 绿色 A = 淡绿色
* F# c& z$ r6 Q: ^ T k# X3 = 浅绿色 B = 淡浅绿色8 I) K) g* x/ V" F
4 = 红色 C = 淡红色7 G+ Q. S' [; |4 a O
5 = 紫色 D = 淡紫色
% u9 T( L& b4 b0 a6 = 黄色 E = 淡黄色
e T, s6 n. u( a( o% M; Z7 = 白色 F = 亮白色*/
2 Y% h' Q' c+ M; L0 h: |3 d# |* Tsystem("cls");
% O# G, c0 _! Q% @( lprintf("\t\t************************************************\n\n");
. M* s( Q, V* p: F7 v2 X7 u5 gprintf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");
- X. R0 V2 P" ], V% H! _8 sprintf("\t\t************************************************\n\n");5 h4 L) x" N2 j+ t3 r. Q; f* K4 }
printf("\t\t ************** Choose Function *************\n\n");$ `4 {3 P3 r9 w5 |9 B
printf("\t\t ************ 帮助 请输入:0************\n\n"); S1 S: g/ a3 t+ ^
printf("\t\t ************录入职工信息 请输入:1************\n\n");
/ H! z1 i3 B6 I+ {# Qprintf("\t\t ************浏览职工信息 请输入:2************\n\n");$ j/ J. k, _! d& y+ T; y' A: S1 h
printf("\t\t ************查询职工信息 请输入:3************\n\n");" w, y& p' x9 p; S) R4 J
printf("\t\t ************删除职工信息 请输入:4************\n\n");
& g+ |! a7 i4 R- m4 aprintf("\t\t ************修改职工信息 请输入:5************\n\n");
+ U$ [2 M* Y& r f) \/ E/ G+ wprintf("\t\t ************ 清屏 请输入:6************\n\n");: ~9 ~; F+ b4 ?
printf("\t\t ************ 退出 请输入:7************\n\n");
- o) [, v) {9 O9 z5 t& _printf("\t\t************************************************\n\n");1 k( B; x& S d( V4 [, E2 _
printf("\t\t************************************************\n\n");
7 m+ C0 \1 c6 @ j} void find_sr(PLINK plink, char* str), T$ n s. `& I
{) F" [: G# j/ C! J
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
, I' T& z( X% R6 o' g% G( n! ~{
) O3 d9 n# @1 a4 ?, `2 a3 t: cif(strcmp(curr->w.edu, str) == 0)
% K7 h) J. b$ a8 w{1 S- ~1 X! I6 f, g/ S
printf("职工工号:%d\n",curr->w.id);
7 y; ]; b- |# O( {4 tprintf("职工姓名:%s\n",curr->w.name);) }+ {8 Z9 {6 b( l7 ]
printf("职工性别:%s\n",curr->w.sex);' k8 j$ P0 }1 v9 c
printf("职工年龄:%d\n",curr->w.age);* O, ~7 D: l( D
printf("职工学历:%s\n",curr->w.edu);( ?4 ^% a2 e- x
printf("职工工资:%d\n",curr->w.wages);. ~0 G6 ?3 E5 C9 N# t
printf("职工住址:%s\n",curr->w.adr);, N* U; r- r5 d4 d! Q- D
printf("职工电话:%s\n",curr->w.phone); }6 N7 V, Y' d! C- | I/ c& M
}' Q% o3 Q% M0 X ?4 N
} void findid(PLINK plink, int id)
: Z3 k. _. N, z# k" t) H2 w{
% s' m4 y5 h5 n& H' z9 Ifor(PLINK curr = plink->next; curr != NULL; curr = curr->next)) E' _. m2 ]1 I: ]- X: m1 G
{3 j. y7 a2 u, P& B7 C$ G# J
if(curr->w.id == id)
6 Z$ U, u& r/ P9 A0 S4 N# }: g( s{( K* W+ D/ t! S! u2 R
printf("职工工号:%d\n",curr->w.id);6 x* r2 K2 d* Q+ g
printf("职工姓名:%s\n",curr->w.name);) z4 X' _5 ]+ ~/ T3 A: C
printf("职工性别:%s\n",curr->w.sex);
( F1 ~& L" i0 C L3 d) @printf("职工年龄:%d\n",curr->w.age);
8 A- G I9 I) Q Y" E. ~. fprintf("职工学历:%s\n",curr->w.edu);
; I! p! d5 u; Sprintf("职工工资:%d\n",curr->w.wages);
* H* O0 j9 D" i' gprintf("职工住址:%s\n",curr->w.adr);
9 u- i1 B0 v; L" c6 O, h- p; @" K7 k% sprintf("职工电话:%s\n",curr->w.phone); }
2 z* S. ?& i6 i& G7 h}) Y1 J' ~( |% @8 y+ T- p) G
} void show(PLINK plink)( h. a& i; E3 a: P+ o Q; g
{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)& g- ?! I" }* M6 ~* a4 ^
{
; u# J) L/ c! vprintf("职工工号:%d\n",curr->w.id);+ A7 W$ a/ s# o6 O% X
printf("职工姓名:%s\n",curr->w.name);
+ s! ?4 I$ X; f0 iprintf("职工性别:%s\n",curr->w.sex);! r9 L* G5 r0 u1 E7 ], H
printf("职工年龄:%d\n",curr->w.age); p; d( @7 S, x: F
printf("职工学历:%s\n",curr->w.edu);$ U+ g+ h8 ?# R1 N- v% t9 g
printf("职工工资:%d\n",curr->w.wages);: t2 q, j" S: a3 \
printf("职工住址:%s\n",curr->w.adr);
. |: J2 R& [7 K% k Y; kprintf("职工电话:%s\n",curr->w.phone);5 s, S' P8 I6 F- X' c, _7 f- {8 m8 j
}
/ H- u3 z) ^$ J8 C' K. r' B; [} /*录入职工信息*/
+ k" D# n3 u" D+ B6 wint add(PLINK p)
" u' D- t7 w) @3 F& R{/ N7 x- a* |7 c& T7 H& @
PLINK h = NULL;% r$ I2 E8 l) @: B# j! e
PLINK q=(PLINK)malloc(sizeof(LINK));
* w: D* o$ |- t1 L; }if(NULL==q)$ I' {6 Y4 K$ O5 N/ D& \
{. @- _# F9 h% p; R* O8 ~
printf("录入失败提示:内存不足!\n");
- f% n6 T4 t' jreturn 7;
$ ?. s9 H* A4 M5 M) u6 S2 d}( `0 v# Y T( Y O# b) L' e
printf("请输入职工号(数字):");0 V7 x. ~0 V! G6 Y* m
scanf("%d",&q->w.id);
) q7 N' h4 r9 I2 o* H7 Ih=p->next;, H: d; _3 [$ l- m& y! h5 a2 U
while(h)
' v5 x0 y& R) x( B+ \{
8 g3 d2 D/ q2 z) Hif(h->w.id==q->w.id)
" ]5 X/ u& b; I{9 q0 D$ d" T* \/ y. X0 J7 r
free(q);
+ M) r9 Z& [& K/ N8 f( _2 kprintf("录入失败提示:此职工号已经存在!\n");
2 ?* G8 v3 r2 ^! preturn 7;- o7 s2 k1 x; W
}
. z& B' q% x# P( c i0 Hh=h->next;) i- t3 Y' Z3 v% e+ K& s
}& a! g5 T$ r* D" n
printf("请输入职工姓名(文字):");
5 x! }5 b0 K: G( l6 pscanf("%s",&q->w.name);7 H$ ~" ^! C& N
printf("请输入职工性别(文字):");
8 h& I1 p6 m8 w/ b5 r( R, J3 D. [9 s. Gscanf("%s",&q->w.sex);
$ M% M4 |- `& ?0 i% [: eprintf("请输入职工年龄(数字):");5 P# B8 v% S4 n* ~$ V8 v4 l3 S
scanf("%d",&q->w.age);0 r# n8 J8 Y @; N- O4 Y; B3 x
printf("请输入职工学历(文字):");
4 A/ }9 @4 T- J2 s3 w# [scanf("%s",&q->w.edu);. D4 Y4 ^. I, A" }- y
printf("请输入职工工资(数字):");
6 G v) i( M; Uscanf("%d",&q->w.wages);
6 v. Y: ~1 N; ^5 a4 ]printf("请输入职工住址(文字):");: R: X8 D3 T: R. X) D4 \& I5 k
scanf("%s",&q->w.adr);
2 r; h, \: X7 S+ bprintf("请输入职工电话(文字):");
) A7 g' |- H. Q) A& n1 g: e+ b. Uscanf("%s",&q->w.phone);$ b0 L0 |2 G; I0 f! O( {! H/ z. L
q->next=p->next;
! a; Q7 n# Z+ G5 v& G" |4 Sp->next=q;( `; c# ^& D5 d( m
printf(".^_^.录入成功!.^_^.\n");
3 Q d- T" Y$ A8 c, P, k5 s$ Areturn 7;
4 L. l9 k) |( t6 y- T% C7 l} /*按姓名查询*/* z% W# | ^1 W8 \0 T
PLINK findname(PLINK p,char *name)( J7 G# J) y6 `. e: z8 y5 F, k/ ~
{
) R: \# q: u" C, ?" nmessage();
' T# x Z E E6 nprintf("按姓名 查询\n");
. C X# V1 [7 \+ W4 P8 U3 G' F" |printf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");" l) e0 l! \5 r& t" f
while(NULL!=p->next)
0 ^+ J. F& a5 H' [{4 |. d& i2 C# {- R8 J
if(0==strcmp(p->next->w.name,name))
% c- N$ z9 U' b$ r8 H4 B* z2 D. a{
5 j: A1 m2 e7 Tprintf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",* t9 i V' [2 d( i( K& `
p->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,3 H" b( W) `! }
p->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);
3 C# q) n3 r7 N) B5 ^$ b: h% Xreturn p;: l3 L) `6 D. _7 K% a" i
}, S! H: M' g2 v/ w; W: w5 w" H
p=p->next;: D0 y. `3 {- s C! D" `
}
# g: m: D9 k7 m+ Yprintf(".^_^.查询结束!.^_^.\n");6 }4 I6 o4 S0 y/ y* w
return NULL;! [; q7 g0 n# _) X3 }/ v5 D& W
} /*按职工号删除职工信息*/
8 Y, ?* F) w2 Z: A. fint del(PLINK p,int id). N9 W, ?! m5 \9 B: Z. n; ~
{
1 k _: w, O. L$ n ]& Gmessage();
" s4 {& S* D F- E5 q$ _) j' G3 Lprintf("按职工号删除职工信息\n");
, s+ ]: L& j- e9 _* r! ^- uwhile(NULL!=p->next)
2 c% \ w3 I6 P{
" C) Q9 \0 w5 ^/ ^6 K8 T& Lif(p->next->w.id==id)3 [, M: p8 H/ U0 T/ Y
{
8 F% G8 [5 a+ k3 k6 I B E d. nPLINK q=p->next;
5 _$ p" h Y6 ]6 ]4 E9 A* Bp->next=p->next->next;
% R7 w1 S- l) z! ^- lfree(q);1 Q! d9 Z1 N7 X* W5 m; r
printf(".^_^.删除成功!.^_^.\n");
/ i8 f \0 J# P' i4 Qreturn 1;
- @: \! P3 }- a5 ^) a}
n4 J" F: [) u1 D4 b4 tp=p->next;
7 J0 f- u% H7 A/ ?0 y; m- Q}( Q+ x% C! g# d
printf("没有你输入的职工号!\n");
' X' G; y& x' K! g- b* ^return 7;0 h5 e6 G6 b! b
} /*程序结束释放内存*/
7 a; E h8 E- [void release(PLINK p)0 Y) h) d$ c9 V
{+ U& _( @$ ? T& f( R
PLINK q;, Z I1 o1 W8 u
while(NULL!=p->next)
0 I% M& u4 O! D# \. y4 ?{3 n6 `" R- r e2 d
q=p;! M& c6 g& e7 s% b) L
p=p->next;
! @' |) r+ w+ l5 J$ q1 d( i) x0 Tfree(q);. R$ h3 S, K' {1 H) I) [: S) u* a
}9 v" W) `! T- h& l
free(p);
& f$ ] i0 d& \7 M/ E} /*查询调用*/
( F9 Y, ]( h' ~ M0 Fvoid search()( z: }( d: B( R8 P7 Y
{
6 Y( D1 A( N3 q; ?; oint id;* x1 N1 Z/ a: e. O+ h# F2 R# x4 ~5 A ~& o
char name[20]; o5 j6 m- O& v, c0 E2 I% n
char str[20];
' a4 z9 j5 P& @$ P" EPLINK pworker;
' A9 G1 l; m+ s* @7 zint l;
6 f0 x C# _# h) iprintf("\t\t\t\t*姓名查找按:1*\n");
+ I8 e) T1 X x. |% r2 [, d9 Z Tprintf("\t\t\t\t*学历查找按:2*\n");
# ?% O' J1 u0 K2 I4 vprintf("\t\t\t\t*职工号查按:3*\n");& J- F5 J0 a5 b/ L& ~
scanf("%d",&l);% }+ Z7 }( g$ m2 r
if(l>0&&l<4)
' V6 T, s8 Y/ ?$ O+ {! [{switch(l)& p6 i* ^, n) ~- k/ V w
{' B6 p; g+ o* O
case 1:printf("请输入要查询的职工姓名:");
3 B. _, E ~ j7 F+ T+ ?scanf("%s",name);
+ H3 N9 v* Q, E6 qfindname(pworker,name);
3 N a9 I+ Z" q5 j6 Mbreak;
! S! Y* h" S5 F' B9 D' Ecase 2:printf("请输入要查询的职工学历: ");2 e3 G) J' V7 P! ~6 p6 k
scanf("%s", str);
2 p+ r! t& ^; F) i" k D: Gfind_sr(pworker, str);
. e, R) s/ e4 M* wbreak;
4 K4 s8 D4 Y- u7 acase 3:printf("请输入要查询的职工号:");
0 T* L @* q) V" W9 {! [- i$ t9 bscanf("%d",&id);
$ u! j+ h) q+ x9 j W: z, Vfindid(pworker,id);2 ^! k8 z3 l* p
break;- }; n. R* e# r. X
}- C" n2 V( k9 N1 u' t4 H4 J, P$ S
printf("\n\n选择完毕!!!");
( y7 j7 J2 m( D" b}( j; l+ P$ q, m# S, L( W
else printf("\t\t\t\t输入有误!!!");% q: C& T q) e) f* g
} /*修改职工信息*/
( E- Y( Y' b' `1 J- P5 e+ X6 Xint modify(PLINK p)
! v. p- T; m7 }9 Z x1 L% _{ int id;
8 _1 D6 q2 g* t4 M" ~! @0 qPLINK q;
, y: H) @1 Z1 k. ?& z b# sPLINK h = NULL;( @: D/ y Z5 F1 u, g
printf("请输入职工号(数字):");0 w, |1 d2 p9 q F0 C
scanf("%d",&id);! ~. X) h7 F! Z2 h% \+ |6 |2 U
h=p->next;
3 F' b6 X( x- X* Qwhile(h). t- ?& K0 \" v# A5 d \
{
# K B0 G, c7 `$ v2 _if(h->w.id==id)
& U* S/ k+ I9 v! x; {{" s4 B! s0 M& L* E5 b
break;/ z" T/ i0 U0 t2 y0 C8 W( z8 l
}
8 L# s8 Y* X# o6 Ch=h->next;
* h6 v) b$ c6 M, z7 U0 e}9 M G% Q4 i5 W
if (h == NULL)
F- X% H) S S9 V: f{
7 l8 X$ |5 L7 ~: P# Eprintf("找不到此职工,请重试\n");
4 q! N+ \7 d5 S: _ W7 ^: D Zreturn 7;
. y, k; S$ f$ j Z& F) ~5 O8 L}
! w. u! g* K( o+ Pprintf("请输入职工姓名(文字):");6 y' v- P# g0 g8 u
scanf("%s",&h->w.name);6 L/ a( S/ I# N. z& b6 D( `) }
printf("请输入职工性别(文字):");+ T) w: ]( z# y- E& E9 F' R, l
scanf("%s",&h->w.sex);
1 `0 c0 X$ A! b ]3 M8 c! Pprintf("请输入职工年龄(数字):");
; q9 a0 \9 a% I, uscanf("%d",&h->w.age);
4 g5 y" m$ w* I- a5 sprintf("请输入职工学历(文字):");5 \: U7 }5 \+ C, _8 c! L
scanf("%s",&h->w.edu);
" A% |% n: S, N2 Y. X% [) z) Jprintf("请输入职工工资(数字):");1 ~4 F# c% }' y9 H4 l! H: j
scanf("%d",&h->w.wages);! x) {, C6 d# n6 L
printf("请输入职工住址(文字):"); f) f5 }% s3 j/ i5 T
scanf("%s",&h->w.adr);4 P0 L! K0 E( m4 ^3 l* d: W, f+ z1 C1 ^$ d
printf("请输入职工电话(文字):");
: D. v3 j$ H# a+ S2 Kscanf("%s",&h->w.phone);# a+ l% _ Q' ]# T7 o
q->next=p->next;2 ~( ^3 g) Y6 q( d- |
p->next=q;
* [8 S4 V% f% P8 w3 {printf(".^_^.修改成功!.^_^.\n");
% \" I$ a2 j5 |. Rreturn 7;. M, Z* y# v# g0 q l5 {# B
} int main()
X. i0 a1 Y9 s, u0 l/ k; _{9 u! L4 j: z6 K2 F# R: K, _9 U. R
+ h$ I; E; |3 d1 B! [" I
int cmd=0;% Y" Q2 n6 @7 l" A b
int id;
& | v3 x, g. w: v' v9 v) Z2 w+ Kchar name[20];% v8 O& j% e a- G" Q
char str[20];
3 b/ l2 S8 o8 I) F/ f$ N; mPLINK pworker;. C) ]6 P( D9 x7 }4 Z
if(!(pworker=create()))
$ {3 B& M( L6 o& R! X{9 y! s( P0 Y# p+ N6 `$ V# |& k
exit(0);
7 D- U# S& E5 x! k- k9 Y1 j}
6 y% u f0 \ B# swhile(cmd!=7)2 ]( \: D! N+ O; j. a
{, E! w, Y9 h4 \6 R2 s* q5 p
switch(cmd): J9 p5 V& X3 \5 b& N) Y/ G
{
% D H3 f \9 t; v4 T6 tcase 0: message(); break;
5 R' _; F; L$ L3 m+ Pcase 1: add(pworker); break;
% S9 G9 W+ n. ^* _4 |2 X8 lcase 2: show(pworker); break;& K* ~: V1 q) q0 Y9 |1 B, }
case 3: search(); break;
4 H; w$ s$ w3 I+ E$ f1 Qcase 4: printf("请输入要删除的职工号:");
/ Q- P2 q! R- S N/ R& E! R0 Pscanf("%d",&id);. [4 T$ R) ~( u r
del(pworker,id);, P: \; \* d7 ^/ q% [
break;% ~5 d, }2 v/ {$ q# f* S0 c
case 5: modify(pworker); break;, s$ H$ z5 r- k5 [ ?' A
case 6: message(); break;% v4 I* D. Y9 U# K$ p; A! o
}, n1 G, e* X! l1 ]3 j2 e9 o
printf("请输入操作命令数字:\n");
3 ?# X1 J4 |) u4 g) W( \* K! Yscanf("%d",&cmd);. [7 e% N0 }; z; Z& {
}8 [* I, G& _" _0 q
printf("谢谢使用!\n");
* Z x0 ]5 B/ z7 x/ O# Hrelease(pworker);3 e) E2 p) o8 z5 X) I z; U) j+ d
return 0;' f9 u# T3 ^; j& u# B4 m
}
3 U7 ^& i) ]% o' d, N( |5 p
* L4 [* Z+ ~9 m3 a* D1 E m+ r+ I+ k; e7 |5 p- `, d
这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!
2 k6 B4 N$ {$ d% \+ B7 y* i
* L- m$ V+ _, ?4 b& h |
zan
|