c语言图书管理系统

给你一个我以前编的学生管理系统 参考下其实这些东西都一眼的。

#include "stdio.h"

#include "string.h"

struct student

{int num;

char name[10];

char sex[10];

char brith[20];

char academy[20];

float score[5];

float average;

}stu[30];

int m=0,o;

void main()

{

void SR();

void TJ();

void CX();

void SC();

void CR();

void XG();

int n;

printf("请输入统计人数:");

scanf("%d",&o);

do{printf(" # %d学生 4门课的统计程序 #\n 1 成绩录入;\n 2 成绩查询;\n 3 成绩统计;\n 4 删除录入;\n 5 插入学生 \n 6 修改学生 \n 7 退出",o);

printf("\n输入1-7选择。请选择:");

scanf("%d",&n);

if(n==1) SR();

else if(n==2) CX();

else if(n==3) TJ();

else if(n==4) SC();

else if(n==5) CR();

else if(n==6) XG();

else if(n==7) printf("谢谢使用");

else printf("无此选项!自动返回!\n");}

while(n!=7);

}

void SR()

{int y,i,j,t,k,n; float x;

if(m==1)

{printf("成绩已录入,数字键返回");

scanf("%d",&y);

goto loop;}

for(i=0;i

{printf("输入第%d名同学的信息\n",i+1);

printf("学号:");

scanf("%d",&stu[i].num);

printf("\n姓名:\n");

scanf("%s",&stu[i].name);

printf ("\n性别:\n");

scanf ("%s",&stu[i].sex);

printf("\n出生日期:\n");

scanf("%s",&stu[i].brith);

printf("\n系别:\n");

scanf("%s",&stu[i].academy);

printf("\n分数:\n");

for(j=0;j<4;j++)

{printf("第%d科",j+1);

scanf("%f",&stu[i].score[j]);}

x=0;

for(t=0;t<4;t++)

x=x+stu[i].score[t];

stu[i].average=x/4;}

printf("输入的成绩为:\n");

printf("学号 姓名 性别 出生日期 系别 第一科 第二科 第三科 第四科\n");

for(k=0;k

printf("%-6d%-10s%-6s%-13s%-7s%-7.2f%-9.2f%-9.2f%-9.2f\n",stu[k].num,stu[k].name,

stu[k].sex,stu[k].brith,stu[k].academy,stu[k].score[0],stu[k].score[1],stu[k].score[2],stu[k].score[3]);

printf("重新输入请按 0,其他数字键返回");

scanf("%d",&n);

if(n==0)

SR();

else m=1;

loop:{};}

void CR()

{int i,k,j,t,n,w=-1;float x;

if(m==0)

{printf("请先输入成绩!\n");

goto loop;};

printf("插入的学号:");

scanf("%d",&stu[o].num);

printf("\n插入的姓名:\n");

scanf("%s",&stu[o].name);

printf ("\n插入的性别:\n");

scanf ("%s",&stu[o].sex);

printf("\n插入的出生日期:\n");

scanf("%s",&stu[o].brith);

printf("\n插入的系别:\n");

scanf("%s",&stu[o].academy);

printf("\n插入的分数:\n");

for(j=0;j<4;j++)

{printf("第%d科",j+1);

scanf("%f",&stu[o].score[j]);}

o=o+1;

for(i=0;i

{x=0;

for(t=0;t<4;t++)

{x=x+stu[i].score[t];}

stu[i].average=x/4;}

printf("各学生成绩:\n");

{printf("学号 姓名 性别 出生日期 系别 第一科 第二科 第三科 第四科 平均\n");

for(k=0;k

printf("%-6d%-10s%-6s%-13s%-7s%-7.2f%-9.2f%-9.2f%-9.2f%-9.1f\n",stu[k].num,stu[k].name,

stu[k].sex,stu[k].brith,stu[k].academy,stu[k].score[0],stu[k].score[1],stu[k].score[2],stu[k].score[3],stu[k].average);}

printf("重复插入请按 0,其他数字键确认");

scanf("%d",&n);

if(n==0)

CR();

loop:{};}

void SC()

{int k,j,t,n,w=-1;

if(m==0)

{printf("请先输入成绩!\n");

goto loop;};

printf("各学生成绩:\n");

{printf("学号 姓名 性别 出生日期 系别 第一科 第二科 第三科 第四科 平均\n");

for(k=0;k

printf("%-6d%-10s%-6s%-13s%-7s%-7.2f%-9.2f%-9.2f%-9.2f%-9.1f\n",stu[k].num,stu[k].name,

stu[k].sex,stu[k].brith,stu[k].academy,stu[k].score[0],stu[k].score[1],stu[k].score[2],stu[k].score[3],stu[k].average);}

chucuo:printf ("你要删除的学号:");

scanf("%d",&j);

for(t=0;t

{if (stu[t].num==j)w=t;}

if(w!=-1)

{o=o-1;

for (k=w;k

{stu[k].num=stu[k+1].num;

strcpy(stu[k].name,stu[k+1].name);

strcpy(stu[k].sex,stu[k+1].sex);

strcpy(stu[k].brith,stu[k+1].brith);

strcpy(stu[k].academy,stu[k+1].academy);

stu[k].score[0]=stu[k+1].score[0];

stu[k].score[1]=stu[k+1].score[1];

stu[k].score[2]=stu[k+1].score[2];

stu[k].score[3]=stu[k+1].score[3];

stu[k].average=stu[k+1].average;}}

if (w==-1) {printf("输入学号有误,请从新输入:");goto chucuo;};

printf("删除后各学生成绩:\n");

printf("学号 姓名 性别 出生日期 系别 第一科 第二科 第三科 第四科 平均\n");

for(k=0;k

{printf("%-6d%-10s%-6s%-13s%-7s%-7.2f%-9.2f%-9.2f%-9.2f%-9.1f\n",stu[k].num,stu[k].name,

stu[k].sex,stu[k].brith,stu[k].academy,stu[k].score[0],stu[k].score[1],stu[k].score[2],stu[k].score[3],stu[k].average);}

printf("重复删除请按 0,其他数字键确认");

scanf("%d",&n);

if(n==0)

SC();

loop:{};}

void TJ()

{

int k,i,j,a[30],t; float n[30],q;

if(m==0)

{printf("请先输入成绩!\n");

goto loop;};

printf("各学生成绩:\n");

{printf("学号 姓名 性别 出生日期 系别 第一科 第二科 第三科 第四科 平均\n");

for(k=0;k

printf("%-6d%-10s%-6s%-13s%-7s%-7.2f%-9.2f%-9.2f%-9.2f%-9.1f\n",stu[k].num,stu[k].name,

stu[k].sex,stu[k].brith,stu[k].academy,stu[k].score[0],stu[k].score[1],stu[k].score[2],stu[k].score[3],stu[k].average);}

for(i=0;i

a[i]=i;

for(i=0;i

n[i]=stu[i].average;

for(j=0;j

for(i=0;i

if(n[i]

{t=a[i];a[i]=a[i+1];a[i+1]=t;

q=n[i];n[i]=n[i+1];n[i+1]=q;}

printf("按平均分排序\n");

{printf("学号 姓名 性别 出生日期 系别 第一科 第二科 第三科 第四科 平均\n");

for(k=0;k

printf("%-6d%-10s%-6s%-13s%-7s%-7.2f%-9.2f%-9.2f%-9.2f%-9.1f\n",stu[a[k]].num,stu[a[k]].name,

stu[a[k]].sex,stu[a[k]].brith,stu[a[k]].academy,stu[a[k]].score[0],stu[a[k]].score[1],stu[a[k]].score[2],stu[a[k]].score[3],stu[a[k]].average);}

chucuo:{printf("1 按第一科排序\n2 按第二科排序\n3 按第三科排序\n4 按第四科排序\n请输入:");

scanf("%d",&k);

if(k==1) j=0;

else if(k==2) j=1;

else if(k==3) j=2;

else if(k==4) j=3;

else {printf("出错,重新输入\n");goto chucuo;}

for(i=0;i

{n[i]=stu[i].score[j];

a[i]=i;};

for(k=0;k

for(i=0;i

if(n[i]

{t=a[i];a[i]=a[i+1];a[i+1]=t;

q=n[i];n[i]=n[i+1];n[i+1]=q;}

{printf("按第%d科排序结果:\n",j+1);

printf("学号 姓名 性别 出生日期 系别 科目\n");

for(k=0;k

printf("%-6d%-10s%-6s%-13s%-7s%-7.2f\n",stu[a[k]].num,stu[a[k]].name,

stu[a[k]].sex,stu[a[k]].brith,stu[a[k]].academy,stu[a[k]].score[j]);}

printf("继续按1,其他数字键返回");

scanf("%d",&i);

if(i==1) goto chucuo;

loop:{};}}

void CX()

{

int x,y,k,t,i,j,q=0;

if(m==0)

{printf("请先输入成绩!\n");

goto loow;};

looq:printf("1 按学号查询\n2 查询不及格学生\n其他数字键退出\n");

scanf("%d",&x);

if(x==1)

loop:{printf("输入学号:\n");

scanf("%d",&y);

j=0;

for(k=0;k

if(y==stu[k].num)

{printf("学号 姓名 性别 出生日期 系别 第一科 第二科 第三科 第四科 平均\n");

printf("%-6d%-10s%-6s%-13s%-7s%-7.2f%-9.2f%-9.2f%-9.2f%-9.1f\n",stu[k].num,stu[k].name,

stu[k].sex,stu[k].brith,stu[k].academy,stu[k].score[0],stu[k].score[1],stu[k].score[2],stu[k].score[3],stu[k].average);j=1;}

if(j==0)

{printf("无此人,重新输入:\n");

goto loop;}

printf("继续按1,其他数字键返回\n");

scanf("%d",&i);

if(i==1)

goto loop;

else goto looq;}

else if(x==2)

{for(k=0;k

for(t=0;t<4;t++)

if(stu[k].score[t]<60)

{printf("学号 姓名 性别 出生日期 系别 第一科 第二科 第三科 第四科 平均\n");

printf("%-6d%-10s%-6s%-13s%-7s%-7.2f%-9.2f%-9.2f%-9.2f%-9.1f\n",stu[k].num,stu[k].name,

stu[k].sex,stu[k].brith,stu[k].academy,stu[k].score[0],stu[k].score[1],stu[k].score[2],stu[k].score[3],stu[k].average);q=1;break;};

if(q==0)

printf("全部及格!\n");

printf ("继续请按1,其他数字键退出:");

scanf ("%d",&k);

if(k==1)

goto looq;};

loow:{};

}

void XG()

{int k,j,t,n,w=-1; float x;

if(m==0)

{printf("请先输入成绩!\n");

goto loop;};

printf("各学生成绩:\n");

{printf("学号 姓名 性别 出生日期 系别 第一科 第二科 第三科 第四科 平均\n");

for(k=0;k

printf("%-6d%-10s%-6s%-13s%-7s%-7.2f%-9.2f%-9.2f%-9.2f%-9.1f\n",stu[k].num,stu[k].name,

stu[k].sex,stu[k].brith,stu[k].academy,stu[k].score[0],stu[k].score[1],stu[k].score[2],stu[k].score[3],stu[k].average);}

chucuo:printf ("你要修改的学号:");

scanf("%d",&j);

for(t=0;t

{if (stu[t].num==j)w=t;}

if(w!=-1)

{printf("请输入你要修改的信息:");

printf("\n修改的学号:\n");

scanf("%d",&stu[w].num);

printf("\n修改的姓名:\n");

scanf("%s",&stu[w].name);

printf ("\n修改的性别:\n");

scanf ("%s",&stu[w].sex);

printf("\n修改的出生日期:\n");

scanf("%s",&stu[w].brith);

printf("\n修改的系别:\n");

scanf("%s",&stu[w].academy);

printf("\n修改的分数:\n");

for(j=0;j<4;j++)

{printf("第%d科",j+1);

scanf("%f",&stu[w].score[j]);}}

x=0;

for(t=0;t<4;t++)

{x=x+stu[w].score[t];}

stu[w].average=x/4;

if (w==-1) {printf("输入学号有误,请从新输入:");goto chucuo;};

printf("修改后各学生成绩:\n");

printf("学号 姓名 性别 出生日期 系别 第一科 第二科 第三科 第四科 平均\n");

for(k=0;k

{printf("%-6d%-10s%-6s%-13s%-7s%-7.2f%-9.2f%-9.2f%-9.2f%-9.1f\n",stu[k].num,stu[k].name,

stu[k].sex,stu[k].brith,stu[k].academy,stu[k].score[0],stu[k].score[1],stu[k].score[2],stu[k].score[3],stu[k].average);}

printf("重复修改请按 0,其他数字键确认");

scanf("%d",&n);

if(n==0)

XG();

loop:{};}

vfp 查询所借图书的总价在150元以上的读者编号,读者名称和所借图书的总价

你的WHERE后面要有GROUP BY关键字

select a.readerno,b.readername,sum(c.price) from borrow a,reader b,book c;

where c.bookno=a.bookno;

and b.readerno=a.readerno;

group by a.readerno,b.readername;

having sum(c.price)>150;

SQL查询过期未还书的读者的信息和所借的书的信息

select 图书信息表.*,读者信息表.* from 图书信息表 a,读者信息表 b ,图书借还表 c where a.读者编号=c.读者编号 and b.图书编号=c.图书编号 and datetime()>应该还书时间 and 实际还书时间=(实际还书时间的默认值)