- 在线时间
- 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>
3 N! `1 U% |) C! O! n R#include <stdio.h>
: E) o0 Y- ~) F1 S u2 V+ m#include <malloc.h>
6 S" s2 U G$ C3 V#include <string.h> + ^% Q" W6 }( `- v& T4 q% b- `* p/ q
typedef struct worker
* m( U/ O' c, W0 Z2 J& B{ o" i G( h( t6 \; ?
int id;
0 N3 r2 _1 \0 D! W2 L& kchar name[20];, @; @' I% e0 r/ e7 b% m% p
char sex[3];
6 d! [* k3 _4 s; h9 c$ ]int age;5 u4 G( Q6 b4 {# \
char edu[50];4 V, z* a+ [$ l1 k$ I$ i
int wages;' G. O( O2 q% C W
char adr[255];% b! {2 A& v. c) y- N4 y
char phone[13];
6 X& J2 n& V" f5 c}WORKER, *PWORKER;0 J7 O4 q* g$ S+ t: }8 l( M
//typedef struct WORKER *PWORKER;
/ B5 V: `' Z2 [6 ?! m- Etypedef struct link2 X7 Y+ A) H4 n. A
{
* B# y# R6 H2 V, ]: MWORKER w;
2 P. T& F& s9 Q; d+ @8 Mstruct link *next;
6 _ A% G+ |5 x w& o}LINK, *PLINK;
0 S+ P. q+ X$ ^: I- b' h//typedef struct LINK *PLINK; /*创建职工信息链表*/
2 G& S& z+ N$ HPLINK create(). T3 x; K3 T5 s6 A* ~ u/ ?
{9 T8 [1 C. p* L9 R! s
PLINK p=(PLINK)malloc(sizeof(LINK));, t! T+ o" W: [5 ]8 _
if(NULL!=p)7 P, ~% |) b- S" I
{
6 U# J8 V* z; W0 }p->next=NULL;0 T) S3 u6 f% b# ]
return p;
2 q) l, e9 a" g+ W: O! d' I. e% X* h}
9 {$ p* M% D; Z3 Z& k! lprintf("内存不足!\n");
) ~5 F! ?7 K( i9 ]% b$ hreturn NULL;4 S6 Q' F( P+ G5 i* m3 W
} /*显示程序界面文字*/$ ~4 N4 W, `% d; V
void message()
6 D `1 a3 k$ C6 D% Z' r{ system("color 0f");/*设置当前窗口的背景色和前景色*/8 a, [2 O" H( K3 x9 }0 t
/* 0 = 黑色 8 = 灰色5 E2 Y" {. N! t: @" Z9 b3 Z
1 = 蓝色 9 = 淡蓝色
" {9 o y+ _1 ]) \5 ]/ f2 = 绿色 A = 淡绿色
0 S1 R m3 F, U6 g3 = 浅绿色 B = 淡浅绿色
) h2 Z6 }$ n( O$ c& H, u; q4 = 红色 C = 淡红色
0 d1 c: e* {4 u$ {) `( k" x o& y5 = 紫色 D = 淡紫色4 D9 L4 q0 \6 h
6 = 黄色 E = 淡黄色
1 ]' i3 j8 o/ Y8 {, ]& l7 = 白色 F = 亮白色*/
1 l1 B1 u# L, z3 b2 Z2 z) |5 J9 Asystem("cls");
; }6 G6 S# ^! |& E v! b1 ^' @! Cprintf("\t\t************************************************\n\n");
( g6 ^/ c4 r/ |" U% N6 Xprintf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");
# B1 ~4 c& t, d( l4 F# Pprintf("\t\t************************************************\n\n");
' h2 y+ I2 C$ p7 V9 N* v. wprintf("\t\t ************** Choose Function *************\n\n");
3 H2 P/ u7 S) G6 E* Zprintf("\t\t ************ 帮助 请输入:0************\n\n");* L1 R: @9 t7 O g% B {& v# Y
printf("\t\t ************录入职工信息 请输入:1************\n\n");
& _- B' w+ y2 S9 \! r! zprintf("\t\t ************浏览职工信息 请输入:2************\n\n");. D) c0 E% Y& g
printf("\t\t ************查询职工信息 请输入:3************\n\n");
3 }" H M; f8 @2 ^printf("\t\t ************删除职工信息 请输入:4************\n\n");1 c( h, E N) w5 {, t
printf("\t\t ************修改职工信息 请输入:5************\n\n");. U% @7 v% `7 h) B
printf("\t\t ************ 清屏 请输入:6************\n\n");6 e3 R0 `6 I! d- Y
printf("\t\t ************ 退出 请输入:7************\n\n");, L2 G' _8 |: B3 t$ h) m
printf("\t\t************************************************\n\n");
& c& I" v* C' zprintf("\t\t************************************************\n\n");" I( _1 U0 o6 i# }$ d! H
} void find_sr(PLINK plink, char* str)
0 {4 {4 w2 W9 K2 p{* G w3 `* O# U3 d1 c! l
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)- T5 y6 T) n2 D) P
{
* M5 `& r8 q1 D- rif(strcmp(curr->w.edu, str) == 0)) z( o* ]2 H+ u& P: y" @( a$ _8 |3 ]& P
{
) S% k E e4 L2 f4 @+ oprintf("职工工号:%d\n",curr->w.id);
. \3 |1 ~0 Z8 Dprintf("职工姓名:%s\n",curr->w.name);
& E/ v7 @5 W: l* x pprintf("职工性别:%s\n",curr->w.sex);, n0 i$ I, U/ I% Q
printf("职工年龄:%d\n",curr->w.age);
5 m& J4 E7 K3 k% M% nprintf("职工学历:%s\n",curr->w.edu);
* X6 [/ Y* Z0 z) W" E8 ~printf("职工工资:%d\n",curr->w.wages);3 E/ m% Q- x( E7 T( c* M. B
printf("职工住址:%s\n",curr->w.adr);
/ t: |. Z7 d& `printf("职工电话:%s\n",curr->w.phone); }) @. v9 E2 R( K( V+ c8 ]1 m, l
}
/ z% N% l! w, `; J$ J" o} void findid(PLINK plink, int id)4 z; I: o0 b. s" J1 O: Y- p
{! m0 N/ A- S; u$ u: L, A# i5 @
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
, J# _3 S+ U" J4 S! e3 j2 W& S{- ^7 d& O% |; g, r. _) x, O
if(curr->w.id == id)* E4 \+ I A) E9 L8 h
{
: w% C) k. \! ~* h, K, bprintf("职工工号:%d\n",curr->w.id);: N6 |6 U7 F6 b2 w, m
printf("职工姓名:%s\n",curr->w.name);% a8 Q' r1 _9 |3 _& ?
printf("职工性别:%s\n",curr->w.sex);9 X. D( u7 ^0 b0 f
printf("职工年龄:%d\n",curr->w.age);
' U' m, W" G6 t3 T' V5 xprintf("职工学历:%s\n",curr->w.edu);' X: d( r3 h4 H, l; h
printf("职工工资:%d\n",curr->w.wages);
, h* t5 _5 y. C" Oprintf("职工住址:%s\n",curr->w.adr);
8 W- U* f( z5 T% Dprintf("职工电话:%s\n",curr->w.phone); }- T. {4 ?6 \; e: O" w
}
% G6 S' ?, A0 S) H( w} void show(PLINK plink)( K# w4 ?( p- U: j- _
{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
. Z" V7 V/ T! ^* d# v4 I+ a8 J{7 J$ Z% P: A, @& c
printf("职工工号:%d\n",curr->w.id);
( L, h9 b4 g7 k( t. y9 \% k' k8 tprintf("职工姓名:%s\n",curr->w.name);
+ s) h+ X# j# k q- Xprintf("职工性别:%s\n",curr->w.sex);
) q9 [8 v. ] W* ?printf("职工年龄:%d\n",curr->w.age);
: _( A* I% _! f6 dprintf("职工学历:%s\n",curr->w.edu);" \( K- d- P5 M( @* i
printf("职工工资:%d\n",curr->w.wages);
5 j$ G: Z$ b; Eprintf("职工住址:%s\n",curr->w.adr);8 d f0 F! h% A9 N
printf("职工电话:%s\n",curr->w.phone);- ^) f7 d! Q3 r2 ?6 j. v! l0 ^4 j
}3 T. ~) I& Q, w' m
} /*录入职工信息*/
$ s% W3 T( n2 {8 ~int add(PLINK p)
. K! w) b2 b+ S, R" l* Z{' L, @6 E- l7 O; g) {- A- |' H
PLINK h = NULL;
0 @' x8 h$ U7 b4 w. Z- a p9 Z0 bPLINK q=(PLINK)malloc(sizeof(LINK));
1 }* I3 l$ n+ Y1 xif(NULL==q)( t& k" X& D$ m
{7 X+ q# g5 T* K
printf("录入失败提示:内存不足!\n");
% h8 M) f& T/ H- U% Zreturn 7;
6 A) j1 D' Z; I. h}
3 y+ o5 A. L( g8 wprintf("请输入职工号(数字):");
! N4 s! }' e' m1 xscanf("%d",&q->w.id);! D; k3 Y& |3 u2 b
h=p->next;# Q& ^1 a& E; k; L0 ?5 V9 X
while(h); e8 z, I9 P" T8 m; k4 X
{) `% L) H* e% T5 A6 k* J: I
if(h->w.id==q->w.id)
5 U* Q8 S; h4 C& m( d5 v$ A+ \) F{2 G- s# ~$ @/ U5 N/ R2 b0 ~; \' V
free(q);
0 x) p1 k" ^; [& C+ S! sprintf("录入失败提示:此职工号已经存在!\n");. }! [! S5 ` ^8 z' b0 o. Y8 l
return 7;0 [ Z) R( X5 o7 ^! E c9 n
}4 k6 K& s, ^" C# e# z
h=h->next;5 [4 ^8 @. Q) B: \, e* b
}
# m) W x/ x2 T5 M; t5 |( b6 q$ ?printf("请输入职工姓名(文字):");
3 ?1 ]% s/ l3 b i# ascanf("%s",&q->w.name);
# W' A! u! K! f, n0 n3 u* Lprintf("请输入职工性别(文字):");* v! E; F. N$ J
scanf("%s",&q->w.sex);
% i* p7 U3 ]$ [6 fprintf("请输入职工年龄(数字):");
3 |9 e% L+ p1 ]* k7 [8 Fscanf("%d",&q->w.age);" ?: X' j% O, Q$ `& @1 f/ `: H
printf("请输入职工学历(文字):");/ M$ t9 l( G2 i' V* k
scanf("%s",&q->w.edu);8 Z$ }% c, F% n5 A/ G
printf("请输入职工工资(数字):");1 l; m$ A9 T* t
scanf("%d",&q->w.wages);
+ o# }4 b, u- {' b* vprintf("请输入职工住址(文字):");
3 L2 X# j# J9 L' o _6 Vscanf("%s",&q->w.adr);* I3 x% A' h9 o* z6 Y( V U3 B
printf("请输入职工电话(文字):");
9 p4 g9 d) R- Ascanf("%s",&q->w.phone);
# P# a$ Y: z; R- V4 C) eq->next=p->next;. q( h. N+ E" w- p5 ]
p->next=q;/ f y' O9 A. p4 f. O
printf(".^_^.录入成功!.^_^.\n");5 X2 s0 y, G0 @0 d; G c0 z
return 7;
' c& J5 F0 R/ I0 O+ {} /*按姓名查询*/
{: P6 P* ]( F! {& Y+ U7 zPLINK findname(PLINK p,char *name)* h& z6 ~* p* C# G
{
6 m' R$ X# T- r% h( @message();/ a0 K+ a& ]% Q% m2 V& w
printf("按姓名 查询\n");
- V$ ^. @' U" e( A2 Qprintf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");) e- @2 k8 |6 ` O1 H- z. _
while(NULL!=p->next) {- B- ~+ b: B! y7 l( |5 O
{6 l3 I) `% u* N$ T0 l! c
if(0==strcmp(p->next->w.name,name))
; C# g; j/ y. @* q- {7 X5 q; d9 R{
0 F3 U' p9 Q0 Mprintf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",7 i5 @- R+ i ]8 Q9 S3 c$ A0 I
p->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,
' L, n8 B. U% D9 w6 v+ ~" ap->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);( y' S1 Z2 X! s" b* O) u. s0 P
return p;
. I) p3 T0 A- N0 p; {2 I} Y9 k- T4 v* b5 q( M+ f0 i
p=p->next;4 G$ Y. i3 O W
}, a X, H! K& x7 A; ]/ p
printf(".^_^.查询结束!.^_^.\n");7 u. U. m. J% i$ P
return NULL;
( j" K: Q6 S4 M} /*按职工号删除职工信息*/$ t4 T& P* o; |
int del(PLINK p,int id)/ V8 k) d* L1 X: c9 D
{8 ^* E' @9 ~/ x& \0 o4 \0 i
message();8 h" I- ^% p5 j2 O& v' c& R" q/ P
printf("按职工号删除职工信息\n");
5 q: u8 p9 u# @* z$ Gwhile(NULL!=p->next)% t4 a4 t5 l$ C, ?' C6 Q) J
{# h# y9 J& H( t, d# i5 I s1 Y: K
if(p->next->w.id==id)
" l9 ?$ B. o) f/ A0 X* m1 p{
; _" Z& t9 Y4 @# c! _$ P+ CPLINK q=p->next;
" H% Q5 M2 ~# j) [* z) F9 q+ `p->next=p->next->next;8 a% n& x2 t8 ?- i; v: S. U n9 e
free(q);0 ~& c; Y0 v) T* F8 G# x& `% D
printf(".^_^.删除成功!.^_^.\n");
2 U3 d( [+ W; `return 1;
1 V: \ Y7 Z8 o) v2 S: e; a}
) R! F( c8 ^' S8 Hp=p->next;; U: ?, k X/ Z) _: d- X
}
) v4 d5 |8 j x; P2 fprintf("没有你输入的职工号!\n");
6 Y( |- ]; o! }7 ureturn 7;
0 M$ S$ V. w1 B} /*程序结束释放内存*/
. F! o& _" [3 i2 X6 zvoid release(PLINK p)
7 C0 D. `% M% m# E+ v$ { Z. C{
/ k; ]0 t6 w) q# \1 B6 f4 APLINK q;/ L! D4 b- d6 N) a! S$ S7 J
while(NULL!=p->next)
7 D/ l! K, h0 _" [{
' s0 Y9 S( L2 k: h2 `q=p;
! s: H1 J1 N1 y8 K$ F' s5 Kp=p->next;) V s: k! c6 @
free(q);
5 [- t* t# R" e9 _# i7 u}0 R5 d/ |: T" f6 s9 T( P5 w
free(p);
) q' S3 a4 X4 {} /*查询调用*/& a, Q& E1 G4 C) h4 `- L
void search(), L* m5 n3 G! Y
{5 l9 h9 C# X: A2 R3 f6 T7 ?
int id;
$ ^0 v7 w; n n) O! I0 lchar name[20];
7 J. W# k/ N; z" s- D( Achar str[20];
, V5 I+ v X1 w4 ?* _, S) j" _PLINK pworker;
* ~& j. h l' Y. K0 i0 N* E4 r" Rint l;
/ e/ O* q3 S2 sprintf("\t\t\t\t*姓名查找按:1*\n");
, g% _7 M+ U1 ~7 S2 `' B1 aprintf("\t\t\t\t*学历查找按:2*\n");
: N; y/ J) V. P$ Z E8 Iprintf("\t\t\t\t*职工号查按:3*\n");
7 K, C" a% ]0 r& qscanf("%d",&l);8 A5 h8 b$ E6 w
if(l>0&&l<4)
9 p+ W7 Y% X5 C, ^2 R+ E{switch(l)
& i7 Q1 D' i! y; V; @, {% _4 g{
+ t& d9 z2 e3 Z7 T* k: U. Ncase 1:printf("请输入要查询的职工姓名:");. D/ W% |0 u9 B1 x& ^
scanf("%s",name);/ x4 d g" L" k- O8 l5 z/ h8 n
findname(pworker,name);
& m' ^8 L" e& L& x3 J5 J: Jbreak;6 O& r, l0 Q0 X9 Q0 k. I2 u
case 2:printf("请输入要查询的职工学历: ");" g" w- J2 g7 O
scanf("%s", str);
# y$ m1 @% R# r9 ^1 z0 `% cfind_sr(pworker, str);
' u- i4 X q0 u; C3 j1 \3 P [break;9 E2 l" \/ R% B9 q
case 3:printf("请输入要查询的职工号:");" l; V4 a) e* i2 h
scanf("%d",&id);: r, w# D$ \( P7 _! h; C- X
findid(pworker,id);7 O- b! r/ M; r
break;8 ] B% ~5 n8 E( u8 R% M* |
}+ l2 s2 o. @0 _# C: K
printf("\n\n选择完毕!!!");
' q, C* n$ g( O! c% R" _}+ Y% z/ o3 Y( K" B1 l0 r1 F
else printf("\t\t\t\t输入有误!!!"); r: \; j+ z# Z: Z4 m1 x* S1 K
} /*修改职工信息*/
2 V+ `: E8 P9 S* j5 p8 {int modify(PLINK p)
; K% T3 p' I4 W) _/ x0 ^* w+ C5 N. ^+ ~; k{ int id;2 P0 o- V! Y5 I# Z1 i( h9 ]( k8 _
PLINK q;9 y8 C1 i! ]" c
PLINK h = NULL;) U- f+ v' n0 f. {, n# M
printf("请输入职工号(数字):");6 A! i, l9 E1 R4 e, p) h$ r
scanf("%d",&id);4 X0 u( `5 H2 F
h=p->next;
, ~( P. K8 [8 b1 N1 l* lwhile(h)
! Q/ `6 ~/ O; ]2 w) }( L{
0 S# R1 S) B+ g: pif(h->w.id==id): r# i" C% |7 l# j
{
9 n {- O4 [6 E% g* \break;
, ]; m( C. X" `* W}
1 J: v* H( j& H, Y J' vh=h->next;
( g: ^5 K% l2 m/ i% O( z+ o% |}* O8 `6 D+ a: U, _5 z
if (h == NULL)
* l: _, g' x/ g0 C{: U% |4 R0 y! z2 ]; E! e* G
printf("找不到此职工,请重试\n");
. t: F. [, E$ t3 q1 [) f* ureturn 7;
' L7 s& L8 ~2 x' S} D# U l. r3 z
printf("请输入职工姓名(文字):");
2 ?! s2 \# k' b: G+ rscanf("%s",&h->w.name);
0 h& S8 i1 k. o% ^7 Y+ l. yprintf("请输入职工性别(文字):");: T, T3 d5 r! c! ^' A) ]' O( ]
scanf("%s",&h->w.sex);; t* l$ o2 q2 \% H! i7 [- J1 @9 m8 k
printf("请输入职工年龄(数字):");3 v, E) r& I4 Y
scanf("%d",&h->w.age);3 _ {* ?+ ~) y7 w! G! `) e
printf("请输入职工学历(文字):");/ F" k7 I! R O6 \: \
scanf("%s",&h->w.edu);
. E. Q3 u$ v2 Yprintf("请输入职工工资(数字):");
2 U' n( X; |6 q& Lscanf("%d",&h->w.wages);
, n# e+ q& y5 ^7 }printf("请输入职工住址(文字):");
; h d- j8 }7 ` V) r+ Xscanf("%s",&h->w.adr);
- ]3 N% K ]8 M8 r) tprintf("请输入职工电话(文字):");3 N( l) J2 X. H/ M* R, E- R* ~
scanf("%s",&h->w.phone);# k& O- t4 _( i8 Q
q->next=p->next;
; U* R) _( u* {0 qp->next=q;
9 L( o2 h' G; g0 r1 i9 ]printf(".^_^.修改成功!.^_^.\n");
1 y; j) M3 o; {1 kreturn 7;
* ~2 T$ b& ?+ j6 v6 I0 @} int main()& V/ E1 l4 I2 F8 P. R: D
{( j/ g3 S& p/ _
; J7 P. _9 x0 O3 j. J1 Z F& {int cmd=0;; h- g7 m" E+ n
int id;
2 P# C# U6 C Zchar name[20];
" x/ t9 B/ {& }4 Y: o( \. F. Q- achar str[20];
' w! G5 G. C7 g- d! e% o% }PLINK pworker;
4 A2 h7 _# @3 k2 ]. w( X- [1 v( ~4 P" Bif(!(pworker=create())) r3 B& Y9 Z) Q( e; w
{
- H( h3 G4 _+ X v9 jexit(0);9 v# W1 k5 b5 C/ m; P+ S7 u6 w
}9 M/ k6 P6 A6 K9 j, B0 ~
while(cmd!=7): ~# M. ^9 Y3 K" D7 [
{
+ t" ]5 K8 R9 Pswitch(cmd)+ j1 S# z/ ]& j# C8 n
{
5 g5 z9 ^7 p* R9 B1 x+ Ncase 0: message(); break;# @) O1 B( r% o( I
case 1: add(pworker); break;; @, l0 ~9 y9 x& z1 q: E
case 2: show(pworker); break;
: K4 f3 v {1 C: o' \case 3: search(); break; q0 v' c- ]* @; Z# y2 ?, }, F
case 4: printf("请输入要删除的职工号:");6 E2 d; T2 _1 a d
scanf("%d",&id);
2 u; y5 o& _, |4 C3 a1 ?del(pworker,id);% ?- q+ Q3 ^7 [/ Q( }. H# n3 p
break;
+ P3 j9 d& h4 G y/ kcase 5: modify(pworker); break;2 ^5 E; x& v9 V8 o0 V
case 6: message(); break;$ k6 d4 @% X9 \ W5 o. W' |' }, g0 r
}
S0 p$ ~" y7 X. vprintf("请输入操作命令数字:\n");- Q& F) }+ n# M% O
scanf("%d",&cmd);
2 K# [8 w a9 {2 l Q, K}9 D# c$ b+ \( U' f5 ?: ]" _# n! h! U
printf("谢谢使用!\n");, R! z; Z% E2 }# L' k
release(pworker);
6 F# \! V Z" p7 v3 ureturn 0;- p1 o1 y4 \- N2 Y- i9 r
}
" T6 @2 \$ `: ]: u( K
3 E0 K* p9 {0 x- Q: z
3 x3 s2 s& M5 f/ h这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!& [2 J) R8 H5 w9 i7 [+ L' u E
; |( U' q5 A/ C; l2 d; {2 G6 \ |
zan
|