数学建模社区-数学中国

标题: 【转载】C++源代码--学生&教工管理系统 求大神帮忙改错~! [打印本页]

作者: wangzheng3056    时间: 2013-7-23 15:39
标题: 【转载】C++源代码--学生&教工管理系统 求大神帮忙改错~!
#include <stdlib.h># n1 ?( l" \5 Q
#include <stdio.h>9 q& n* V0 X. `& l
#include <malloc.h>- }$ ?; w2 Q) ?9 K" v: D
#include <string.h> 8 j: k& s; ^" x4 M# }
typedef struct worker2 ^. E! m" P2 Z- t
{
- N' d) B( [0 Y0 F5 c" j( w8 G6 xint id;/ j* D- _3 C( ~+ l. C
char name[20];0 ?. R/ b! W6 M: k$ |1 Z
char sex[3];
% v$ r# F8 n, e2 v1 M* Sint age;# p2 y% p. p4 {/ Y% s  k
char edu[50];' t/ \8 C; H$ ?
int wages;
9 t& w3 A4 w' i% K. xchar adr[255];0 b; c, ^5 T1 f. b6 g& m
char phone[13];' C$ a2 J% \' l+ C5 U
}WORKER, *PWORKER;. T% V5 o) P( A3 w
//typedef struct WORKER *PWORKER;
9 C0 \2 K- g! X) S4 D) f7 Ytypedef struct link" ]' Z5 L; T0 p/ I
{
$ ^' S4 v! x, [5 k# _WORKER w;
" _/ U1 q! N1 R9 K7 G' c: ]4 `struct link *next;- }  w, k7 s' a, Y
}LINK, *PLINK;
( h# X" n8 I, ~/ n, q! R5 A//typedef struct LINK *PLINK; /*创建职工信息链表*/  c! L6 z* |9 c
PLINK create()
& B+ k3 n0 f) z. I  M1 {5 z& l{/ ]2 G& k, C1 @' I, N
PLINK p=(PLINK)malloc(sizeof(LINK));& E* m3 c6 Q: ]% B% q8 z6 {# U
if(NULL!=p)
( d* H3 x+ O# e- q9 x# S' @0 L{
: v7 H9 u- v! l" r' E5 u2 pp->next=NULL;. N0 u: p- v: ]9 y; o5 B! A# M9 F
return p;4 @1 j: a9 K" B
}
4 Q9 `6 _" ~  G  ?: C! B+ Uprintf("内存不足!\n");
8 ~- [( M7 ?8 N% Z5 ?; dreturn NULL;* |2 G7 G; g$ C2 {6 ~
} /*显示程序界面文字*/
5 S! k( q4 {# q. D5 O8 Ivoid message()- J% |& w% _) u% h' E( f1 V1 W
{ system("color 0f");/*设置当前窗口的背景色和前景色*/
- y' n6 K& }6 I) \/* 0 = 黑色 8 = 灰色
& m( @* K3 x  H7 o7 c( P0 b+ ~1 = 蓝色 9 = 淡蓝色
, m8 e: `6 I; {- r$ O! x2 |5 |2 = 绿色 A = 淡绿色
$ Q- X* W( t9 W  O- G! k3 = 浅绿色 B = 淡浅绿色4 v! ?: ?* |" Z& K
4 = 红色 C = 淡红色9 }- V0 m- e$ K# O/ W! m
5 = 紫色 D = 淡紫色
. U7 B% c0 F  I$ g) H6 = 黄色 E = 淡黄色
2 v" C6 F, ~7 J  I- Y7 = 白色 F = 亮白色*/
6 ]# A) M4 K5 Y0 }/ Wsystem("cls");$ l/ k% w% I9 N/ a; l+ F
printf("\t\t************************************************\n\n");
2 @1 ^- f. |2 v9 G. N' G8 Vprintf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");
9 h' r' K& _6 J: B& `4 Z' w( R: T/ uprintf("\t\t************************************************\n\n");6 @' W; s3 c# L( L
printf("\t\t ************** Choose Function *************\n\n");4 M8 t% E% C* p1 \9 h8 W" G
printf("\t\t ************ 帮助 请输入:0************\n\n");
! P- A: {# `) d. F/ p- uprintf("\t\t ************录入职工信息 请输入:1************\n\n");
9 z; h0 k7 h0 lprintf("\t\t ************浏览职工信息 请输入:2************\n\n");
- ~. m# Q. }; Iprintf("\t\t ************查询职工信息 请输入:3************\n\n");, F6 c2 G2 D2 t4 }8 D1 h4 @
printf("\t\t ************删除职工信息 请输入:4************\n\n");
* h9 R4 b, ^  aprintf("\t\t ************修改职工信息 请输入:5************\n\n");* T9 f0 `7 \5 e( D7 c8 {6 }- m# ]# ^
printf("\t\t ************ 清屏 请输入:6************\n\n");/ ~+ h0 s# G* ?( ~7 c& l/ |% u
printf("\t\t ************ 退出 请输入:7************\n\n");
/ D- }+ b. W& ^1 Xprintf("\t\t************************************************\n\n");0 _( k7 u' k1 M" T/ n
printf("\t\t************************************************\n\n");' X& p. @% U- h1 I
} void find_sr(PLINK plink, char* str)  F+ l' J4 v7 b* q- T; _. Z
{
; D! W5 y* U! A) qfor(PLINK curr = plink->next; curr != NULL; curr = curr->next)
/ ?3 K" c. w; i% N{
9 q: `7 c! ]2 a# @if(strcmp(curr->w.edu, str) == 0)
# N+ m- e& _  m2 s{, g3 R3 W5 p9 l3 @3 L
printf("职工工号:%d\n",curr->w.id);
! c' c( D7 R! Hprintf("职工姓名:%s\n",curr->w.name);8 o5 l: _4 n9 t, W6 Q+ D1 z' t
printf("职工性别:%s\n",curr->w.sex);
$ Q7 a$ A5 ~1 V, ]% K4 S  oprintf("职工年龄:%d\n",curr->w.age);
# F4 v: J$ _$ H& R# `/ f. q& W1 xprintf("职工学历:%s\n",curr->w.edu);4 y7 A! i( a# V( C9 v, X" ~- D& }( ?
printf("职工工资:%d\n",curr->w.wages);
8 E8 j. i) r" a% A* ^- d0 P3 Pprintf("职工住址:%s\n",curr->w.adr);
3 [6 U' ^1 t* T! ?0 [  A% [2 a7 Sprintf("职工电话:%s\n",curr->w.phone); }( C5 d8 l, C" J( \5 f. p/ q; l
}1 V& m) L2 W. ^  e
} void findid(PLINK plink, int id)
/ R+ K" l1 E2 C, _  O3 t{& J' C- W1 s6 B
for(PLINK curr = plink->next; curr != NULL; curr = curr->next), s. J# g( a, X  M8 _
{
% g( r) |0 i) Rif(curr->w.id == id)
6 S  H3 A% _3 z3 C2 i{/ S- r, b$ R" J9 A5 |# ^# q4 @
printf("职工工号:%d\n",curr->w.id);
' \3 i- Q% l! o$ p6 E. t; @printf("职工姓名:%s\n",curr->w.name);% w. C/ s( C9 T  x- A$ q% O% T
printf("职工性别:%s\n",curr->w.sex);! K1 ~- |, o8 h( ^- p5 R, x) D
printf("职工年龄:%d\n",curr->w.age);
! h- h5 n/ R" G3 Kprintf("职工学历:%s\n",curr->w.edu);! |) k4 C& j3 {$ F
printf("职工工资:%d\n",curr->w.wages);$ _" N. G9 O' V3 ?0 i- s9 X( _
printf("职工住址:%s\n",curr->w.adr);7 o4 V2 {! H+ }' T/ r% w
printf("职工电话:%s\n",curr->w.phone); }
) J' i- K: H) ?& Q}
. ]$ K0 ^4 L) J3 J3 M} void show(PLINK plink)
1 z2 y  p4 d$ K/ X' w{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)' S3 ?& G& m/ J; D2 ~! ~/ F
{
( v2 }+ X' o3 cprintf("职工工号:%d\n",curr->w.id);4 ]) q4 I7 s9 }0 C! y9 A6 t
printf("职工姓名:%s\n",curr->w.name);6 {  a; k4 v8 y# I% B. p0 w
printf("职工性别:%s\n",curr->w.sex);
. G4 T! e- ]0 L3 o# Y4 q; @printf("职工年龄:%d\n",curr->w.age);
6 R2 z! o3 E6 _+ @printf("职工学历:%s\n",curr->w.edu);% c; E8 d. S: R& o5 g
printf("职工工资:%d\n",curr->w.wages);
: E( e* a1 H# M& pprintf("职工住址:%s\n",curr->w.adr);6 @* z/ U" m% S& g, I
printf("职工电话:%s\n",curr->w.phone);/ m: H: W' I6 @* n
}( f9 \# D$ g6 K9 Q1 g  a1 s5 D
} /*录入职工信息*/5 i" ^0 @( r$ J+ J+ W. M% r( X4 C
int add(PLINK p)
, ?7 L6 c- O7 B# J( r& X  L3 ]+ H{1 q+ Y3 x6 H7 s7 t  v1 o
PLINK h = NULL;+ [% P7 \% U5 I9 S
PLINK q=(PLINK)malloc(sizeof(LINK));
3 k; z7 X2 J0 r, W: _* p1 wif(NULL==q)+ c% d6 T4 G0 ^$ N9 }& y
{( G, q7 t- R3 I% o1 {$ h5 [
printf("录入失败提示:内存不足!\n");
* i$ r9 T- t) {2 Q3 g1 r4 Treturn 7;% S, t" l  L# t8 F! \6 S+ V6 }" |
}. Y" c& h$ [* t$ A# g- O' O
printf("请输入职工号(数字):");
  [- n) u$ i5 p: Zscanf("%d",&q->w.id);1 ]  `' C% l7 x: j6 }
h=p->next;
: W# {) c3 W) T4 D! n) kwhile(h)
: U) q) H/ t$ w* K2 Q) K2 u{9 m* y+ _% t0 h
if(h->w.id==q->w.id)8 M# m9 ~; R7 e% W% I3 V# Q
{# J+ s* s" k% K& H. h
free(q);, {/ r% _, |1 K" n1 ^
printf("录入失败提示:此职工号已经存在!\n");
+ p; j8 B; O0 Q3 ]% Ereturn 7;
# W; I6 `) B5 C1 T& ]$ x}" N2 J2 h* z2 c8 a
h=h->next;
+ D, |: ^0 H/ v1 J* ?' n}) a7 j  z+ @- D9 p4 j2 x
printf("请输入职工姓名(文字):");
( T# }. ]! ~! }) Xscanf("%s",&q->w.name);
9 o# J' z2 z7 p( v- Lprintf("请输入职工性别(文字):");* W$ ?8 h, E8 o% z0 c# A
scanf("%s",&q->w.sex);
3 e& A3 |+ E6 aprintf("请输入职工年龄(数字):");  H5 u! M# R8 w' m
scanf("%d",&q->w.age);
1 M& j* ?+ U9 P. ~printf("请输入职工学历(文字):");
1 d9 |$ ?4 W$ E. g8 O& U+ l' k( cscanf("%s",&q->w.edu);6 \* z/ Q/ T/ f6 e- X4 g+ }
printf("请输入职工工资(数字):");
1 e, T6 A, q6 p- Bscanf("%d",&q->w.wages);3 h! q. O: S/ O8 n7 b" L
printf("请输入职工住址(文字):");
- [7 M# K. o3 n: a9 O: O) L# z: hscanf("%s",&q->w.adr);
7 r0 a9 ^8 G# ?printf("请输入职工电话(文字):");
- C8 g. k7 S9 K( v  L! gscanf("%s",&q->w.phone);6 v9 W$ H+ {7 v6 o! j: L# q
q->next=p->next;' b: i& {* R6 m' E9 Q$ ?
p->next=q;- b9 a$ u, X6 e$ N" k
printf(".^_^.录入成功!.^_^.\n");4 ^. z) A- F* a: k8 p
return 7;
2 r1 j' I- \& r9 v; x' p4 {, z! E} /*按姓名查询*/
* y4 w6 c1 d( X6 f+ z# nPLINK findname(PLINK p,char *name)
8 ^; r: ?2 ^# `4 c{
: x! p! w; E6 |message();
/ W0 z' z+ `; g1 wprintf("按姓名 查询\n");
# ^7 d) s0 ^0 {3 @- i0 Aprintf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");
# h; ^8 B+ D- G7 f5 z" T, j4 ~while(NULL!=p->next)
- @" j: L% \2 w9 P) {- W{5 i. l  ]+ @+ u* d
if(0==strcmp(p->next->w.name,name))
) E: ?  F: [" A6 \{2 G  q( I& D5 z1 L3 m. f: N
printf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",
  s) K* G+ Q( m8 L! T  }( P! pp->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,
. y  Q* h5 h* g1 F, ^8 P0 Kp->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);2 |% ~/ m* n6 P. M
return p;9 J  I7 o% I7 C! ]% b  ~+ \0 o$ D5 ~
}
; @' L3 @8 I( k- {% o8 i# f, Vp=p->next;
- V" p9 l. I- [9 n* l1 D}5 ]# b% c! T9 g5 I
printf(".^_^.查询结束!.^_^.\n");8 n" Z8 s/ m3 u  A1 p
return NULL;
$ I5 o0 o" ^& P1 ?6 t0 Y. _5 X: t1 U} /*按职工号删除职工信息*/( [3 t8 y7 e/ w$ h1 P& ?
int del(PLINK p,int id)
2 X4 Q/ _# N* F; O{! s3 E! h- u  k! w. v
message();( h! i! |# ]2 N# o
printf("按职工号删除职工信息\n");5 n6 M- w% c; z+ b8 h( _7 O: a# _
while(NULL!=p->next)
' Y# @* i$ t2 l8 z{& Y  r- S" b' k
if(p->next->w.id==id)
, W% Z/ I+ M7 x6 ?( N. V) r. m9 H{
1 C0 O0 y; U1 F+ [+ v# E* w  U8 s/ ]8 \PLINK q=p->next;% X/ T, g/ A# h1 {  O+ D" Q) X
p->next=p->next->next;
8 E5 b3 k  F% p# ?8 O, r2 Nfree(q);
- J7 Z3 X+ x/ b4 i, [  aprintf(".^_^.删除成功!.^_^.\n");. p9 O8 R. X* \9 m: Z
return 1;$ k' V- S3 G  i3 f$ \, ?* w
}
0 ^' ]( O9 E- m! d. d' Np=p->next;5 K8 E% \. K2 e) u  k+ u1 a3 D4 G
}
0 r# S- U( {/ j1 Y% Iprintf("没有你输入的职工号!\n");
8 C/ R& O: |2 N1 ?( z0 W- i5 sreturn 7;
' T% j  U$ N! ^7 S2 ^3 `# [9 P. o} /*程序结束释放内存*/$ O7 ]# V$ p3 ]3 O* c1 \/ k
void release(PLINK p)6 @" O1 O# {1 g) e
{
& Y- i  V+ H% V4 N# m, b. rPLINK q;
( y% A' y8 q" _5 g, M) P1 `while(NULL!=p->next)
4 k2 b  ~: P2 Y4 u{
! z6 [) c& X4 n" M5 O4 t6 Kq=p;
: R; B% B5 D' J  ]7 `. R: i, ap=p->next;
) u' L( k* }! ^5 ]7 s8 |free(q);  P$ u+ ^- e7 G" q" b
}% N; O, T* L6 I5 W: P0 Q* b
free(p);
5 T/ ~3 U  I: \5 V  E7 |  R7 u} /*查询调用*/
5 H' C" S# v/ L; w7 cvoid search()
: o5 D4 F9 w. E{
/ L7 p8 b7 N! |' i# C+ d. kint id;1 J6 d6 G' Z+ \. z" N5 E% j7 x/ u* e
char name[20];
$ V: N$ J6 Q  y7 Z$ _char str[20];
7 b/ [5 S. j! Y. `: kPLINK pworker;4 c5 R  X/ {; G8 ]
int l;( B, ?$ A: C* [" |5 x9 M
printf("\t\t\t\t*姓名查找按:1*\n");
8 M  V# `2 Z5 v. g* |! o/ Gprintf("\t\t\t\t*学历查找按:2*\n");
; c# B: A* I) |( oprintf("\t\t\t\t*职工号查按:3*\n");
: l% _" s, `4 Gscanf("%d",&l);
  q% e4 n5 C5 m9 ^  h4 h" ]if(l>0&&l<4); U2 l; [7 R& c* f6 u
{switch(l)
( P9 @- [; s4 D{( P4 S% x% y) ^
case 1:printf("请输入要查询的职工姓名:");0 X: }' t8 Q6 g0 T% |- \# ?; z% c
scanf("%s",name);
; r. O; Z% e* |$ Afindname(pworker,name);
8 t  o/ m. ?) R) F* Q5 g$ jbreak;+ |/ s) b  D! H% x
case 2:printf("请输入要查询的职工学历: ");
; M, b0 ~7 a4 Y5 M# s3 ascanf("%s", str);
# p! s& |$ a2 M% D6 \find_sr(pworker, str);
- q" A0 u0 b5 u' cbreak;
7 `. [. u2 O2 }4 o! Q' I# w5 ycase 3:printf("请输入要查询的职工号:");
4 z# c7 G6 J+ g( O) Pscanf("%d",&id);
1 m0 s# W9 g7 t' `$ ]' C7 ffindid(pworker,id);
( y9 {! h; P1 t; kbreak;0 _( x; U' A& X
}4 k! S6 V( q: g5 ~
printf("\n\n选择完毕!!!");
8 g5 @. Q! S/ c7 Y; ~}
# [# Y" @% x; H% I# U5 _else printf("\t\t\t\t输入有误!!!");; Q  }, g: A, s. f& x% @5 ^
} /*修改职工信息*/5 }# M( k7 T- E0 @5 U2 G: @
int modify(PLINK p)- I" S* I5 m; G& |5 d6 @
{ int id;6 k. @' K$ a6 ?3 w3 ~+ ~8 Z0 }
PLINK q;& S/ r- H; l0 f/ e# M* @
PLINK h = NULL;
, y7 D4 y5 j% n1 q. v3 G4 D# N& B3 r# fprintf("请输入职工号(数字):");
3 M6 a% F8 e* J  I" _; E% Qscanf("%d",&id);
9 X+ L7 o: v" fh=p->next;
! V0 m: Y% q" o1 iwhile(h)
5 F) ]* j  }5 w{
" A1 ]$ @9 o4 P/ z3 x: `if(h->w.id==id)
# D3 n5 W% l0 }{
. Q9 A+ V9 e5 `9 J4 Mbreak;2 D' Q  _; M: H# G# i
}
& \9 ^4 W! f1 T& ]# [/ Oh=h->next;
% v8 i7 s+ B8 J; r- D}
. ?* ]. L0 K9 ?5 v: P( c$ Zif (h == NULL)' Q6 b6 C6 \, g  P, s1 H
{2 r1 t4 s9 G) c+ P5 h7 `
printf("找不到此职工,请重试\n");& ^. p, \* v" N" ^( C+ x1 r- S
return 7;/ N/ ]* [+ ], ~# r1 @8 N
}
/ M9 e! Y: P& g7 P/ ]printf("请输入职工姓名(文字):");/ f; H  i0 K4 c/ {4 _7 ^& D; m
scanf("%s",&h->w.name);
8 y( e- J/ p2 d3 G* Bprintf("请输入职工性别(文字):");' J& q7 v* n9 A3 r
scanf("%s",&h->w.sex);
3 k7 l# p  y4 z, ?6 sprintf("请输入职工年龄(数字):");
. R) k5 G/ M8 i# ^3 g+ l! bscanf("%d",&h->w.age);; |& ^4 D+ |) J' x0 I3 t' U
printf("请输入职工学历(文字):");
% N4 |/ _/ I" w+ x' a% @scanf("%s",&h->w.edu);
+ |3 r( k' Q* y: u7 _) ~printf("请输入职工工资(数字):");$ S5 @: d+ @8 v1 l# v- H
scanf("%d",&h->w.wages);
+ V* H/ t" Q' H2 S/ S4 S6 Mprintf("请输入职工住址(文字):");
! C, w) ~  q$ R) k. C9 Xscanf("%s",&h->w.adr);
9 c5 u9 e# y5 u# d* [" ~- J8 I$ Z. mprintf("请输入职工电话(文字):");
) n9 M* H% w5 o5 R9 @" yscanf("%s",&h->w.phone);
+ ?5 g. X: }& t+ l( Z% p' Qq->next=p->next;" r% O& t: R0 X/ k1 b6 G( z3 g; s
p->next=q;0 `/ k; Y& D0 t# o8 b$ Q
printf(".^_^.修改成功!.^_^.\n");
, U& C# H$ Z, ]return 7;$ }7 L9 P* }( X! o8 J% y
} int main()
1 p. f" Y, X$ d8 g+ S- V% O- ?% @, ^{/ i2 |8 `0 n0 {. b, u- z8 P

/ [% g' Z; N: k+ |0 @int cmd=0;" ]6 F0 J. W) L0 L
int id;: y7 m% c8 _0 a% }
char name[20];
; {& T0 N. t* j" O! l, Q1 g! R4 Gchar str[20];6 s+ ?8 x  D8 d+ s0 B0 u4 S
PLINK pworker;
& v6 t. {! p/ z2 T, r6 {0 jif(!(pworker=create())), a; q. y; L: z) C. `
{' J4 E3 D/ A- V8 T
exit(0);
( S' X1 b) J0 d) k}3 Q! ?/ \2 r$ w3 W2 w
while(cmd!=7)
5 j6 G2 w9 r% x7 s# o- [1 d6 H( g{4 {5 M- N+ a2 I3 Z* f: A* _
switch(cmd)
" z% s6 h, H& D" @0 `{
, L' c: ~/ ?  u  F" v. ocase 0: message(); break;- ?% H; X) q+ T# \6 X; o- @$ P
case 1: add(pworker); break;( ]( C/ g( b8 n2 N1 p3 }
case 2: show(pworker); break;
/ e# ^/ o! F: |3 Y$ xcase 3: search(); break;' P' ]! e2 I, i: u( ?
case 4: printf("请输入要删除的职工号:");
6 _+ C* ~8 f1 y1 `scanf("%d",&id);
2 z% f# j, l" t( V# @9 e. k- [2 qdel(pworker,id);
8 ~: X6 Z+ f: L- x8 Qbreak;
5 i; l' b' p; A/ Jcase 5: modify(pworker); break;
# B4 j; m6 T8 h. T$ L' [& J) ~case 6: message(); break;
+ C$ u( V# J! [: ~' z7 F}
' v" H6 o* P2 V% O9 uprintf("请输入操作命令数字:\n");; t6 {# O/ |+ x, G0 T
scanf("%d",&cmd);
$ a- U" K8 i$ J- `: L- n7 M}
/ w6 Y* j" X; T' A; dprintf("谢谢使用!\n");
0 [$ [$ N& G5 z) X- f. Z9 j" i. yrelease(pworker);
$ j1 e) b9 g* I* N: Kreturn 0;
) {7 i# a1 M  |0 M1 f}# b, q: [0 v) o$ w8 \

3 Q, T1 \5 N: `" C
5 s/ i4 }. c( o5 F% s9 Q! m这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!% B. ?+ ~, X* U$ D
% o9 N4 ?7 O; \3 `& K: C

5bde8c5494eef01f15b25a35e1fe9925bd317d69.jpg (118.36 KB, 下载次数: 163)

5bde8c5494eef01f15b25a35e1fe9925bd317d69.jpg






欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5