版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 金东区海棠东路武义江大桥改造工程桥梁荷载试验检测招标文件
- 信阳市2026届高三第二次联考语文试卷含解析
- 教育研究方法基础(第4版)课件 第7-12章 教育统计与教育测验-教育研究成果表述
- 【海口市L大酒店餐饮部员工满意度的影响因素研究11000字(论文)】
- 26年基础护理服务等级认定课件
- 【2026】软件资格考试信息处理技术员(基础知识、应用技术)合卷(初级)备考要点精析年
- 26年银发哮喘持续状态案例课件
- 26年银发疾病话题规避技巧课件
- GEO优化系统测评:2026年品牌提及率提升TOP3平台深度解析与选型指南
- 安全注射培训
- 读后续写专题之巧用修辞手法课件高三英语二轮复习
- 网约车停运损失费起诉状模板
- 门面装修合同
- 临床疗效总评量表(CGI)
- 抑郁症临床路径(2012年版)
- 泵-容积泵的特点及应用
- 中西方沟通的差异课件
- 扫描电子显微镜(SEM)
- 【北师大版】四年级数学下册全册23套试卷(解析版)
- 2023年国家义务教育质量监测工作应急预案
- 高考语文思辨类作文总体写作指导-高考语文思辨类作文写作全面指导
评论
0/150
提交评论