- 在线时间
- 490 小时
- 最后登录
- 2024-2-3
- 注册时间
- 2013-2-28
- 听众数
- 117
- 收听数
- 46
- 能力
- 268 分
- 体力
- 39231 点
- 威望
- 1340 点
- 阅读权限
- 255
- 积分
- 31236
- 相册
- 2
- 日志
- 0
- 记录
- 0
- 帖子
- 1391
- 主题
- 937
- 精华
- 0
- 分享
- 0
- 好友
- 111
升级 0% TA的每日心情 | 衰 2020-10-25 11:55 |
---|
签到天数: 264 天 [LV.8]以坛为家I
- 自我介绍
- 内蒙古大学计算机学院
群组: 2013年数学建模国赛备 |
#include <stdlib.h>' l1 t$ B' z9 F1 P( s N: a
#include <stdio.h>' z2 O) h% T2 P0 h7 H: u. b! H5 i
#include <malloc.h>- `& G8 Q) m9 Q4 m. [( R
#include <string.h>
* ^+ }, k8 y& h5 G( qtypedef struct worker, d0 C+ y+ `3 e% N' R+ `( J4 _* r
{9 `- C' T' o* `+ `/ m( _
int id;3 z) d; A0 Y* u5 V9 }5 H/ h
char name[20];- h5 D& \& e2 T
char sex[3];8 w3 k( y1 F, o! T. G% N) a8 y4 M
int age;7 g# j4 ~; ~4 G
char edu[50];
: g( K7 O, y. P! C, ^2 s8 A; Mint wages;
( A& ~" _5 T3 L$ nchar adr[255];6 J, r9 {+ E7 s+ n4 _9 j
char phone[13];
7 e4 V* }1 Y( p' x- c& r6 _) M* j}WORKER, *PWORKER;
: Y) n0 n1 E$ w# a//typedef struct WORKER *PWORKER;
% @! M, }% A8 v: V* ?2 c& ~( U& D: Ftypedef struct link" ^% a# V6 V- ~. h f
{
+ k( V: S1 @: l( CWORKER w; U: u9 H. r7 E. W0 n, r2 V
struct link *next;0 q$ [! O1 L% Y1 [4 a
}LINK, *PLINK;
; c9 l1 W1 _, b/ l6 d" g+ {6 z//typedef struct LINK *PLINK; /*创建职工信息链表*/" I* ~! g L8 G$ r) Q( q6 u
PLINK create()" t3 V1 t( ~* \ i
{
1 L! ?1 I# r# e7 cPLINK p=(PLINK)malloc(sizeof(LINK));( R" v+ O' w* P
if(NULL!=p)& c4 a+ E6 y, R. m! z4 o
{- e% |! j8 Q" K: k& V; S5 n
p->next=NULL;! U! |0 r) A# d! w9 z1 _2 \
return p;" u2 U. I1 B" T
}
7 ^- N& T2 N3 {( d _; V, W$ Eprintf("内存不足!\n");
3 T. s* m7 B) L2 k. P/ M$ F! Ireturn NULL;
; a; Y! B' q# [' y4 t9 ]& T( }} /*显示程序界面文字*/' Y2 ]1 C7 J. N( A. y
void message()
7 i$ m) J* d7 e& J( z0 X{ system("color 0f");/*设置当前窗口的背景色和前景色*/
* [! y( y& X9 [' |, q& L* s/* 0 = 黑色 8 = 灰色
, ^4 R0 P+ r- Q- I2 s, s$ |1 = 蓝色 9 = 淡蓝色5 e) r% v( U+ W, S4 F" {
2 = 绿色 A = 淡绿色
/ T- b5 c" V7 ]7 Y, ?3 = 浅绿色 B = 淡浅绿色
, N @' j# u; A+ ~4 = 红色 C = 淡红色2 }* g8 s1 C5 {0 g
5 = 紫色 D = 淡紫色3 m" d1 D0 e* f/ p) i
6 = 黄色 E = 淡黄色
8 j: j! ^& T8 i: S7 = 白色 F = 亮白色*/% K/ c. j4 n( }$ v/ s8 ]
system("cls");
0 `0 N- b) B1 @. o1 [" y+ Cprintf("\t\t************************************************\n\n");- {& Q3 s4 f: ?! v5 g* u) c
printf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");9 \0 D9 T9 C' c% g9 Y7 u
printf("\t\t************************************************\n\n");
/ u* k R4 Z, c8 i0 N2 A1 ?' X/ vprintf("\t\t ************** Choose Function *************\n\n");6 J+ n) s7 ]' F$ |: j& p& s
printf("\t\t ************ 帮助 请输入:0************\n\n"); y! V9 P' G- w9 L9 g. T/ F
printf("\t\t ************录入职工信息 请输入:1************\n\n");% L7 j. ?( n2 i2 y
printf("\t\t ************浏览职工信息 请输入:2************\n\n");
/ I3 M8 Y+ x) W5 ?' y2 O8 |. G. sprintf("\t\t ************查询职工信息 请输入:3************\n\n");/ ^9 |4 q, e. P& m4 E6 B
printf("\t\t ************删除职工信息 请输入:4************\n\n");
$ g- K' K; S: m7 Y. @: q8 y, I+ mprintf("\t\t ************修改职工信息 请输入:5************\n\n");
: Y4 P7 |2 C3 z0 T: ]) K# g+ Eprintf("\t\t ************ 清屏 请输入:6************\n\n");
2 o" d) l; n- W# ^& ] B6 Rprintf("\t\t ************ 退出 请输入:7************\n\n");, ~3 y" ^- ~% i2 l/ _ y: Q3 {
printf("\t\t************************************************\n\n");9 S" _5 D- l+ n0 ^
printf("\t\t************************************************\n\n");
( N; {2 V& A& B% t5 t} void find_sr(PLINK plink, char* str)
/ r: Q9 T# S' E ^. J4 m4 @{: s. F' r1 x8 a( K' T
for(PLINK curr = plink->next; curr != NULL; curr = curr->next). N$ d+ d; ~2 P. L+ \
{
8 J; l" e6 H7 b/ O; F, b5 Nif(strcmp(curr->w.edu, str) == 0)4 ?) n9 b- F" y d
{ `5 H' e2 }: {
printf("职工工号:%d\n",curr->w.id);/ k+ I$ p7 S _: j3 U* N/ t3 O3 q, h2 @
printf("职工姓名:%s\n",curr->w.name);, {6 @" D8 P+ j7 H# A7 T1 o& [, m
printf("职工性别:%s\n",curr->w.sex); T0 T8 N# l+ e7 X" _ U0 M
printf("职工年龄:%d\n",curr->w.age);' C' r, @8 n3 U
printf("职工学历:%s\n",curr->w.edu);
: s( `7 n; d) sprintf("职工工资:%d\n",curr->w.wages);' T4 P7 \5 a5 C( [% _ B( j
printf("职工住址:%s\n",curr->w.adr);
_3 d3 K x6 sprintf("职工电话:%s\n",curr->w.phone); }
3 x$ L) |6 F3 `1 A7 v}
* {: V- n2 s5 z+ ?9 ]} void findid(PLINK plink, int id)8 P7 h/ ^' N/ e' e7 f; c
{
4 {4 L( D H. F- x; kfor(PLINK curr = plink->next; curr != NULL; curr = curr->next)0 a# n$ m$ N7 o& z h) i+ a
{# }) o+ B$ P7 e) f+ _: S; U
if(curr->w.id == id)
; ~" ~! n! T. ~% ]{
0 x7 W8 d: n0 E' yprintf("职工工号:%d\n",curr->w.id);0 r7 b5 @) @3 ^3 y% @) V# L2 u, L
printf("职工姓名:%s\n",curr->w.name);
# ~6 [8 d: {: y. A5 [5 Zprintf("职工性别:%s\n",curr->w.sex);! H5 y5 |) a8 T3 W- L. R; a; `
printf("职工年龄:%d\n",curr->w.age);
7 {- i. }3 l, P! h; ~- Iprintf("职工学历:%s\n",curr->w.edu);/ v8 ?/ a/ P! W/ C1 V
printf("职工工资:%d\n",curr->w.wages);1 B: l8 U# t5 |3 ?
printf("职工住址:%s\n",curr->w.adr);8 N3 d$ b9 m7 d4 ^& W
printf("职工电话:%s\n",curr->w.phone); }4 L ?, C j9 I/ ~7 t" W
}
2 C; k" \+ |+ s- [1 D) Z7 Q7 k} void show(PLINK plink)
* r3 J& G |8 C" N! B; M+ l{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)0 f" l3 N% l1 R
{9 \5 m3 K1 G9 c) s& S
printf("职工工号:%d\n",curr->w.id);
, O' l! p0 }; tprintf("职工姓名:%s\n",curr->w.name);0 d4 G3 j* U L
printf("职工性别:%s\n",curr->w.sex);
1 ~% l& y* `4 q$ c& R/ Pprintf("职工年龄:%d\n",curr->w.age);6 | h6 H& Q( v0 v0 Z$ I9 C
printf("职工学历:%s\n",curr->w.edu);' M6 \0 Q2 O4 f4 T' C8 \1 ^
printf("职工工资:%d\n",curr->w.wages);
5 z5 O' i( {- y+ iprintf("职工住址:%s\n",curr->w.adr);" k r. s8 Q H- |( c
printf("职工电话:%s\n",curr->w.phone);: J% g! X. t1 p" y$ }
}
3 b- r. F# c6 k" \, F( X% x} /*录入职工信息*/
( H0 t: Q# }1 F xint add(PLINK p) M, S! e: X( q q) h; F! o
{0 H- K! E5 u/ p% b, q
PLINK h = NULL;
/ [. x. `8 U5 R: x$ o' n% `PLINK q=(PLINK)malloc(sizeof(LINK));. G4 s5 C, n, `5 D4 `) p3 B. @/ I
if(NULL==q)
( \/ J) }$ i- G# | B9 s( W5 p. J2 b{
; j4 n2 Z( l% i. ^9 M( Eprintf("录入失败提示:内存不足!\n");/ W/ m5 S5 F9 t
return 7;6 z4 {4 n- g! o3 Z( G
}
$ l. k Z/ L# G+ {% wprintf("请输入职工号(数字):");
$ J. q l7 Y6 L4 ?' Jscanf("%d",&q->w.id);
. g8 ~4 A8 B# E- E/ m, Z2 Yh=p->next;
2 e0 m1 R1 }! ~' I+ Q5 swhile(h)+ g' A: i9 `/ b
{
0 t) z, Q7 Z' W, pif(h->w.id==q->w.id)
' S$ h" b; b Q. M* D5 C5 {{
1 U* \7 T, @0 T- Afree(q);6 z1 J* T4 A! {+ V
printf("录入失败提示:此职工号已经存在!\n");6 Y; q% N1 i' ^
return 7;8 f- |1 [+ m3 o! a* ~' @7 g
}# q x# L5 ^) m0 A
h=h->next;
5 q" w" J- V6 r# e5 a, I7 S; p4 U2 R}
6 }6 h: {8 ?( f" mprintf("请输入职工姓名(文字):");: g0 d1 h. \, v; g. H
scanf("%s",&q->w.name);
0 ~/ C) ]6 z$ j9 C, l% A) Pprintf("请输入职工性别(文字):");
# \) o* u" i$ s _: a5 \, W+ J8 Escanf("%s",&q->w.sex);
0 N& r/ N, t( {7 y8 ]printf("请输入职工年龄(数字):");
' n. t& H9 F( T- @: `scanf("%d",&q->w.age);! c) P+ ^0 e" M' }% h) B
printf("请输入职工学历(文字):");
/ d! q* ?, _; S w vscanf("%s",&q->w.edu);
3 Y9 d; E2 t. `! u5 e \printf("请输入职工工资(数字):");3 Q$ f7 N t% ` b" F$ o+ s: ?
scanf("%d",&q->w.wages);$ i. ?( D. Z. n3 ?2 g* ?
printf("请输入职工住址(文字):");
5 h9 [! r9 E: }+ kscanf("%s",&q->w.adr);/ k/ Q, l& s6 B% L4 C& J. L5 c
printf("请输入职工电话(文字):");
3 h2 s9 D* w3 _3 x3 \/ q G2 C) Sscanf("%s",&q->w.phone);
2 i3 ~" ]0 D: o1 B0 c6 }# `& Jq->next=p->next;
3 q& G4 D! U" B! E1 Y3 kp->next=q;
; F' {: X' ~' q+ _5 |printf(".^_^.录入成功!.^_^.\n");" w" l% G* {- n
return 7;. i; f+ ], `: w3 k# b0 W3 N
} /*按姓名查询*/) O% i$ x2 ?9 h7 v- q; f
PLINK findname(PLINK p,char *name)4 v2 b+ ~% ^2 f/ [
{
4 L) s% W J. Z$ z1 qmessage();
; ]- s( D* Q% p& L" S2 bprintf("按姓名 查询\n");
+ [- b6 W2 i; O1 n. _printf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");
8 T/ j; I- {9 W- x5 Zwhile(NULL!=p->next)
( `3 q' V% v8 H# o2 o4 q+ c{
9 `( V) f1 j/ C& ~if(0==strcmp(p->next->w.name,name))
" m* @. _$ X& M/ e3 h- `# U: l{
' y9 Z, N/ G. F9 z J. kprintf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",
( {: u) m b* n: @7 h0 s3 Mp->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,
1 H6 o/ K& a0 b+ n% _) Pp->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);
5 Q( F4 ^( m& K7 q9 ~7 {return p;
% A5 W& A" Z: p" m; o8 b$ e7 |- E- o& `( E}3 @# g- H1 F- s* n8 v" g' s( ~% J
p=p->next;
2 \, v* }& r7 f, `3 v# R" v1 y# n, [}
7 G; w' n- W# Uprintf(".^_^.查询结束!.^_^.\n");' p: Q" o# t/ N+ X! H- o
return NULL;7 Y* k6 Y; t2 S% M! S5 O1 Q( _
} /*按职工号删除职工信息*/
% e" s- }7 Z- Z. D% W2 D q6 iint del(PLINK p,int id)
$ q3 O1 Q, g5 S$ t4 p{" T4 e G; J$ l7 O4 k
message();& J" ~5 F& \; F2 T k3 e) s
printf("按职工号删除职工信息\n");, v6 k5 k. z/ E% r6 f5 x
while(NULL!=p->next)
; h0 U# ^# D" u! h2 j) v{7 r$ t* ]9 j) e, ^; h
if(p->next->w.id==id)
+ }5 |7 u) W* r3 q& e% M{
& P# j3 n3 u7 w8 sPLINK q=p->next; ~. z% P- [& l k ~
p->next=p->next->next;
! m5 @: [8 k6 W% t* N7 ufree(q); o1 h/ }9 ] r" S
printf(".^_^.删除成功!.^_^.\n");: n) q3 j' J( F4 H' E. O5 \
return 1; z$ ^3 c' Y6 i: D, X
}+ {: l* `4 y R
p=p->next;7 X7 h; v. B. v
}
& y3 q" ~: {- G# Q. k3 Rprintf("没有你输入的职工号!\n");$ i( \4 |. a1 M$ V
return 7; S! x# d2 C8 i% z( E2 y* }! t
} /*程序结束释放内存*/+ A- O i# m& t0 [6 `
void release(PLINK p)
( g7 `0 H6 ]" ?{
1 m7 t% b. C- w2 K1 b) U# a0 R# oPLINK q;5 h$ e+ e; K: Q
while(NULL!=p->next)
; e% N l" K! J* \2 D2 @4 ^{. @9 v: f) Z7 ]
q=p;
3 x4 \6 d; g& a+ {3 Qp=p->next;
( n! O# B* y# [, w* \; n N) zfree(q);
, x6 U8 E2 S% u1 a. S. D. Y8 r5 t) W}: y7 Y! _1 O, E6 O5 v( L
free(p);
E$ w9 K$ e8 ~ ]* z- ~! b} /*查询调用*/
* \7 ]9 U. n$ m1 A4 v. qvoid search()
- D# |+ j- j' ^{) ~5 D7 ]2 `5 w a
int id;
( K2 w- \/ [- t) E( c V) Zchar name[20];8 p4 I/ ]& e/ S& f3 h
char str[20];
5 G- _% c/ f$ ]4 h8 X* sPLINK pworker;
, k: N" ~- C0 V5 y1 V: R$ e! p: Eint l;2 u, t4 q: @/ L# K" t
printf("\t\t\t\t*姓名查找按:1*\n");
: l! B; w" U% n& O6 @* h1 P6 dprintf("\t\t\t\t*学历查找按:2*\n");; C5 a9 G9 b( r7 M1 z4 m
printf("\t\t\t\t*职工号查按:3*\n");# [0 p; m2 ~! k% {
scanf("%d",&l);
7 S6 v# }8 \$ @$ S2 k; H$ iif(l>0&&l<4)9 |$ I. V* M* d" N, J
{switch(l)6 A! ?# K0 ^" d1 L M
{
* L# \0 U2 M$ x6 q) W+ f5 o' p( Rcase 1:printf("请输入要查询的职工姓名:");
9 _8 C7 V0 I6 V( f; j, a# a3 lscanf("%s",name);
' j) P" F( J" [4 @- p3 v0 [! k8 S7 Xfindname(pworker,name);8 u7 Z' j" M5 {! X8 u
break;
" j0 |- m& r, t9 Y& Ycase 2:printf("请输入要查询的职工学历: ");, ^) C0 H- x& P0 ^5 x
scanf("%s", str);
6 v3 B& ]! \6 M$ _3 R0 wfind_sr(pworker, str);
4 x8 D# ?3 Z9 e: ibreak;
2 L9 F5 }; a6 b1 T Y: P1 \case 3:printf("请输入要查询的职工号:");
# J' ]2 k# g* }4 F& Q; Gscanf("%d",&id);
- d" ?) {3 l, c/ `, R9 X ~8 Ffindid(pworker,id);& S9 \1 T; k" t
break;
& L, \% q8 z0 c" u, C}
{8 a8 g- @# P! j* _1 Nprintf("\n\n选择完毕!!!");8 {7 g p2 c9 o6 `/ o
}
1 M6 U7 H) A3 T* f# s6 k* nelse printf("\t\t\t\t输入有误!!!");
% t2 e% X( H* r& _3 L} /*修改职工信息*/
/ }; X& S& D9 k. e7 b9 x8 w. A4 cint modify(PLINK p)
8 c* b9 h% B% f: u( a5 L{ int id;
% v6 `& m5 \9 c9 t2 m7 m* K8 ePLINK q;
. }4 o- h+ f/ L, C+ PPLINK h = NULL;
' c3 y1 o1 C/ b0 F* x& l2 \printf("请输入职工号(数字):");
+ |0 v2 O$ X. f, n, ?0 tscanf("%d",&id);
% j" E% U0 Q# Rh=p->next;
8 m9 a) F' f5 l5 ^; W2 X' q5 G. Twhile(h)
' I0 I! |) \6 ~( a# b: N{6 x+ e9 u/ m+ D* }5 n% N
if(h->w.id==id)7 ^ |3 n' u$ H
{
x% ?! E5 c3 t }' Hbreak;
, b' N. ]# e3 S9 l: W8 y9 }}
! b) _" _: [* }( g& t" {h=h->next;
+ o- x) C& g( A* e* S}
1 C1 B6 B+ {# d8 q6 Iif (h == NULL): O; p4 @ x- E
{1 v- L V: H9 ^
printf("找不到此职工,请重试\n");
$ ?0 s- J+ E( ^0 areturn 7;- I4 _4 E9 w* L% V
}
, }: G- i' t3 k/ [# e' `printf("请输入职工姓名(文字):");
' B8 S& x! u( j9 ?scanf("%s",&h->w.name);
. J; y+ z7 i# Iprintf("请输入职工性别(文字):");
" e. M$ P( j. Escanf("%s",&h->w.sex);
1 R9 n) U5 ]2 @( V& S; ~0 gprintf("请输入职工年龄(数字):");
6 F7 _6 i6 f2 ~7 Pscanf("%d",&h->w.age);
5 M# Y. k! L; ^( P0 aprintf("请输入职工学历(文字):");
; {2 s f" I0 L8 K% V" m+ q' [scanf("%s",&h->w.edu);
$ w9 { p- }" X9 aprintf("请输入职工工资(数字):");
6 y9 M3 a# F% Y! E. H$ N5 i9 Oscanf("%d",&h->w.wages);
' k& m4 ^5 G) I: Gprintf("请输入职工住址(文字):");. A: c$ w8 J4 Z- F4 }- J
scanf("%s",&h->w.adr);2 r K( k; E, O! j! [1 Q' E* L
printf("请输入职工电话(文字):");+ e" {; J% A B+ q5 Y
scanf("%s",&h->w.phone);$ p1 V" f4 |5 }7 h
q->next=p->next;
$ C7 z: b5 A7 B3 o5 c/ s$ bp->next=q; ~- Q3 X' C1 H1 O6 R
printf(".^_^.修改成功!.^_^.\n");
; l; v x7 f% i+ |: R$ w; Ireturn 7;6 Y$ A8 E, E+ K) T6 x4 V; F7 k! C
} int main()
5 f& L* Q- ` B$ ]3 m% i1 H{
/ ]1 T$ s }! F) x$ o
/ X6 M: g+ f4 {) `; g! |int cmd=0;1 w& F' j8 C9 ]/ f7 v
int id;. O, l9 z& p: T& k) X
char name[20];% b6 F7 ]1 T. d# X
char str[20];
; ~, T; } K X# Z& |! ]( T v5 PPLINK pworker;
* Q1 V) F1 _% H8 k! s; O A. iif(!(pworker=create())); ]9 ~% U3 I* N
{
! r+ a5 `4 R4 W3 \ d# [( Iexit(0); r- j" x7 s4 M- f
}$ |3 O5 M' `$ i0 ~, [
while(cmd!=7)
, t8 u+ O: m7 j9 z2 U% Z! K{' S' L: w9 o$ j% [7 G+ j5 R5 d
switch(cmd)! t M5 `# p- }( W! i) f4 O
{* {. w* b. J1 D
case 0: message(); break;: ?1 H( i' y! O
case 1: add(pworker); break;. p% O- g7 t2 N: b. j
case 2: show(pworker); break;
: j" n% O6 a8 h! W" Pcase 3: search(); break;
+ C/ ^' S; v& ]" Acase 4: printf("请输入要删除的职工号:");- m0 z W) Y/ t; O
scanf("%d",&id);
. d) h* R- R. B: |2 Odel(pworker,id);
: @( S" h9 H/ N5 N xbreak;- C6 }9 v, }- O, p" j
case 5: modify(pworker); break;
( _/ a0 w" ?- a5 zcase 6: message(); break;+ ?8 T8 k8 j* x5 j, E2 D) H
}0 g4 z, F8 G& t3 c- t
printf("请输入操作命令数字:\n");' P9 @. P7 V% r! U- l
scanf("%d",&cmd);
' f' P" ]" u9 g}
9 A2 |7 b6 |7 P9 w; z) U- _printf("谢谢使用!\n");2 G5 T, _ Q, l/ J4 \5 X
release(pworker);
; j$ b% {/ } [9 p! preturn 0;4 c# }& C$ u" f
}2 e5 h: F2 A" a* {% i+ X
* _: @7 u2 B) p3 m$ N+ D
]7 d7 | p1 y& G这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!
# \6 O d# r9 c C9 o1 L! Z$ c. ~+ f) w8 S
|
zan
|