数学建模社区-数学中国

标题: 【转载】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% ptypedef struct worker4 e; {, {0 M; }' j
{
! P& \) J( C! B) S1 S( z: P6 ~9 i" nint id;- t' ~$ v4 l* @# j* `
char name[20];
/ h6 z' O) Q6 S* Y/ Z% @1 q) schar 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( bPLINK 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 Tp->next=NULL;
- c- l6 o- J/ m  d+ x( Dreturn p;2 Z  Z& ]' D4 i& C9 X5 `$ r
}
" }1 l! t) Z* q1 k' h* Fprintf("内存不足!\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 r5 = 紫色 D = 淡紫色
# V2 t3 `* V2 W, K  l6 = 黄色 E = 淡黄色
9 X7 A# y, ^+ c- }7 = 白色 F = 亮白色*/
/ M6 v7 z4 \+ u5 R% c* r8 osystem("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- yprintf("\t\t ************ 帮助 请输入:0************\n\n");
4 n! [) [& {1 vprintf("\t\t ************录入职工信息 请输入:1************\n\n");
: B/ \4 d$ _5 @) \+ P/ Vprintf("\t\t ************浏览职工信息 请输入:2************\n\n");
3 h- X/ p, Y8 X( K% jprintf("\t\t ************查询职工信息 请输入:3************\n\n");
6 `4 J( W8 O# I, n7 @% xprintf("\t\t ************删除职工信息 请输入:4************\n\n");
* X" {1 w5 _2 s# j7 _! |printf("\t\t ************修改职工信息 请输入:5************\n\n");
& U/ n1 ~9 L( f! x% k: wprintf("\t\t ************ 清屏 请输入:6************\n\n");
  R, E' F7 x) S- k' m2 Z  gprintf("\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 Qfor(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 yprintf("职工姓名:%s\n",curr->w.name);& g# x6 z, ]! c( P
printf("职工性别:%s\n",curr->w.sex);
. }9 R! c* k3 }" P  O( D  Vprintf("职工年龄:%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& Dif(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 Kprintf("职工姓名:%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& Aprintf("职工住址:%s\n",curr->w.adr);
7 Z5 U$ m: O: i* Q. nprintf("职工电话:%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 \) hprintf("职工姓名:%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 Lprintf("职工学历:%s\n",curr->w.edu);1 j  }) b' J2 y  c7 ^
printf("职工工资:%d\n",curr->w.wages);
3 b& A& p3 _" _- }( Q# gprintf("职工住址:%s\n",curr->w.adr);
/ @: b, {) g1 v. V/ X' eprintf("职工电话:%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 pPLINK 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' Lscanf("%d",&q->w.id);
: L6 A0 k1 U8 @% ~  X( r" b& Zh=p->next;
. L, ]) {0 q0 s# T& Qwhile(h)/ R6 j; b6 [# O& j! q
{
3 f4 w+ X: Z- a6 J% Mif(h->w.id==q->w.id)
- m: ]# y5 J9 ], y; W: w$ `! l{
  l  R( o0 P  P7 V* U# Ffree(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 cscanf("%s",&q->w.name);" H- y& z* S( b" V/ l5 w/ B
printf("请输入职工性别(文字):");
9 _6 C2 u' d* t* G% o: h/ `# Cscanf("%s",&q->w.sex);
1 T6 \* s1 P: G& g( k, u# m% rprintf("请输入职工年龄(数字):");
3 `$ B% }$ [. c6 Z- N" wscanf("%d",&q->w.age);
. x  J- T7 L6 T: e, Tprintf("请输入职工学历(文字):");; 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 }/ [- Jscanf("%d",&q->w.wages);& Q* U% @7 L2 K8 \6 C
printf("请输入职工住址(文字):");
# _" s% T  j6 `9 xscanf("%s",&q->w.adr);
6 }  b1 O1 N# t" m% {# q) t/ C: Aprintf("请输入职工电话(文字):");
- ~; 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% Rprintf(".^_^.录入成功!.^_^.\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 ~( Kmessage();
7 x& W% `3 j& ^: Aprintf("按姓名 查询\n");
) l' g0 D8 D7 m+ a$ Q  bprintf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");
# S3 Y6 @6 C0 ]! T5 Mwhile(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 Ep->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,
  g& h: D7 \' B- y/ Ip->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);
7 \& k1 \7 J6 O$ i0 {0 b8 b% hreturn 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. Ureturn NULL;0 u3 \* g& I: A" R; n1 A9 k& c( H/ x; Q
} /*按职工号删除职工信息*/
) v# O. Q) `8 I1 V+ Sint del(PLINK p,int id)$ D% q9 Y! B5 N# M9 s; k( M
{
3 o9 u7 z, n2 g9 w7 a7 Wmessage();+ 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( nif(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- jp->next=p->next->next;
9 U. t/ n3 V. c8 k4 `2 {( Z* pfree(q);, q* _$ {% R  a; y5 A+ J
printf(".^_^.删除成功!.^_^.\n");
$ ?; s' `$ j* F3 N# Q! mreturn 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( qprintf("没有你输入的职工号!\n");
& ~9 P0 h1 n  J  r$ Qreturn 7;0 z7 x0 H6 [: `0 q" N* R
} /*程序结束释放内存*/
. x6 B+ I% Y! pvoid 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 Twhile(NULL!=p->next)
" O- B/ @( s% F{5 I& b1 f& R4 T% \4 S- ^/ F
q=p;
# ]& y8 I+ k3 x3 cp=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+ Fchar name[20];
- q3 `# L% K* D1 k1 Rchar 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; Aprintf("\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 oprintf("\t\t\t\t*职工号查按:3*\n");
! D: H4 R% j/ [6 A" Kscanf("%d",&l);
. ?0 l5 Q% i( }; s( Uif(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 Icase 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 iscanf("%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+ Gprintf("\n\n选择完毕!!!");5 C; V5 i! D; D/ _! o# f* m
}
. u  V# ^& z0 P) z5 kelse printf("\t\t\t\t输入有误!!!");
2 P) L. ?/ S8 p1 |" F4 R3 r} /*修改职工信息*/
6 L% A2 O, ]7 Qint modify(PLINK p)" E) R) P0 l! y# w
{ int id;
1 X) N7 [+ Y) J8 J( F+ \' _* v( A( sPLINK q;
) w  j& Q( d' m' xPLINK h = NULL;* E& [5 _. ^4 d* h8 \; j
printf("请输入职工号(数字):");
9 q7 g7 p: E" |, {( |5 ^1 yscanf("%d",&id);
( ]" z/ T0 ^& T/ mh=p->next;* w" R. g8 J+ n5 Y* P
while(h)
# o' v2 X( G& x/ ]0 Q+ z{
" r# v. y6 d: yif(h->w.id==id)& {% d! [2 l) L9 _$ d8 e* c
{
7 o; |. e/ }6 `& E: r- W" n: B' _* ebreak;4 m9 t* K' N+ ^: _# R
}
5 g  t+ ?$ }; o# Xh=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 zprintf("找不到此职工,请重试\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! {) Xprintf("请输入职工性别(文字):");
5 |. H4 }7 j2 T: E: zscanf("%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, rprintf("请输入职工电话(文字):");! 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% kp->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 nint id;4 M  j' E! `  o9 c( c
char name[20];
/ N: p# A1 J5 E. G8 bchar str[20];: Y8 {+ c& _( q0 D0 P) |# e
PLINK pworker;
$ J# j* i1 c: Hif(!(pworker=create()))  D* ~; |2 s% O/ x
{
5 Y# \( t& c+ n/ l* d2 aexit(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 |, Bswitch(cmd)
: f# p) B( R: n+ W{
: ?8 D" V2 F0 @) ?6 y; fcase 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 Wbreak;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 ~& hscanf("%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" C4 m8 N5 ~8 c0 V' [

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

5bde8c5494eef01f15b25a35e1fe9925bd317d69.jpg






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