- 在线时间
- 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>
% a. u9 n$ I, [#include <stdio.h>
: E8 e# A0 P% r- Y#include <malloc.h> ]5 x4 \1 n3 E+ u! ?9 P+ }
#include <string.h> ! U" N# D+ l- `: D# }/ ~
typedef struct worker3 V: n/ L! ?, D; ?) O \& I7 i
{! U5 a2 K; l. `, W8 `) _
int id;
4 P% i' A; w: U& [4 |char name[20];
" J- K( W( X! @/ p0 ichar sex[3];
, y) r. b& ~8 {1 f0 W1 }$ gint age;9 h: v, J6 Q$ V3 Y, K
char edu[50];
& O/ a5 {3 q. ~) `9 I: k, G0 }int wages;
* v9 }6 r# M' S/ Xchar adr[255];( ^! d) ]& s6 y1 o# R4 v) ^" @
char phone[13];
' {/ p7 E8 V# C}WORKER, *PWORKER;5 y" E K$ h, q0 _ u, G
//typedef struct WORKER *PWORKER;
6 S) D" j6 G7 M+ k7 Ttypedef struct link" Q% A* P" @" C$ \, `5 ?+ U
{
8 d) ?$ n# k$ W. `WORKER w;. X8 }; |! `! a- f; {3 K' E, j
struct link *next;
& W" C/ G6 h- x. H}LINK, *PLINK;
' b2 n: Y* d) m/ H8 h//typedef struct LINK *PLINK; /*创建职工信息链表*/
: \( k1 t7 B, \" KPLINK create()1 U' M& D. O$ ~0 b
{
/ g. d2 p& P+ L4 _& [3 Q# lPLINK p=(PLINK)malloc(sizeof(LINK));
, q9 i( i6 l7 E K/ b2 v2 Fif(NULL!=p)& q5 W# z5 X1 q; j
{
7 _" W! D2 @0 U# O: f! [p->next=NULL;7 q5 T2 r7 G3 w# k6 ?7 r0 X2 d1 N
return p;; R( ` P b5 B- Z
}
) F0 o( B! `2 ]; D+ }9 Cprintf("内存不足!\n");
2 |7 @+ _# [, C4 c/ ]return NULL;
) X5 q% K, S2 ~( ^6 t; \} /*显示程序界面文字*/
8 g, I8 Y4 |$ v2 \8 P' Xvoid message()2 K- s% h% i- R# |# \
{ system("color 0f");/*设置当前窗口的背景色和前景色*/
9 l% A& X+ d3 I' L: t! y/* 0 = 黑色 8 = 灰色" c9 `2 Q" T+ r2 x
1 = 蓝色 9 = 淡蓝色5 \, g" U- c5 z% R1 ^
2 = 绿色 A = 淡绿色
, W* K# }( s1 r2 _3 = 浅绿色 B = 淡浅绿色7 y) ^# A4 k7 |8 a, n1 K1 D- r; u
4 = 红色 C = 淡红色
% I2 i r" X S0 u: G8 T- k2 n/ J5 = 紫色 D = 淡紫色4 m' v7 A9 n0 O" G5 j9 ~7 Z, ^
6 = 黄色 E = 淡黄色
& I+ E+ V' l+ m- ^" e5 s0 g7 w% h0 P8 B7 = 白色 F = 亮白色*/
" ^4 b5 g* z, r( s/ y, u0 ssystem("cls");% @2 s, ~) w3 z2 u4 v# S
printf("\t\t************************************************\n\n");5 x' e$ H# i, x+ R& j
printf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");1 A [4 ?# b, c- g+ E) v2 C* h' S
printf("\t\t************************************************\n\n");# K$ T' r3 `& D% l3 B1 O
printf("\t\t ************** Choose Function *************\n\n");
C0 |* T3 ?' @! d' m% e4 [printf("\t\t ************ 帮助 请输入:0************\n\n");
. x, I% a1 V" g1 Iprintf("\t\t ************录入职工信息 请输入:1************\n\n");
: m6 ~( P1 R# x0 oprintf("\t\t ************浏览职工信息 请输入:2************\n\n");
N- s, M+ J/ I5 ^! m. P8 F6 l8 L; wprintf("\t\t ************查询职工信息 请输入:3************\n\n");
( g9 _! k" W, A( a) |8 L0 i& X/ Zprintf("\t\t ************删除职工信息 请输入:4************\n\n");
/ b5 c" y0 ?" _' Pprintf("\t\t ************修改职工信息 请输入:5************\n\n");; V1 c9 n5 p6 f% D. D* `- z* M* e
printf("\t\t ************ 清屏 请输入:6************\n\n");, L6 ]3 g9 Z) N4 G. e9 l& v4 n+ C
printf("\t\t ************ 退出 请输入:7************\n\n");3 q) Z/ t5 [$ a3 p
printf("\t\t************************************************\n\n");
6 L. \" w h' w9 G/ ]printf("\t\t************************************************\n\n");
" A1 f1 r7 M/ ^: I' V} void find_sr(PLINK plink, char* str)# z ?0 H, M' ?5 {9 B) @! r
{" p5 ` N) z* P; ?& l. a
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)* f9 k" U; V" E- e" B
{
5 _* p0 y3 u3 z. @if(strcmp(curr->w.edu, str) == 0); }" p" g3 E. t. }8 N+ d+ u
{8 Y: j. N" V" ]7 ?2 m9 p
printf("职工工号:%d\n",curr->w.id);
# P! z/ b$ H3 I" Hprintf("职工姓名:%s\n",curr->w.name);# J3 L; e$ A# r9 \! D% U4 Y* U: j( F
printf("职工性别:%s\n",curr->w.sex);
: D5 U0 F; T% aprintf("职工年龄:%d\n",curr->w.age);5 X; y) D5 `% P" T7 {6 K- O+ Y
printf("职工学历:%s\n",curr->w.edu);2 @% l! S4 N9 D$ w' H+ i
printf("职工工资:%d\n",curr->w.wages);
z0 f# W0 L! k/ i0 yprintf("职工住址:%s\n",curr->w.adr);
$ i) F: C( _/ z. ^printf("职工电话:%s\n",curr->w.phone); }
$ O- u$ W& {, {% P: @}8 C2 V! Y3 R2 p! v) Q
} void findid(PLINK plink, int id)
7 J) }9 f8 e1 e' m{
) m7 N2 t3 w% ^4 {2 t" bfor(PLINK curr = plink->next; curr != NULL; curr = curr->next)
4 L. E7 I( \ }1 L* G{
0 r( s. {" a) e( K/ eif(curr->w.id == id)
1 W/ `! r3 f- z6 p7 `+ h{
" ]: O2 |5 k) z& W6 v7 Jprintf("职工工号:%d\n",curr->w.id);
. M B" j2 c. y( J2 J% |printf("职工姓名:%s\n",curr->w.name);
& u; Q# x# j" G. U$ b* C2 [# pprintf("职工性别:%s\n",curr->w.sex);
7 t6 e4 \5 C$ V% x5 L) ^printf("职工年龄:%d\n",curr->w.age);
8 l; j5 D/ `1 Aprintf("职工学历:%s\n",curr->w.edu);3 @) y$ E# N- ?4 U" k4 X/ d
printf("职工工资:%d\n",curr->w.wages);; O I% O }7 P; @. N7 g) P
printf("职工住址:%s\n",curr->w.adr);
+ I' U! O$ C" H5 Mprintf("职工电话:%s\n",curr->w.phone); }
9 a1 e9 K8 ^7 R}. {. @7 V+ g) W: Y
} void show(PLINK plink)! o% s" z: W+ v) j
{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
0 i& v1 d# [$ f2 l x" v' g{
1 g% `2 m ` N" f- @printf("职工工号:%d\n",curr->w.id);3 E8 L: g8 h5 C a' x$ b5 U
printf("职工姓名:%s\n",curr->w.name);3 e5 b; p/ n9 |
printf("职工性别:%s\n",curr->w.sex);4 p& |( c( r/ O# k, u* h- S
printf("职工年龄:%d\n",curr->w.age);
; A4 H! F+ |+ f- j1 n' Xprintf("职工学历:%s\n",curr->w.edu);
; g/ A7 S! y6 W$ ~3 p" i+ ?printf("职工工资:%d\n",curr->w.wages);7 X+ [# n- R1 U$ r! R
printf("职工住址:%s\n",curr->w.adr);
; d2 O4 |7 s2 b+ Eprintf("职工电话:%s\n",curr->w.phone);# n9 G- A; o' O- A {
}
+ C2 U0 R2 c+ Y( V} /*录入职工信息*/
8 j2 n2 i* C# p$ ]% W# w0 c4 [int add(PLINK p)
7 l* a- q# F! I$ `& X: v{
* c' @- f* {5 r6 }" N2 A) oPLINK h = NULL;& O: q9 u6 T; Z; Q! p
PLINK q=(PLINK)malloc(sizeof(LINK));+ s2 @" a7 S3 Y4 ?' n
if(NULL==q)& u; @/ E( f! i' t& w
{: Q+ z9 e$ P: G8 t* a$ ?/ t
printf("录入失败提示:内存不足!\n");$ S" p+ |! \3 b
return 7;
( W0 r9 m, s* l1 I: G} D0 W, O$ q9 L8 O
printf("请输入职工号(数字):");
! t. O! C7 Y# H) K/ d K; xscanf("%d",&q->w.id);9 e R! I+ s) ~4 R( t
h=p->next;+ d8 |3 q. Y0 u* P8 u/ y
while(h)
3 U/ G' H9 [+ J2 K/ ]{
6 u: }2 t* s0 A6 J. {( Mif(h->w.id==q->w.id)" a2 N _+ Z1 l# W, x
{
) ]$ @6 f2 E8 l- P: `: xfree(q);
6 c. o$ W% o0 T. P0 hprintf("录入失败提示:此职工号已经存在!\n");. G R* T7 p: ]2 D8 X4 W
return 7;' m4 [" f+ B% T( i
}% Q7 ?8 U0 L: L( s. e6 ~- K
h=h->next;
- J/ }" h4 L/ S) j}
& f' r, U) u9 `4 M4 kprintf("请输入职工姓名(文字):");
8 _' h0 `% D. x: U- S: E- z( a1 `1 sscanf("%s",&q->w.name);' ~9 H3 b" |9 Y& W/ L8 Z
printf("请输入职工性别(文字):");$ G) d3 V a# x* q8 h" h' S `2 ~
scanf("%s",&q->w.sex);% I3 }* e; R4 X3 l9 j4 \" y
printf("请输入职工年龄(数字):");' R& G2 L& z6 _( ^3 W$ K
scanf("%d",&q->w.age);3 b P1 C( D5 C* |! U; K1 f( J: W
printf("请输入职工学历(文字):");3 d9 p! H: K/ W6 |; M5 o
scanf("%s",&q->w.edu);& C& o3 E7 d2 G" u( f d
printf("请输入职工工资(数字):");( P: l! L& X6 T6 c' l
scanf("%d",&q->w.wages);
3 Q6 X" D& W5 F: `: O2 }printf("请输入职工住址(文字):");
: t2 i8 Q3 W$ v3 z0 S/ U' rscanf("%s",&q->w.adr);
! p- `# ]& b, R( P0 e2 Uprintf("请输入职工电话(文字):");4 M& H+ K" E9 r( H! N0 {* [( r. e
scanf("%s",&q->w.phone);
& n1 S5 Q/ F6 Yq->next=p->next;
2 w" x3 y& V/ N) s0 _4 vp->next=q;
M t& c/ T+ o5 {4 Y( Y$ j# R& Jprintf(".^_^.录入成功!.^_^.\n");
& M: x2 ~0 b3 Yreturn 7;$ ]6 Y3 O* u# U9 s9 i
} /*按姓名查询*/7 k/ r6 A0 b" u0 D' H- e# x
PLINK findname(PLINK p,char *name)
# A& E3 }9 o$ V{
6 Q9 Z$ E: Z7 q% F# Umessage();
' a5 h$ p& t( ~: s( @' Nprintf("按姓名 查询\n");
d( j3 [, h7 g2 F6 hprintf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");
4 C8 _1 X1 k1 W- V4 i! N1 _while(NULL!=p->next)
( l( U, b5 {! ^! f u9 c2 Y$ j{: z r8 F' M( O+ p* |* |% ~
if(0==strcmp(p->next->w.name,name))0 l4 z0 H. \+ v; m" J1 O
{- N: G4 U! N& u, ~( d1 c$ c
printf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n"," t( s4 T5 h' `# B% K2 B9 `
p->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,' T% ]8 M0 _) S1 ~1 F: r" C5 D
p->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);
- B! k/ V" u9 a% M3 Ereturn p;
7 K' _8 G4 H! G: u e" d2 Z8 u n8 s}9 b( ^. \8 J X0 D
p=p->next;
+ c' p) Q. ] Z A5 j}
/ I% ]& h2 U. B% b3 L+ ?0 B' e9 _printf(".^_^.查询结束!.^_^.\n");9 p" `( n: g. J' w9 l" ~ O
return NULL;
7 ~, S' p2 }. D} /*按职工号删除职工信息*/ J$ t2 [: Z" e* m0 G
int del(PLINK p,int id)! C! h8 _& R h& S3 ?6 J, F+ z
{
/ e" N0 Z/ ?3 d9 \, E$ @* S/ imessage();
& n5 e& X. [6 Uprintf("按职工号删除职工信息\n");! N9 K! A6 o/ }* B; N0 D: ?
while(NULL!=p->next)
, m7 p! y! q$ V) O- H' @$ r{
. d! y2 E* G0 y, {9 D1 h- iif(p->next->w.id==id)
) A1 ~4 O/ _* v0 h7 |{2 j3 l; J& d$ _9 g4 h0 l
PLINK q=p->next;. \2 f5 G+ n5 @% q, R( m% w
p->next=p->next->next;# o- J, f# V0 w8 S1 N
free(q);
: w1 g3 {: z$ F) M. P0 bprintf(".^_^.删除成功!.^_^.\n");
+ t1 p( I( x' v+ [4 lreturn 1;
, j s9 @" O3 A& I9 d7 R}0 p% L$ y! F% P( b9 U' [; r. n2 ?
p=p->next;# G/ p7 P3 d( {( z8 S- h
}$ k1 q) F: d. G; G
printf("没有你输入的职工号!\n");
+ |7 T$ F8 g |' |5 t& `; Treturn 7;. w7 h( _, r3 f
} /*程序结束释放内存*/0 o- y/ {* U1 c6 b; j0 W- v
void release(PLINK p)1 ^4 q' L/ y) x* Q# k# Y4 l
{6 c# W6 z4 m `( F
PLINK q;
& L: v, y. O* s7 J4 O- Hwhile(NULL!=p->next)
/ S9 |0 X4 ]) K6 b( O{) k0 D' S% o, L9 ^. `$ d( C
q=p;( J% H; b) |7 L) z4 d, W
p=p->next;
" W1 @3 R/ D1 Q9 E, Ifree(q);, S6 M C2 h: x* q ~; ?
}
0 x( U1 y: K( W/ w6 |6 o5 ]) I9 Afree(p);/ n& X$ T; D% [, _2 G2 u; F9 l5 J
} /*查询调用*/1 D6 H" G7 b0 d
void search()
! q5 G( G- `( H8 Z8 i- D{, u+ ?5 s/ h3 Y" z, ~
int id;
1 l2 @3 b1 j. q' m, Rchar name[20];/ s% Y; H+ p- }# C
char str[20];
" W' Z0 f2 R+ h9 ^+ SPLINK pworker;
3 ?; L) ?2 y( c0 d2 J! ~int l;: a/ M: s# h$ P. d, \
printf("\t\t\t\t*姓名查找按:1*\n");" x5 q, e* t2 `& y
printf("\t\t\t\t*学历查找按:2*\n");
# o7 G! _& v7 G: R% T- @printf("\t\t\t\t*职工号查按:3*\n");2 _. G2 L U! j3 k6 {: V3 a$ U1 S+ r
scanf("%d",&l);: h) o" _' i# z) ]4 e$ x: D
if(l>0&&l<4)
1 P$ f, X3 E6 D{switch(l)4 s0 {" ?# J# t; E4 j( r& g! X
{
7 B1 j- W8 E. q# n, n5 Ycase 1:printf("请输入要查询的职工姓名:");
; @4 @2 j8 ^2 W: ~4 {1 K6 lscanf("%s",name);
" j p1 d3 p& N# x5 Mfindname(pworker,name);! G: E8 @' K( U% O& P5 C
break;
7 E! ]8 P* M" f2 g+ c2 k: Acase 2:printf("请输入要查询的职工学历: ");
7 I) ?7 O/ W: E% Zscanf("%s", str);
0 V. X. U3 O s f& R' l& `find_sr(pworker, str);* K, }2 U% S, R! |8 J( A$ G
break;8 v( x9 W! {" j$ Y K
case 3:printf("请输入要查询的职工号:");
: k% u8 g) V/ S; I2 H4 r9 r2 _# Pscanf("%d",&id);
4 |0 c% w, B+ Ufindid(pworker,id);/ E2 \$ x! j0 k
break;
$ C" i) [& e. ~& S# B$ ]! J5 c: p j}
$ Q7 `4 u# J9 m9 F& L! zprintf("\n\n选择完毕!!!");
2 J; k' w# V. ?3 e}4 p# A5 R0 a" b2 z8 i8 s9 N2 H
else printf("\t\t\t\t输入有误!!!");
4 P; m }$ y$ |4 q5 L} /*修改职工信息*/
$ s. h- X2 X0 E2 H% S* Eint modify(PLINK p)
6 ]1 W8 p+ e6 I9 Y& B" a5 S) P) P{ int id;" C3 `7 X& d* s' |3 ?2 a% F Z, P
PLINK q;
9 k4 D& [4 H5 ~# k; ]. W" WPLINK h = NULL;2 x: G; L! b; O U' e' \8 l
printf("请输入职工号(数字):");
9 {3 x/ w w, y& c }scanf("%d",&id);: ^, D* S" M/ R. } a, r5 v
h=p->next;" ? l. ?: j& u- ^! i& _8 F/ g
while(h)
& R7 m3 y* B' u' G2 l! {" O{5 l, a& y8 D2 ]7 v0 v" j
if(h->w.id==id)& y: L- Z" R- B! q& k
{
z9 y0 r) C7 ?9 i1 tbreak;' u( V9 R2 D0 Y4 {, x: J
}! a* h0 P1 S5 ~5 P' ?, |. Z/ m
h=h->next;9 x! A2 O2 h% \% g: W9 ~
}
" l/ f& x# I. f# z; p# m/ G9 ]# Bif (h == NULL)& t: c+ O5 i& ?, g" [
{' @1 K1 t p+ U, \
printf("找不到此职工,请重试\n");
0 _4 f/ G+ Q" B1 preturn 7;. u) ?2 H# X4 x. c* y; A
}$ ?! b3 u2 r* r. l7 N F( r
printf("请输入职工姓名(文字):");
/ w7 Q6 l) r& u* Lscanf("%s",&h->w.name);
; f. Y, l( X( J( _) A$ B* ~printf("请输入职工性别(文字):");/ C, f( O [8 W' {
scanf("%s",&h->w.sex);
w1 F4 C1 Z; [; ~7 r7 y5 iprintf("请输入职工年龄(数字):");
- I/ _5 z. _! z5 X o* hscanf("%d",&h->w.age);
: L( V8 p( {. Wprintf("请输入职工学历(文字):");
, b4 W) Y: V% [) W5 Z8 X9 qscanf("%s",&h->w.edu);
1 q' l/ O1 A5 X& zprintf("请输入职工工资(数字):");
4 g7 d! Y2 g, u4 R, i( oscanf("%d",&h->w.wages);0 W- a) t" w$ K( e0 x
printf("请输入职工住址(文字):");
, g/ I1 @/ ^; V* w2 escanf("%s",&h->w.adr);
4 Q% @( A, t9 l: {) Uprintf("请输入职工电话(文字):");0 W0 e0 L0 Y9 w
scanf("%s",&h->w.phone);% {& e3 N% s) P# w) z
q->next=p->next;+ C% m- `* e* D! D
p->next=q;+ D0 M: e H4 r( @2 S! G
printf(".^_^.修改成功!.^_^.\n");
7 ]8 w S4 }0 v7 f: kreturn 7;$ m2 Z9 ]+ h8 c9 x( f
} int main()
2 i: h& ~. E' Y+ v$ f{
( k, {. ~( ?% [3 {# K
2 q: y1 {4 l$ d8 {+ w/ C! Tint cmd=0;3 t. W3 A8 c/ q2 I, W d4 H
int id;) F& a* k7 D; Q+ |) ~& X
char name[20];
9 o! U/ @$ S# c9 Hchar str[20];
. E& Y* H8 e/ CPLINK pworker;1 j3 M- g% g% O) N! [
if(!(pworker=create()))! |. h! X% h# j9 W9 X' [
{
+ F7 U D7 w3 P7 Q9 _; e% S$ N% i& G" Gexit(0);
( r, ?; L; j7 F- ~}6 A, i, D( L- T. @; J# v+ Y
while(cmd!=7)
; h e y, X" B; v5 B6 P+ d{
' F0 u H2 _/ U# s: m& x/ a6 G% \switch(cmd)4 p/ [: x4 I/ t6 ^& P {2 R
{
4 u! p. m5 }* C* U; B7 ucase 0: message(); break;0 P0 {" t" D! ?
case 1: add(pworker); break;# z2 b: a5 I1 E( `. I, f
case 2: show(pworker); break;, r2 ]/ s; n. E& L1 W" \
case 3: search(); break;
! H& ^" u4 i$ i: L% wcase 4: printf("请输入要删除的职工号:");
6 V% m- w8 Y2 I) g) x3 E' a5 m. bscanf("%d",&id);
u: D) h3 r& L, ~+ ]# q+ Idel(pworker,id);
. F% J' }9 w! C# ~" xbreak;& h6 d( j- t# F% l
case 5: modify(pworker); break;* I- v3 \. i; E& ^. ~
case 6: message(); break;. d9 u& m. z8 ?' _2 b, ^. e
}' A) q2 j% L, L u5 }* H. X
printf("请输入操作命令数字:\n");
) ~- x6 j/ w2 j7 I( h ?: l. vscanf("%d",&cmd);
6 r8 x: {8 U4 T, j5 D9 t9 J}; h1 b* m6 L n( v
printf("谢谢使用!\n");! G8 w+ Q8 o7 C J
release(pworker);
$ Z( T1 h# I! O. Q; V" ?7 p3 G" breturn 0;
/ ~# Q* B; b5 R2 A, G% v) P5 O1 z}
2 o' N0 Y# V, [, ~5 {0 h2 J2 p* S% [" ]
% X- L9 {8 O9 a, Y* `; ]- @; ]4 p2 l
这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!1 x$ ?3 P8 r+ ]8 k1 Y$ F! [
8 s. l% c1 ~; J0 p |
zan
|