数学建模社区-数学中国
标题:
【转载】C++源代码--学生&教工管理系统 求大神帮忙改错~!
[打印本页]
作者:
wangzheng3056
时间:
2013-7-23 15:39
标题:
【转载】C++源代码--学生&教工管理系统 求大神帮忙改错~!
#include <stdlib.h>
9 W( e Q% y; P) P$ i9 n, z8 U
#include <stdio.h>
6 q( R* @" c* h* {3 l
#include <malloc.h>
0 I2 s6 u* T: E) d# I6 O
#include <string.h>
5 q! k. r3 l( { X1 s% p
typedef struct worker
4 e; {, {0 M; }' j
{
! P& \) J( C! B) S1 S( z: P6 ~9 i" n
int id;
- t' ~$ v4 l* @# j* `
char name[20];
/ h6 z' O) Q6 S* Y/ Z% @1 q) s
char sex[3];
7 i; q5 q. L2 Y4 m |1 |# ^3 @! p
int age;
; Q! l" t0 d4 y4 p. @4 }
char edu[50];
( X# G6 a/ K! W2 g Y
int wages;
0 N5 z& w& Z: w' }
char adr[255];
2 W7 d1 T; |5 _, z
char phone[13];
: [) K8 \1 @/ a# J/ [" P
}WORKER, *PWORKER;
/ p5 g' E' p( W" m0 [3 q0 s
//typedef struct WORKER *PWORKER;
9 b8 e" P/ w& m. N
typedef struct link
1 _9 L' E( t9 `- O0 i
{
2 x* T3 T. \9 e; k h' f
WORKER w;
4 e% m4 s/ T5 h$ R! @
struct link *next;
% O" I# H' s+ q; C, Q/ ]: t
}LINK, *PLINK;
9 i7 P" X6 W; F* a
//typedef struct LINK *PLINK; /*创建职工信息链表*/
3 t& q$ ]2 ~! O4 I( b
PLINK create()
3 B+ H+ D) k3 o- U* S
{
9 g( L- U( ?1 M0 H! I/ J
PLINK p=(PLINK)malloc(sizeof(LINK));
% i# h. _1 o- H2 V# d
if(NULL!=p)
) @& `8 z5 A5 s4 B
{
( Z2 I2 ?$ ~% W0 j7 e" z8 T
p->next=NULL;
- c- l6 o- J/ m d+ x( D
return p;
2 Z Z& ]' D4 i& C9 X5 `$ r
}
" }1 l! t) Z* q1 k' h* F
printf("内存不足!\n");
6 f7 @/ ~! [' C& b$ b( }: z E
return NULL;
" ]3 P0 c0 T* l- t" r$ J) ]- C
} /*显示程序界面文字*/
3 Y& T5 F' J1 ~
void message()
8 Z2 ]; b% W& c8 q6 s$ I
{ system("color 0f");/*设置当前窗口的背景色和前景色*/
9 N f0 u0 w: S/ @* }
/* 0 = 黑色 8 = 灰色
2 H9 C. F$ N: d! L" X1 C! w
1 = 蓝色 9 = 淡蓝色
5 u( _! [2 Y, `
2 = 绿色 A = 淡绿色
/ g* v5 t8 @- R( {
3 = 浅绿色 B = 淡浅绿色
6 z& M6 W) I" R# p: y2 {, |$ { V- K
4 = 红色 C = 淡红色
! }$ |# \2 i8 k5 r
5 = 紫色 D = 淡紫色
# V2 t3 `* V2 W, K l
6 = 黄色 E = 淡黄色
9 X7 A# y, ^+ c- }
7 = 白色 F = 亮白色*/
/ M6 v7 z4 \+ u5 R% c* r8 o
system("cls");
5 N0 ^; y( {4 B' L, `
printf("\t\t************************************************\n\n");
6 w9 z7 g! T! a6 x H
printf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");
7 x) V: h. m) q* _
printf("\t\t************************************************\n\n");
+ D7 N6 L% M1 \, {' M. K9 m
printf("\t\t ************** Choose Function *************\n\n");
Z+ A' q7 G3 E- y
printf("\t\t ************ 帮助 请输入:0************\n\n");
4 n! [) [& {1 v
printf("\t\t ************录入职工信息 请输入:1************\n\n");
: B/ \4 d$ _5 @) \+ P/ V
printf("\t\t ************浏览职工信息 请输入:2************\n\n");
3 h- X/ p, Y8 X( K% j
printf("\t\t ************查询职工信息 请输入:3************\n\n");
6 `4 J( W8 O# I, n7 @% x
printf("\t\t ************删除职工信息 请输入:4************\n\n");
* X" {1 w5 _2 s# j7 _! |
printf("\t\t ************修改职工信息 请输入:5************\n\n");
& U/ n1 ~9 L( f! x% k: w
printf("\t\t ************ 清屏 请输入:6************\n\n");
R, E' F7 x) S- k' m2 Z g
printf("\t\t ************ 退出 请输入:7************\n\n");
2 g; t; H3 _: d1 o9 v- _# R
printf("\t\t************************************************\n\n");
/ S+ V6 B4 o; E5 W8 T4 Y2 I9 W
printf("\t\t************************************************\n\n");
) J+ W) y) ]; M6 Q% ^ {/ }; \
} void find_sr(PLINK plink, char* str)
& w( Y+ n7 ~" b( P a7 q
{
0 _5 [) _" W% J+ ^9 Q
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
5 l' X3 V% y) @# u0 d! d3 b9 c
{
1 w0 Y% z! q7 a+ D
if(strcmp(curr->w.edu, str) == 0)
. d5 r; W2 s3 p% L( K% C
{
( o6 b1 B- M- p# z5 e- l3 y" |
printf("职工工号:%d\n",curr->w.id);
& P5 c) h; K: `( D( y' {2 y
printf("职工姓名:%s\n",curr->w.name);
& g# x6 z, ]! c( P
printf("职工性别:%s\n",curr->w.sex);
. }9 R! c* k3 }" P O( D V
printf("职工年龄:%d\n",curr->w.age);
/ [' ?# I3 Z4 W7 @
printf("职工学历:%s\n",curr->w.edu);
8 P+ _- R- n: k! n8 j: O
printf("职工工资:%d\n",curr->w.wages);
; [) Z4 h( X: p# ]: t. K4 a# a
printf("职工住址:%s\n",curr->w.adr);
% ]) U) W7 M2 J
printf("职工电话:%s\n",curr->w.phone); }
* m' ~* x9 S' d# k# q
}
& i4 |$ y- D5 ]0 y
} void findid(PLINK plink, int id)
4 |/ I7 v" A, [ }0 K% {/ D. d
{
# L0 n( V9 Q3 U- L1 [
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
& S8 i( O w- ^8 D! S, I/ i* A
{
: s/ d% _1 F* u* N5 R, E& D
if(curr->w.id == id)
) o) P1 Q- g2 R+ l8 F' O
{
8 j U6 U4 e M; O* P
printf("职工工号:%d\n",curr->w.id);
1 Z. S( k, g X! z4 y' M3 w7 n2 K
printf("职工姓名:%s\n",curr->w.name);
+ y3 _( @+ Z1 V6 e
printf("职工性别:%s\n",curr->w.sex);
4 h+ C5 F @2 v$ S* h
printf("职工年龄:%d\n",curr->w.age);
% H+ c2 P D2 B N9 Z1 P
printf("职工学历:%s\n",curr->w.edu);
" h% j, C0 l* s
printf("职工工资:%d\n",curr->w.wages);
0 [. ?( K$ G5 f8 h& A
printf("职工住址:%s\n",curr->w.adr);
7 Z5 U$ m: O: i* Q. n
printf("职工电话:%s\n",curr->w.phone); }
3 g, [9 w, ]% ^ R9 m% V5 }5 H6 \
}
) `, d, f0 s) d! ~- {: `4 z
} void show(PLINK plink)
]/ }* M# d' m! i+ K) r2 }( N
{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
0 L/ p$ V: B2 `
{
+ ^3 O7 M! K2 y6 Y0 v
printf("职工工号:%d\n",curr->w.id);
9 i+ T, d7 \) h
printf("职工姓名:%s\n",curr->w.name);
: O3 x6 h; m3 ]
printf("职工性别:%s\n",curr->w.sex);
8 r. l% ~8 U, ]" n3 [# p. W3 q
printf("职工年龄:%d\n",curr->w.age);
+ s4 B% I8 y9 [+ G. S8 b9 N. O6 Y1 w9 L
printf("职工学历:%s\n",curr->w.edu);
1 j }) b' J2 y c7 ^
printf("职工工资:%d\n",curr->w.wages);
3 b& A& p3 _" _- }( Q# g
printf("职工住址:%s\n",curr->w.adr);
/ @: b, {) g1 v. V/ X' e
printf("职工电话:%s\n",curr->w.phone);
* f% v/ N/ e) n: P2 e6 d( c$ s9 F
}
! l- i4 X" C3 Z% A5 C A
} /*录入职工信息*/
) m3 S; X- o+ g" x+ H% G' M4 l
int add(PLINK p)
2 L# r3 J7 t N) U8 q* b% {" b
{
. c. k; _" p3 D& F) V7 p
PLINK h = NULL;
; M1 `" { G6 `# [* x, `4 x
PLINK q=(PLINK)malloc(sizeof(LINK));
1 @" l& t) ^3 Z' I3 Z+ A z8 X* V9 V
if(NULL==q)
# b. A# d3 z6 k
{
+ T; f4 h9 k4 l" m$ [
printf("录入失败提示:内存不足!\n");
, [* j/ [9 m5 {* a) _ E) {3 o. z4 F
return 7;
* u$ b- K" `! O$ X8 E' m. j
}
" L* c0 _) [8 z9 p
printf("请输入职工号(数字):");
* q7 `! Y2 C+ { u' L
scanf("%d",&q->w.id);
: L6 A0 k1 U8 @% ~ X( r" b& Z
h=p->next;
. L, ]) {0 q0 s# T& Q
while(h)
/ R6 j; b6 [# O& j! q
{
3 f4 w+ X: Z- a6 J% M
if(h->w.id==q->w.id)
- m: ]# y5 J9 ], y; W: w$ `! l
{
l R( o0 P P7 V* U# F
free(q);
. K, b) ]& B" Q
printf("录入失败提示:此职工号已经存在!\n");
; W6 G/ c5 w" P8 P8 }$ g
return 7;
0 r5 W% W( N1 X; f$ W# N! R g
}
% Z! N# ~- [: I" U. {1 p1 r
h=h->next;
$ }* _% _+ G0 t( P& [7 t( S% a. _
}
5 f+ `% @1 o& T/ L9 n& X/ g/ ~
printf("请输入职工姓名(文字):");
( ~$ A* B- F9 i! R$ l1 c
scanf("%s",&q->w.name);
" H- y& z* S( b" V/ l5 w/ B
printf("请输入职工性别(文字):");
9 _6 C2 u' d* t* G% o: h/ `# C
scanf("%s",&q->w.sex);
1 T6 \* s1 P: G& g( k, u# m% r
printf("请输入职工年龄(数字):");
3 `$ B% }$ [. c6 Z- N" w
scanf("%d",&q->w.age);
. x J- T7 L6 T: e, T
printf("请输入职工学历(文字):");
; l( v' C( g# z: `% Y, M
scanf("%s",&q->w.edu);
3 O0 R* a% _. W, _" T! d
printf("请输入职工工资(数字):");
7 k3 b) v9 {# E3 }/ [- J
scanf("%d",&q->w.wages);
& Q* U% @7 L2 K8 \6 C
printf("请输入职工住址(文字):");
# _" s% T j6 `9 x
scanf("%s",&q->w.adr);
6 } b1 O1 N# t" m% {# q) t/ C: A
printf("请输入职工电话(文字):");
- ~; n0 v8 `7 O: C7 }
scanf("%s",&q->w.phone);
# t; l: x$ J5 b
q->next=p->next;
% ~" p" p& h6 v( t# [
p->next=q;
# V* m4 P0 T& l6 y9 W! j8 _1 l% R
printf(".^_^.录入成功!.^_^.\n");
2 B2 t& u x2 D& s
return 7;
" ]2 K2 v( T K; m
} /*按姓名查询*/
2 M% t5 P0 r( d! _
PLINK findname(PLINK p,char *name)
3 f8 \( D/ F% a- @' d$ h
{
, n! ~ U0 R0 f" S4 ~( K
message();
7 x& W% `3 j& ^: A
printf("按姓名 查询\n");
) l' g0 D8 D7 m+ a$ Q b
printf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");
# S3 Y6 @6 C0 ]! T5 M
while(NULL!=p->next)
& w* D( V- X5 }* q8 v$ |9 b
{
9 }% ]5 M: f2 t1 d+ @8 f1 h
if(0==strcmp(p->next->w.name,name))
4 w6 ^0 `/ f/ t, a" \1 Q
{
5 y; Q+ A, c; \% G. F* j. }4 u% U
printf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",
. ~- k$ k4 w+ d$ `( V, [! `& ^7 E
p->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,
g& h: D7 \' B- y/ I
p->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);
7 \& k1 \7 J6 O$ i0 {0 b8 b% h
return p;
9 F h% d9 i6 L+ J' t2 I- b. R9 |
}
4 T+ L' x$ Q1 U) P
p=p->next;
$ O) l$ w g: ~) R. i) Z
}
# L& U2 N( x y" U5 ~
printf(".^_^.查询结束!.^_^.\n");
* y e. _9 Z0 p7 t* I( A. U
return NULL;
0 u3 \* g& I: A" R; n1 A9 k& c( H/ x; Q
} /*按职工号删除职工信息*/
) v# O. Q) `8 I1 V+ S
int del(PLINK p,int id)
$ D% q9 Y! B5 N# M9 s; k( M
{
3 o9 u7 z, n2 g9 w7 a7 W
message();
+ J# P' f s3 p$ T
printf("按职工号删除职工信息\n");
; ]& t4 ?/ R" Q" Y- y+ P @
while(NULL!=p->next)
$ s5 @* `' |3 X. B
{
& R: b, I$ @* x( n
if(p->next->w.id==id)
- M: j! I9 ]& u0 b! {# ^- ^6 {
{
- c$ [) `4 A0 [" q# G2 S0 W7 _
PLINK q=p->next;
* K: a8 X' p- j
p->next=p->next->next;
9 U. t/ n3 V. c8 k4 `2 {( Z* p
free(q);
, q* _$ {% R a; y5 A+ J
printf(".^_^.删除成功!.^_^.\n");
$ ?; s' `$ j* F3 N# Q! m
return 1;
" d2 \/ ^0 p: w: w4 R F6 O# U
}
& H- z8 p$ h( ]7 Z5 \. M0 @! ^
p=p->next;
& j* r i+ s/ L+ r3 }
}
* f! v% L! w' z9 z5 y) p( q
printf("没有你输入的职工号!\n");
& ~9 P0 h1 n J r$ Q
return 7;
0 z7 x0 H6 [: `0 q" N* R
} /*程序结束释放内存*/
. x6 B+ I% Y! p
void release(PLINK p)
( V. N1 P* z# p F
{
+ ^/ p% w6 H# L: n1 g7 x: r2 d
PLINK q;
2 y9 G. Y3 l$ e3 B0 T
while(NULL!=p->next)
" O- B/ @( s% F
{
5 I& b1 f& R4 T% \4 S- ^/ F
q=p;
# ]& y8 I+ k3 x3 c
p=p->next;
$ ?; p" J7 k5 y1 ~% P
free(q);
: S6 g; w8 y4 h% _: z7 \8 Z
}
) q, {; o1 G! T# J G- x, ~
free(p);
- @' b6 F6 R9 P! m+ o
} /*查询调用*/
+ J' b7 o7 f6 D" p# Z# O& H# j
void search()
' j" B) Z- i3 x& i8 T
{
1 l2 x# I) \3 Q3 i4 ?% C' u& R
int id;
' d/ a) w- B5 N, }9 T+ F
char name[20];
- q3 `# L% K* D1 k1 R
char str[20];
/ g% v+ c, F) P0 F4 q% ^$ G
PLINK pworker;
- u5 z) I5 ]' d, v7 w) Z, x0 N; ?
int l;
1 b$ `& V' ?1 x8 r2 F1 \4 g F* M; A
printf("\t\t\t\t*姓名查找按:1*\n");
5 z( w8 _: X. w% K0 z
printf("\t\t\t\t*学历查找按:2*\n");
* a& b2 ]0 V, z, n$ z. J5 o
printf("\t\t\t\t*职工号查按:3*\n");
! D: H4 R% j/ [6 A" K
scanf("%d",&l);
. ?0 l5 Q% i( }; s( U
if(l>0&&l<4)
6 r( j# z T7 i: L; Q# |
{switch(l)
m6 Y1 r3 o# I
{
h9 q$ ?7 B- I5 L4 E0 I
case 1:printf("请输入要查询的职工姓名:");
( r4 L' ~% f! t& B
scanf("%s",name);
4 |" m; `3 n! A Z
findname(pworker,name);
0 Z2 d, r; l/ @
break;
6 t# N" E) a- J) Y
case 2:printf("请输入要查询的职工学历: ");
& O* R! q5 N$ \4 \0 K8 V" ]! w, d) Q
scanf("%s", str);
5 q% K( m/ Q# W! o
find_sr(pworker, str);
0 A7 `- A7 H; k7 ^
break;
/ @/ T' [/ F I, o; z7 Z9 ]+ y5 Y
case 3:printf("请输入要查询的职工号:");
! v2 a3 m: C9 ]0 i
scanf("%d",&id);
6 l; K$ h/ c1 |0 i* b3 l& O
findid(pworker,id);
# F- F5 J2 l8 f. O% n9 U1 i. v
break;
& \, V1 e9 n) b) E
}
. z5 W- q. `: {8 |; O: \" j1 t+ G
printf("\n\n选择完毕!!!");
5 C; V5 i! D; D/ _! o# f* m
}
. u V# ^& z0 P) z5 k
else printf("\t\t\t\t输入有误!!!");
2 P) L. ?/ S8 p1 |" F4 R3 r
} /*修改职工信息*/
6 L% A2 O, ]7 Q
int modify(PLINK p)
" E) R) P0 l! y# w
{ int id;
1 X) N7 [+ Y) J8 J( F+ \' _* v( A( s
PLINK q;
) w j& Q( d' m' x
PLINK h = NULL;
* E& [5 _. ^4 d* h8 \; j
printf("请输入职工号(数字):");
9 q7 g7 p: E" |, {( |5 ^1 y
scanf("%d",&id);
( ]" z/ T0 ^& T/ m
h=p->next;
* w" R. g8 J+ n5 Y* P
while(h)
# o' v2 X( G& x/ ]0 Q+ z
{
" r# v. y6 d: y
if(h->w.id==id)
& {% d! [2 l) L9 _$ d8 e* c
{
7 o; |. e/ }6 `& E: r- W" n: B' _* e
break;
4 m9 t* K' N+ ^: _# R
}
5 g t+ ?$ }; o# X
h=h->next;
' M" E3 Z: r7 `5 Q' E2 z
}
R9 q0 g6 h& D# Z/ F2 \8 Q
if (h == NULL)
' {- F c3 y# m+ M
{
& ? R" G4 h1 i6 v* [8 B8 z
printf("找不到此职工,请重试\n");
, W* o& h# J: Y8 Z8 |+ X
return 7;
" e/ j5 e4 v' T( t5 n2 p
}
% ?6 c6 \" S; c$ @* N; ^- Y2 R
printf("请输入职工姓名(文字):");
4 [# ~9 `+ y2 n/ N/ b
scanf("%s",&h->w.name);
9 Z8 }! h1 r9 h: m! {) X
printf("请输入职工性别(文字):");
5 |. H4 }7 j2 T: E: z
scanf("%s",&h->w.sex);
4 }: w; m+ T) W' E2 ^& O$ {
printf("请输入职工年龄(数字):");
' [/ _ N( O/ N# F2 J: ^
scanf("%d",&h->w.age);
3 w0 j: |1 S% k3 P5 w5 m
printf("请输入职工学历(文字):");
& C' Y+ }5 Q! e; y7 E3 }
scanf("%s",&h->w.edu);
) V! h, e! u! l0 [- m! K4 ?
printf("请输入职工工资(数字):");
5 j# _) B& V1 e' n% p
scanf("%d",&h->w.wages);
$ A% c; z( l! E6 @/ t0 e @
printf("请输入职工住址(文字):");
7 Y4 r9 y) F( ^* |1 x9 h
scanf("%s",&h->w.adr);
* m1 M4 G' J. ^- w, r
printf("请输入职工电话(文字):");
! A: U+ R+ t+ u+ K. o
scanf("%s",&h->w.phone);
2 Q* j/ g, L3 b
q->next=p->next;
5 E$ x( o- t% k
p->next=q;
9 E- L" o# K) W' [: k( K( v& D9 f1 E
printf(".^_^.修改成功!.^_^.\n");
& L% U( N0 Y1 `3 \. |7 Y5 X
return 7;
5 U+ w; i, f7 ?- H6 ^
} int main()
6 N4 `' W" \' \; X9 S! v4 k
{
4 C u( ~3 G1 _
. z' S1 i J4 |, p- O- v
int cmd=0;
+ a: j9 m) y1 m; L8 P/ n6 n
int id;
4 M j' E! ` o9 c( c
char name[20];
/ N: p# A1 J5 E. G8 b
char str[20];
: Y8 {+ c& _( q0 D0 P) |# e
PLINK pworker;
$ J# j* i1 c: H
if(!(pworker=create()))
D* ~; |2 s% O/ x
{
5 Y# \( t& c+ n/ l* d2 a
exit(0);
W) y5 i$ f+ Q
}
. P Q# x- j3 z6 Y# L6 v7 z
while(cmd!=7)
2 D, Q0 |1 a" X9 x6 J7 l
{
% A1 r( B- y! i7 |, B
switch(cmd)
: f# p) B( R: n+ W
{
: ?8 D" V2 F0 @) ?6 y; f
case 0: message(); break;
9 m5 u1 L' h8 J+ ]5 |4 L" Y
case 1: add(pworker); break;
7 Y' Z0 A" T( _* @2 _5 E
case 2: show(pworker); break;
, G/ @1 y0 C* G2 @" v& o* e/ r
case 3: search(); break;
5 r. ^4 w' d8 E& Y' p0 w
case 4: printf("请输入要删除的职工号:");
% \6 a) l% b$ U; j5 \* b
scanf("%d",&id);
) U- d, T8 V5 K( C! m
del(pworker,id);
2 w+ ]- Y# a' R4 W
break;
7 `0 Y {, I- Q* Z/ m' k+ ?
case 5: modify(pworker); break;
: U& v2 d8 K5 X5 l
case 6: message(); break;
. Z; A: A& |6 W0 K
}
; j) l$ _6 k! \+ y% X
printf("请输入操作命令数字:\n");
8 R: |( `0 a9 V0 ~& h
scanf("%d",&cmd);
/ i# Z7 e) [; c( `4 ^+ P
}
& M3 O" ^ g. i% P3 E
printf("谢谢使用!\n");
3 i5 f$ s9 T( g2 s5 t
release(pworker);
" p! o' E. N. ?8 i3 e3 E
return 0;
1 t4 p* J4 }& h, L Y0 c
}
2 w( ?/ W9 l, v6 i2 \5 V8 h
, V+ _0 C! ^- Z, S% J' O
8 \& R W- Q- d
这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!
7 O' i+ q e0 \! T6 [5 G" C
4 m8 N5 ~8 c0 V' [
5bde8c5494eef01f15b25a35e1fe9925bd317d69.jpg
(118.36 KB, 下载次数: 154)
2013-7-23 15:39 上传
点击文件名下载附件
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5