VC图书馆管理系统_第1页
VC图书馆管理系统_第2页
VC图书馆管理系统_第3页
VC图书馆管理系统_第4页
VC图书馆管理系统_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VC++综合试验图书馆管理系统.txt都是•种山H勺狐狸,你跟我讲什么聊斋,站在离你近来

的地方,眺望你对他人的微笑,虽然心是百般日勺疼痛只为把你日勺一举一动尽收眼底.耀眼

的白色,让我明白什么是纯粹的伤害。#include<stdio.h>

#include<stdlib.h>

#include<string.h>

^defineLENGTH20

^defineSUBJECT10

charsubcall[SUBJECT][LENGTH];

intnum_of_stu=0;

intnum_of_sub=0;

structdata

{

charname[LENGTH];

charnum[LENGTH];

floatscore[SUBJECT];

floatsum;

floataver;

structdata*next;

);

voidMenu(void);

structdata*Append(structdata*);

voidCheck(structdata*);

voidModify(structdata*);

voidList(structdata*);

voidSearch(structdate.*);

structdata*Delete(structdata*);

structdata*Sortl(structdata*,int(*g)(float,float));

voidSort2(structdata*,int(*g)(float,float));

intdescend(float,float);

intascend(float,float);

voidmain()

{

Menu();

)

voidMenu(void)

{

char*choice[9]={〃l.Appendrecord”,"2.Checkrecord”,"3.Modifyrecord”,"4.List

record”,"5.Searchrecord”,"6.Deleterecord”,"7.Sortscoreindescending

order”,"8.Sortscoreir.ascendingorder","().exit“};

structdata*head=NULL;

charreply,c;

intn=0,k,i;

for(i=0;i<9;i++)

k=strlen(choice[i]);

n=(n>k)?n:k;

)

while(l)

(

systemC"cls*);

printfC\t\tWelcometotheStudents'ScoreManagementSystem\n");

printf(*\t\t\t-------------------------------------'n");

for(i=0;i<9;i++)

(

printf("\t\t\tI%s”,choice[i]);

k=strlen(ckoice[i]);

for(;n-k>0;k++)

putcharC');

printf(〃|\「");

}

printf-------------------------------------\n");

while(l)

printf(/,Pleaseinputyourchoice:");

reply=getckar();

if(reply=八n')

continue;

else

c=getckar();

if(reply>=,0,&&reply<=,8*&&c==*\n*)

break;

elseif(c!=,\n)

while(c=getchar()!=,\n*);

printf("Thereisnosuchchoice!\n*);

)

if(reply〉'l'&&tead二二NULL)

printf("Thereisnodatastored!\n^);

else

(

switch(reply)

(

case'1':hecid=Append(head);break;

case'21:Check(head);break;

case'3':Modify(head);break;

case'4':List(head);break;

case*5':Search(head);break;

case'6':head:Delete(head);break;

case'7':Sort2(head,descend);break;

case'8':Sort2(head,ascend);break;

default:while(l)

(

printf("Doyoureallywanttoexit(Y/Nory/n)?");

reply=getchar();

if(reply==,\n)

continue;

else

c二gelchar();

if((reply==,Y*||reply==,N,||reply==,y,||reply==,n*)&&c==,\n,)

break;

elseif(c!=,\n)

while(c=getchar()!='\n);

)

if(reply==,Ys||reply==,y*)

free(head);

return;

)

)

)

while(l)

(

printf(''PressENTERtocontinue:,/);

scant(飞c”,&reply);

if(reply=-\n*)

break;

else

while(c=getchar()!二'\n*);

}

}

)

structdata*Append(structdata*head)

{

structdata*p;

charreply,c;

inti;

system("cis");

if(head==NULL)

(

p=head=(structdata*)malloc(sizeof(structdata));

printf(^Howmanysubjectsdoyouwanttorecord(n<=%d)??/,SUBJECT);

scanf(螺&num_of_sub);

for(i=0;i<numofsub;i++)

(

printfCrieaseinputsubjected'sname:",i+1);

scanf("%s%*c〃,subcall[i]);

)

}

else

(

for(p=head;p->rext!二NULL;p=p->next);

p->next=(structdata*)malloc(sizeof(structdata));

p=p->next;

)

loop:printf(Z,Pleaseinputthestudent*sname:");

scanf(“%s%*c",p->nsme);

printf(^Pleaseinputthestudent,snumber:,z);

scanfC,%s%*c,z,p->num);

p->sum=O;

for(i=0;i<num_of_stb;i++)

(

printf(^Pleaseinputthestudent*s%sscore/',subcall[i]);

scanf&p->score[i]);

p->sum+=p->score[i];

)

p->aver=p->sum/numof_sub;

num_of_stu++;

while(l)

(

printf(''Doyouwanttogooncippending(Y/Nory/n)?〃);

reply=getchar();

if(repl尸'\n)

continue;

else

c=getchar();

if((reply==,YJ||reply==,N,||reply==,y,||reply==,nJ)&&c==,\n)

break;

elseif(c!=,\n')

while(c=getchar()!='\n);

)

if(reply==,Y*||reply==,y1)

(

p->next=(structdata*)malloc(sizeof(structdata));

p=p->next;

gotoloop;

}

else

(

p->next=NULL;

returnhead;

)

)

voidCheck(structdata*head)

{

structdata*p,*q;

structdata**t=(structdata**)malloc(num_of_stu/2*sizeor(structdata*));

intminlim,maxlim,TFO,i;

system("cis");

for(p=heaci;p!=NULL;p=p->next)

for(i=0;i<n;i++)

if(strcmp(p->name,(*(t+i))->name)==0)

break;

)

if(i<n)

continue;

for(q=p->next;c!二NULL;q=q->next)

(

if(strcmp(p->name,q->name)=-0)

(

prinIf(/'Name%shasbeeninputedrepeatedly!Xn^,p->name):

*(t+n)=p;

n++;

break;

)

}

)

printf(^Altogether%dnamehasbeenrepeatedlyinputed.\n,z,n);

n=0;

for(p=head;p!=NULL;p=p->next)

for(i=0;i<n;i++)

(

if(strcmp(p->num,(*(t+i))->num)==0)

break;

)

if(i<n)

continue;

for(q=p->next;c!二NULL;q=q->next)

(

if(strcmp(p->num,q->num)==0)

(

printf("Student'snumber%shasbeeninputed

repeatedly!\nz,,p->num);

*(t+n)=p;

n++;

break;

)

)

)

printf(''Altogether%dnumberhasbeenrepeatedlyinputed.\n",n);

free(t);

n=0;

printf("Nowcheckcata\n,/);

printf("Pleaseinputtheminimumlimit:");

scanf(〃/d$*c",&minlim);

printf("Pleaseinputthemaximumlimit:");

scanf(*%d%*c?,,&maxlim);

if(maxlim<minlim)

(

printf("Inputerror!Xn^);

return;

}

for(p=head;p!=NULL;p=p->next)

(

for(i=0;i<num_of_sub;i++)

(

if(p->score[i]<minlim|p->score[i]>max1im)

(

if(In)

prinlf("Thesedatahasbeenwronglyinputed:\n,z);

printf("%s's%sscore.\n^,p->name,subcall[i]);

n++;

)

)

)

printf(''Altogether%dwrongdata.\n",n);

}

voidModify(structdate.*head)

{

structdata*p;

charmodname[LENGTH],modscore[LENGTH];

charreply,c;

inti:

system("cis");

do

(

printf("Pleaseinputthenameofthestudentwhosedatayouwanttomodify:");

scanfmodname);

for(p=head;p!=NUI.I>&&strcmp(p->name,modname)!=0;p=p->next);

if(p二二NULL)

printf(,zThestudentdoesn'texist!\nO;

else

(

printf(,/Successfullyfound!\n");

while(l)

(

printf("Doyouwanttomodifythestudent*snumber(Y/Nory/n1?");

reply=getchar0;

if(reply==\n)

continue;

else

c=getchar();

if((reply==,Y*||reply==,N,||reply==,y>11reply-*n*)&&c==,\n)

break;

elseif(c!=,\n)

while(c=getchar()!='\n);

)

if(reply二二'Y'||reply二二'y')

(

printf("Pleaseinputthestudent,snewnumber:");

scanf(线s**c〃,p->num);

)

whi1e(1)

printf(/'Doyouwanttomodifythestudent*sscore(Y/Nory/n}?");

reply=getchar();

if(reply==*\n*)

continue;

else

c=getchar();

if((reply==*Y*||reply-*N*||reply==,y,||reply==,n')&&c==,\n')

break;

elseif(c!=,\n)

while(c=getchar()!='\n);

)

if(reply-*Y*||reply==,y')

(

do

(

printf(''Pleaseinputthenameofthesubjectwhosescoreyouwant

tomodify:〃);

scanf(飞s**c”,modscore);

for(i=0;i<numofsub;i++)

if(strcmp(subcall[i],modscore)==0)

p->sum-=p->score[i];

printf(^Pleaseinput%s'snew%s

score:",p->name,modscore);

scanf(/z%f%*c,z,&p->score[i]);

p->sum+=p->score[i];

break;

)

)

if(i==num_of_sub)

Drintf(z,Thesubjectdoesn'texist

while(l)

(

printf("Doyouwanttogoonmodifyingthestudent*sother

scoresofsubject(Y/Nory/n)?〃);

reply=gelchar();

if(repl尸'\n)

continue;

else

c=getchar();

if((reply==,Y*|Ireply-^*||reply==*y,||reply==,n)&&c==,\n)

break;

elseif(c!=*\n*)

while(c=getchar()I-\n');

)

}

while(reply=-Y*||reply==,y');

p->aver=p->sum/num_of_sub;

)

)

while(l)

(

printf(^Doyouwanttogoonmodifyingotherstudents5data(Y/Nor

y/n)?9;

reply=getckar();

if(reply==,\n)

continue;

else

c=getchar();

if((reply==>Y>||reply==,N,||reply==,y,||reply==,n*)&&c==,\n)

break;

elseif(c!=,\n)

while(c=getchar()!='\n);

)

)

while(reply==,Y)||reply==,y*);

)

voidList(structdata*head)

{

structdata*p;

intnl=0,n2=0,k,i;

system("cis");

printf(^name〃);

for(p=head;p!=NULL;p=p->next)

(

k=strlen(p->name);

nl=(nl>k)?nl:k;

)

nl=(nl>4)?nl:4;

for(i=0;i<nl-4;i++)

putchar(*');

printf(^number");

for(p=head;p!二NULL;p=p->next)

(

k=strlen(p->num);

n2=(n2>k)?n2:k;

)

n2=(n2>6)?n2:6;

for(i=0;i<n2-6;i++)

putchar(*');

for(i=0;i<numofsub;i++)

printf(*%s",sibcall[i]);

if(numofsub>0)

printf("sumaver");

pulchar('\n);

for(p二head;p!;NULL;p=p->next)

(

printf(,z%s”,p->name);

k=strlen(p->name);

for(i=0;i<nl-k;i++)

pulchar('');

printf(飞s”,p->num);

k=strlen(p->num);

for(i=0;i<n2-k;i++)

putchar(*');

for(i=0;i<numofsub;i++)

(

printfC*%.If/,,p->score[i]);

k=strlen(svbcall[i]);

for(;k-4>0;k一)

putchar(*');

)

if(num_of_sub>0)

printf(*%.2f%.2f*»p->sum,p->aver);

putchar(*\n);

}

,,

printf(^Altogether%drecords.\n>num_of_stu);

)

voidSearch(structdata*head)

{

structdelta*p;

charfindname[LENGTH]={>\0J};

charfindnum[LENGTH]={>\0*);

charreply,c;

intflag,nl,n2,k,i;

system("cis");

do

(

printfC'Doyouwanttosearchthestudentbyname(enter1)orbynumber(enter

2)?〃);

scant-&flag);

)

while(flag!=l&&flag!=2);

do

(

if(flag==l)

(

printf("Pleaseinputthenameofthestudentyouarefinding:");

,,,,

secinf(%s%*c,findname);

}

else

printf(^Pleaseinputthenumberofthestudentyouarefinding:v);

scanf(飞s%*c”,findnum);

)

for(p=head;p!=NULL;p=p->next)

(

if(strcmp(p->name,findname)==Ostrcmp(p->num,findnum)==0)

(

printf(/'successfullyfound:\nname〃);

nl=strlen(p->name);

nl=(nl>4)?nl:4;

for(i=C;i<nl-4;i++)

putchar(*');

printf("number");

n2=strlen(p->num);

n2=(n2>6)?n2:6;

for(i=C;i<n2-6;i++)

putchar(*');

for(i=0;i<num_of_sub;i++)

printf(,z%ssubcall[i]);

if(num_of_sub>0)

pi'intf(^sumaver");

pulchar('\n5);

printf('/%s”,p->name);

k=strlen(p->name);

for(i=C;i<nl-k;i++)

putchar(*');

printf(",%s”,p->num);

k=strlen(p->num);

for(i=C;i<n2-k;i++)

putchar(*');

for(i=0;i<numofsub;i++)

(

printf("%.Ifp->score[i]);

k=strlen(subcall[i]);

for(;k-4>0;k—)

putchar(s');

}

if(num_of_sub>0)

printfC%.2f%.2f〃,p->sum,p->aver);

pulchar('\n');

break;

)

)

if(p==NULL)

printf(*Thestudentdoesn*texist!\nO;

while(l)

(

printf(^Doyouwanttogoonsearching(Y/Nory/n)?");

reply=getckar();

if(reply==,\n)

continue;

else

c=getchar();

if((reply==,Y)||repl7==^,||reply==,y*||reply==,n*)&&c==,\n)

break;

elseif(c!=,\n)

while(c=getchcir()!='\n*);

)

}

while(reply==,Y*||reply==,y*);

)

structdata*Delete(structdata*head)

structdata*p,*q;

chardelname[LENGTH]={>\0*);

chardelnum[LENGTH]={,\0*);

charreply,c;

intflag;

system("cis");

do

(

printf("Doyouwanttodeleteallthedata(enter1)orjustonestudent's

data(enter2)?");

scanf&flag);

)

while(flag!=l&&flag!=2);

if(flag==l)

(

num_of_stu=0;

free(head);

printf(''Successfullydeleted!\n");

returnNULL;

)

else

do

printf(,/Doyouwanttodeletethedatabyname(enter1)orbynumber(enter

2)?〃);

scanf(“%d%*c",&flag);

)

while(flag!=l&&flag!=2);

do

(

if(flag==l)

(

printf("Pleaseinputthenameofthestudentwhosedatayouwantto

delete:"):

scanfdelname);

)

else

(

printf(/'Pleaseinputthenumberofthestudentwhosedatayouwant

todelete:〃);

scanf(线s**c〃,delnum);

)

for(p=head;p!=NULL;q=p,p=p->next)

if(strcmp(p->name,delname)==0|strcmp(p->num,delnum)-0)

{

if(p==head)

head=p->next;

else

q->next=p->next;

num_of_stu一;

free(p);

printf(''Successfullydeleted!\n,/);

break;

)

}

if(p==NULL)

printf(/'Thestudentdoesn'texist!\n,/);

if(num_of_stu==0)

reply=,N,;

else

whi1e(1)

printf(?,Doyouwanttogoondeleting(Y/Nory/n)?");

reply=getchar();

if(repl7=*\n)

continue;

else

c=getchar();

if((reply==,Y*|Ireply"^'||reply==,y,||reply==,n)&&c==,\n)

break;

elseif(c!=,\n*)

while(c=getchar()!=,\n);

}

}

)

while(reply==,Ys||reply==,y*);

returnhead;

)

)

structdata*Sortl(structdata*head,int(*g)(float,float))

structdata*p,*q,*t,*pf=NULL,*qf=NULL,*tf=NLLL,*temp;

system(?,cIs*);

for(p=head;p!二NULL;pf=t,p=t->next)

(

t=p;

for(q=p->next;c!=NULL;qf=q,q=q->next)

(

if((*g)(q->sum,t->sum))

(

t=q;

tf=qf;

}

}

if(t!=p)

(

if(p二二head)

head二t;

else

pf->next=t;

if(t==p->next)

p->next=t->next;

t->next=p;

)

else

(

temp=p->next;

p->next=t->next;

t->next=temp;

tf->next=p;

)

)

)

List(head);

returnhead;

)

voidSort2(structdata*head,int(*g)(float,float))

{

structdata**queue=(structdata**)malloc(num_or_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论