C语言编写图书管理系统
C语言图书馆管理系统1
#include<stdio.h>#include"string.h"#define Maxsize 10struct book{long num;char name[30];char author[20];char press[30];float price;}BOOKLIST[Maxsize];void input(int *);void search_num(int);void search_author(int);void search_press(int);void search_name(int);void Delete(int *);int main(){int i;int count=0;printf("\t\t---------------------------------------\n");printf("\t\t\t欢迎使用图书馆管理系统\n");printf("\t\t---------------------------------------\n");do{printf("\n");printf("\t\t\t1---:添加一本图书\n");printf("\t\t\t2---:显示某本图书信息\n");printf("\t\t\t3---:查找某作者编写图书信息\n");printf("\t\t\t4---:查找某出版社图书信息\n");printf("\t\t\t5---:查找某本书的信息\n");printf("\t\t\t6---:删除某本书的信息\n");printf("\t\t\t7---:退出\n");scanf("%d",&i);switch(i){case 1:input(&count);break;case 2:search_num(count);break;case 3:search_author(count);break;case 4:search_press(count);break;case 5:search_name(count);break;case 6:Delete(&count);break;case 7:break;default:printf("错误选择!请重选:\n");break; }}while(i!=7);return 0;}void input(int *count){int i,in_num;if(*count==Maxsize){printf("空间已满!");return;}printf("请输入编号:");scanf("%d",&in_num);for(i=0;i<*count;i++)if(BOOKLIST[i].num==in_num){printf("已经有相同编号:");return;}{BOOKLIST[i].num=in_num;printf("please enter name:");scanf("%s",BOOKLIST[i].name);printf("please enter author:");scanf("%s",BOOKLIST[i].author);printf("please enter press:");scanf("%s",BOOKLIST[i].press);printf("please enter num:");scanf("%ld",&BOOKLIST[i].num);printf("please enter price:");scanf("%f",&BOOKLIST[i].price);(*count)++;}}void search_num(int count){int i,num;printf("请输入要查询的编号:");scanf("%d",&num);for(i=0;i<count;i++)if(BOOKLIST[i].num==num){printf("book name:%s\n",BOOKLIST[i].name);printf("book author:%s\n",BOOKLIST[i].author);printf("book press:%s\n",BOOKLIST[i].press);printf("book price:%f\n",BOOKLIST[i].price);printf("book num:%ld\n",BOOKLIST[i].num);}elseprintf("没有查询到!\n");}void search_author(int count){int i;char author[20];printf("请输入要查询的作者姓名:");scanf("%s",author);for(i=0;i<count;i++)if(strcmp(BOOKLIST[i].author,author)==0) {printf("book name:%s\n",BOOKLIST[i].name); printf("book author:%s\n",BOOKLIST[i].author); printf("book press:%s\n",BOOKLIST[i].press); printf("book price:%f\n",BOOKLIST[i].price); printf("book num:%ld\n",BOOKLIST[i].num);}elseprintf("没有查询到!\n");}void search_press(int count){int i;char press[20];printf("请输入要查询的出版社:");scanf("%s",press);for(i=0;i<count;i++)if(strcmp(BOOKLIST[i].press,press)==0) {printf("book name:%s\n",BOOKLIST[i].name); printf("book author:%s\n",BOOKLIST[i].author); printf("book press:%s\n",BOOKLIST[i].press); printf("book price:%f\n",BOOKLIST[i].price); printf("book num:%ld\n",BOOKLIST[i].num); }elseprintf("没有查询到!\n");}void search_name(int count){int i;char name[30];printf("请输入要查询的书名:");scanf("%s",name);for(i=0;i<count;i++)if(strcmp(BOOKLIST[i].name,name)==0) {printf("book name:%s\n",BOOKLIST[i].name); printf("book author:%s\n",BOOKLIST[i].author); printf("book press:%s\n",BOOKLIST[i].press); printf("book price:%f\n",BOOKLIST[i].price); printf("book num:%ld\n",BOOKLIST[i].num);}elseprintf("没有查询到!\n");}void Delete(int *count){int i,j,flag=1;char name[30];printf("请输入要删除的书名:");scanf("%s",name);for(i=0;i<*count&&flag;i++){if(strcmp(BOOKLIST[i].name,name)==0) {for(j=i;j<*count-1;j++)BOOKLIST[j]=BOOKLIST[j+1];flag=0;(*count)--;}elseprintf("没有查询到可以删除的书名!\n"); }}。
图书馆管理系统 c语言编写
#include "stdio.h"#include "stdlib.h"#include "conio.h"#include "string.h"#include "math.h"#define LEN sizeof(struct library)#define LEN1 sizeof(struct reader)#define NULL 0struct library//图书馆结构体{int shuhao,xcl;char name[20],author[20],chuban[20];struct library *next;};struct reader//读者结构体{int zhenghao;char mingzi[20],riqi[20],zname[20];struct reader *next;};void mainmenu() //显示主菜单{ system ("cls");printf("\n");printf("\t\t\t\t####################\n\n"); printf("\t\t\t\t 1.图书馆信息\n\n");printf("\t\t\t\t 2.借阅系统\n\n");printf("\t\t\t\t 3.退出系统\n\n");printf("\t\t\t 请按键选择,回车确定\n"); printf("\t\t\t\t######################\n"); printf("\n");return ;}void menu1() //显示图书馆信息菜单{ system ("cls");printf("");printf("\t\t\t\t####################\n\n"); printf("\t\t\t\t 1.采编入库\n\n");printf("\t\t\t\t 2.清除库存\n\n");printf("\t\t\t\t 3.图书查询\n\n");printf("\t\t\t\t 4.库存一览\n\n");printf("\t\t\t\t 5.返回上一层\n\n");printf("\t\t\t 请按键选择,回车确定\n");printf("\t\t\t\t#######################\n");printf("\n");return ;}void menu2() //显示查询菜单{ system ("cls");//printf("");printf("\t\t\t\t#######################\n");printf("\t\t\t\t 1.书号查询\n\n");printf("\t\t\t\t 2.书名查询\n\n");printf("\t\t\t\t 3.作者查询\n\n");printf("\t\t\t\t 4.出版社查询\n\n");printf("\t\t\t 请按键选择,回车确定\n");printf("\t\t\t\t#######################\n");//printf("");return ;}void main()//主函数,调用main1{void main1();main1();}void main1()//main1函数{void tsgxx();//声明void jieshuxitong();//声明char choose;mainmenu();scanf("%c",&choose);switch(choose)//功能函数选择{ case '1':tsgxx();break;case '2':jieshuxitong();break;case '3':system ("cls");printf("\n\n\n\n\n\n\n\n\n\t\t\t Byebye...");printf("\n\n\n\n\n\n\n\n\n\t\t\t 欢迎使用本软件!!!");getch();exit(0);system ("cls");break;}}void tsgxx()//图书馆信息函数{ void tsjinku();void shanchu();void chaxunts();void xianshikucun();//函数声明char choose;menu1();//调用菜单函数scanf("%c",&choose);scanf("%c",&choose);for (;;)switch(choose)//功能函数选择{ case '1':tsjinku();break;case '2':shanchu();break;case '3':chaxunts();break;case '4':xianshikucun();break;case '5':main1();break;}}int tjzs()//统计文本个数函数{ FILE *fp;int tshuhao=0,txcl=0,n;char tname[20]={'\0'},tauthor[20]={'\0'},tchuban[20]={'\0'};fp=fopen("library.txt","r");//打开文件for (n=0;!feof(fp);n++)//逐个读文件fscanf(fp,"%d %s %s %s %d",&tshuhao,tname,tauthor,tchuban,&txcl);n--;fclose(fp);//关闭文件return (n);//返回个数}int tjdzzs()//统计文本个数函数{ FILE *fp;int zhenghao=0,n;char mingzi[20]={'\0'},riqi[20]={'\0'},zname[20]={'\0'};fp=fopen("reader.txt","r");//打开文件for (n=0;!feof(fp);n++)//逐个读文件fscanf(fp,"%d %s %s %s ",&zhenghao,&mingzi,&riqi,&zname);fclose(fp);//关闭文件return (n);//返回个数}void tsjinku()//图书进库函数{ FILE *fp;int shuhao=0,xcl=0,n=0;char name[20]={'\0'},author[20]={'\0'},chuban[20]={'\0'};char hitkey;system ("cls");if ((fp=fopen("library.txt","r"))==NULL)//打开图书馆文件,不存在此文件则新建{ fp=fopen("library.txt","w");fclose(fp);}fp=fopen("library.txt","a");printf("\n\n\n\n\n\n\t\t\t请按以下格式输入图书信息:\t\t\t\t\t\t 书号书名作者出版社进库量\n请输入:");//按格式输入图书馆信息for (;hitkey!=27;)//循环输入{ if (n!=0)printf("请输入:");scanf("%d%s%s%s%d",&shuhao,name,author,chuban,&xcl);fprintf(fp,"%d %s %s %s %d\n",shuhao,name,author,chuban,xcl);printf("继续输入请按回车,结束输入请按esc\n");n++;hitkey=getch();for (;hitkey!=13&&hitkey!=27;)hitkey=getch();}fclose(fp);printf("\n\n\n\n\n\n\t\t\t保存成功,按任意键返回上一层!");getch();tsgxx();//返回上一层}void shanchu()//删除图书信息函数{ struct library *head=NULL;struct library *p,*p1,*p2;int tshuhao=0,txcl=0,n=0,j,i;char tname[20]={'\0'},tauthor[20]={'\0'},tchuban[20]={'\0'}, ttname[20]={'\0'};char hitkey;FILE *fp;if ((fp=fopen("library.txt","r"))==NULL)//打开文件{ system ("cls");printf("\n\n\n\n\n\n\n\n\n\t\t\t记录文件不存在!按任意键返回...");getch();tsgxx();}else{ system ("cls");printf("\n\n\n\n\n\n\n\n\t\t请输入你要删除的书名:");//输入删除图书书名scanf("%s",&ttname);printf("\t\t确认删除请回车,取消请按esc\n");hitkey=getch();for (;hitkey!=13&&hitkey!=27;)hitkey=getch();if (hitkey==27)tsgxx();fp=fopen("library.txt","r");for (j=0;!feof(fp);)//读文件夹信息,统计个数{ j++;fscanf(fp,"%d%s%s%s%d",&tshuhao,tname,tauthor,tchuban,&txcl);}fclose(fp);fp=fopen("library.txt","r");for (i=1;i<j;i++){ fscanf(fp,"%d%s%s%s%d",&tshuhao,tname,tauthor,tchuban,&txcl); if (strcmp(ttname,tname))//比较名字,将不同名字的信息复制到链表{ n++;if (n==1)//建立链表{ p1=p2=(struct library*)malloc(LEN);head=p1;}else{ p2->next=p1;p2=p1;p1=(struct library*)malloc(LEN);//新建链表}p1->shuhao=tshuhao;//复制书号strcpy(p1->name,tname);//复制书名strcpy(p1->author,tauthor);//复制作者名子strcpy(p1->chuban,tchuban);//复制出版社p1->xcl=txcl;//复制个数}}if (n==0){ head=NULL;}else{p2->next=p1;p1->next=NULL;fclose(fp);}}fp=fopen("library.txt","w");//清空文件fclose(fp);fp=fopen("library.txt","a");//追加文件p=head;for (;p!=NULL;)//把链表内容覆盖到文件{fprintf(fp,"%d %s %s %s %d \n",p->shuhao,p->name,p->author,p->chuban,p->xcl);p=p->next;}fclose(fp);//关闭文件system ("cls");printf("\n\n\n\n\n\n\n\n\t\t 删除成功\n\t\t按任意键返回上一层\n");getch();//返回上一层tsgxx();}void chaxunts()//查询函数{FILE *fp;char choose;int ttshuhao=0,tshuhao=0,txcl=0,n=0,k=0,i,l;chartname[20]={'\0'},ttauthor[20]={'\0'},tauthor[20]={'\0'},ttchuban[20]={'\0'},tchuban[20]={'\0'}, ttname[20]={'\0'};if ((fp=fopen("library.txt","r"))==NULL)//打开文件{ system ("cls");printf("\n\n\n\n\n\n\n\n\n\t\t\t记录文件不存在!按任意键返回...");getch();tsgxx();}l=tjzs();//获得文件个数menu2();//调用菜单函数scanf("%c",&choose);scanf("%c",&choose);//选择查询方式if (choose=='5')return;else if (choose=='1')//书号查询{ system ("cls");printf("请输入书号:");scanf("%d",&ttshuhao);}elseif (choose=='2')//书名查询{ system ("cls");printf("请输入书名:");scanf("%s",ttname);}elseif (choose=='3')//作者查询{ system ("cls");printf("请输入作者:");scanf("%s",ttauthor);}elseif (choose=='4')//出版社查询{ system ("cls");printf("请输入出版社:");scanf("%s",ttchuban);}system ("cls");for (i=0;i<l;i++){ fscanf(fp,"%d%s%s%s%d",&tshuhao,tname,tauthor,tchuban,&txcl);//读文件信息if(ttshuhao==tshuhao||!strcmp(ttname,tname)||!strcmp(ttauthor,tauthor)||!strcmp(ttchuban,tch uban))//输出查询信息{if (k==0){printf("\t\t\t\t查询结果:\n\n");printf("\t 书号书名作者出版社现存量\n");}printf("\t %-4d %-8s %-8s %-8s %-4d \n",tshuhao,tname,tauthor,tchuban,txcl);k++;}}if (k==0)//文件夹为空则输出无记录{ system ("cls");printf("\n\n\n\n\n\n\n\t\t\t\t无符合记录!\n");getch();tsgxx();}fclose(fp);getch();//返回tsgxx();}void xianshikucun()//现实库存信息{FILE *fp;int shuhao=0,xcl=0,n=0,i=0,j=0;char name[20]={'\0'},author[20]={'\0'},chuban[20]={'\0'};if ((fp=fopen("library.txt","r"))==NULL)//打开文件夹{system ("cls");printf("\n\n\n\n\n\n\n\n\n\t\t\t记录文件不存在!");n= tjzs();if (n==0){ system ("cls");printf("\n\n\n\n\n\n\n\n\n\t\t\t无任何记录!");}fp=fopen("library.txt","r");system ("cls");printf("************************************************************************* *******");printf("\t 书号书名作者出版社库存量\n");printf("************************************************************************* *******");for (i=0;i<n;i++)//输出信息{fscanf(fp,"%d%s%s%s%d",&shuhao,name,author,chuban,&xcl);printf("\t %-4d %-8s %-8s %-8s %-4d \n",shuhao,name,author,chuban,xcl);}fclose(fp);printf("\t\t\t\t按任意键返回\n");getch();//返回tsgxx();}void menu3() //显示借书系统主菜单{ system ("cls");//printf("*********************************************************************** *********");printf("\t\t\t\t#######################\n");printf("\t\t\t\t 1.借书登记\n\n");printf("\t\t\t\t 2.还书登记\n\n");printf("\t\t\t\t 3.借阅情况查看\n\n");printf("\t\t\t\t 4.返回上一层\n\n");printf("\t\t\t 请按键选择,回车确定\n");printf("\t\t\t\t#######################\n");//printf("*********************************************************************** *********");return ;}void jieshuxitong()//借书系统函数{ void jieshu();void huanshu();void duzheyilang();//函数声明char choose;menu3();scanf("%c",&choose);scanf("%c",&choose);//选择功能for (;;)switch(choose)//调用函数{ case '1':jieshu();break;case '2':huanshu();break;case '3':duzheyilang();break;case '4':main1();break;}}void jieshu()//借书函数{FILE *fp,*fp3;struct library *head=NULL;struct library *p,*p1,*p2;int tshuhao=0,txcl=0,i,loop,zhenghao=0,n=0,k=0,t=0,flag=0;char tname[20]={'\0'},tauthor[20]={'\0'},tchuban[20]={'\0'}, ttname[20]={'\0'},mingzi[20]={'\0'},riqi[20]={'\0'},zname[20]={'\0'};char hitkey=0;system ("cls");{if ((fp=fopen("library.txt","r"))==NULL)//打开图书馆文件{system ("cls");printf("\n\n\n\n\n\n\n\n\n\t\t 图书馆无库存!按任意键退出!");getch();exit (0);}else{{printf("\n\n\n\n\n\n\t\t\t请输入借阅书名:\t\t\t\t\t\t \n请输入:");//输入书名scanf("%s",zname);k= tjzs();//统计图书馆文件个数for (i=0;i<k;i++)//读入图书馆信息,存储到链表{fscanf(fp,"%d%s%s%s%d",&tshuhao,tname,tauthor,tchuban,&txcl);n++;if (n==1){ p1=p2=(struct library*)malloc(LEN);head=p1;}else{ p2->next=p1;p2=p1;p1=(struct library*)malloc(LEN);//新建链表}p1->shuhao=tshuhao;//复制书号strcpy(p1->name,tname);//复制书名strcpy(p1->author,tauthor);//复制作者strcpy(p1->chuban,tchuban);//复制出版社p1->xcl=txcl;//复制现存量}if (n==0)head=NULL;else{p2->next=p1;p1->next=NULL;fclose(fp);}}}p=head;for (;p!=NULL;)//读链表{if(!(strcmp(p->name,zname)))//名字相同{flag=1;//标记取1loop=p->xcl;//现存量减1(p->xcl)--;}p=p->next;}if(flag&&(loop>0))//存在借书书名且现存量大于0{ fp=fopen("library.txt","w");fclose(fp);fp=fopen("library.txt","a");p=head;for (;p!=NULL;){fprintf(fp,"%d %s %s %s %d \n",p->shuhao,p->name,p->author,p->chuban,p->xcl);p=p->next;}free(p);//把链表内容覆盖文件fclose(fp);}if(flag&&(loop>0))//存在借书书名且现存量大于0{{if ((fp3=fopen("reader.txt","r"))==NULL)//建读者文件夹{ fp3=fopen("reader.txt","w");fclose(fp3);}fp3=fopen("reader.txt","a");}{{ if (n!=0)printf("\n\n\n\n\n\n\t\t\t请按以下格式输入读者信息:\t\t\t\t\t\t 证号姓名归还日期借书书名\n请输入:");//录入读者信息scanf("%d %s %s %s",&zhenghao,&mingzi[20],&riqi[20],&zname[20]);fprintf(fp3,"%d %s %s %s \n",zhenghao,&mingzi[20],&riqi[20],&zname[20]);fp=fopen("library.txt","w");//删除图书馆文件信息fclose(fp);fp=fopen("library.txt","a");//重新追加信息p=head;for (;p!=NULL;)//把链表内容覆盖图书馆文件{fprintf(fp,"%d %s %s %s %d \n",p->shuhao,p->name,p->author,p->chuban,p->xcl);p=p->next;}fclose(fp);fclose(fp3);printf("成功!按任意键返回\n");getch();//返回jieshuxitong();}}jieshuxitong();}elseprintf("此书已被借完!按任意键返回!");//否则输出此书已被接完getch();//返回jieshuxitong();}}void huanshu()//还书函数{FILE *fp,*fp3;struct reader *head=NULL;struct reader *p,*p1,*p2;struct library *lhead1=NULL;struct library *zp1,*lp1,*lp2;int tshuhao=0,txcl=0,i;char tname[20]={'\0'},tauthor[20]={'\0'},tchuban[20]={'\0'}, ttname[20]={'\0'};int ttzhenghao=0,tzhenghao=0,n=0,k=0,t=0,flag=0;char tmingzi[20]={'\0'},triqi[20]={'\0'},tzname[20]={'\0'},ttzname[20]={'\0'};char hitkey=0;system ("cls");{if ((fp=fopen("reader.txt","r"))==NULL)//不存在读者文件,则输出不能还书{system ("cls");printf("\n\n\n\n\n\n\n\n\n\t\t 不存在借书者!按任意键退出!");getch();exit (0);}else{{printf("\n\n\n\n\n\n\t\t\t请输入读者证号和书名:\t\t\t\t\t\t \n请输入:");scanf("%d %s",&ttzhenghao,ttzname);//输入还书证号和书名k= tjdzzs();//获取读者文件夹信息个数for (i=0;i<k;i++)//读取读者文件夹信息{fscanf(fp,"%d%s%s%s\n ",&tzhenghao,tmingzi,triqi,tzname);if((ttzhenghao==tzhenghao)&&!strcmp(ttzname,tzname))//如果证号书名存在,则标记为1flag=1;}fclose(fp);fp=fopen("reader.txt","r");//打开读者文件if(flag){for (i=0;i<k;i++)//将读者文件复制到链表{fscanf(fp,"%d%s%s%s\n ",&tzhenghao,tmingzi,triqi,tzname);//读取文件信息if(!((ttzhenghao==tzhenghao)&&!strcmp(ttzname,tzname))){ n++;if (n==1){ p1=p2=(struct reader*)malloc(LEN1);//新建链表head=p1;}else{ p2->next=p1;p2=p1;p1=(struct reader*)malloc(LEN1);//新建链表}p1->zhenghao=tzhenghao;//复制证号strcpy(p1->mingzi,tmingzi);//复制读者名字strcpy(p1->riqi,triqi);//复制日期strcpy(p1->zname,tzname);//复制书名}}if (n==0)head=NULL;else{p2->next=p1;p1->next=NULL;fclose(fp);}fp=fopen("reader.txt","w");//清空读者文件fclose(fp);fp=fopen("reader.txt","a");//追加信息p=head;for (;p!=NULL;)//把链表内容覆盖读者文件{fprintf(fp,"%d %s %s %s \n",p->zhenghao,p->mingzi,p->riqi,p->zname);p=p->next;}free(p);fclose(fp);}}}}if(flag)//标记为1,既还书时{{{printf("确认还书请按回车!");for (;hitkey!=13&&hitkey!=27;)hitkey=getch();if (hitkey==13)printf("成功!按任意键返回!");n=0;flag=0;fp3=fopen("library.txt","r");//打开图书馆文件k= tjzs();//获取图书馆文件个数for (i=0;i<k;i++)//将图书馆文件复制到链表{fscanf(fp3,"%d%s%s%s%d",&tshuhao,tname,tauthor,tchuban,&txcl);//读取信息n++;if (n==1){ lp1=lp2=(struct library*)malloc(LEN);//新建链表lhead1=lp1;}else{ lp2->next=lp1;lp2=lp1;lp1=(struct library*)malloc(LEN);//新建链表}lp1->shuhao=tshuhao;//复制书号strcpy(lp1->name,tname);//复制书名strcpy(lp1->author,tauthor);//复制作者strcpy(lp1->chuban,tchuban);//复制出版社lp1->xcl=txcl; //复制现存量}if (n==0){ lhead1=NULL;}else{lp2->next=lp1;lp1->next=NULL;fclose(fp3);}}}zp1=lhead1;for (;zp1!=NULL;){if(!(strcmp(zp1->name,ttzname)))//寻找书名相同++(zp1->xcl);//现存量加1zp1=zp1->next;}fp3=fopen("library.txt","w");//清空图书馆文件fclose(fp);fp3=fopen("library.txt","a");//追加信息zp1=lhead1;for (;zp1!=NULL;)//把链表内容覆盖图书馆文件{fprintf(fp3,"%d %s %s %s %d \n",zp1->shuhao,zp1->name,zp1->author,zp1->chuban,zp1->xcl);//录入信息zp1=zp1->next;}fclose(fp3);getch();//返回jieshuxitong();}elseprintf("不存在此信息!按任意键返回!");getch();//返回jieshuxitong();}void duzheyilang()//显示借书情况函数{FILE *fp;int zhenghao=0,xcl=0,n=0,i=0,j=0;char mingzi[20]={'\0'},riqi[20]={'\0'},zname[20]={'\0'};if ((fp=fopen("reader.txt","r"))==NULL)//打开读者文件夹{system ("cls");printf("\n\n\n\n\n\n\n\n\n\t\t\t记录文件不存在!");}n=tjdzzs();if (n==0){ system ("cls");printf("\n\n\n\n\n\n\n\n\n\t\t\t无任何记录!");}fp=fopen("reader.txt","r");system ("cls");printf("************************************************************************* *******");printf("\t 证号读者姓名还书日期书名\n");printf("************************************************************************* *******");for (i=0;i<n;i++)//输出文件信息{fscanf(fp,"%d%s%s%s\n ",&zhenghao,mingzi,riqi,zname);printf("\t %-4d %-8s %-8s %-8s \n", zhenghao,mingzi,riqi,zname);}fclose(fp);printf("\t\t\t\t按任意键返回\n");getch();//返回jieshuxitong();}。
c语言编写图书管理系统
void cxsjpx()
{
int i,j;
struct Student temp;
for(i=0;i<num-1;i++)//冒泡法排序
for(j=0;j<num-1-i;j++)
if(std[i].cxsj>std[i+1].cxsj)
{ temp=std[i];
else
printf("失败");
break;
}
}
void sxcj_search()
{ char a[20];
int i,t;
while(1)
{
printf("\n请输入数学成绩:\n");
scanf("%s",a);
void paixu()
{
int choice
printf("请选择(1-4) \n");
printf("\t*[1] 数学成绩排序\t*\n");
printf("\t*[2] 程序设计成绩排序\t*\n");
printf("\t*[3] 总分排序\t*\n");
printf("写入错误\n");
}
fclose(fp);
}
void menu()
{
printf("请选择(1-6) \n");
printf("\t*[1] 新建数据\t*\n");
printf("\t*[2] 添加数据\t*\n");
C语言编程--图书馆管理系统
#include <iostream.h>#include <iomanip.h>#include <string.h>#include <fstream> //输入/输出文件流类using namespace std;const int Max1=100; //最大学生数const int Max2=100; //最大图书量const int Max3=100; //每个学生最多借2本书class student //学生类,实现对学生的信息的描述{private:int tb; //删除标记1:已删0:未删int no; //学号char name[10]; //学生姓名char yuanxi[15]; //院系int ex;int borbook[Max3];//所借图书public:student() {}char *get_name() {return name;} //获取姓名char *get_yuanxi(){return yuanxi;} //获取院系int get_tb() {return tb;} //获取删除标记int get_no() {return no;} //获取学号int getex(){return ex;}void set_name(char na[]) //设置学生姓名{strcpy(name,na);}void set_yuan(char yu[]) //设置学生所在院系{strcpy(yuanxi,yu);}void set_no(int n) //设置学号{no=n;}void delbook(){ tb=1; }//设置删除标记1:已删0:未删void addstudent(int n,int ex1,char *na,char *yu)//增加学生信息{tb=0;no=n;ex=ex1;strcpy(name,na);strcpy(yuanxi,yu);for(int i=0;i<Max3;i++)borbook[i]=0;}void borrowbook(int bookid)//借书操作{for(int i=0;i<ex;i++){if (borbook[i]==0){borbook[i]=bookid;return;}}}int retbook(int bookid)//还书操作{for(int i=0;i<Max3;i++){if(borbook[i]==bookid){borbook[i]=0;return 1;}}return 0;}void out()//输出学生信息{cout <<"学号:"<< setw(5) << no <<"姓名:"<<setw(10) << name<<"院系:"<<setw(10)<<yuanxi<<"最大借书量:"<<setw(10)<<ex<<"图书号:[";for(int i=0;i<ex;i++)if(borbook[i]!=0)cout << borbook[i] << "|";cout << "]"<<endl;}};//学生类库,用来建立学生的个人资料class studentbase{private:int top; //学生记录指针student read[Max1];//学生记录public:studentbase() //构造函数,将student.txt读到read[]中{student s;top=-1;fstream file("student.txt",ios::in);//打开一个输入文件while (1){file.read((char *)&s,sizeof(s));if (!file)break;top++;read[top]=s;}file.close(); //关闭student.txt}void clear()//删除所有学生信息{top=-1;}int addstudent(int n,int ex1,char *na,char *yu)//添加学生时先查找此学生信息是否存在{student *p=query(n);if (p==NULL){top++;read[top].addstudent(n,ex1,na,yu);return 1;}return 0;}student *query(int kid)//按编号查找学生{for (int i=0;i<=top;i++)if (read[i].get_no()==kid &&read[i].get_tb()==0){return &read[i];}return NULL;}void disp() //输出所有学生信息{for (int i=0;i<=top;i++)if (read[i].get_tb()==0)read[i].out();}void studentdata();//学生库维护~studentbase() //析构函数,将read[]写到student.txt文件中{fstream file("student.txt",ios::out);for (int i=0;i<=top;i++)if (read[i].get_tb()==0)file.write((char *)&read[i],sizeof(read[i]));file.close();}};void studentbase::studentdata(){char choice;int ex2;char rname[20];char ryuan[20];int kid;student *r;while (choice!='0'){cout <<"\n\n\t\t\t学生资料库\n\n\n\t\t 1 新增\n\n\t\t 2 更改\n\n\t\t 3 删除\n\n\t\t 4 查找\n\n\t\t 5 显示\n\n\t\t 6 全删\n\n\t\t 0 退出"<<endl;cin >> choice;switch (choice){case '1':cout << "输入学号:";cin >> kid;cout <<"输入最大借书量:";cin>>ex2;cout << "输入学生姓名:";cin >> rname;cout<<"输入学生所在院系:";cin>>ryuan;addstudent(kid,ex2,rname,ryuan);break;case'2':cout << "输入学号:";cin >> kid;r=query(kid);if (r==NULL){cout << " 没有该学生信息!"<<endl;break;}cout << "输入新的学生姓名:";cin >> rname;r->set_name(rname);cout <<"输入新的学生院系:";cin >> ryuan;r->set_yuan(ryuan);break;case '3':cout << " 输入学号:";cin >> kid;r=query(kid);if (r==NULL){cout <<"没有该学生信息!" << endl;break;}r->delbook();break;case '4':cout << "输入学号:";cin >> kid;r=query(kid);if (r==NULL){cout <<"没有该学生信息!"<< endl;break;}r->out();break;case '5':disp();break;case '6':clear();break;default:cout<<"输入错误!请重新输入:";break;}}}//图书类,实现对图书的描述,图书的编号,书名,作者,出版社,数量,借出,还入等class Book{private:int tb;//删除标记1:已删0:未删int no;//图书编号char name[20];//书名char zuozhe[20];//作者char chubanshe[30];//出版社int number;//图书数量int onshelf;//是否再架1:再架2:已借public:Book(){}char *getname() { return name; }//获取书名int getno(){ return no; }//获取图书编号char *getzuozhe(){return zuozhe;}//获取作者char *getchubanshe(){return chubanshe;}//获取出版社int getnumber(){return number;}//获取图书数量int gettb(){ return tb; }//获取删除标记void setname(char na[])//设置书名{strcpy(name,na);}void setzuozhe(char zuo[]) //设置作者{strcpy(zuozhe,zuo);}void setchubanshe(char chu[]) //设置出版社{strcpy(chubanshe,chu);}void delbook(){ tb=1;}//删除图书void addbook(int n,char *na,char *zuo,char *chu)//增加图书{tb=0;no=n;strcpy(name,na);strcpy(zuozhe,zuo);strcpy(chubanshe,chu);onshelf=1;}int borrowbook()//借书操作{if (onshelf==1){onshelf=0;return 1;}return 0;}void retbook()//还书操作{onshelf=1;}void disp()//输出图书{cout << setw(6) << no << setw(18) << name << setw(10)<<(onshelf==1? "在架":"已借") <<endl;}};//图书库类,实现对图书的维护,查找,删除等class BDatabase{private:int top; //图书记录指针Book book[Max2]; //图书记录public:BDatabase()//构造函数,将book.txt读到book[]中{Book b;top=-1;fstream file("book.txt",ios::in);while (1){file.read((char *)&b,sizeof(b));if (!file) break;top++;book[top]=b;}file.close();}void clear()//全删{top=-1;}int addbook(int n,char *na,char *zuo,char *chu)//增加图书{Book *p=query(n);if (NULL==p){top++;book[top].addbook(n,na,zuo,chu);return 1;}return 0;}Book *query(int bookid)//查找图书{for (int i=0;i<=top;i++)if (book[i].getno()==bookid &&book[i].gettb()==0){return &book[i];}return NULL;}void bookdata();//图书库维护void disp(){for (int i=0;i<=top;i++)if (book[i].gettb()==0)book[i].disp();}~BDatabase()//析构函数,将book[]写到book.txt文件中{fstream file("book.txt",ios::out);for (int i=0;i<=top;i++)if (book[i].gettb()==0)file.write((char *)&book[i],sizeof(book[i]));file.close();}};void BDatabase::bookdata(){char choice;char bname[40];char bzuo[40];char bchu[40];int bookid;Book *b;while (choice!='0'){cout <<"\n\n\n\t\t\t图书资料库"<<endl<<endl;cout<<"\t\t1 新增\n \t\t2 更改\n\t\t3 删除\n\t\t4 查找\n\t\t5 显示\n\t\t6 全删\n\t\t0 退出"<<endl;cin >> choice;switch (choice){case '1':cout << "请输入图书编号:"<<endl;cin >> bookid;cout << "请输入图书书名:"<<endl;cin >> bname;addbook(bookid,bname,bzuo,bchu);break;case '2':cout << "请输入图书编号:"<<endl;cin >> bookid;b=query(bookid);if (b==NULL){cout << " 没有此书!"<<endl;break;}cout << "请输入新的书名:"<<endl;cin >> bname;b->setname(bname);break;case '3':cout <<" 读入图书编号:"<<endl;cin >> bookid;b=query(bookid);if (b==NULL){cout <<"没有此书!" << endl;break;}b->delbook();break;case '4':cout << " 读入图书编号:"<<endl;cin >> bookid;b=query(bookid);if (b==NULL){cout <<" 没有此书!"<< endl;break;}b->disp();break;case '5':disp();break;case '6':clear();break;default:cout<<"请重新选择:";}}}//main() 函数的实现,程序的主界面的引导void main(){char choice;int bookid,kid;studentbase ReaderDB;student *r;BDatabase BookDB;Book *b;while(choice!='0'){ge:cout <<endl<<endl<<"\t\t\t 图书管理系统\n\n\n";cout <<"\t\t\t1 学生\n\n\t\t\t2 图书管理员\n\n\t\t\t0 离开"<<endl;cin >> choice;switch (choice){case '1':int a;cout<<"\t\t\t 请选择操作:"<<endl;cout<<"\t\t\t1 借书\n\n\t\t\t2 还书\n\n\t\t\t3 查看借阅数目信息\n\n\t\t\t0 离开"<<endl;cin>>a;switch(a){case 1:cout <<" 学号:";cin >>kid;cout <<" 图书编号:";cin >>bookid;r=ReaderDB.query(kid);//按编号查找if (NULL==r){cout <<" 没有此学生信息!不能借书"<< endl;break;}b=BookDB.query(bookid);if (b==NULL){cout <<" 没有此书!"<< endl;break;}if (b->borrowbook()==0){cout << " 该图书已借出,不能借书"<< endl;break;}r->borrowbook(b->getno());break;case 2:cout<<" 学号:";cin >>kid;cout << " 图书编号:";cin >>bookid;r=ReaderDB.query(kid);if (r==NULL){cout <<" 没有此学生信息!不能还书" << endl;break;}b=BookDB.query(bookid);if (b==NULL){cout <<" 不存在该图书,不能还书" <<endl;break;}b->retbook();r->retbook(b->getno());break;case 3:r->out();case 0:goto ge;default:cout<<"请重新选择:"<<endl;}case '2':int b,c;cout<<"请输入管理员密码:"<<endl;cin>>c;if(c==123456){cout<<"\t\t\t 请选择操作:"<<endl;cout<<"\t\t\t1 图书资料库\n\n\t\t\t2 学生资料库\n\n\t\t\t0 离开"<<endl;cin>>b;switch(b){case 1:BookDB.bookdata();break;case 2:ReaderDB.studentdata();break;case 0:goto ge;default:cout<<"请重新选择:";}}else{cout<<"密码不正确!"<<endl;break;}}}}。
c语言课程设计图书管理系统
c语言课程设计图书管理系统一、教学目标本课程的教学目标是使学生掌握C语言基础知识,学会使用C语言进行程序设计,能够运用C语言实现图书管理系统的功能。
具体分为以下三个部分:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识,理解图书管理系统的业务流程和需求。
2.技能目标:学生能够运用C语言编写程序,实现图书管理系统的各个功能模块,如图书信息的添加、删除、修改和查询等。
3.情感态度价值观目标:培养学生对计算机编程的兴趣和热情,增强学生的自主学习能力和团队协作精神,使学生在解决实际问题时能够积极思考、勇于尝试。
二、教学内容本课程的教学内容分为五个部分:1.C语言基础知识:包括基本语法、数据类型、运算符、控制结构等。
2.函数与模块化编程:学习函数的定义、声明和调用,掌握模块化编程的方法和技巧。
3.图书管理系统需求分析:了解图书管理系统的业务流程,明确系统需求。
4.图书管理系统功能实现:使用C语言编写程序,实现图书管理系统的各个功能模块。
5.程序调试与优化:学习使用调试工具,掌握调试和优化程序的方法。
三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性:1.讲授法:教师讲解C语言基本语法和概念,引导学生掌握知识要点。
2.案例分析法:分析实际编程案例,让学生学会将理论知识应用于实际问题。
3.实验法:学生动手编写程序,实现图书管理系统的功能,培养实际操作能力。
4.讨论法:分组讨论问题,培养学生的团队协作能力和解决问题的能力。
四、教学资源本课程所需教学资源包括:1.教材:《C程序设计语言》或《C语言入门教程》等。
2.参考书:《C语言编程实例解析》、《C语言常用算法解析》等。
3.多媒体资料:教学PPT、视频教程、编程案例等。
4.实验设备:计算机、编程环境(如Visual Studio、Code::Blocks等)。
5.在线资源:编程论坛、博客、教程等。
五、教学评估本课程的评估方式包括以下几个方面:1.平时表现:评估学生在课堂上的参与程度、提问回答情况、团队合作表现等,占总评的30%。
c语言图书管理系统
int86(0x16, &rg,&rg);
return rg。h。ah;
}
int choose(int bot,int top)/*根据Y的值选择操作*/
{
int ky,y = 7;
gotoxy(30,bot);
do
{
ky = key();
switch(ky)
{
case Key_UP:
gotoxy(x + 1, y + high - 3);
for (i = 1; i < width - 1; i++)
{
putchar(0xc4);
}
gotoxy(x + width—1,y + high —1);
putchar(0xd9);
}
int key()/*读键盘*/
{
union REGS rg;
int halfw(int sum,bbasic binfo[100],char *find);
void sta();
void blist();
void bmoney();
int main(void)
{
menu();
}
void menu()
{
int y;
_window();/*显示窗口*/
words();/*显示菜单文字*/
gotoxy(30,16);
cprintf(”Book Statistic");
gotoxy(30,19);
cprintf(”Exit”);
gotoxy(35,22);
textcolor(LIGHTGRAY);
C语言图书信息管理系统
#include"stdio.h"#include"conio.h"#include"string.h"#include"stdlib.h"void enter(); /*声明输入函数*/void look(); /*声明查看函数*/void search_name(); /*声明按姓名查看函数*/int openl(); /*声明打开函数*/void save(); /*声明保存函数*/void del(); /*声明删除函数*/void see(); /*打开并查看文件函数*/void add(); /*追加图书信息*/void TSXX_out();void TSXX_back();struct tsxx /*定义学生信息的结构体类型*/{char tsn[15]; /*图书名*/char bh[15]; /*编号*/int pri; /*价格*/char zzn[10]; /*作者名*/int kc; /*库存*/int total; /*总量*/}ts[100];int n; /*声明一个全局变量*/int main() /*主函数即用户的操作界面*/{int b,flag=0; /*声明局部变量*/while(1) /*循环输出以下信息*/{printf("\n\t\t\t欢迎使用图书馆管理系统\n");printf("\n\t\t\t\t秦盛伟阮腾飞制作\n");printf("\t\t\t -------------------------------\n");printf("\t\t\t 1.图书信息输入\n\n"); /*键入学生的信息*/printf("\t\t\t 2.查看录入的图书信息\n\n"); /*查看录入的学生信息*/printf("\t\t\t 3.按书名查看图书的信息\n\n"); /*按姓名查看学生的信息*/printf("\t\t\t 4.删除图书信息\n\n"); /*删除学生信息*/printf("\t\t\t 5.添加图书信息\n\n");printf("\t\t\t 6.保存学生信息\n\n"); /*保存*/printf("\t\t\t 7.打开文件\n\n"); /*打开文件*/printf("\t\t\t 8.借出图书\n\n");printf("\t\t\t 9.归还图书\n\n");/*键入学生的信息*/printf("\t\t\t 0.退出\n\n"); /*退出*/printf("\t\t\t请输入你的选择:");scanf("%d",&b);switch(b){case 1:enter();break; /*调用键入学生信息函数*/case 2:look();break; /*调用查看函数*/case 3:search_name();break; /*调用姓名查看函数*/case 4:del();break;/*调用删除函数*/case 5:add();break;case 6:save();break;/*调用保存函数*/case 7:see();break;/*调用打开文件函数*/case 8:TSXX_out();break;case 9:TSXX_back();break;case 0:flag=1;break;/*退出SWITCH语句*/default :printf("错误!");}if(flag) break; /*如果选择0就退出循环*/}}void save() /*建立保存文件函数*/{system("CLS");FILE *fp; /*定义文件型指针*/int i;if((fp=fopen("ts.txt","wb"))==NULL) /*打开输出文件*/{printf("不能打开文件!\n");return; /*终止程序*/ }for(i=0;i<n;i++) /*向student文件中写入信息*/if(fwrite(&ts[i],sizeof(struct tsxx),1,fp)!=1)printf("文件写入错误\n");fclose(fp); /*关闭文件*/printf("\n\n\n\n\t\t\t图书信息保存成功!\n");printf("\n\n\n\n\t\t\t按任意键返回菜单!!");getch();}void enter() /*定义键入图书信息函数*/{system("CLS");int i; /*定义局部变量*/printf("\t\t输入需录入图书信息的个数:");scanf("%d",&n);for(i=0;i<n;i++) /*输入每个学生的信息*/{printf("\n\t\t\t----------------\n");printf("\t\t\t图书名称:");scanf("%s",ts[i].tsn); /*输入图书名*/printf("\t\t\t编号:");scanf("%s",ts[i].bh); /*输入编号*/printf("\t\t\t单价:");scanf("%d",&ts[i].pri); /*输入价格*/printf("\t\t\t作者:");scanf("%s",ts[i].zzn); /*输入作者名*/printf("\t\t\t总数:");scanf("%d",&ts[i].total);ts[i].kc=ts[i].total;}printf("\n\n\t\t\t按任意键返回菜单!!");getch();save();}void look() /*定义查看函数*/{system("CLS");int i;//n=openl(); /*调用openl函数*/printf("\t书名\t编号\t单价\t作者\t库存\n");for(i=0;i<n;i++) /*输出所有的学生信息*/{printf("%10s\t%s\t%2d\t%s\t%d\n",ts[i].tsn,ts[i].bh,ts[i].pri,ts[i].zzn,ts[i].kc);}printf("\n\n\n\t\t\t按任意键返回菜单");getch();}void search_name() /*按书名查看函数*/{system("CLS");int i;char name[20]; /*声明字符数组*/printf("\t\t\t请输入书名:\n");scanf("%s",name);printf("\t书名\t编号\t单价\t作者\t库存n");for(i=0;i<n;i++)if(strcmp(ts[i].tsn,name)==0) /*将输入的姓名与结构体中的姓名进行比较*/{printf("%10s\t%s\t%2d\t%s\t%d\n",ts[i].tsn,ts[i].bh,ts[i].pri,ts[i].zzn,ts[i].kc);printf("\n\n\n\t\t\t按任意键返回菜单");}getch();}void del() /*定义删除图书信息函数*/{int i;char a;char name[20];system("CLS");printf("\t\t\t输入图书名字:\n");scanf("%s",name);system("CLS");printf("\t书名\t编号\t单价\t作者\t库存\n");for(i=0;i<n;i++)if(strcmp(ts[i].tsn,name)==0){printf("%10s\t%s\t%2d\t%s\t%d\n",ts[i].tsn,ts[i].bh,ts[i].pri,ts[i].zzn,ts[i].kc);getch();printf("真的删除?(y or n)");getchar();scanf("%c",&a);if(a=='y') /*是否删除该信息*/{for(;i<n;i++)ts[i]=ts[i+1];n=n-1;printf("你已经删除信息");}elseprintf("退出");getch();}save();}int openl() /*定义打开文件函数*/{system("CLS");int i;FILE *fp;if((fp=fopen("ts.txt","rb"))==NULL){printf("Cannot open file.\n");exit(0);}for(i=0;!feof(fp);i++)fread(&ts[i],sizeof(struct tsxx),1,fp);fclose(fp);return(i-1);}void see() /*打开并查看文件*/{system("CLS");int i;n=openl();printf("文件打开成功!\n");printf("按任意键查看!\n");getch();printf("\t书名\t编号\t单价\t作者\t库存\n");for(i=0;i<n;i++) /*输出所有的学生信息*/{printf("%10s\t%s\t%2d\t%s\t%d\n",ts[i].tsn,ts[i].bh,ts[i].pri,ts[i].zzn,ts[i].kc);}printf("\n\n\n\t\t\t按任意键返回菜单");getch();}void add() /*定义键入学生信息函数*/{system("CLS");int i=1;while(i){printf("\n\t\t\t----------------\n");printf("\t\t\t书名:");scanf("%s",ts[n].tsn); /*输入学号*/printf("\t\t\t编号:");scanf("%s",ts[n].bh); /*输入姓名*/printf("\t\t\t单价:");scanf("%d",&ts[n].pri); /*输入性别*/printf("\t\t\t作者:");scanf("%s",ts[n].zzn); /*输入英语成绩*/printf("\t\t\t库存:");scanf("%d",&ts[n].kc); /*输入语文成绩*/n++;printf("是否继续添加?\n如果继续请键入1,否则键入0?\n");scanf("%d",&i);}printf("\n\n\t\t\t按任意键返回菜单!!");getch();save();}void TSXX_out(){int i,d;char name[15];char s[10];char num[30];n=openl();printf("请输入需要借阅的图书名称:");scanf("%s",s);for(i=0;i<n;i++){if(strcmp(ts[i].tsn,s)==0&&ts[i].kc>0){printf("姓名:");scanf("%s",name);printf("学号:");scanf("%s",num) ;printf("借阅天数:");scanf("%d",&d);ts[i].kc--;}else if(strcmp(ts[i].tsn,name)==0&&ts[n].kc==0)printf("此书已经全部借出.\n"); else printf("对不起,此书不存在.\n");}printf("\n\n\n\t\t\t按任意键返回菜单");getch();save_student();}save_student(){system("CLS");FILE *fp1; /*定义文件型指针*/int i;if((fp1=fopen("student.txt","wb"))==NULL) /*打开输出文件*/{printf("不能打开文件!\n");return; /*终止程序*/}for(i=0;i<n;i++) /*向student文件中写入信息*/if(fwrite(&ts[i],sizeof(struct tsxx),1,fp1)!=1)printf("文件写入错误\n");fclose(fp1); /*关闭文件*/printf("\n\n\n\n\t\t\t学生借阅图书信息保存成功!\n");printf("\n\n\n\n\t\t\t按任意键返回菜单!!");getch();}void TSXX_back(){int i;char d[15];n=openl();printf("请输入归还图书的编号");scanf("%s",d);for(i=0;i<n;i++){if(strcmp(ts[i].bh,d)==0){ts[i].kc++;}else printf("您输入的编号有误,请重新执行此程序或寻则其他操作.\n");}if(n!=-1&&ts[n].kc==ts[n].total)printf("全部入藏.\n");printf("\n\n\n\t\t\t按任意键返回菜单");getch();save();}。
c语言课程设计图书馆管理系统
c语言课程设计图书馆管理系统一、教学目标本课程的教学目标是使学生掌握C语言编程基础,能够运用C语言设计简单的图书馆管理系统。
具体分为三个维度:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数等编程基础。
2.技能目标:学生能够运用C语言进行程序设计,具备编写、调试和运行C语言程序的能力。
3.情感态度价值观目标:培养学生对计算机科学的兴趣,提高学生解决问题的能力,培养学生的创新精神和团队合作意识。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等编程基础,以及图书馆管理系统的项目实践。
具体安排如下:1.第一章:C语言概述,介绍C语言的历史、特点和基本语法。
2.第二章:数据类型和运算符,学习基本数据类型、字符串、运算符及其优先级。
3.第三章:控制结构,学习条件语句、循环语句和跳转语句。
4.第四章:函数,学习函数的定义、声明和调用,以及常用标准库函数。
5.第五章:数组和字符串,学习一维数组、多维数组、字符串的基本操作。
6.第六章:指针,学习指针的概念、运算和应用。
7.第七章:结构体和文件,学习结构体的定义和应用,以及文件的读写操作。
8.第八章:图书馆管理系统项目实践,运用所学知识设计并实现一个简单的图书馆管理系统。
三、教学方法本课程采用多种教学方法相结合的方式,包括:1.讲授法:讲解C语言的基本语法、数据类型、运算符、控制结构、函数等编程基础。
2.案例分析法:通过分析典型的图书馆管理场景,引导学生运用C语言进行程序设计。
3.实验法:让学生动手编写、调试和运行C语言程序,提高学生的实践能力。
4.小组讨论法:分组进行项目实践,培养学生的团队合作意识和问题解决能力。
四、教学资源1.教材:《C程序设计语言》(K&R)或《C语言 Primer》(第五版)。
2.参考书:《C语言编程思想》、《C语言深度探索》。
3.多媒体资料:课件、教学视频、在线教程。
图书馆管理系统(C语言程序设计)
图书管理系统/*图书数据由编号、书名、出版社、单价和图书状态(库存用0表示或借出用读者编号表示),读者数据由编号、姓名和电话号码构成。
实现功能包括:(1)添加图书的记录(2)图书管理(借书和还书)(3)对图书数据排序(按单价的降序)(4)删除图书记录(5)修改图书记录(6)添加读者记录(7)输出图书信息表和读者信息表*#include <stdio.h>#include <string.h>#include <stdlib.h>#include <windows.h>/*函数的声明*/void bookname();void writername();void booknumber();void press();void bookdate();void Bfind(); //查询主菜单void Bdevise(); //修改函数void Badd(); //添加函数void Bdelete(); //删除函数void Bdisplay(); //显示所以已保存的图书信息函数void Bclean(); //清除所有图书信息函数void lendbook(); // 借书函数void returnbook(); //还书函数void lendorreturnbook();//借书或还书主菜单函数void appealkey();//用户密码申诉函数void devisepeoplekey();//修改用户密码函数void accountapply(); //用户申请账户函数void addpeopleaccount(); //管理员之添加用户帐号函数void addmanageaccount(); //管理员之添加管理员账号函数void addaccount(); //管理员之账户添加主菜单函数void devisepeopleaccount();//管理员之修改用户账号函数void devisemanageaccount();//管理员之修改管理员帐号函数void deviseaccount();//管理员之修改账号主菜单函数void deletepeopleaccount();//管理员之删除用户账号函数void deletemanageaccount();//管理员之删除管理员账号函数void deleteaccount();//管理员之删除账号主菜单函数void displayallpeopleaccounts();//显示所有用户信息函数void displayallmanageaccounts();//显示所有管理员信息函数void displayallaccountsmessage();//显示所有账号信息主菜单函数void highaddpeopleaccount(); //高级管理员添加用户账户函数void highaddmanageaccount(); //高级管理员添加管理员账户函数void highaddaccount(); //高级管理员之添加账户主菜单函数void booksmanage();//图书操作主菜单函数void accountsmanage();//管理员账号操作主菜单函数void highaccountsmanage();//高级管理员账号操作主菜单函数void menu1(); //用户之查询主菜单void menu2(); //管理员之查询主菜单void menu3(); //高级管理员之查询主菜单/*定义书的类型*/struct book{int bookstock; //库存量char bookname[20]; //书名char bookwriter[20]; //作者char booknumber[20]; //书号char press[20]; //出版社char bookdate[20]; //出版日期char price[20]; //出版价格int turefalse; //判断图书是否被借阅}books[20];/*定义用户类型*/struct peopleaccount{char pname[20];char pkey[20];}peopleaccounts[20];/*定义管理员类型*/struct manageaccount{char mname[20];char mkey[20];}manageaccounts[20];/*定义借书卡类型*/struct card{char cardnumber[20]; //借书卡号和用户信息一起写入yonghu.txt文件中的}cards[20];/*定义文件指针变量*/FILE *fp1; //fp1打开用户信息文件FILE *fp2; //fp2打开管理员信息文件FILE *fp3; //fp3打开图书信息文件FILE *fp4; //打开借还书记录的文件FILE *fpa; //fpa是临时文件指针/*改变输出的字体颜色*/void color(const unsigned short color1){if(color1>=0&&color1<=15)SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color1);/*仅限改变0-15的颜色;如果在0-15那么实现他的颜色因为如果超过15后面的改变的是文本背景色。
c语言图书信息管理系统c语言
图书管理系统目录一、问题描述这是一个能简单管理图书的小型图书管理系统,其中图书信息包括:书名,作者名,书编号,分类,出版单位,出版时间,价格等。
通过这些信息使之提供以下功能:(1)图书信息创建功能。
其中图书信息包括:书名,作者名,书编号,分类,出版单位,出版时间,价格等。
(图书信息用文件保存)。
(2)图书信息查看功能。
用来查看各项图书信息。
(3)图书信息查找功能。
通过已知信息来查找想要的图书。
(4)图书信息的删除。
可以删除特定图书。
(5)图书信息的修改。
可以修改图书的各项信息。
(6)菜单选择功能,此功能也是图书信息信息管理系统的入口,用户所要进行的各种操作均需在此模块中进行选择并进而调用其他模块实现相应的功能二、概要设计1 数据结构图书管理系统中主要的数据结构包含书名、图书书号、作者名、分类、出版社、出版时间、价格等;在处理过程中各项可以作为一本图书的不同属性来进行处理。
struct book{int num;//编号char name[20];//书名char author[20];//作者char publisher[20];//出版社int price;//价格int store;//库存};//图书信息结构体2 模块划分本系统主要有创建新的图书、查找图书、删除图书、修改图书、查看图书和图书排序几个基本功能。
void setup(struct book bo[]);//新建图书void search(struct book bo[]);//查找图书void modify(struct book bo[]);//查看图书void del(struct book bo);//删除图书void allbook(struct book bo[]);显示所有图书3 程序流程图否开始菜单新建图书修改信息查询图书删除图书所有图书退出是结束三、详细设计1 主函数int main()//主{struct book bo[100];char c;while(1){system("color 1A");printf("\n");printf("\n\t\t\t >>>欢迎进入图书管理系统<<<\n\n");printf("===================================== ===========================================\ n\n");printf("\t\t\t\t 1 录入新书\n\t\t\t\t 2 查询图书\n");printf("\t\t\t\t 3 修改信息\n\t\t\t\t 4 删除图书\n");printf("\t\t\t\t 5 所有图书\n");printf("\t\t\t\t 0 退出系统\n\n");printf("===================================== ===========================================\ n");printf("请选择:");c=getchar();switch(c){case'1':{setup(bo); getchar();break;}case'2':{search(bo);getchar();break;}case'3':{modify(bo);getchar();break;}case'4':{del(bo);getchar();break;}case'5':{allbook(bo);getchar;break;}case'0':{printf("\n感谢使用本系统");return 0;break;}default:{printf("\n输入有误,请重新输入:" );c=getchar();} }}}2 新建图书void setup(struct book bo[])打开文件或者新建一个文件,键盘输入新建的图书信息,然后把数据全部保存在数组bo数组中,最后存入文件。
c语言课程设计图书管理系统
c语言课程设计图书管理系统一、教学目标本课程的教学目标是使学生掌握C语言编程的基本知识,能够运用C语言设计简单的图书管理系统。
具体目标如下:1.知识目标:•掌握C语言的基本语法和数据结构。
•理解图书管理系统的需求和设计原理。
2.技能目标:•能够使用C语言进行程序设计和调试。
•能够独立设计并实现图书管理系统的功能模块。
3.情感态度价值观目标:•培养学生的编程兴趣和自主学习能力。
•培养学生的团队协作能力和问题解决能力。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构以及图书管理系统的需求分析和设计。
具体内容如下:1.C语言的基本语法:•变量和数据类型•运算符和表达式•函数和数组2.数据结构:3.图书管理系统的需求分析和设计:•用户界面设计•图书信息管理•借阅信息管理•查询和统计功能三、教学方法本课程采用多种教学方法相结合的方式,以激发学生的学习兴趣和主动性。
具体方法如下:1.讲授法:通过讲解C语言的基本语法和数据结构,使学生掌握相关知识。
2.案例分析法:通过分析图书管理系统的需求和设计案例,使学生理解并能够独立设计类似的系统。
3.实验法:通过编写和调试代码,使学生掌握C语言编程的技巧和方法。
四、教学资源本课程所需的教学资源包括教材、参考书、多媒体资料和实验设备。
具体如下:1.教材:选用权威出版的C语言编程教材,为学生提供系统的学习资料。
2.参考书:提供相关的C语言编程参考书籍,供学生深入学习和参考。
3.多媒体资料:制作课件和教学视频,以图文并茂的方式呈现教学内容,增强学生的学习兴趣。
4.实验设备:提供计算机和相关的编程工具,为学生提供实践编程的机会。
五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分,以保证评估的客观性和公正性。
1.平时表现:通过课堂参与、提问和小组讨论等方式评估学生的学习态度和参与程度。
2.作业:布置适量的编程作业,评估学生的编程能力和对知识的掌握程度。
3.考试:进行期中和期末考试,评估学生的综合运用能力和对知识的全面掌握。
图书管理系统代码(C语言)
图书管理系统代码(c语言)#include〈stdio. h>#include〈stdlib・ h>#include〈string・ h>struct book{int num;char bname[50];char wname[20];char press[50^;char sort[50]:int time;float price;struct book *next;};struct book *creatbook() ; //创建链表struct book * addbook (structbook *head) ; //添加图书int yanzheng(struct book *head, int m) ; //验证新添加的图书编码是否已存在void deletebook (struct book *head) ; //删除图书void fprint (struct book *head) : //将链表写入文件struct book *load() ; // 从文件中读取信息并建成链表void print_book(struct book *head) : //将链表信息输出void chaxun(struct book *head) ; //查询图书信息void num_chaxun(struct book *head) ; //按图书编号查询图书void wname_chaxun(struct book *head) ; //按作者名查询图书voidsort_chaxun(struct book *head) ; //按类另lj查询图书void time_chaxun(structbook *head) ; //按出版时间查询图书void bname_chaxun(struct book *head); //按图书名査询图书void xiugai (struct book *head); //修改图书信息void paixu(struct book *head) ; //对图书进行排序void num_paixu(struct book ♦head); 〃按图书编号排序void time_paixu(struct book *head) ; //按图书出版时间排序void price_paixu(struct book *head): //按图书价格排序void bname_paixu(struct book *head) ; //按图书名排序void wname_paixu(struct book *head) ; //按作者名排序int main()int choice, n, x, y=l, c, cl=123456;char a, d, b[10], bl[10]="201102520116";struct book *head=NULL;while(y){system("cis");printf ("\n\n\n\n\n\n\n");printf (z ********** 欢迎光临**********\n\n,z);printf (,z ********************** 图书信息管理系统printf C\n\n');printf C ™=_1—用户登录=_==\十);二二二二二二二二二二二二0-退出系统二二二二二二二二二二二\『);printf Cprintf f请输入您的选择「);scanf (,z%d,z, &n);printf("\n");getchar ();switch(n) {case 0:y 二0;break;case 1:printf C请输入您的用户名:〃);gets(b);printf C\n");printf C请输入您的密码:“);scanf("%d", &c);printf("\n");if(strcmp(b, bl)!=0 |c!=cl){printf C验证失败,请重新输入!\n〃);scanf &d);getchar ();system("cls");}else {printf ("验证通过!请按Enter键进入!\n"); scanf("%c", &d);getchar ();x二1;while(x){ system("cis");printf C --------------------- \n"); printff *图书信息管理系统*\n 〃); printf C --------------------- \n\rT); • I • '.I"■、』•-1"• I • '.I" ■、』•-1"■、/• I • '.I" ■、』•-1"■、/• I • '.I" ■、』•-1"■、/• I • '.I" ■、』•-1" ■、/ • I • '.I" \ \1 •viw vaw vVw vTw vVwvaw vgW viw vaw vVw vTw vVwvaw vgW viw vaw vVw vTw vVwvaw vgW viw vaw vVw vTw vVwvaw vgW viw vaw vVw vTw vVw vaw vgW viw vaw vVw vTw viw »Tw 、『(、『]•、.• \ \ 1 • viw viw vaw vTw viw viw viw viw vTW viwvaw vaw viw viw viw viw vTW viw vaw vaw viw viw viw viw vTW viw vaw vaw viw viw viw viw vTW viw vaw vaw viw viw viw viw vTW viw vaw vaw viw »Tw•”f.・•工・•」・• —I" ■、尸■、■•■、丿•工・•」・• —I"■、尸■、■•■、丿•工・•」・• —I"■、尸■、■•■、丿•工・•」・• —I" ■、尸■、■• ■、丿•工・•」・• —I"■、尸■、■• ■、丿•工・•」・• —I"■、,\ \1 •VBW VIW VIW VSW VBW VCW VIW VIW VIW VIW VBW VBW vYw VIW VIW VIW VIW VBW VBW vYwVIW VIW VIW VIW VBW VBW vYw V IW VIW VIW VIW VBW VBW vYwVIW VIW VIW VIW VBW VIW»Tw 、『(、[]• (_•・.l ・■、』•工・•丄• •」•• •丄••丄• •■l ・■、』•工・•丄• •」•• •丄••丄• •■1・■、』•工・•丄• •」•• •丄• •丄• •■1・■、』•工・•丄••」•• •丄••丄• •■1・■、』•工・•丄• •」•• •丄• •丄•■、』•工・•丄• •」.• \ \ 1 •v^w viw vaw vTw vawv^w viw vaw vaw vawv^w viw vaw vaw vawv^w viw vaw vaw vawv^w viw vaw vaw vawv^w viw vaw viw ^«w | I 、了]printf C 请输入所选择的序号:〃); scanf("%d", &choice); getchar (); system("cls"); switch(choice) case 0: x=0;break; case 1: head=load(); if (head=NULL) {printf C 文件为空,请先录入数据! \n 〃); getchar (); break; } else {head=addbook(head); printf ("添加成功! \n");printff 是否将新信息保存到文件?(y/n)\n 〃); scanf&a);printf (”II 1-添加图书 2-删除图书I\n\n");printf (" II 3-图书列表 4-图书排序 I \n\rT); printf (“II 3-查询图书 6-修改图书 I \n\rT); printf (“ II 7-录入数据 0-退岀系统 I \n\rT);printf Cprintf (”printf ("printf (”getchar ();switch(a){case , n,:break;case ' y‘ :fprint(head);printf ("保存成功! \n");getchar ();break;}break;}case 2:head=load();if (head=NULL) {printf C文件为空,请先录入数据! \n〃);getchar ();break;}else{deletebook(head);getchar ();break;}break;case 3:head=load();辻(head==NULL){printf ("文件为空,请先录入数据!\n");getchar ();break;}else{print_book(head);getchar ();break;}case 4:head二load ();辻(head==NULL) {printf ("文件为空,请先录入数据! \『);getchar ();break;}else{paixu (head);getchar ();}break;case 5:head二load ();辻(head==NULL){printf ("文件为空,请先录入数据!\n");getchar ();break;}else{chaxun(head);getchar ();}break;case 6:head=load();辻(head二二NULL){printf C文件为空,请先录入数据!\n");getchar ();break;}else {xiugai(head);getchar ();break;}break;case 7:printf (〃注意:输入图书编码为0时结束! \rT);head=creatbook ();printf r是否将输入的信息保存到文件以覆盖文件中已存在的信息?(y/n)\n");getchar ();scanf (“%c", &a);getchar ();switch(a){case ' n :break;case ' y‘ :fprint(head);printf ("保存成功! \n");getchar ();break;}break;default:printff您的输入有误,请重新输入! \n〃);getchar ();break;}}}break;default:printf("您的输入有误!请重新输入!\n〃);getchar ();break;}}}//录入数据并形成链表struct book *creatbook() {struct book *head, *tail, *p;int num, time, n;char bname[50], wname[20], press[50],sort[50];float price; int size=sizeof(struct book): head二tail二NULL; printfC请输入图书编号:〃);scanf&num);printff请输入图书名:〃);scanfbname);getchar ();printff请输入作者名:〃);scanf wname);getchar ();printfC请输入出版社:“);scanfpress);getchar ();printfC请输入类别:“);scanf (〃%s: sort);getchar ();printfC请输入出版时间:“);scanf&time);getchar ();printf ("请输入价格:");scanf("%f", &price);getchar ();while(l) {p= (struct book *)malloc(size);p->num=num;strcpy(p->bname, bname);strcpy(p->wname, wname);strcpy(p->press,press);strcpy(p->sort, sort);p->time二time;p->price=price;p->next二NULL;if (head=NULL)head二p;elsetail-〉next二p;tail=p;do{printff请输入图书编号:〃);scanf&num);n=yanzheng(head, num);辻(n=0)break;elseprintff您输入的编号已存在,请重新输入! \n〃); }while(1);if(num==0) break;else printfC请输入图书名:〃);scanfbname);getchar ();printff请输入作者名:〃);scanf wname);getchar ();printff请输入出版社:“);scanfpress);getchar ();printfC请输入类别:");scanfsort);getchar ();printfC请输入出版时间:”); scanf ("%d", &time);getchar ();printf ("请输入价格:”);scanf("%f", &price);getchar ();}}return head;}〃插入结点,并且插入后仍按一定顺序struct book *addbook (struct book *head) struct book *ptr, *pl, *p2, *p;char bname[50], wname[20], press[50_, sort[50];int size=sizeof(struct book):int num, time, n=l:float price;do{printff请输入图书编号:“);scanf&num);n=yanzheng(head, num);if (n=0)break;elseprintf (〃您输入的编号已存在,请重新输入! \n〃);}while(1);printf C请输入图书名:〃);scanfbname);getchar ();printf r请输入作者名:〃);scanf wname);getchar ();printf C请输入出版社:〃);scanfpress);getchar ();printfC请输入类别:〃);scanf(〃%s〃, sort);getchar ();printfC请输入出版时间:“);scanf &time);getchar ();printf ("请输入价格:”);scanf("%f", &price);getchar ();p= (struct book *)malloc(size);p->num=num;strcpy (p~>bname, bname);strcpy(p->wname, wname);strcpy (p->press, press);strcpy (p->sort, sort);p->time=time;p->price=price;p2=head;Ptr=p;while((ptr->num>p2->num)&&(p2-〉next!=NULL)){pl二p2;p2二p2-〉next;}if(ptr->num<=p2->num){if (head=p2)head二ptr;else {pl->next=ptr;p->next=p2;}}else {p2->next=ptr;p->next二NULL;}return head;}//验证添加的图书编号是否已存在int yanzheng(struct book *head, int m) {struct book *p;p=head;while(p!=NULL){if (p-'nunFp)break;p=p->next;}辻(p二二NULL)return 0;elsereturn 1;}//将新链表写入文件中void fprint (struct book *head){FILE *f p;char ch二'1’ ;struct book *pl;if ((fp 二 f open ("fl. txt", "w"))=NULL) {printf (,z File open error!\n z/):exit(0);}fputc(ch, fp);for(pl二head;pl;pl二pl->next) {fprintf (fp,,z%d %s %s %s %s %d %f\n,z, pl->num, pl->bname, pl->wname, pl->press,pl-〉sort,pl-〉time, pl-〉price);}fclose (fp);}//从文件中读取图书信息struct book *load()FILE *fp;char ch;struct book *head,*tail,*pl:head二tail二NULL;if ((fp 二 f open ("fl. txt", "r"))=NULL) {printf (,z File open error!\n z/):exit(O);}ch=fgetc (fp);辻(ch='l'){while(!feof(fp)) {pl=(struct book *)malloc(sizeof(struct book)):fscanf (fp, z,%d%s%s%s%s%d%f\n, &pl->num, pl->bname, pl->wname, pl- >press,pl-〉sort, &pl-〉time, &pl->price);辻(head二二NULL)head=pl;elsetail->next=pl;tail=pl;}tail-〉next二NULL;fclose (fp);return head;}elsereturn NULL;}〃将整个链表的信息输出void print_book(struct book *head) {struct book *ptr;辻(head=NULL) {printf ("\n 没有信息!\n");return;}printf r图书信息列表如下\n);printf C============================+)printfC编号图书名作者名出版社类别出版时间价格\n〃);for(ptr=head;ptr;ptr=ptr->next)printf (,z %d %s %s %s %s %d%・ 2f\n z/, ptr->num, ptr->bname, ptr->wname, ptr-〉press, ptr-〉sort, ptr->time, ptr-〉price);}printf CW);}//删除图书信息void deletebook(struct book *head) {int a;char b, ch二'1’ ;struct book *pl,*p2;FILE *fp;printff请输入要删除的图书编号:〃);scanf&a);pl=head;if (pl->num~a&&pl->next==NULL) { //对于文件中只有一组数据printfC是否清空文件!(y/n)\『);getchar ();scanf&b);getchar ();switch (b) {case ' n :break;case ' y‘ :if ((fp 二 f open ("fl. txt", "w"))=NULL) {printf (,z File open error!\n z,):exit(O);}fclose (fp);printf C文件已清空! \rT);}}else {while (pl->num!二a&&pl-〉next!二NULL) {p2二pl;pl=pl->next;}if (pl->next=NULL) {if (pl->num==a){p2-〉next二NULL;printfC是否确定从文件中彻底删除该图书?(y/n)\n,z); getchar ();scanf&b);switch (b) {case ' n :break;case ' y‘ :fprint(head);printf ("删除成功!\n");getchar ();break;}}else {printf (〃没有找到要删除的数据! \『);getchar ();}}else if(pl==head) {head=pl~>next:printf("是否确定从文件中彻底删除该图书?(y/n)\n"); getchar (); scanf &b);switch(b){case ' n :break;case ' y‘ :fprint (head);PrintfC 删除成功!\n〃);getchar ():break;}}else{p2-〉next二pl->next;printf("是否确定从文件中彻底删除该图书?(y/n)\n"); getchar ();scanf ("%c", &b);switch (b) { case ' n': break;case ' y,:fprint(head);printf ("删除成功!\n");getchar ();break;}}}}〃图书查询void chaxun(struct book *head) {int a;printf(”============================\n)printf C ** 1-按图书编号查询2-按图书名查询和<\『);printf (,z ** 3-按图书类别查询4-按作者名查询和<\n〃);printf C ** 5-按出版时间査询0-退出查询**\n");printf C============================\n );printf C请输入所选择的编号:〃);scanf&a);getchar ();switch(a){case 0:break;case 1:num_chaxun(head); break;case 2:bname_chaxun(head); break;case 3:sort_chaxun(head); break;case 4:wname_chaxun(head); break;case 5:t ime_chaxun(head); break;default:printf ("您的输入有误! \n"); break;}//按编号查询图书信息void num_chaxun(struct book *head){int a;struct book *p;printff请选择您要查询的图书编号:〃); scanf&a);getchar ();p二head;while(p!=NULL){if (p->num==a)break;p=p->next;}辻(p二二NULL){printfC没有找到该编号的图书!\n〃);}else {printfC你所查询的图书信息如下\n〃); printf C二二二\『);printfC * *编号图书名作者名岀版社类别岀版时间}价格**\n9 ;printf("** %d %s %s %s %s %d %. 2fp->num, p->bname, p->wname, p->press, p->sort, p->time, p->price); printf C=\n〃);}}〃按图书名查询图书信息void bname_chaxun(struct book *head) {char a[50];int flag=0;struct book *p;printf (〃请选择您要查询的图书名:〃);gets (a);p=head;while(p!=NULL){if (strcmp(p->bname, a)==0){flag=l;break;p=p->next; }}辻(flag=O) {printff没有找到该图书名的图书!\n〃);}else {printf(〃你所查询的图书信息如下\n〃);printf C二二二\『);printf (〃桂编号图书名作者名出版社类别出版时间价格桂\n〃);while(p!=NULL){if(strcmp(p->bname, a)==0){printf("** %d %s %s %s %s %d %. 2f**\n,z, p->num, p->bname, p->wname, p->press, p->sort, p->time, p->price); }p=p->next;}printf C}===\n,z); }〃按作者名查询图书信息void wname_chaxun(struct book *head) { char a[50];int flag^O;struct book *p;printff请选择您要查询的图书作者名:〃); gets (a);p二head;while(p!=NULL){if (strcmp (p->wname, a) ==0) {flag=l;break;}p=p->next;}if(flag=0) {printff没有找到该图书名的图书!\n〃);}printf Celse {printfC你所查询的图书信息如下\n〃);printf C=\n〃);printfC **编号图书名作者名出版社类别出版时间价格while(p!=NULL){if (strcmp (p->wname, a) ==0) {printf("** %d %s %s %s %s %d %. 2fp->num, p->bname, p->wname, p->press, p->sort, p->time, p->price); flag=l;}p=p->next;}printf C=\n〃);}}〃按图书类别查询图书信息void sort_chaxun(struct book *head) {char a[50];int flag=0;struct book *p;printf C请选择您要查询的图书类别:〃);gets (a);p=head;while(p!=NULL){if(strcmp(p->sort, a)==0) {flag=l;break;}p二p->next;}辻(flag=O) {printff没有找到该图书名的图书!\n〃);}else {printf ("你所查询的图书信息如下\n〃);printf C=\『);printf (,z **编号图书名作者名出版社类别出版时间价格杯\n"); while(p!=NULL){if(strcmp(p->sort, a)==0) {printf C** %d %s %s %s %s %d %. 2f**\n,z, p->num, p->bname, p->wname, p->press, p->sort, p->time, p->price); flag=l;}p=p->next;}printf C=\『);}}〃按图书出版时间查询图书信息void time^chaxun(struct book *head) {int a,flag=0;struct book *p;printf r请选择您要查询的图书出版时间:〃);scanf("%d", &a);getchar ();p=head;while(p!=NULL){if (p->time==a) {flag=l;}break; }p=p->next;}if(flag=O) {printff没有找到该图书名的图书!\n〃);}else {printff你所查询的图书信息如下\n〃);printf(”=\n");printf (〃桂编号图书名作者名出版社类别出版时间价格while(p!=NULL){if(p->time==a){printf("** %d %s %s %s %s %d %. 2fp->num, p->bname, p->wname, p->press, p-〉sort, p->time, p-〉price);flag=l;}p二p-〉next;printf("}=\n");}}//修改图书信息void xiugai(struct book *head) {int a, b;char c;struct book *p;printfC请输入要修改的图书编号:〃);scanf&a);p=head;while(p!=NULL){if (p->num==a)break;p=p->next;}if(p二二NULL){printfC没有找到该编号的图书!\n〃); getchar ();}else {printf CW);printf r ** 1-编号2-图书名3-作者名printf C ** 4-出版社5-类别6-出版时间*水\n");printf C ** 7-价格8-修改全部0-放弃修改**\n");printf C============================\n");printf C请选择你要修改的信息编号:〃);scanf&b);getchar ();switch (b) {case 1:printf r请输入新编号:“);scanf&p->num);printf ("修改成功! \n");getchar ();break;case 2:printf r请输入新图书名:“);gets (p->bname);printf ("修改成功! \n");break;case 3:printff请输入新作者名:“);gets(p->wname);printf ("修改成功!\n"); break;case 4:printf r请输入新出版社:”);gets(p->press);printf ("修改成功! \n"); break;case 5:printf r请输入新类别:”);gets(p->sort);printf ("修改成功! \n"); break;case 6:printf r请输入新出版时间:“); scanf&p~>time);printf ("修改成功!\n"); getchar ();break;case 7:printf r请输入新价格:“); scanf ("%f", &p->price); printf ("修改成功! \n");getchar ();break;case 8:printf r请输入新图书编号:“);scanf&p->num);printf C请输入新图书名:“);scanf p->bname);getchar ();printf C请输入新作者名:“);scanf p->wname);getchar ();printf r请输入新出版社:”);scanfp->press);getchar ();printf r请输入新类别:“);scanf(〃%s: p->sort);getchar ();printf r请输入新出版时间:“);scanf&p->time);getchar ();printf r请输入新价格:〃);scanf ("%f", &p->price);getchar ();printf ("修改成功! \n");getchar ();break;case 0:break;default :printf C您的输入有误! \n");break;}printf C是否将修改后的信息保存到文件中?(y/n)\rT); scanf&c):getchar ();switch (c) {case ' n :break;case ,y‘ :fprint(head);printf ("保存成功!\n");getchar ();break;}}}〃图书排序void paixu(struct book *head) {int a;printf(”\ 〃 \\ > .----------------------------------------------------------------------- \n 丿, printf r ** 1-按图书编号排序2-按出版时间排序**\n");printf C ** 3-按图书价格排序4-按图书名排序**\n z/);printf C ** 5-按作者名排序0-取消排序操作材\n");printf (”___________________________________________________________________ \〃\ . \AX / f printf C请输入您选择的编号:〃);scanf("%d", &a);getchar ();switch(a){case 0:break;case 1:num_paixu(head); break;case 2:time_paixu(head);break;case 3:price_paixu(head);break;case 4:bname_paixu(head);break;case 5:wname_paixu(head);break;default:printf C您的输入有误! \n");break;}}〃按图书编号排序void num_paixu(struct book *head) {struct book *a[1000], *p, *pl, *temp; int i, k, index, n=0;for(p=head;p;p=p->next)n++;。
C语言课程设计——图书馆管理系统
C语言课程设计——图书馆管理系统目录第1章引言 (2)1.1 题目背景 (2)1.2 设计目的 (2)1.3 解决问题 (2)第2章使用工具与特点 (4)2.1 C语言的发展 (4)2.2 C语言的特点 (5)第3章总体设计 (6)3.1编写目的 (6)3.2系统功能 (6)第4章系统分析与设计 (12)4.1添加功能设计 (12)4.2借阅图书功能 (13)第5章系统功能实现 (19)5.1添加功能 (19)5.2借阅功能 (19)结论 (22)致谢 (23)第1章引言1.1 题目背景随着计算机技术的飞速发展,改变了世界,也改变了人类的生活。
作为现代科学技术的飞速发展,改变了世界,也改变了人类的生活。
新世纪的大学生,应当站在时代发展的前列,掌握现代科学技术知识,调整自己的知识结构和能力结构,以适应社会发展的要求当今社会,多元文化快速发展,人与人的交流也越来越多,社交也越来越广泛,这时,记住自己认识的人是很重要的,因此我们做了这个程序,为了使我们更有效的记录下自己所认识的人,更方便去和更多的人交流而不会记错。
C语言成了在国内外使用的一种计算机语言。
C语言功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好、既具有高级语言的优点,又具有低级语言的许多特点,因此特别适合于编写系统软件。
现在大多数的高校都把C语言作为第一门计算机语言进行教学,这是可行的,学生也是能够学习好的。
1.2 设计目的这次设计主要是应用了C程序设计中的一些算法,还有一些函数的调用,结构体的应用等,根据他们的基本思想来编写程序。
程序包括的主要内容可以对图书馆管理系统进行输入、修改、删除、借阅、归还、显示等操作,设计一个有关学生借阅图书的管理程序,来方便人们对信息更方便的使用,经过这样一个过程来巩固和完善自己所学的知识,同时来培养一下自己的实践能力。
通过本设计可以加深理解利用程序设计思想开发一个系统的整个流程,提高分析问题、解决问题和实际动手的能力。
图书管理系统c语言
图书管理系统C语言1. 简介图书管理系统是一种用于管理图书馆藏书和借阅记录的软件系统。
它通常包括图书的录入、借阅、归还、查询等功能,能够提高图书馆的工作效率和服务质量。
本文将使用C语言编写一个简单的图书管理系统,实现基本的图书信息录入、修改、查询、借阅、归还等功能。
2. 功能实现2.1 数据结构我们首先需要定义合适的数据结构来存储图书信息和借阅记录。
以下是一个简单的数据结构示例:struct Book {int id; // 图书编号char title[100]; // 图书标题char author[50]; // 图书作者char category[50]; // 图书分类int isBorrowed; // 图书是否已借阅,0表示未借阅,1表示已借阅char borrowerName[100]; // 借阅者姓名// 可根据需求扩展其他字段};struct BorrowRecord {int bookId; // 图书编号char borrowerName[100]; // 借阅者姓名char borrowDate[20]; // 借阅日期char returnDate[20]; // 归还日期// 可根据需求扩展其他字段};2.2 图书信息录入和修改我们可以通过实现相应的函数来实现图书信息的录入和修改。
以下是一个简单的示例:void addBook(struct Book *library, int *count) {// 输入图书信息,将其存入library数组中,同时更新count}void updateBook(struct Book *library, int count, int bookId) { // 根据图书编号bookId,更新library数组中对应图书的信息}2.3 图书查询我们可以根据图书的不同字段来实现不同的查询功能,比如根据图书标题、作者、分类等进行模糊查询,或根据图书编号进行精确查询。
图书管理系统的设计(C语言)
图书管理系统设计图书管理信息包括:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等功能描述:1 .新进熟土基本信息的输入2 .图书基本信息的查询3 .对撤销图书信息的删除4 .为借书人办理注册5 .办理借书手续6 .办理换书手续要求:以文件方式存储数据,系统以菜单方式工作。
这是本人大一第二学期初 C 语言课程设计的作品,嘿嘿,本来以为已经找不到原稿了,今天无意中居然在QQ 网络硬盘中找到了当初的teta 版,发布于此,以作记念。
C 源代码如下:#include〈stdio 。
h〉#include<stdlib。
h〉#include〈string 。
h>struct book {char book_name [30];int bianhao;double price;char author[20];char state [20] ;char name[20];char sex [10];int xuehao;struct book *book_next;};struct club {char name [20];char sex[10];int xuehao;char borrow [30];struct club *club_next;};void Print_Book(struct book *head_book);/*浏览所有图书信息*/void Print_Club(struct club *head_club);/*浏览所有会员信息*/struct book *Create_New_Book();/*创建新的图书库, 图书编号输入为0 时结束*/struct book *Search_Book_bianhao(int bianhao,struct book *head_book);struct book *Search_Book_name (char *b_name,struct book *head_book);struct book *Search_Book_price (double price_h,double price_l,struct book *head_book);struct book *Insert_Book (struct book *head_book,struct book *stud_book) ;/*增加图书,逐个添加*/struct book *Delete_Book(struct book *head_book,int bianhao);/*删除图书*/struct club *Create_New_Club() ;struct club *Search_Club_xuehao(int xuehao,struct club *head_club);struct club *Search_Club_name (char *c_name,struct club *head_club);struct club *Insert_Club (struct club *head_club,struct club *stud_club);struct club *Delete_Club (struct club *head_club,int xuehao);struct book *Lent_Book (int bianhao ,int xuehao,struct book *head_book,struct club *head_club);struct book *back (int bianhao,int xuehao,struct book *head_book,struct club *head_club); int main(){struct book *head_book,*p_book;char book_name [30],name [20],author [20],sex [10];int bianhao;double price,price_h,price_l;int size_book=sizeof(struct book);int m=1,n=1,f;char *b_name,*c_name;struct club *head_club,*p_club;int xuehao;int size_club=sizeof (struct club) ;int choice;printf ("\n 欢迎您第一次进入图书管理系统!\n\n");printf("---——>[向导]————-〉[新建图书库] \n\n”) ;printf ("注意:当输入图书编号为0 时,进入下一步.\n\n");head_book=Create_New_Book();system(”cls”) ;printf("\n 欢迎您第一次进入图书管理系统!\n\n") ;printf("----—〉[向导]——---〉[新建会员库]\n\n”);printf(”注意:当输入会员学号为0 时,进入主菜单.\n\n”);head_club=Create_New_Club () ;system (”cls”);do {printf(”\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n”);printf("\n”);printf ("\t\t\t[1] :借书办理\t");printf(" [6]:还书办理\n”);printf (”\n");printf(”\t\t\t[2]:查询图书\t");printf(" [7]:查询会员\n”);printf (” \t\t\t[3]:添加图书\t");printf (" [8]:添加会员\n”);printf ("\t\t\t[4]:删除图书\t");printf (” [9] :删除会员\n") ;printf (” \t\t\t[5]:遍历图书\t");printf (” [10]:遍历会员\n\n”) ;printf ("\t\t\t〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n\n”);printf("\t\t\t0:退出\n\n”) ;printf(”请选择〈0~10〉:”);scanf(”%d",&choice);switch(choice) {case 1:printf ("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n");printf (”输入所借图书编号:\n");scanf (”%d",&bianhao);printf ("输入借书人的学号:\n”);scanf ("%d",&xuehao);head_book=Lent_Book(bianhao,xuehao,head_book,head_club);system (”cls");printf (” \n 借阅成功!\n\n");printf (”相关信息如下:\n\n");head_book=Search_Book_bianhao (bianhao,head_book);break;case 2:system ("cls”) ;printf(”\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n”); printf ("1。
C语言图书管理系统
C语言图书管理系统#include <stdio.h>#include <stdlib.h>#include <conio.h>struct BOOK{int id,usr[10],total,store,days[10];char name[30],author[20];}books[100];/*上面是结构体的定义,用于存放书籍及借书的信息。
*/void page_title(char *menu_item){system("cls");printf(">>> 图书管理系统 <<<\n\n- %s -\n\n",menu_item);}/*上面是打印页眉的函数,同时通过参数menu_item,可以显示当前的状态。
*/void return_confirm(void){printf("\n按任意键返回……\n");getch();}/*上面是返回前请求确认的函数,以便在返回前观察结果*/int search_book(void){int n,i; printf("请输入图书序号:");scanf("%d",&i);for(n=0;n<100;n++){if(books[n].id==i){printf("书名:%s\n",books[n].name);printf("作者:%s\n",books[n].author);printf("存数:%d\n",books[n].store);printf("总数:%d\n",books[n].total);return n;} }printf("\n输入错误或无效图书序号.\n");return -1;}/*上面的函数是在数组中找到图书号匹配的记录,显示其信息并返回数组下标,如果找不到相应记录则提示错误并返回-1。
c语言图书馆管理系统(codeblocks版)
printf("\t--------PASS: %40s--------\n", p1->pass);
printf("\t--------LEVEL:%40d--------\n", p1->level);
/*
*图书馆管理系统
*@author琴卓
*@time 2015-12-10
*/
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
#include<ctype.h>
#include<windows.h>
#define PASS_LEN 20 //密码长度
int lendsum;
struct user *next;
}user;
//用户结构体简写为bokk
typedef struct book {
char name[20];
char author[20];
char publish[20];
char year[10];
char ISBN[40];
char state[10];
char choice;
//程序入口
void main()
{
system("color 8b");
system("mode con cols=100 lines=50");
printf("\t\t\t图书馆系统细则:\n\t\t1.新用户注册由系统管理员操作\n\t\t2.图书由图书管理员负责\n\t\t3.普通用户最多借3本书为期30天,可续借一次,\n\t\t超期不换将每天扣除0.1元,超过10元账户将冻\n\t\t结,届时无法完成登录,需要找系统管理员解冻\n\t\t4.密码输入支持退格,访问级别1代表普通用户\n\t\t5.单项数据输入不支持空格\n\t\t6.程序每关闭开启一次经过6天\n");
C语言图书管理系统源代码
#include<stdio。
h〉#include<stdlib.h〉#include〈string。
h〉struct tushu{ /*图书结构体*/ char num[10]; /*编号*/char name[20];/*书名*/char writer[20];/*作者*/char press[20];/*出版社*/char kind[20];/*类别*/double time; /*时间*/double price;/*价格*/struct tushu *next;};struct stu /*学生结构体*/ {int snum;/*学号*/char mima[10]; /*密码*/struct stu *next;};FILE *fp; /*图书文件*/FILE *fp1; /*管理员信息文件*/ FILE *fp2; /*学生信息文件*/void menu();/*管理员主菜单(管理员进入对图书及学生信息进行管理操作)*/void xmenu();/*学生主菜单(学生进入可对图书,密码进行操作)*/void gfind(); /*管理员查询(管理员可按一定的方式查询图书)*/void xfind();/*学生查询(学生可按一定的方式查询图书)*/ void secret();/*管理员权限(管理员登陆所用,输入错误次数过多自动退出)*/void sort();/*排序(管理员可按一定的方式对图书进行排序,排序完之后可选择文件进行保存)*/void fprint(struct tushu *head);/*保存(可追加的保存,如添加可用)*/void fprint_(struct tushu *head);/*保存(可覆盖保存如修改,删除,排序后用)*/void hfprint(struct tushu *head); /*还书保存(还书成功后自动保存到文件)*/void jfprint_(struct tushu *head);/*借书保存(借书成功之后自动从图书馆删除)*/struct tushu * Input(); /*图书添加(可进行图书的添加)*/struct tushu *create(); /*从文件创建链表(从文件中读出信息,建立单链表)*/void gBrowse(struct tushu *head);/*管理员浏览(对图书进行遍历)*/void xBrowse(struct tushu *head);/*学生浏览(学生对图书进行遍历)*/void count(struct tushu *head); /*统计数量(管理员可对图书进行统计)*/void Findofname(struct tushu *head); /*按书名查找*/ void Findofwriter(struct tushu *head); /*按作者查找*/void Findofkind(struct tushu *head); /*按类别查找*/void xFindofname(struct tushu *head);/*学生按书名查找*/void xFindofwriter(struct tushu *head);/*学生按作者查找*/ void xFindofkind(struct tushu *head); /*学生按类别查找*/ void Sort_time(struct tushu * head); /*按时间排序(管理员按时间对图书进行排序,排序完之后可选择文件进行保存)*/ void Sort_price(struct tushu *head); /*按价格排序*/void Sort_num(struct tushu * head);/*按编号排序*/ void Delete(struct tushu * head,char m[15]);/*按编号删除(管理员可按编号删除图书)*/void Revise(struct tushu *head);/*修改(管理员可对图书进行修改,并选择是否保存)*/void borrow(struct tushu *head); /*借书*/void huanshu(); /*还书(学生借完书之后进行还书,若没有图书则不能借)*/void gxinxi(); /*管理员信息(有管理员的账号及密码,可进行修改)*/void xmima(struct stu *head1);/*学生密码修改(学生可对自己的密码进行修改)*/struct stu *xcreate();/*从文件创建学生信息(从文件读出学生信息,建立学生链表)*/void xsecret(struct stu *head1);/*学生权限(学生登陆所用)*/void menu() /*管理员主菜单(管理员进入对图书及学生信息进行管理操作)*/{int choice,n=0;struct tushu *head;struct stu *head1,*p;char m[15];there:printf("┏━┓━━━━━━━━━━━━━━━━━━━┏━┓\n"); printf(" ┃┃socat 图书管理系统printf(” ┃┗━━━━━━━━━━━━━━━━━━━┛┃\n"); printf(" ┃●[0]退出系统┃\n");printf(” ┃┃\n”);prin tf(” ┃●[1]帮助┃\n");printf(” ┃┃\n”);printf(” ┃●[2]浏览图书┃\n");printf(” ┃┃\n");printf(” ┃●[3]统计图书数目┃\n”);printf(" ┃┃\n”);printf(” ┃●[4]查询┃\n”);printf(” ┃printf(” ┃●[5]添加┃\n");printf(” ┃┃\n”);printf(” ┃●[6]排序┃\n");printf(” ┃┃\n");printf(" ┃●[7]修改┃\n”);printf(” ┃┃\n");printf(" ┃●[8]删除┃\n”);printf(" ┃┃\n”);printf(" ┃●[9]修改账号及密码┃\n");printf(” ┃┃\n”);printf(” ┃●[10]学生信息printf(”┗━━━━━━━━━━━━━━━━━━━━━━━┛\n");printf(” 请选择:”);fflush(stdin);head=create();scanf("%d”,&choice);if(choice==1){//help();printf(”没有内容!\n”);system("pause”);system(”cls”);menu();}else if(choice==2){system(”cls");if(head==NULL){printf(”没有图书,请先添加图书!\n”);system("pause");system("cls");menu();}gBrowse(head);}else if(choice==3){system(”cls");count(head);}else if(choice==4){system("cls");if(head==NULL){printf(”没有图书,请先添加图书!\n”);system("pause”);system(”cls”);menu();}gfind();}else if(choice==5){Input();}else if(choice==6){system("cls");if(head==NULL){printf(”没有图书,请先添加图书!\n”); system("pause”);system(”cls”);menu();}sort(head);}else if(choice==7){system("cls”);if(head==NULL){printf(”没有图书,请先添加图书!\n”);system("pause");system("cls”);menu();}Revise(head);}else if(choice==8){if(head==NULL){printf("没有图书,请先添加图书!\n");system(”pause");system(”cls");menu();}printf(" 请输入想要删除的图书编号:”);scanf(”%s",m);Delete(head,m);}else if(choice==9){gxinxi();else if(choice==10){system(”cls”);head1=xcreate();if(head1==NULL){printf("没有学生信息,请到xuesheng_list.txt添加!\n”); sys tem(”pause”);system(”cls”);menu();}for(p=head1;p!=NULL;p=p—>next){printf(”学生学号密码\n”);printf("%d %s\n",p->snum,p—>mima);}system(”pause”);system("cls”);menu();}else if(choice==0)system(”cls");printf(”\n\n\n\n”);printf(” ━━━━━━━━感谢使用图书管理系统━━━━━━━━\n\n\n”);exit(0);}else{system("cls");printf(”\n\n\n\n ━━━━输入错误,请重新输入!━━━━\n\n\n ");system("pause”);system(”cls”);n++;if(n==3){printf(” \n\n\n ━━━━━━━━你错误次数太多,自动退出!━━━━━━━━\n\n\n”);printf(" ━━━━━━━━感谢使用图书管理系统━━━━━━━━\n\n\n");system(”pause");exit(0);}goto there;}}void xmenu()/*学生主菜单(学生进入可对图书,密码进行操作)*/{struct tushu *head;struct stu *head1;int choice,n=0;there:printf(”┏━┓━━━━━━━━━━━━━━━━━━━┏━┓\n");printf(” ┃┃socat 图书借阅系统┃┃\n");printf(” ┃┗━━━━━━━━━━━━━━━━━━━┛┃\n"); printf(” ┃●[0]退出系统┃\n”);printf(” ┃printf(” ┃●[1]帮助┃\n”);printf(” ┃┃\n”);printf(” ┃●[2]浏览图书┃\n");printf(” ┃┃\n”);printf(" ┃●[3]查询┃\n”);printf(” ┃┃\n”);printf(” ┃●[4]借书┃\n");printf(” ┃┃\n”);printf(" ┃●[5]还书┃\n");printf(" ┃┃\n”);printf(” ┃●[6]修改密码printf("┗━━━━━━━━━━━━━━━━━━━━━━━┛\n”); printf(" 请选择:");fflush(stdin);head=create();scanf("%d”,&choice);if(choice==1){//xhelp();printf(”没有内容!\n");system(”pa use");system(”cls”);xmenu();}else if(choice==2){system("cls");if(head==NULL){printf(”没有图书!\n");system("pause”);xmenu();}xBrowse(head);}else if(choice==3){if(head==NULL){printf(”没有图书!\n”);system(”pause”);system(”cls”);xmenu();}xfind();}else if(choice==4){if(head==NULL){printf(”没有图书!\n");system(”pause”);xmenu();}borrow(head);}else if(choice==5){huanshu(head);}else if(choice==6){system("cls”);head1=xcreate();if(head1==NULL){printf(”学生信息被清空!!\n”);system("pause");system("cls”);xmenu();}xmima(head1); ;}else if(choice==0){system("cls");printf(”\n\n\n\n”);printf(” ━━━━━━━━感谢使用图书管理系统━━━━━━━━\n\n\n");exit(0);}else{system("cls”);printf("\n\n\n\n ━━━━输入错误,请重新输入!━━━━\n\n\n ”);system(”pause”);system(”cls”);n++;if(n==3){printf(” \n\n\n ━━━━━━━━你错误次数太多,自动退出!━━━━━━━━\n\n\n”);printf(” ━━━━━━━━感谢使用图书管理系统━━━━━━━━\n\n\n”);system("pause”);exit(0);}goto there;}}void gfind()/*管理员查询(管理员可按一定的方式查询图书)*/{int choice,n=0;struct tushu *head;there:system(”cls”);printf(” ┏━┓━━━━━━━━━━━━━━━━━━━┏━┓\n”);printf(” ┃┃socat 图书借阅系统┃┃\n”);printf(” ┃┗━━━━━━━━━━━━━━━━━━━┛┃\n");printf(" ┃●[0]返回┃\n");printf(" ┃┃\n”);printf(" ┃●[1]按书名查找┃\n”);printf(" ┃┃\n”);printf(" ┃●[2]按作者查找┃\n”);printf(” ┃┃\n”);printf(" ┃●[3]按类别查找┃\n”);printf(" ┃┃\n”);printf(" ┃● ┃\n”);printf(”┗━━━━━━━━━━━━━━━━━━━━━━━┛\n”);printf(" 请选择:”);fflush(stdin);head=create();scanf(”%d”,&choice);if(choice==1){system(”cls");Findofname(head); }else if(choice==2){system(”cls”); Findofwriter(head); }else if(choice==3){system(”cls");Findofkind(head); }else if(choice==0){system(”cls”);menu();}else{system(”cls”);printf(”\n\n\n\n ━━━━输入错误,请重新输入!━━━━\n\n\n ”);system("pause");system(”cls");n++;if(n==3){printf(" \n\n\n ━━━━━━━━你错误次数太多,自动退出! ━━━━━━━━\n\n\n”);printf(" ━━━━━━━━感谢使用图书管理系统━━━━━━━━\n\n\n”);system(”pause”);exit(0);}goto there;}}void xfind()/*学生查询(学生可按一定的方式查询图书)*/ {struct tushu *head;int choice,n=0;there:system("cls”);printf(” ┏━┓━━━━━━━━━━━━━━━━━━━┏━┓\n”);printf(” ┃┃socat 图书借阅系统┃┃\n”);printf(” ┃┗━━━━━━━━━━━━━━━━━━━┛┃\n");printf(” ┃●[0]返回┃\n”);printf(” ┃┃\n");printf(" ┃●[1]按书名查找┃\n”);printf(” ┃┃\n”);printf(" ┃●[2]按作者查找┃\n”);printf(" ┃┃\n");printf(” ┃●[3]按类别查找┃\n");printf(” ┃┃\n”);printf(" ┃● ┃\n");printf(”┗━━━━━━━━━━━━━━━━━━━━━━━┛\n"); printf(” 请选择:");fflush(stdin);head=create();scanf(”%d",&choice);if(choice==1){system(”cls”);xFindofname(head);}else if(choice==2){system(”cls”);xFindofwriter(head);}else if(choice==3){system("cls");xFindofkind(head);}else if(choice==0){system(”cls");xmenu();}else{system("cls");printf("\n\n\n\n ━━━━输入错误,请重新输入!━━━━\n\n\n ”);system(”pause”);system(”cls");n++;if(n==3){printf(” \n\n\n ━━━━━━━━你错误次数太多,自动退出!━━━━━━━━\n\n\n”);printf(” ━━━━━━━━感谢使用图书借阅系统━━━━━━━━\n\n\n”);system("pause”);exit(0);}goto there;}}void sort(){struct tushu *head;int choice,n=0;there:system("cls”);printf(” ┏━┓━━━━━━━━━━━━━━━━━━━┏━┓\n");printf(” ┃┃socat 图书借阅系统┃┃\n");printf(" ┃┗━━━━━━━━━━━━━━━━━━━┛┃\n”);printf(" ┃●[0]返回┃\n”);printf(” ┃┃\n");printf(” ┃●[1]按时间排序┃\n”);printf(” ┃┃\n”);printf(” ┃●[2]按价格排序┃\n");printf(" ┃┃\n”);printf(” ┃●[3]按编号排序┃\n”);printf(" ┃┃\n”);printf(” ┃●┃\n”);printf(”┗━━━━━━━━━━━━━━━━━━━━━━━┛\n”);printf(" 请选择:”);fflush(stdin);head=create();scanf("%d",&choice);if(choice==1){system("cls”); Sort_time(head);}else if(choice==2){sys tem(”cls");Sort_price(head);}else if(choice==3){system(”cls”);Sort_num(head); }else if(choice==0){system("cls”); menu();}else{system(”cls");printf("\n\n\n\n ━━━━输入错误,请重新输入!━━━━\n\n\n ”);system(”pause”);system(”cls”);n++;if(n==3){printf(” \n\n\n ━━━━━━━━你错误次数太多,自动退出! ━━━━━━━━\n\n\n”);printf(” ━━━━━━━━感谢使用图书借阅系统━━━━━━━━\n\n\n”);system("pause”);exit(0);}goto there;}}struct tushu *Input(){struct tushu *p1,*p2,*head,*ptr;char num;int x,i=0;system("cls”);p1=(struct tushu *)malloc(sizeof(struct tushu));head=p1;p1-〉price=—1;while(i!=1){printf(”请输入编号,以’#’结束\n”);scanf("%s",p1—>num);if(strcmp(p1-〉num,”#")==0)i=1;while(i!=1){printf(”请依次输入书名作者出版社类别出版时间价格\n”); scanf(”%s%s%s%s%lf%lf”,p1—>name,p1—>writer,p1—〉press,p1-〉kind,&p1-〉time,&p1—〉price);p2=p1;p1=(struct tushu *)malloc(sizeof(struct tushu));p2—〉next=p1;break;}}if(p1-〉price!=-1)p2—〉next=NULL;elsehead=NULL;system("cls”);printf("\n\n\n\t\t\t图书信息输入结束!\n\n\n”);system(”pause”);system(”cls”);printf(”\n\n\n\t\t\t是否保存图书信息?(1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.分类号:单位代码:本科毕业设计说明书C语言编写图书管理系统姓名李彬学号0114年级2008级本科3班专业机械设计制造及其自动化系(院)机械工程学院指导教师李培珍年月日目录第一部分.................................................. 错误!未定义书签。
职业生涯规划——十年创业路................................ 错误!未定义书签。
1前言................................................... 错误!未定义书签。
2自我剖析................................................ 错误!未定义书签。
3环境分析................................................ 错误!未定义书签。
3.1国家环境............................................. 错误!未定义书签。
3.2社会环境............................................. 错误!未定义书签。
3.3职业环境............................................. 错误!未定义书签。
3.4分析小结............................................. 错误!未定义书签。
4未来人生职业规划........................................ 错误!未定义书签。
5总结................................................... 错误!未定义书签。
第二部分.................................................. 错误!未定义书签。
C语言编写图书管理系统.................................... 错误!未定义书签。
摘要.................................................... 错误!未定义书签。
Abstract.................................................. 错误!未定义书签。
1需求分析................................................ 错误!未定义书签。
1.1 系统需求............................................ 错误!未定义书签。
1.2 功能分析............................................ 错误!未定义书签。
2系统功能模块结构图...................................... 错误!未定义书签。
2.1 系统调用的函数...................................... 错误!未定义书签。
2.2 图书管理系统模块.................................... 错误!未定义书签。
3 图书管理系统的结构...................................... 错误!未定义书签。
3.1 主函数流程图........................................ 错误!未定义书签。
错误!未定义书签。
错误!未定义书签。
错误!未定义书签。
错误!未定义书签。
错误!未定义书签。
3.2 实体数据结构........................................ 错误!未定义书签。
错误!未定义书签。
错误!未定义书签。
错误!未定义书签。
错误!未定义书签。
错误!未定义书签。
错误!未定义书签。
错误!未定义书签。
错误!未定义书签。
3.3 程序文件存储设计.................................... 错误!未定义书签。
错误!未定义书签。
错误!未定义书签。
错误!未定义书签。
错误!未定义书签。
错误!未定义书签。
4 图书管理系统测试........................................ 错误!未定义书签。
4.1 测试过程............................................ 错误!未定义书签。
4.2 实验结果............................................ 错误!未定义书签。
4.3 系统缺陷............................................ 错误!未定义书签。
5出错处理................................................ 错误!未定义书签。
5.1 出错输出信息........................................ 错误!未定义书签。
5.2 出错处理对策........................................ 错误!未定义书签。
6安全设计................................................ 错误!未定义书签。
7 设计心得................................................ 错误!未定义书签。
参考文献............................................... 错误!未定义书签。
附录.................................................... 错误!未定义书签。
第一部分职业生涯规划——十年创业路1前言在今天这个人才竞争的时代,职业生涯规划开始成为在人争夺战中的另一重要利器。
对企业而言,如何体现公司“以人为本”的人才理念,关注员工的人才理念,关注员工的持续成长,职业生涯规划是一种有效的手段;而对每个人而言,职业生命是有限的,如果不进行有效的规划,势必会造成生命和时间的浪费。
作为当代大学生,若是带着一脸茫然,踏入这个拥挤的社会怎能满足社会的需要,使自己占有一席之地?因此,我试着为自己拟定一份职业生涯规划,将自己的未来好好的设计一下。
有了目标,才会有动力。
2自我剖析优点:做事仔细认真、踏实、有耐心、肯吃苦耐劳。
为人和蔼、友善、安分、忠实可靠、很好相处而且能以一种实事求是的态度接受他人的行为,但我需要基本的信任和理解。
总是避免矛盾,更在意维护人际关系。
只要可能,就会使自己适应他人的需要和期望。
缺点:性格偏内向,不太善于表达自己,语言表达还很欠缺。
交际能力较差,胆小,思想上属保守派,积极主动性不够。
有时偷懒,知识面不广,经验不足。
缺乏毅力、恒心有时多愁善感。
兴趣爱好:1.cad、PRO/E绘图。
2.看书。
3.编程。
4.听音乐。
3环境分析3.1国家环境机械自动化技术从上个世纪2O年代开始发展应用以来,已经得到了迅速的发展,特别是近年来计算机的高度集成化,开始采用了计算机集成制造系统,大大加快了机械自动化的发展,但我国仍处于初级操作阶段的自动化。
我国机械制造业目前有1 1.4万个企业,发展很不平衡,有大量落后于现代水准的产业,大部分企业还比较落后,手工劳动占有相当的比重,我国能独立开发现代机械自动化技术的企业可以说没有;我国机械制造业企业中自动化装备少、水准低,不仅在数量上同世界先进国家有较大差距,而且在品种上、质量上、使用上,同世界先进水准也存在阶段性差距。
实现我国机械自动化技术是一个长期的过程,不可能一蹴而就,需要循序渐进,不断努力,创造条件,向自动化的高级理想阶段迈进。
3.2社会环境国产造型生产线因产品质量差、可靠性低、实用性差,开工率一般仅在50%~60%。
而能在生产中长期服役的主力生产线很少,像第一汽车制造厂的01线、第二汽车制造厂的BMD线等具有全年开工业绩的线更是风毛麟角。
这种现象不属偶然或局部,而是带有普遍性。
据调查,我国引进的弧焊机器人,完全正常运转、充分发挥效益的只占1/3,另外1/3处于负荷不满或不能完全正常运转状态:还有1/3不能正常使用,直接影响了用户使用更多机器人的信心。
所以,我国现在需要自动化控制方面的人才,以提高利用率、生产率。
3.3职业环境由于大力发展工业自动化是加快传统产业改造提升、提高企业整体素质、提高国家整体国力、调整工业结构、迅速搞活大中型企业的有效途径和手段,国家将继续通过实施一系列工业过程自动化高技术产业化专项,用信息化带动工业化,推动工业自动化技术的进一步发展,加强技术创新,实现产业化,解决国民经济发展面临的深层问题,进一步提高国民经济整体素质和综合国力,实现跨越式发展。
此时很多企业都需要自动化控制方面的人才。
3.4分析小结前景是乐观的,但是经济的发展和全球化的到来必将导致人才精英化,这就需要我更加努力学习与专业相关的拓展知识,完善自己,让自己更容易融入社会,融入工作。
4未来人生职业规划技术学习期:对于我们刚毕业的大学生来说,最缺乏的应该就是动手操作的能力了,也就是技术!所以,毕业后先学一门技术在这个高速发展的社会里是刻不容缓的。
我需要三年的时间去学习一门技术,这不仅会是为了未来的生活,我还必须根据自己的知识去完善它,让它成为我自己的技术。
经验累积期:在这个时期,我已经可以独立工作,并且还要多学习经验,多与同行师傅学习。
并且要学习企业管理,为以后的创业打下坚实的基础。
这个时期我定为五年。
自主创业期:在这个时期,我已经学习到了技术,积累了经验,有了广阔的人际关系和丰富的管理知识。
我需要的是拼搏。
在未来的两年,我会用我积攒的知识、技术、资金和人脉组成一个二十人左右的团队,走上我的创业路。
创业的路一定是艰辛的,一定会遇到各种各样的问题,我会在接下来的两年里不断改善我的团队,发展她……5总结通过规划,我清楚地认识了自己,确立了自己的努力方向和职业定位,这样就可以使自己保持平稳和正常的心态,按照目标和理想有条不紊、循序渐进地努力。
当然,计划虽好,最重要的还是在于其具体的实践和所取得的成效。
任何目标,只说不做到头来都会是一场空。
然而现实是未知多变的,定出的计划随时都会遭遇问题,这就要求我们有清醒的头脑,客观的分析和全面的认知。
每个人都有自己的理想信念,抱负和追求,每个人都渴望成功,但在此过程中我们必须坚持信念,必须持之以恒,必须脚踏实第二部分C语言编写图书管理系统摘要论文主要讲述的是用C语言编写图书管理系统。