数学建模社区-数学中国
标题:
【转载】C++源代码--学生&教工管理系统 求大神帮忙改错~!
[打印本页]
作者:
wangzheng3056
时间:
2013-7-23 15:39
标题:
【转载】C++源代码--学生&教工管理系统 求大神帮忙改错~!
#include <stdlib.h>
7 m" j% Z- L/ v! q/ K& ?
#include <stdio.h>
5 F5 d4 A" q( O J; Y
#include <malloc.h>
" L' p% S! e! u$ B5 K; @8 p
#include <string.h>
% ?0 R( F/ B* B9 E% ?
typedef struct worker
5 o' K" ~% U, q f( ?3 I
{
6 _4 J6 R6 K) v
int id;
& ^7 o4 a" ]9 s; K
char name[20];
6 z& |" ^ n U0 a
char sex[3];
3 i+ I' W" i2 s2 m! c4 y
int age;
$ e2 n0 U( s, u
char edu[50];
4 m6 x% Q- [, g
int wages;
/ c; l4 [ r% K/ C" v; q, `
char adr[255];
7 r: Y2 C( E& \4 }' n
char phone[13];
4 T) N9 o2 z# |3 U: j' o, w
}WORKER, *PWORKER;
/ Z$ G2 _! j. n
//typedef struct WORKER *PWORKER;
+ _$ l. H- h# o$ @3 P
typedef struct link
- R& m* H% G4 S/ w$ G
{
+ e. L$ X5 |- r: [9 K' u
WORKER w;
. K( k' s/ ^4 p" ]* m+ D. ]$ X
struct link *next;
; L, [$ h4 K4 @% X; @
}LINK, *PLINK;
- \2 J/ S9 x1 c* l, b
//typedef struct LINK *PLINK; /*创建职工信息链表*/
6 x3 x' r& T' c) R- ?) }( i: _6 p
PLINK create()
! F/ g! d9 h, t
{
$ I3 S" L* W7 }1 K3 v* \: P
PLINK p=(PLINK)malloc(sizeof(LINK));
0 H% e! t+ Y6 ^" A$ |: Z
if(NULL!=p)
m- s M5 c+ F; F
{
) x* @/ N- X8 i
p->next=NULL;
3 e/ j& o) n9 o
return p;
+ t$ }7 [8 f$ _# I6 u( W
}
5 H& }5 ]1 K3 Y8 w# }/ ~
printf("内存不足!\n");
0 ]( |* n. q% I' N
return NULL;
; B+ I% N9 d; I4 W4 E {# V! B
} /*显示程序界面文字*/
( v! \$ ]6 [$ y( |. [
void message()
/ l+ g: |& Z$ \! o- K
{ system("color 0f");/*设置当前窗口的背景色和前景色*/
8 \* _. y0 @6 s
/* 0 = 黑色 8 = 灰色
/ z% V$ U/ F- B; r3 J* ?- T
1 = 蓝色 9 = 淡蓝色
: [8 e/ \8 V: W% P% r# ~/ K9 K. r0 p
2 = 绿色 A = 淡绿色
" E( v0 |7 ~( \. k9 u
3 = 浅绿色 B = 淡浅绿色
- E/ m. E* L! e( L$ t9 f0 ]
4 = 红色 C = 淡红色
/ A% b% [! S& n+ L/ F* R" [- E
5 = 紫色 D = 淡紫色
" l2 P, ~& `& L, z$ J+ f
6 = 黄色 E = 淡黄色
) b& c" _ O6 d3 h9 I5 {* q
7 = 白色 F = 亮白色*/
. ~1 }8 e- V. k9 n/ e8 h: {
system("cls");
6 P- v5 Y: E$ H. H) T5 |# Q! h
printf("\t\t************************************************\n\n");
1 o+ b, r$ ?# p. G' t
printf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");
$ |/ E: M1 e* P* x5 j) A1 Z
printf("\t\t************************************************\n\n");
& X6 h: b3 O5 q4 r
printf("\t\t ************** Choose Function *************\n\n");
: O6 m4 Z+ @7 K. O8 \! S* p
printf("\t\t ************ 帮助 请输入:0************\n\n");
, P' \1 [2 y* n7 c$ a
printf("\t\t ************录入职工信息 请输入:1************\n\n");
$ ^) E, q: Z8 {0 l& Q
printf("\t\t ************浏览职工信息 请输入:2************\n\n");
5 R u6 L/ b0 n
printf("\t\t ************查询职工信息 请输入:3************\n\n");
' ]; j1 q+ E8 n3 y
printf("\t\t ************删除职工信息 请输入:4************\n\n");
/ Y: I) W. b3 {: s* w. z' J
printf("\t\t ************修改职工信息 请输入:5************\n\n");
0 ^5 z" X, k5 V/ ^9 ?
printf("\t\t ************ 清屏 请输入:6************\n\n");
/ X" e3 w1 i: h
printf("\t\t ************ 退出 请输入:7************\n\n");
" v+ [6 e) B, G# @7 z' G- _' @
printf("\t\t************************************************\n\n");
6 w! H( P3 I1 M/ a. L
printf("\t\t************************************************\n\n");
. p+ g: ^, @; d+ o
} void find_sr(PLINK plink, char* str)
_' E; s6 h2 W" o# c8 J
{
+ R3 f) z2 T% c3 x* y
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
) `0 v5 G2 O, ?' }+ z) m4 Z7 Z, P
{
: E- X: K5 e I' {$ J3 e I
if(strcmp(curr->w.edu, str) == 0)
8 A' m$ U& Q1 d. [: K6 `
{
. C% C4 P4 W: H
printf("职工工号:%d\n",curr->w.id);
% u, [+ f$ z* N8 k, n+ Y" F
printf("职工姓名:%s\n",curr->w.name);
* |3 i/ K3 E" V2 w& b( `
printf("职工性别:%s\n",curr->w.sex);
" n& ]( p4 W8 A6 V$ |' w3 C
printf("职工年龄:%d\n",curr->w.age);
" V8 [2 L# |' U1 }$ p9 |; a
printf("职工学历:%s\n",curr->w.edu);
+ U5 a# e7 r8 e. R
printf("职工工资:%d\n",curr->w.wages);
! n1 S( x6 p% n0 a; L6 L
printf("职工住址:%s\n",curr->w.adr);
- C& @* `% `8 i. j
printf("职工电话:%s\n",curr->w.phone); }
1 T3 p" ]* S& S* X! J
}
Z# P+ H8 M- [3 b3 Z9 v T5 g& x4 n
} void findid(PLINK plink, int id)
# g2 V' k: c4 T6 b! P
{
! w y3 A- S6 s$ M8 s
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
! t6 K# `' U+ i- @
{
* x& ?2 p5 @! p' N# n' _
if(curr->w.id == id)
' A9 L5 U" {+ ^( g" a
{
2 I. ?- O. `3 c( T; Z9 ]: A
printf("职工工号:%d\n",curr->w.id);
+ ~! [6 \' A4 \: O6 v* Q8 d
printf("职工姓名:%s\n",curr->w.name);
( j/ m `3 Q- S9 f
printf("职工性别:%s\n",curr->w.sex);
( B& H3 D( N$ g( j$ y. N! ^
printf("职工年龄:%d\n",curr->w.age);
' H8 g" S; Y/ z6 A2 h- }4 ~: ~
printf("职工学历:%s\n",curr->w.edu);
/ I/ I Z* V2 b3 W* {2 }( B2 Z2 d
printf("职工工资:%d\n",curr->w.wages);
- j) l, Q7 r- `, Q1 s. m- X
printf("职工住址:%s\n",curr->w.adr);
2 |% y; i1 [) x6 r) h
printf("职工电话:%s\n",curr->w.phone); }
- a. T" X+ _* _( {1 ~
}
0 `0 Y% c3 M, j9 |3 P9 ]
} void show(PLINK plink)
0 I3 p! _; h$ Y% }
{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
4 b5 e* ~ v; f& l" s5 G% A
{
& _* l: q2 V8 f- B
printf("职工工号:%d\n",curr->w.id);
. l% S0 q7 c$ I6 f
printf("职工姓名:%s\n",curr->w.name);
1 O9 W9 k" j% T5 g" W& z
printf("职工性别:%s\n",curr->w.sex);
, `; @4 a0 T! s! D Q6 z [
printf("职工年龄:%d\n",curr->w.age);
( L9 U6 h, l, W( x* l }2 W
printf("职工学历:%s\n",curr->w.edu);
2 ~& d9 C! Q& P7 Y3 i0 Q/ ]/ K
printf("职工工资:%d\n",curr->w.wages);
; O! N. ?% }. _+ t
printf("职工住址:%s\n",curr->w.adr);
; V9 X! \. h& ]% {/ U
printf("职工电话:%s\n",curr->w.phone);
, p) f3 h- z. |# M4 [
}
7 C5 v2 C3 U6 [+ _
} /*录入职工信息*/
( [( X( ~/ m: {4 \+ e5 {% q* _
int add(PLINK p)
% b5 }/ f3 s5 u4 i" a' m
{
8 K% E. Q+ P& |$ L
PLINK h = NULL;
8 g5 K. u$ F" e
PLINK q=(PLINK)malloc(sizeof(LINK));
) s H4 l$ X; N6 j* e6 i! E
if(NULL==q)
# }5 o4 k0 g6 O8 i. Z5 x# c
{
, h& C4 H; K' `5 y% e K" I
printf("录入失败提示:内存不足!\n");
0 _( l( Q2 |2 g+ q5 J
return 7;
4 Q" g8 k" J! C _2 e7 E
}
- ` C. ?* h7 H
printf("请输入职工号(数字):");
& J0 N( s$ ?, r4 L! L9 b
scanf("%d",&q->w.id);
. y l7 c+ [8 w# N$ Y
h=p->next;
, z5 E, s8 G G8 j# y2 U
while(h)
8 ?/ ]# p& K; j8 j; p1 D7 K9 U
{
5 C# v- }3 ]7 O$ g, D* y8 q
if(h->w.id==q->w.id)
1 b1 D# Z6 Z6 \3 L3 P L: s
{
# E1 Y4 p& C! {: m7 ^1 U6 x
free(q);
+ ? h) ?8 @# z' A
printf("录入失败提示:此职工号已经存在!\n");
* j" E+ ~, N$ F7 f3 u8 S
return 7;
3 c: V# u" l" ?" f
}
- i6 k/ t# c) ~$ X2 m
h=h->next;
) z3 i' D( o* `! P' Q+ V P8 H
}
. o! f( n+ e! W! q
printf("请输入职工姓名(文字):");
7 T5 r: T4 ~3 r
scanf("%s",&q->w.name);
1 |1 N3 F6 a: W' u( P
printf("请输入职工性别(文字):");
) u6 e% Z/ Q0 C$ c0 g7 Q" N" \. Z
scanf("%s",&q->w.sex);
! c6 h% ?4 Y! z* m
printf("请输入职工年龄(数字):");
% ]: f% c6 f& B- z: E3 @
scanf("%d",&q->w.age);
+ r9 K4 D6 B1 l
printf("请输入职工学历(文字):");
6 G# J/ g; h p: m' Z9 o8 ?, N
scanf("%s",&q->w.edu);
F, ?& j3 i* m/ V, R4 l
printf("请输入职工工资(数字):");
; S/ s: U& h. U8 v; r( M$ l
scanf("%d",&q->w.wages);
+ a; a2 ]: N: p% h
printf("请输入职工住址(文字):");
$ ?" l: N5 ?! o9 E5 r0 S; q9 ?
scanf("%s",&q->w.adr);
: W! C0 v/ q& [5 T1 O2 u. a4 l! m7 y8 F+ J
printf("请输入职工电话(文字):");
" U9 \6 B9 ~2 o. l" g9 c
scanf("%s",&q->w.phone);
4 W5 S$ ^* { c7 o
q->next=p->next;
) i1 a4 _* I& `- i7 I1 J$ v# O
p->next=q;
4 K6 c$ C( N! n4 `$ e- ~
printf(".^_^.录入成功!.^_^.\n");
! M# x G4 c8 h9 B
return 7;
3 F8 P% e& G$ F S* f2 Z; P2 c9 A) b
} /*按姓名查询*/
2 c0 _. B; z1 `( M" T" J+ t4 N
PLINK findname(PLINK p,char *name)
4 k, q+ M- M7 e
{
! p$ q. |& I* q
message();
6 Z( ^+ l+ ?, Z8 ]; M+ a
printf("按姓名 查询\n");
2 x$ N2 }# `' L- i3 X5 }1 m# |
printf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");
; d- A) p9 K2 J0 U I+ ?
while(NULL!=p->next)
; R0 Q6 J4 j, S) H: O" ]: n& m
{
4 ?2 w% A. c4 y7 ?. A" p
if(0==strcmp(p->next->w.name,name))
' @+ i7 T4 {( f! G( W5 {( G- E& O
{
) Y! A6 @/ p9 \. n z/ s
printf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",
5 i' r0 \- Q8 j8 Q- J! F
p->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,
" Z- H" V- q) f: P
p->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);
3 D4 ^# i$ [3 y
return p;
) l9 F. S7 o0 Y+ l
}
! i1 h( U7 O( V5 v( T
p=p->next;
' ?; d2 ?! F, [
}
9 a$ I1 j5 Z) D
printf(".^_^.查询结束!.^_^.\n");
% f+ ?* @. ?8 v4 g0 i1 c
return NULL;
0 I9 K, T0 L9 m' S5 e. O, F1 t' M
} /*按职工号删除职工信息*/
4 P6 N4 A" O- Q
int del(PLINK p,int id)
4 r4 Z' K( S: P7 v6 h. L; E1 s2 N- Z
{
j6 o [: `& q* U' ^" {0 Z
message();
) _- W- e2 p3 W* P0 a7 @ V- _
printf("按职工号删除职工信息\n");
; ?# O1 C1 }; d ~9 Z
while(NULL!=p->next)
; W% s4 p1 S% Q$ _7 [! B
{
$ z- e c" }6 [. H. A+ v' ?
if(p->next->w.id==id)
3 Y: s4 B8 ^ f6 A3 I
{
5 ~; I" W( ^+ J4 F: ~! O# w3 O
PLINK q=p->next;
$ M9 r' b$ t, O- R8 X Z
p->next=p->next->next;
# I4 O6 `, U; y9 J# N$ J
free(q);
# p, s/ Y2 ]( S( A' h
printf(".^_^.删除成功!.^_^.\n");
1 M' n0 Y- w1 T
return 1;
) o1 ^& a/ q) Y1 F
}
/ x p1 F! u) J- N* [' e
p=p->next;
4 G9 G5 I/ P3 c
}
7 `, V- E |' a" I. A! I: ?5 M
printf("没有你输入的职工号!\n");
M! \% o" g8 e: G; s5 w
return 7;
0 e! i& @' ]8 _3 G# d2 a
} /*程序结束释放内存*/
% B7 q' K3 z# _ J& {
void release(PLINK p)
' C# y4 c" }- F
{
7 ]" f( L/ F# p* `, W' B
PLINK q;
. D6 ~% c) f; m+ @1 B r: }
while(NULL!=p->next)
$ o. v6 Z" A, H$ Y) a6 M
{
$ Q/ ~+ S# T7 x
q=p;
& h+ a R3 M$ E& g$ p* E& ~
p=p->next;
+ X6 |* j4 m C* r3 V* [7 S
free(q);
( q- d$ s6 E6 h/ J# g- V9 C* M
}
8 M0 c9 j: o1 T6 O; H% U
free(p);
1 P" I, M+ N: V" R* z4 L3 ]$ p
} /*查询调用*/
9 H9 i. X3 ~+ G. [: _7 X5 R
void search()
2 C+ i0 D# A0 e6 O. b4 E6 ]
{
) i) U$ z$ V q7 \: C3 E
int id;
! i$ C5 O8 c% o# u$ C! l
char name[20];
/ n1 b1 p( t# h! ]
char str[20];
: ]% I; y: ^8 h5 S) K% @# h! S
PLINK pworker;
+ A( p* C8 c# Y( Q+ i6 g
int l;
3 b/ J9 Z% q$ u: n2 T* A1 [. |
printf("\t\t\t\t*姓名查找按:1*\n");
* {) }* V, c: ?" {2 c% I3 X: b! f
printf("\t\t\t\t*学历查找按:2*\n");
+ d4 e1 ?/ a ], `& W, y$ l: E
printf("\t\t\t\t*职工号查按:3*\n");
: v; P! C# ~" q7 u9 T* G
scanf("%d",&l);
+ @' R. x- j' W6 y) F1 h
if(l>0&&l<4)
( }3 z: o4 s1 Y0 B
{switch(l)
4 _3 Q Q7 g/ z# Z! k
{
/ r$ ~! R; Y2 j& z! C3 q
case 1:printf("请输入要查询的职工姓名:");
/ f- f1 ] m% l
scanf("%s",name);
1 m O( x6 a5 |" {
findname(pworker,name);
% i6 J" t- y, E6 D( `- T
break;
4 E# @( E. t9 r. l& O, Y
case 2:printf("请输入要查询的职工学历: ");
3 l4 D( j1 B& ~
scanf("%s", str);
( c4 p* t: y8 W1 Q5 Z7 F" [
find_sr(pworker, str);
. _; L- ^- g7 L' Z
break;
4 k- n: \: L8 b5 B' t2 ?; m
case 3:printf("请输入要查询的职工号:");
& i: Z' j9 c* A S% `% q7 e
scanf("%d",&id);
X: E# g J4 B1 f3 L
findid(pworker,id);
. T1 E( @3 w ]+ t" t" b5 p! i5 x
break;
) \% N4 W2 J, x
}
& [/ z& P! h0 v; g
printf("\n\n选择完毕!!!");
9 Y; O8 G. w8 e% b0 v" E
}
8 f" k5 L% M( M3 A. s8 O; C
else printf("\t\t\t\t输入有误!!!");
9 q/ X* s" H! L) F: B& H# N
} /*修改职工信息*/
* L$ w8 p5 |9 W8 `/ d! y L
int modify(PLINK p)
) x& ?/ y% P! @
{ int id;
3 f# [! K: N' N" Z6 Q6 A
PLINK q;
2 Z. W6 m9 t3 m, _6 H
PLINK h = NULL;
* Z4 p" P4 @0 y' }3 G
printf("请输入职工号(数字):");
r% f4 r8 x) R, P" _* ]
scanf("%d",&id);
7 J. E( f0 h" m5 V: ~/ Q) _, x
h=p->next;
6 y; M8 c# W% S$ Y6 n
while(h)
2 k/ q: s$ q* ]+ O
{
5 e7 {) }: i# X1 C7 d" y
if(h->w.id==id)
$ Y2 F7 ^) X# _5 N5 Z4 x4 T
{
- b* E$ `5 S" _- B! b
break;
" c# z7 J0 N/ ~# U* f
}
7 \4 j( A) l5 s
h=h->next;
0 }1 s& E* e. G) C3 v: }7 K; W$ @
}
1 m7 P# A: ^+ j& D x" p2 b8 l- s: [! O
if (h == NULL)
3 g( e1 a/ L! O. h$ h% D5 c
{
/ v! @' K- r5 o" ?4 w8 K+ O1 b& Q
printf("找不到此职工,请重试\n");
1 H& k. M& N, o2 Y8 X# T M# R
return 7;
- }& ?- u* U' {
}
1 w. ~+ F ]" k5 V7 q, c* x
printf("请输入职工姓名(文字):");
. u- X8 y; {5 s! |- q/ T9 H3 W5 R
scanf("%s",&h->w.name);
8 L; k* F% O: v# y7 f; i
printf("请输入职工性别(文字):");
4 H0 c9 _- }6 n: g
scanf("%s",&h->w.sex);
; [, j) @9 F, H) e6 X8 R
printf("请输入职工年龄(数字):");
5 k3 k4 I3 w( p) h; u/ O, M1 e8 E
scanf("%d",&h->w.age);
, W7 x- j @5 v1 Z
printf("请输入职工学历(文字):");
1 v y# r. R. M! J+ M3 C( Q0 F
scanf("%s",&h->w.edu);
! y; o# I/ h, y. \1 X& z
printf("请输入职工工资(数字):");
0 q+ L- T7 v z+ V% Z
scanf("%d",&h->w.wages);
2 E- `9 [8 c: y# A
printf("请输入职工住址(文字):");
+ ~. o T& g+ y! W
scanf("%s",&h->w.adr);
7 g; n+ @" z" \2 E8 N( G) n+ L$ c
printf("请输入职工电话(文字):");
( ?* u8 S& z5 {# H9 E' J: f* {" s1 c1 Z
scanf("%s",&h->w.phone);
% M1 x y5 v$ r2 J" n
q->next=p->next;
g7 E/ c8 m8 ~+ @- @. U- X/ S
p->next=q;
. O! P( Q* Z9 v; O( B9 R7 ?
printf(".^_^.修改成功!.^_^.\n");
5 p$ N2 v" r% \3 g# b
return 7;
( Z9 x- H, n: ]: {* z1 h% v0 _8 c
} int main()
# V g1 J, V3 m6 y* s
{
5 d& }0 ?4 D3 D. p0 b
1 m8 P$ i" a5 o, x8 }) L
int cmd=0;
/ F- T8 |' j; v: Z5 L
int id;
7 T6 L5 P& L0 x( }# g8 |7 G
char name[20];
) T' p9 b) U+ `, I/ ]
char str[20];
4 ^& Q9 a' o$ m5 x5 o
PLINK pworker;
( [/ R% ~% Y" w! J0 W7 n8 _
if(!(pworker=create()))
3 q& J6 c1 n% `# K
{
4 Y$ g5 e6 H8 a, k" G
exit(0);
4 _$ U$ h: S2 d- f% d0 ]& `# Q; S
}
9 N: c' C: z9 Z8 c7 f- O
while(cmd!=7)
. y# x" I. ?( R( k6 J. g8 T
{
" \0 ?' U2 P4 J' u; `
switch(cmd)
z; Z' k9 ~% S8 o
{
; l$ p6 E- D' ]2 v0 \) i0 _ v
case 0: message(); break;
) t$ w3 {5 U' [+ D+ c# v
case 1: add(pworker); break;
G8 L- i% V- l3 r
case 2: show(pworker); break;
# p/ _$ y0 ]5 r1 I S
case 3: search(); break;
! h; R7 o2 y) _# |+ _
case 4: printf("请输入要删除的职工号:");
% y- p6 a& Y @. a' p& y6 w
scanf("%d",&id);
; |0 l1 Q! r) E" _/ T9 i
del(pworker,id);
' t" ?& \! p* I* \0 }
break;
% [0 } ~9 a& I/ v8 l
case 5: modify(pworker); break;
. p5 g0 C1 ~7 `9 Y5 I
case 6: message(); break;
# h1 p$ _/ b/ L7 U t _0 z9 E8 w
}
& ^2 w; ` E- U9 [0 h) N; M: O
printf("请输入操作命令数字:\n");
5 G [# d! i( h
scanf("%d",&cmd);
y( H# r4 l. b9 N+ g
}
+ n/ r2 N( \: a' s3 ~& b% a
printf("谢谢使用!\n");
' x3 h3 a) C" _5 v7 ^' O; a" U
release(pworker);
, g4 H) g* \4 T$ u$ D# k7 A
return 0;
2 T5 d4 P# K8 K% u0 k! E
}
* c: i2 O; k5 r
6 j2 n- W4 s% M3 N* s% w: d
! t' g- O8 |4 A) W6 r- g
这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!
" d! m9 c f" K, H7 v" Z
3 m6 K7 |0 Q2 j: |, `1 Z8 Z. u
5bde8c5494eef01f15b25a35e1fe9925bd317d69.jpg
(118.36 KB, 下载次数: 163)
2013-7-23 15:39 上传
点击文件名下载附件
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5