- 在线时间
- 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>7 G, z9 x) |/ A8 L( G& T
#include <stdio.h>
$ O- `- F# |0 j' f* n8 L: u#include <malloc.h>" w- Y( p \4 S, m$ u4 g5 X
#include <string.h>
i( |8 h* R, d4 {! \8 r& Dtypedef struct worker
0 S- C! Y. f0 z* @, ~{, V) ^9 E. A+ @3 Y9 {: f8 E
int id;
. o+ u7 m4 v6 Ychar name[20];
. c2 I. v. _5 Z% X( ?& @$ J `char sex[3];
( Y( G9 V2 ?/ e }int age; b2 @& r |0 ] |$ O
char edu[50];
4 p6 i" J ~- y: hint wages;# \ A- {( g* E5 R# q% M
char adr[255];. g3 ?3 k; D7 P" L, D
char phone[13];3 I3 D q! h4 i# R5 \/ z; D* [
}WORKER, *PWORKER;
v3 @0 ~: c6 T2 p3 ~//typedef struct WORKER *PWORKER;
N; t" N; C& P/ J/ P9 Ltypedef struct link1 Y6 a/ ^% p5 i' R6 P# e# }
{- H, o( u/ f" o# b* i0 M) C
WORKER w;4 ]" O$ u2 a9 [ O& m6 f
struct link *next;
4 o! P8 c$ Z5 P3 g" {* z}LINK, *PLINK;
" @6 i: ?* o# U! X$ z/ i1 @//typedef struct LINK *PLINK; /*创建职工信息链表*/
; z7 L* X7 h6 g* N& D4 _/ qPLINK create()
/ q& z" O" ^, n! ?; w{0 M' f( A7 G7 }( G
PLINK p=(PLINK)malloc(sizeof(LINK));
3 Q$ A! ?% q5 [) Vif(NULL!=p)' _0 {8 j- E: P' @# b+ O
{
. B5 d0 D3 o" ?) zp->next=NULL;1 w3 E1 a# j% [4 w. p6 o
return p;$ E8 ?4 N" x6 z" R% _
}! u$ \, P/ Y$ d& I% g4 T; b% U
printf("内存不足!\n");/ a% `4 j0 r( j5 n! |
return NULL;5 s( _3 \" s- n
} /*显示程序界面文字*/
: q$ T: z: Z+ kvoid message()9 u) H8 C6 U1 j
{ system("color 0f");/*设置当前窗口的背景色和前景色*/; u* z% {0 p7 b
/* 0 = 黑色 8 = 灰色
! o0 T/ _+ |6 k& s/ _* ]; m+ k1 = 蓝色 9 = 淡蓝色
0 {% j7 g$ T* o2 = 绿色 A = 淡绿色
( q( W. Z3 |. E" H0 q$ V# q3 = 浅绿色 B = 淡浅绿色
. S7 _( Q5 d- ?+ Q& `4 = 红色 C = 淡红色3 e- U& U- L" Q( `+ B" L/ }
5 = 紫色 D = 淡紫色- s' Z' o- C% v& [* n
6 = 黄色 E = 淡黄色
5 A1 q9 H5 W2 k" l; N7 = 白色 F = 亮白色*/
: ?! R. E+ j0 b! t5 I/ usystem("cls");/ A0 U4 Y# j3 t8 m H L
printf("\t\t************************************************\n\n");
5 N8 @! X/ ?$ ? d- j, Q' `printf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");
5 H" D: ?4 m1 v( R9 Tprintf("\t\t************************************************\n\n");
. a" E8 D0 _' j/ Zprintf("\t\t ************** Choose Function *************\n\n");. J$ [4 {7 c( E. Q) n1 T: c- R/ _
printf("\t\t ************ 帮助 请输入:0************\n\n");
$ u! R# u# g* A# e& c1 Eprintf("\t\t ************录入职工信息 请输入:1************\n\n");4 v& i \1 }& x9 B
printf("\t\t ************浏览职工信息 请输入:2************\n\n");; I0 v# ]" X# Y, e' }" J
printf("\t\t ************查询职工信息 请输入:3************\n\n");
- ]3 v7 O! @2 x! nprintf("\t\t ************删除职工信息 请输入:4************\n\n");
) J! D' u @" Q1 P+ Eprintf("\t\t ************修改职工信息 请输入:5************\n\n");: g q0 U2 g5 g6 p' t9 ~8 n7 [
printf("\t\t ************ 清屏 请输入:6************\n\n");
* C& n8 l6 d$ H9 a. Aprintf("\t\t ************ 退出 请输入:7************\n\n");- s! x- R% _. a2 `) O
printf("\t\t************************************************\n\n");
% O$ G8 n' J7 u) t) }0 aprintf("\t\t************************************************\n\n");
q$ ^( c0 L; n2 b} void find_sr(PLINK plink, char* str)
! e! e7 Y5 D( d. t{) r# u. @( E1 K7 r' p8 k$ V
for(PLINK curr = plink->next; curr != NULL; curr = curr->next); h$ m% l, Y$ ~
{
; ~2 ]. C! D0 h9 F j8 k- Jif(strcmp(curr->w.edu, str) == 0)
$ ?$ B% n- Y. v( D; h( q+ |/ `{
# z- }/ n% c( fprintf("职工工号:%d\n",curr->w.id);/ s% {' h7 F' h5 D2 t/ r
printf("职工姓名:%s\n",curr->w.name);
1 T& ?0 o9 U# f# _; e* Wprintf("职工性别:%s\n",curr->w.sex);
& `3 k% E% s& n5 Zprintf("职工年龄:%d\n",curr->w.age);
3 ^6 T( b! Q4 I: L/ f! {6 D# }printf("职工学历:%s\n",curr->w.edu);
4 A, x2 e( w$ @printf("职工工资:%d\n",curr->w.wages); u! N ~# Z) r% f" M4 a
printf("职工住址:%s\n",curr->w.adr);
f! N! h v1 U+ e1 ~3 K1 Iprintf("职工电话:%s\n",curr->w.phone); }
% m+ O7 a) k8 u! v/ V* B7 W! ~# w}" _. ?3 `, i/ D0 n+ _8 P+ k
} void findid(PLINK plink, int id)$ t: s5 B! q6 V: z) b( l! C
{" l7 O! R: j) p3 Q- q# L4 k+ D
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)+ i% x2 ~* w7 \9 I
{
/ k1 o- D; k3 [/ b6 bif(curr->w.id == id)
$ H p \, o3 w& B4 I{
( i; [. {9 b* c2 G3 cprintf("职工工号:%d\n",curr->w.id);3 f( [3 \/ |& |! C8 L3 e9 ^' H# ]
printf("职工姓名:%s\n",curr->w.name);4 s3 \/ k4 H1 u5 c: e' _
printf("职工性别:%s\n",curr->w.sex);
* p8 \, x( f; k0 f# cprintf("职工年龄:%d\n",curr->w.age);
, C4 f4 B9 t8 ~1 f" F5 y; Iprintf("职工学历:%s\n",curr->w.edu);0 s& L3 r4 x E8 E
printf("职工工资:%d\n",curr->w.wages);
( N! Q: V2 |/ Vprintf("职工住址:%s\n",curr->w.adr);5 H" ?1 O* ~5 K1 Y) y4 n5 C
printf("职工电话:%s\n",curr->w.phone); }) L/ i* H4 p5 q" N2 K' I6 E
}
; B0 f r0 i! }& D- J: e7 e6 g} void show(PLINK plink)
* J8 G: I. x5 O. c' |3 j4 b5 [ H{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
& z- | K' z1 [1 s{* G+ m3 [; J6 p& t; K) C3 E
printf("职工工号:%d\n",curr->w.id);
8 a: J% X! z2 N7 E; _printf("职工姓名:%s\n",curr->w.name);
, H+ ]# z, m) [* qprintf("职工性别:%s\n",curr->w.sex);
# y5 `4 q" m/ Lprintf("职工年龄:%d\n",curr->w.age);
0 q3 |! N! G- F+ Fprintf("职工学历:%s\n",curr->w.edu);
4 F3 z6 M7 j. G" l9 d/ `7 oprintf("职工工资:%d\n",curr->w.wages);' e2 X8 k) B) u* `: U- S/ \6 _% P
printf("职工住址:%s\n",curr->w.adr);
$ u, x/ T0 m# J. ]. k, [printf("职工电话:%s\n",curr->w.phone);
3 i- c1 C+ O& ]) E; R3 [}
+ h8 I. z8 R% A; ~" \1 V9 V} /*录入职工信息*/1 y0 |+ R: p- P- {( P: T
int add(PLINK p)' r" f% n3 X8 e7 t% N+ n
{
+ ^8 o Z% P$ LPLINK h = NULL;
0 ~% W+ ]5 x# R7 F- g* |6 EPLINK q=(PLINK)malloc(sizeof(LINK));
9 z2 w, E8 t0 n' ^( q& ?if(NULL==q), q q4 h3 w) {
{
. b; v7 @ G; m) E% Nprintf("录入失败提示:内存不足!\n");& {4 R2 q; U- ~) k0 @# R
return 7;' r# M7 d/ j# z: L9 _
}5 v7 k8 a5 G" X; V$ ^! G8 r: L
printf("请输入职工号(数字):");
0 i+ Z- N9 `) p* `) l5 [scanf("%d",&q->w.id);
0 T. D5 g' C3 P8 sh=p->next;
" m0 v" w" D9 U0 k% R! g/ j: Cwhile(h): Q4 ]& a3 [" i4 a0 c2 M
{8 t" T8 z4 g) ]. x
if(h->w.id==q->w.id)
5 E( @3 r, t+ f5 K1 s! z/ ^" a{
9 w" n7 C. w( `7 K% z& ifree(q);
, X8 ^, n" {+ C* h5 V% x' Lprintf("录入失败提示:此职工号已经存在!\n");
$ {/ d3 H6 n' y/ i0 greturn 7;
+ r* J1 k( T" X. d9 c: S}) C( y6 {& s, Y) }+ t/ A8 t
h=h->next;
7 z& i$ B. Q: c! x7 T1 |" s}8 l6 u; \* G8 g7 n3 S
printf("请输入职工姓名(文字):");8 c' `3 \$ ?& d0 w9 s% ?
scanf("%s",&q->w.name);
- U: V& l2 y' `; |& N7 kprintf("请输入职工性别(文字):");: r. s! W8 y! \ F G: x8 F2 a
scanf("%s",&q->w.sex);
' e" g' z7 w k1 d1 Qprintf("请输入职工年龄(数字):");+ o. S4 H/ t% u0 S
scanf("%d",&q->w.age);! R+ f. t1 R d0 D+ w0 ^
printf("请输入职工学历(文字):");
5 e8 |. g6 D$ ]scanf("%s",&q->w.edu);
8 x0 b; W' n- i2 ]printf("请输入职工工资(数字):");
4 Y' {% C& R8 D9 ~, k/ k& u/ @scanf("%d",&q->w.wages);
( Z$ K+ N4 ^% M5 L+ Iprintf("请输入职工住址(文字):");
2 R. {) q/ q+ p" L% C# k' xscanf("%s",&q->w.adr);
7 K6 Q! f* m9 N) ^$ d: W- ]printf("请输入职工电话(文字):");# x/ s2 C) X6 J; H; Z
scanf("%s",&q->w.phone);
2 k: E5 H/ }/ y s0 t9 |$ `3 Qq->next=p->next;
9 Y5 y+ E. v; m% }, np->next=q;4 M' | ^) n0 \" W/ q
printf(".^_^.录入成功!.^_^.\n");
2 Y- c- t0 O9 @) K; N" xreturn 7;; h9 L7 Z3 |! x8 H# N
} /*按姓名查询*/! e. a- I5 M& n/ s# q; L
PLINK findname(PLINK p,char *name)/ H- u) t- M: f9 u' W `" a$ h
{
4 a" t9 v" f$ i& i. V2 r, \message();: K) [7 @! f- f- s% P; y. R$ R
printf("按姓名 查询\n");. T" T, m- ]' k) u/ E ~
printf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");
* }. p! j0 R5 ewhile(NULL!=p->next)
# X2 B4 M; ?6 L" T0 S' Z{# i/ f I9 F d+ E: W$ ^+ i3 r3 q
if(0==strcmp(p->next->w.name,name))8 B" E8 @4 @; b; ?! N% t. p
{
( M2 Y. i0 u" J" l+ Xprintf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",
& M% b% d2 w8 d+ @6 F7 g1 W1 qp->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,
1 E" x a4 r- [! G' [p->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);; Z5 k5 T3 q2 ?+ L) ]
return p;
! Z7 A2 q7 K. U! d} [' i+ m9 V+ w q' Z
p=p->next;
9 U+ h. w9 D; t5 S}& |$ u, x; Z+ y' M* K" z! P8 M
printf(".^_^.查询结束!.^_^.\n");. ~2 v/ a; {4 P# ~- c# \7 ? j
return NULL;
7 B+ U" B( |# @. ], W+ w} /*按职工号删除职工信息*/6 K7 b" b! t5 r6 Z
int del(PLINK p,int id)
M2 X& x! x% s6 V$ q$ ]5 _{
s4 w# ~$ G0 Emessage();
2 {- e9 c' e/ C! Y- j4 [4 a" Wprintf("按职工号删除职工信息\n");
6 R- g, R* z3 S# x' N! \3 g0 L! e, Ewhile(NULL!=p->next); d0 C0 i# Q# j
{
; \, E, Q$ A' X! Q0 iif(p->next->w.id==id)
( W' s9 v; v- l- E{
9 ^9 b" W- D5 x/ [! PPLINK q=p->next;
R0 ^' s2 m" a* x: Y* v" v# up->next=p->next->next;
+ G% V) A, E) R+ `free(q);
: F1 R7 S, g c: d2 A+ W& @( y$ nprintf(".^_^.删除成功!.^_^.\n");
" Z. A6 O6 U5 S4 J1 O F7 Ereturn 1;
1 p& F8 ]& r1 j- @3 b; U5 N8 ] e}
0 T! q" i% I* e) o8 [$ F* W9 }p=p->next;
, r O8 [) U/ w0 g9 g}) N6 L% }1 B h: d
printf("没有你输入的职工号!\n");+ @; a. @4 X+ X( N% {
return 7;. i- s: G7 L2 f' O# F3 |7 c X. E, D
} /*程序结束释放内存*/; W7 e' M: ?% |: s" E5 H, L
void release(PLINK p)! T7 R/ f3 h V, ^
{7 ], f: ^7 g8 y3 n. r4 i. k
PLINK q;
S" v/ M9 ]* R0 D7 W `% rwhile(NULL!=p->next)
$ Z% z+ e8 G6 ?4 i: _{ F" l, {% {0 o
q=p;5 l8 P; h S! K5 m4 }# h1 c9 F; v* ^: B1 h
p=p->next;
7 v! k2 ?" I+ u5 Cfree(q);
0 e n9 f& M1 V" Q}
2 u$ y# q& o# A% d) ufree(p);: |2 X) x! @. ^' O" Y. u& U& t
} /*查询调用*/1 \" Z; A9 r- H1 [9 D- l
void search()8 n1 h+ f8 e' w. F
{: _8 @, b, D9 @/ L, p: i' b
int id;
' }5 |0 r$ g; t. A( B$ p9 T5 N! ~char name[20];
5 O: I) v9 s# j2 pchar str[20];
9 n# a; X6 v. K7 B" BPLINK pworker;
$ |* U/ u* a) sint l;
! j, r$ b# C, m( ]2 T$ [printf("\t\t\t\t*姓名查找按:1*\n");1 m2 @% W+ G: H7 Z6 _/ d6 [
printf("\t\t\t\t*学历查找按:2*\n");5 C) U- v. E* `3 g
printf("\t\t\t\t*职工号查按:3*\n");
3 ]4 B5 z( _7 h) `scanf("%d",&l);
% J: z0 S& r2 u; @4 i6 c0 x5 ]if(l>0&&l<4)& s0 u: j! P$ i* k3 ]/ I- m: ^! u
{switch(l)6 M* q# Y% R8 t; J4 _* [
{
/ `$ L% K7 e4 n H5 P1 \: icase 1:printf("请输入要查询的职工姓名:");
. R; y0 Q/ e) m/ i1 t# {9 pscanf("%s",name);
% E0 c, Y5 S6 v! T3 Q: X; A+ afindname(pworker,name);, D1 v) m' w* f" y3 E( n! k
break;
0 ^% Q- e& X6 F5 @5 G9 a8 hcase 2:printf("请输入要查询的职工学历: ");" @1 h8 o, @$ X' b+ X, Z% F
scanf("%s", str);
; @5 m5 P# O+ J# Dfind_sr(pworker, str);
: ]- Y) `2 O4 Y5 jbreak;2 ~1 F6 r! K% Q$ _4 e
case 3:printf("请输入要查询的职工号:");* ^/ o6 F/ w/ d9 I) F; F
scanf("%d",&id);
, V G$ {2 t" O! ?$ k. `findid(pworker,id);/ D! D. I c! M$ ~
break;
6 v( V( ]' m$ X}
, z( v7 G4 q+ C! Y A7 d G# Hprintf("\n\n选择完毕!!!");" {# R1 e: {5 g3 X# f" I
}
! L% c8 {8 |9 g0 Gelse printf("\t\t\t\t输入有误!!!");
5 S9 P8 V3 C% A) R: ?" J} /*修改职工信息*/5 s# ]) R) }- c, ]
int modify(PLINK p)7 e7 g* v& ]1 w9 K* G% b
{ int id;
9 r2 K1 ?: e0 wPLINK q;
, H- M) e( f/ u+ ZPLINK h = NULL;
& z$ k% p. z0 t m1 `printf("请输入职工号(数字):");9 J* {3 S: H; B' ?7 I# }% G
scanf("%d",&id);
3 e' R% f5 ]& }* |- lh=p->next;( Y: C' C+ h, `. N
while(h)& i* F3 i% y$ N; h% N
{6 u" `: \' k3 J* ^- {0 G/ U
if(h->w.id==id)
7 a5 l1 ~+ u! R$ m* {: F( D{
9 B3 @- E2 p8 V4 w" W+ Tbreak;9 P0 m. q! z/ G
}
0 V2 E O9 K' e! Oh=h->next;* I: ~. p: ~- B; i+ u0 l1 S
}
m* @ H% {% S( g: B: J! Xif (h == NULL)
) X& z7 `; m0 J+ C& L+ g{7 Q& F" T* n4 a* M+ |
printf("找不到此职工,请重试\n");5 \7 s. A* Z" V
return 7;$ ?" H X/ t* j# c& N7 t$ |
}. B* p: i: q/ i
printf("请输入职工姓名(文字):");
% ]* _ k: c$ K; gscanf("%s",&h->w.name);
3 P+ l$ I. U' Q0 @printf("请输入职工性别(文字):");
: v. ^0 Z4 D0 ]4 Y: l6 E( ]9 Hscanf("%s",&h->w.sex);+ t& b& V4 \% f; M3 W1 Z% D" R( X! U
printf("请输入职工年龄(数字):");
+ k2 z" E1 j1 H; R( f; zscanf("%d",&h->w.age);) z2 c3 Z# u \2 d+ x7 q
printf("请输入职工学历(文字):");
; j+ K B2 [% u1 i$ Escanf("%s",&h->w.edu);
3 x; H U1 o% @' b+ l/ V6 ~0 f) Rprintf("请输入职工工资(数字):");0 w1 M0 |; `6 z* k: V8 J! l3 T
scanf("%d",&h->w.wages);
1 U+ w: d% o$ G- o% f6 @3 K! cprintf("请输入职工住址(文字):");8 X. z; R9 \8 @% ], |9 O5 |9 l
scanf("%s",&h->w.adr);9 |- `1 y* B7 n* e! e# d
printf("请输入职工电话(文字):");1 [8 ?6 V+ ?! V4 H- i: S/ h7 g3 T$ M
scanf("%s",&h->w.phone);- R' w! `! f3 ^' S
q->next=p->next;0 i8 B& L. U( w) x( j; m
p->next=q;
. g3 P/ P1 s6 y eprintf(".^_^.修改成功!.^_^.\n");
7 n! n! [$ }: w' C! S5 Jreturn 7;
1 G9 o4 B* p/ I2 D& D4 q) N6 x} int main()( N& X& ?) c7 Q( q9 @) k
{
& y6 Q3 Q$ O( N' J, p! M' d [! i( H* ^& ?
int cmd=0;
" M$ ^ O- h K3 V9 \7 w8 a, Oint id;
5 v: ~6 l' J- @+ ichar name[20];$ E" C1 C% }0 W4 O6 Y& c! g
char str[20];
; w' j% R9 i J0 P* T aPLINK pworker;
/ l3 o" Z3 x- x6 a& o; Fif(!(pworker=create()))
) R3 R8 \4 @- B{
Q; R' C; \ R+ r- R% xexit(0);( U3 r: M7 ^9 N% v- p5 N# U: \4 y- ?
}2 G6 ^3 {8 p! e$ S! g( S
while(cmd!=7)
8 ^4 V% R1 O% g; k& e2 |* B8 f8 g9 p) p{
2 |. j* ~. `6 ]switch(cmd)
$ [0 b0 h& r% M r' d{+ w% w& y; ], @( M
case 0: message(); break;
9 m; Q* X& O% K( vcase 1: add(pworker); break;
% Z! m5 N( i5 \; jcase 2: show(pworker); break;6 z( F$ u2 h: k2 l w
case 3: search(); break;9 {- h1 C3 S/ q5 n
case 4: printf("请输入要删除的职工号:");2 M6 d; B0 I4 v' l/ X; R7 R8 b
scanf("%d",&id);& R4 w% D7 O* e9 Y5 E/ [
del(pworker,id);
) k$ q7 t9 ^5 c) C8 Ibreak;! l5 @: X* u0 }+ a. [
case 5: modify(pworker); break;
6 ^0 ^) v: n% Vcase 6: message(); break;( Z2 `3 o5 h8 X5 |9 V5 n; L
}/ e" X) b5 k H3 G x
printf("请输入操作命令数字:\n");8 V. T0 S- q5 C8 s" g5 y0 [, k5 ?" `
scanf("%d",&cmd); X! x" k' V! e$ u$ M' j3 E
}' W: z! s6 N1 U( H9 r
printf("谢谢使用!\n");
) C2 ]' V0 p% e2 k9 v& d4 Grelease(pworker);
# f7 e6 {5 o0 }# _5 u/ D; R4 w* x3 Jreturn 0;( W" G: Z" E$ K' e* ?
}+ B, R z/ J# o6 ]4 X( P' n
1 M4 U$ o" R6 l1 B
: p: v4 \% I* B/ i$ c& {. k这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!
" ~% J# a y0 P: f4 s4 y+ e8 O- {$ K/ ] Y- a8 z
|
zan
|