数学建模社区-数学中国

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

作者: wangzheng3056    时间: 2013-7-23 15:39
标题: 【转载】C++源代码--学生&教工管理系统 求大神帮忙改错~!
#include <stdlib.h>$ d3 f- t7 B7 l) J% Z
#include <stdio.h>
  I: f6 d  j4 z, {# D+ b! ^#include <malloc.h>6 p8 j; S+ O# \+ \% Y5 l- L+ ^( F
#include <string.h> / o% J. o* G- f) o( x6 P
typedef struct worker
; \5 O9 p( r9 L" p) @# l( @{
" X: {+ V/ H3 T; D9 bint id;* [5 x5 K0 R  |! I0 u3 Z
char name[20];6 j' ]$ F4 C- h! L% r
char sex[3];
6 l. L# ^4 r7 z" n  M$ ^int age;
9 H4 a" P1 ^5 h1 ?5 w3 r' Y- b) Achar edu[50];
. |& i* [5 I# T0 Iint wages;$ i; \- }- a6 a, l8 ]/ W- [
char adr[255];. p# e# V9 R1 X- _( E  S
char phone[13];
5 l5 x# R6 d5 e1 c}WORKER, *PWORKER;) Q* {" Z! Y/ Y% d+ e
//typedef struct WORKER *PWORKER;
& [; T9 r: f% Mtypedef struct link/ r; n$ D% S( F. U9 V
{1 @8 O3 O# \7 l3 p
WORKER w;4 \) @5 |/ b, V; `) r
struct link *next;
# I2 g$ x* U5 G! m/ D}LINK, *PLINK;
/ k; i: [& S+ r% `% k4 J//typedef struct LINK *PLINK; /*创建职工信息链表*/
9 Q) E* y0 L: A, ?6 ~- Q8 fPLINK create()
' _8 ?9 Q; h. n{
$ R$ y" J1 p3 I; RPLINK p=(PLINK)malloc(sizeof(LINK));% g% L/ x/ Z) v+ X. h  i
if(NULL!=p)
; M* s9 \+ B5 t* a{
4 z8 x. R4 D; e2 ?4 fp->next=NULL;7 v7 ^1 y4 c1 C$ f4 M
return p;8 S  M( v+ I3 O5 s/ w3 b
}
; ], C9 G# u! n% V& ?- aprintf("内存不足!\n");9 B9 y6 q% {" ~7 V! G1 ?
return NULL;
" C# x% c& s$ z6 D8 f3 o; O) F. T} /*显示程序界面文字*/
; K) W: l6 J: T; wvoid message()
. c: a- L# [2 m) r. n" o5 [{ system("color 0f");/*设置当前窗口的背景色和前景色*/
3 w8 \% x, _  v, \/* 0 = 黑色 8 = 灰色
3 R" Z  }/ R9 _9 n0 E1 = 蓝色 9 = 淡蓝色8 r- O: q. C- e9 y% a' G- R  W
2 = 绿色 A = 淡绿色8 a6 R$ X; w; q. {! U. `; F+ F
3 = 浅绿色 B = 淡浅绿色
& B( F! T/ v7 s6 t1 H' M- l4 = 红色 C = 淡红色
4 A+ ~% J( _* {7 a. a* d2 x3 p5 = 紫色 D = 淡紫色
/ U; [( c$ ~7 X, Z% [$ `6 = 黄色 E = 淡黄色3 c: A. h; T3 B( v+ O3 B' ~
7 = 白色 F = 亮白色*/
# G; B* n6 y3 Gsystem("cls");! h( ]5 U5 e8 Z" D0 S4 m' t- z
printf("\t\t************************************************\n\n");
3 F! k8 n4 A* c) ~; V3 xprintf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");/ H  b8 T9 q7 c" B2 I2 }
printf("\t\t************************************************\n\n");8 e' ~/ A5 }- M7 f( Q
printf("\t\t ************** Choose Function *************\n\n");1 o/ v0 z* C; F: P; b( g
printf("\t\t ************ 帮助 请输入:0************\n\n");
, O" V" ]  |8 {( V, nprintf("\t\t ************录入职工信息 请输入:1************\n\n");
4 u: G, t# d. Y5 g$ fprintf("\t\t ************浏览职工信息 请输入:2************\n\n");
6 a  P- T/ z1 Y. Q7 H- Cprintf("\t\t ************查询职工信息 请输入:3************\n\n");
' r6 G1 C# b+ e  h, D. U8 Pprintf("\t\t ************删除职工信息 请输入:4************\n\n");' @/ l3 I" ]0 ]6 l
printf("\t\t ************修改职工信息 请输入:5************\n\n");: O/ p0 c" m& p2 o# N. v: P+ k$ ~
printf("\t\t ************ 清屏 请输入:6************\n\n");
$ J5 G8 |2 U0 eprintf("\t\t ************ 退出 请输入:7************\n\n");6 G+ c7 s( k. H- K0 D/ B' s
printf("\t\t************************************************\n\n");" X- d* }/ N' n- h2 d
printf("\t\t************************************************\n\n");# j' k! C3 z+ o: Z6 }0 r" s2 |
} void find_sr(PLINK plink, char* str), \# j+ W& T  A3 I, ]) U: [" C
{
% s  {7 r& l" a& |; H; W/ I) p+ ffor(PLINK curr = plink->next; curr != NULL; curr = curr->next)
& I% m! M9 a0 F" ?' S{7 Y" x& I$ c$ O9 u
if(strcmp(curr->w.edu, str) == 0)) y+ J/ A+ Z  q8 q, K
{
! q4 u; S0 W6 h/ Rprintf("职工工号:%d\n",curr->w.id);
+ m+ i5 F& g( l" `$ Mprintf("职工姓名:%s\n",curr->w.name);1 m1 S5 [' F8 [. M/ q& l# q
printf("职工性别:%s\n",curr->w.sex);" E& V1 c& S" V7 ~1 s6 W
printf("职工年龄:%d\n",curr->w.age);" ^3 n6 K7 J. S7 K2 R6 f0 x- ~( @% l
printf("职工学历:%s\n",curr->w.edu);
' N+ G' N1 ]! `! S2 Rprintf("职工工资:%d\n",curr->w.wages);' i; h2 g9 j, \# A3 i
printf("职工住址:%s\n",curr->w.adr);& x3 z! I, K7 s# P" W2 y, G
printf("职工电话:%s\n",curr->w.phone); }
( d( F! S3 ]3 E}
9 {2 ]4 D- ^6 N6 L" G} void findid(PLINK plink, int id)
/ b/ O% C4 z! X  t{
* h. e' U0 [  I2 Gfor(PLINK curr = plink->next; curr != NULL; curr = curr->next)
$ g/ e- s8 @+ |* S$ x% M8 v& L; u{7 s) Y% X* s* F' J' E. x
if(curr->w.id == id)0 ?! t7 v+ D7 A6 b9 ]6 `7 Y
{
; K3 b+ z. q$ r1 x' {. n' uprintf("职工工号:%d\n",curr->w.id);* U9 F, ?3 m  E' ]  V- U$ p
printf("职工姓名:%s\n",curr->w.name);
; }  i6 e: Z! Pprintf("职工性别:%s\n",curr->w.sex);
2 S  v# ^$ y) bprintf("职工年龄:%d\n",curr->w.age);' g/ o1 [0 n0 R0 T
printf("职工学历:%s\n",curr->w.edu);
/ W2 T. R4 z! e7 n7 m% C; K5 Wprintf("职工工资:%d\n",curr->w.wages);! A9 K- U, z$ Y3 x
printf("职工住址:%s\n",curr->w.adr);
5 c/ e; s8 W# `+ D9 q) _printf("职工电话:%s\n",curr->w.phone); }! P5 C% }9 ]6 A3 [/ p
}
8 F0 j" f5 U' Z: {! e  z} void show(PLINK plink)
  z5 P% C. e4 V- e{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
8 r# L% n$ N4 @2 P$ B' z  F7 W{
8 G* N7 V- l' a0 d* q% V8 Q" R( I7 hprintf("职工工号:%d\n",curr->w.id);$ n+ U& x& v4 f$ _+ L+ V3 V
printf("职工姓名:%s\n",curr->w.name);1 F$ O. F8 z' j7 @) ~1 [( @
printf("职工性别:%s\n",curr->w.sex);
7 z3 Q$ k6 o2 C" @printf("职工年龄:%d\n",curr->w.age);3 Y7 @. I% @0 G. r
printf("职工学历:%s\n",curr->w.edu);
5 m+ v) {4 |0 f4 iprintf("职工工资:%d\n",curr->w.wages);
: l7 n+ l1 ?( q. g( I. K' w0 xprintf("职工住址:%s\n",curr->w.adr);# Z, c6 f2 A7 `$ k3 P; W
printf("职工电话:%s\n",curr->w.phone);4 A9 G' L- \  }  E$ v) F
}
. x' x+ J6 Z6 I) x} /*录入职工信息*/2 F8 c% H! j* J- M: T( }8 P4 a1 Y. `
int add(PLINK p)
8 ]1 Z  D% H: j{& v9 O  t" H; m1 [, p
PLINK h = NULL;
' }1 a1 ?- K5 H3 W" s+ X, A! [8 kPLINK q=(PLINK)malloc(sizeof(LINK));
# h5 g, e3 h  W$ z" K) Mif(NULL==q)
3 ]# Y. N5 \# ^% H' x% {{; R6 I; N- p3 n$ Q- u( ^
printf("录入失败提示:内存不足!\n");- E3 P1 H  ~% e$ V( E; N
return 7;, n/ e8 g! L) i' d+ ~2 a
}
: i9 `# {9 g8 lprintf("请输入职工号(数字):");
$ @( k0 M0 y: k1 h4 B# K" kscanf("%d",&q->w.id);- z& L( t% R2 q. j
h=p->next;
' b2 _! S, e1 T; l& Uwhile(h)
9 N5 m2 Z! g0 J0 ^8 b  f7 v{- Z8 o! s# v8 a) ]1 o6 P
if(h->w.id==q->w.id)
/ t/ y, m- f& L9 Q{4 c) W% S( B, S9 W! a
free(q);
7 ?, }9 c. Z4 j4 {2 g$ eprintf("录入失败提示:此职工号已经存在!\n");
9 R+ K8 A8 i8 f- D9 p' T% l: Z. @return 7;2 C- y3 w) h  c9 d6 y: Y
}
) t' j5 h- r+ N4 P6 L1 e' Nh=h->next;  A  P; J- c" E0 u2 O% q) _, ~
}
  w& x( j. b3 a/ Kprintf("请输入职工姓名(文字):");( r1 X- }# `: m! Q. J3 o
scanf("%s",&q->w.name);
% Z2 J! G, r" O( Cprintf("请输入职工性别(文字):");) U6 ]" l& `( V; f, j
scanf("%s",&q->w.sex);
* X& s+ {# n# ]6 h- lprintf("请输入职工年龄(数字):");9 o* Y. r& \2 r: ~' x  ?1 ?
scanf("%d",&q->w.age);, r0 h# h) C. I  o4 y
printf("请输入职工学历(文字):");
; G( H" ~- K: \( kscanf("%s",&q->w.edu);( [6 ]9 \& N9 b1 T
printf("请输入职工工资(数字):");4 U1 {, }- ^. F" d9 [& H) a8 r
scanf("%d",&q->w.wages);
( N/ R. n4 A5 m7 n/ g& Zprintf("请输入职工住址(文字):");
1 s. ?$ L% ]+ T9 j* X; }scanf("%s",&q->w.adr);
- n$ T" Z! k; F: a( Nprintf("请输入职工电话(文字):");
( W( o# J; @6 i$ A2 rscanf("%s",&q->w.phone);
5 l. M7 G( q( Q* h& t! l# @3 |q->next=p->next;: Z7 |$ P0 h3 d' v, c6 C* }
p->next=q;4 ~" G; n. j2 t% ], q7 M& _, _
printf(".^_^.录入成功!.^_^.\n");: d8 c3 `3 l5 D' G
return 7;
0 n. y, ^( P2 e0 m} /*按姓名查询*/
! x3 c- D. |/ k# Z- K) zPLINK findname(PLINK p,char *name)
1 p0 I! B2 L8 v{1 C, V! e4 b; l6 e! g) ?
message();, i5 I) C& H. U( }+ c
printf("按姓名 查询\n");
8 p* D! ?; p( J* E! R, Xprintf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");
2 `* s+ C, [$ T$ m, Fwhile(NULL!=p->next)2 N- _3 a- Y9 f; ]& F- T% q8 d) L
{
9 C# q$ R& r. i8 vif(0==strcmp(p->next->w.name,name))
; j( \( S9 r1 Z: H% A" j4 ^6 t$ ~& {{: R* o0 f! x( @% A9 l: {" ?! T
printf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",
! h, \  }/ j8 G# _p->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,/ Y! |3 x+ c3 n/ B
p->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);* o, w8 N2 h1 n! v9 c. O9 Q
return p;
( R  e2 Z3 w, E* ]5 m* S}
4 E$ w8 J/ P; ?5 Cp=p->next;2 d% Q, L8 u& A9 D# ]) o2 a
}$ q% c% J6 v4 \* o( [
printf(".^_^.查询结束!.^_^.\n");0 P1 c/ M; ~' }5 ~
return NULL;
' J: J% U  D+ a5 \" B, k} /*按职工号删除职工信息*/
6 M  b: H3 q' K/ Vint del(PLINK p,int id)
, F% j5 j9 n0 Y+ Z/ t3 [0 w/ F{% J, d6 U; c& V! P/ t( a: k; ?/ X
message();5 ^3 A0 k) z0 }3 V$ m
printf("按职工号删除职工信息\n");& n/ D3 N: c& [+ z) y( ~
while(NULL!=p->next)
5 X+ {. r2 v; W' E0 x{. a5 R8 X: Z. g# P' F7 |/ z
if(p->next->w.id==id)
% Y% Y! K  e3 ]' f, Z+ k9 l3 {{
% o$ @" N7 p- A/ _$ V. xPLINK q=p->next;; k1 x$ j' L2 \8 c1 [( n& t
p->next=p->next->next;5 n$ Y$ v' B) F
free(q);
) Z7 W+ O% S: n0 Iprintf(".^_^.删除成功!.^_^.\n");
$ W1 @; X" _/ C8 ?+ ]8 |9 \return 1;
: n& I. o' F4 [}
" y# X3 p* S0 y; V2 B: U4 Q# Np=p->next;
8 g9 y3 k  Z9 y, N1 H2 B) E( N}6 L; R" b  U2 r& C' [
printf("没有你输入的职工号!\n");
  r+ H' E- c+ b8 L% N4 S6 K; n7 xreturn 7;
9 a0 z! E5 z3 ]* |} /*程序结束释放内存*/
3 l, _+ s* Z- ~void release(PLINK p)" B1 L4 r, {; n4 g. k
{
1 x0 m9 S$ e5 i8 _PLINK q;$ v7 I1 y+ S) p* a- M6 S
while(NULL!=p->next)
7 E) s4 U( ?$ T1 J) k{
4 D/ D1 y* p- [q=p;+ @4 S; Q8 P9 v: N8 }( c0 m0 E( n
p=p->next;' t/ p! o. |; |  ?4 N% ^4 `
free(q);' g/ d9 S9 q- I5 T1 y+ A
}
  i3 ^. B; m2 m/ G7 Mfree(p);7 {+ y  ^3 {/ {" n& b
} /*查询调用*// C; x' f* l! f) m- c+ X
void search()8 j; K% k6 ^( p( e1 t
{6 I: |' g/ T2 W
int id;+ l" E# a. s9 D( ^/ q" {
char name[20];5 E8 S. w6 C' Z0 D+ v
char str[20];
- ~% R8 ?2 ^! Z5 B+ sPLINK pworker;
# f* M+ Y" S) Cint l;
* k) L4 T, [" Y  R9 \printf("\t\t\t\t*姓名查找按:1*\n");
" \6 J- T. J% ?+ d+ F/ w5 w: y' jprintf("\t\t\t\t*学历查找按:2*\n");, v* T5 h. O% x1 n; R& o
printf("\t\t\t\t*职工号查按:3*\n");
& ~# {* C0 y; g- \3 {scanf("%d",&l);
& d# A$ b* c( c$ ^if(l>0&&l<4)
) |5 s' |$ p5 a* ~3 O+ i- f{switch(l), F& Z! L) x: p( n9 p% w
{8 V0 j( f3 f( x- |
case 1:printf("请输入要查询的职工姓名:");
: Q6 K7 k- A0 R4 B! S/ Y: uscanf("%s",name);
' }: P- l5 I* b$ Bfindname(pworker,name);
: f# o* p3 j, K3 B% @break;
. f* ?# l- P& }2 N0 A& G9 Dcase 2:printf("请输入要查询的职工学历: ");) C# f4 l# D# ]$ o5 ~
scanf("%s", str);
! i/ l) I7 `' i0 o2 a5 Yfind_sr(pworker, str);
( C4 i: C5 g9 h/ _break;( m. `; i! N. y5 T4 e
case 3:printf("请输入要查询的职工号:");! M8 V1 }2 V' e0 v- D
scanf("%d",&id);
; @1 g% g* G; [3 n1 Jfindid(pworker,id);  }5 ]" W. i9 a' i
break;3 h- P  x9 @& S. [0 C
}
# Z6 ^- T$ ?2 e6 [0 p0 iprintf("\n\n选择完毕!!!");
/ K9 l, }  p! y+ C4 i) C' w}
* ^- I2 V6 C, }( Kelse printf("\t\t\t\t输入有误!!!");" c0 K4 \2 H4 Z0 Z+ X1 B# T6 w
} /*修改职工信息*/- v4 r/ A  B9 m' e) r$ [
int modify(PLINK p)) O3 z7 i+ L; k- {' q
{ int id;
8 |  _! y' J' iPLINK q;. y, O/ ]4 _" `4 B0 _$ p
PLINK h = NULL;$ ^# r5 J% n6 z
printf("请输入职工号(数字):");- Z3 F% n" T2 W+ r( T
scanf("%d",&id);. |5 l( l6 C2 ~! D/ r0 F; G
h=p->next;
' i! P' E4 P) J! g4 rwhile(h); l* U. ^, L/ O
{
+ `# P# Y) u6 B+ Hif(h->w.id==id)
2 s8 L  B" k2 m' W{! \' d- s1 P' J9 w. X) |! E
break;1 V3 g1 S" c* c' S+ N  j
}. d# [+ S5 g) P+ ~: S' j& I# P
h=h->next;, V. \: F1 Z& C- I) R" p
}
5 W, ]0 T3 b& V  Q" V# r, ]if (h == NULL)
' T8 j0 J7 `5 P+ _2 m: T% U{
% k& `2 L/ a$ Vprintf("找不到此职工,请重试\n");0 @, l' _2 X3 A8 g" S1 W; K9 P
return 7;) e' g+ d4 y+ y2 Z; [1 F( Y5 |
}" O5 u- {; I1 d% L
printf("请输入职工姓名(文字):");% W( ^/ ?5 J2 h. q
scanf("%s",&h->w.name);5 x; N8 ]% K' [# D8 I$ b# K
printf("请输入职工性别(文字):");
5 @- i' [. M0 L, A0 U6 Z0 `scanf("%s",&h->w.sex);: i9 q7 ?, C, Y7 j5 o. K
printf("请输入职工年龄(数字):");
& G8 p  ]. b& A% M. Lscanf("%d",&h->w.age);7 C8 \  i# O1 T! ]- D7 ]. C
printf("请输入职工学历(文字):");6 [6 e2 U9 t; h9 r  h( J
scanf("%s",&h->w.edu);4 b( c1 G0 w' u9 s+ h. Q; v0 l
printf("请输入职工工资(数字):");
: n$ j9 ~1 v( b/ ^scanf("%d",&h->w.wages);
# U1 B9 x' f# e) X6 @printf("请输入职工住址(文字):");6 b1 a/ L/ N# ?) l. F
scanf("%s",&h->w.adr);
+ _1 z$ Z5 M+ F  vprintf("请输入职工电话(文字):");7 h* B# I; t- f" N# S+ i
scanf("%s",&h->w.phone);
' ?$ D! E0 J7 \; \; e1 x  l  aq->next=p->next;1 o& V# B* ^- `2 v9 c8 e" E
p->next=q;" N9 C3 D! }, F# ~
printf(".^_^.修改成功!.^_^.\n");
+ @- n) ^  u6 freturn 7;
- Y, [9 a  T& {% o5 |} int main()
4 O; F0 b+ q+ L2 I4 N{+ o- s1 \/ Y- a7 r
% H/ U( O& o% w) }3 \
int cmd=0;+ E  s& e) s8 M8 V
int id;# K3 J  f! h2 X# M% n8 T$ P* N
char name[20];6 W7 c5 H& [2 Y" y$ L; p8 C, U
char str[20];, @# {8 N  A. [* ^1 S" n+ P
PLINK pworker;
. [8 ~' h* T! E7 e! Tif(!(pworker=create())): V8 b1 L" h/ B& R! s! f& Q% Z& W
{) K; k2 H# W, q7 \; f# v) C
exit(0);5 s" [% }( ]+ g0 h
}  e! w( p% p$ t- ^+ ^2 ]
while(cmd!=7)
7 G' R0 p1 b' }3 l6 ?{
; r+ p& w; {6 X1 p/ nswitch(cmd)
! y5 @  G" j- [$ U{/ C+ d3 p7 m, ]/ B
case 0: message(); break;
. l8 w: m1 m) W- z9 i* E6 hcase 1: add(pworker); break;
* k- i8 _9 h  ?case 2: show(pworker); break;# p  B7 h% C( {) s+ Y5 ^: H
case 3: search(); break;' x" ~  Y8 H4 x
case 4: printf("请输入要删除的职工号:");
8 N/ {5 E2 \+ x$ }& d# yscanf("%d",&id);
( }, K* i  m& d5 u- {) Bdel(pworker,id);1 L" i; @$ D- F( v) N, [
break;
4 [( U4 a8 P5 Acase 5: modify(pworker); break;) H. ~# L9 @+ B. _* p" r
case 6: message(); break;* _, L  X" A+ V1 _7 Q2 f
}* m) |. f2 R( Y; I
printf("请输入操作命令数字:\n");
: K; ]9 i6 w. z  `8 D3 [7 qscanf("%d",&cmd);+ [6 q- L  ?7 x7 N
}3 B1 b8 {( M# K
printf("谢谢使用!\n");6 F8 N4 X' v9 L* k; n
release(pworker);
) t% G. C8 R& p1 areturn 0;
4 K" O) h: K1 {2 U, w) W8 p}9 n7 o/ d4 B+ n
, U# l3 ?  l& U( d; @. u
! j0 g1 t6 F3 A1 n% W4 y  q% {+ Y- Y
这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!( M8 }1 h, N: L
; [5 `( x( ^/ i( R

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

5bde8c5494eef01f15b25a35e1fe9925bd317d69.jpg






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