300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > C语言课设:图书信息管理系统设计

C语言课设:图书信息管理系统设计

时间:2019-04-22 10:03:43

相关推荐

C语言课设:图书信息管理系统设计

观前注意:复制粘贴没关系请点个赞,局部有误但无影响总体。本文只设计C语言基础语法。因为历史遗留问题,时间冗长,笔者现已不想修改此文,抱歉。请“拿来主义者”自行修改调整代码。

图书信息管理系统设计

图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图

书信息管理系统,使之能提供以下功能:

系统以菜单方式工作

图书信息录入功能(图书信息用文件保存)--输入

图书信息浏览功能--输出

查询和排序功能:--算法

按书名查询

按作者名查询

图书信息的删除与修改

参考代码

#include<stdio.h>#include<stdlib.h>#include<conio.h>#include<string.h>struct Lib{int num;//登陆号 char name[32];//书名 char nat[32];//作者名 char adr[32];//出版单位 int time;//出版时间 int num2;//分类号 int price;//价格 };struct Lib lib[100];int count=0,i=0;char input()//图书信息录入{for(;i<40;i++){printf("请输入图书登陆号:");scanf("%d",&lib[i].num);printf("请输入图书书名:");scanf("%s",&lib[i].name);printf("请输入作者名:");scanf("%s",&lib[i].nat);printf("请输入出版单位:");scanf("%s",&lib[i].adr);printf("请输入出版时间:");scanf("%d",&lib[i].time);printf("请输入分类号:");scanf("%d",&lib[i].num2);printf("请输入价格:");scanf("%d",&lib[i].price);count++;//记录录入信息的个数system("cls");//清屏return -1;}}void brouse()//图书信息浏览{int i;printf(" 登录号 书名 作者名 出版单位 出版时间 分类号 价格 \n");for(i=0;i<count;i++){printf(" %d %s%s %s %d %d %d\n",lib[i].num,lib[i].name,lib[i].nat,lib[i].adr,lib[i].time,lib[i].num2,lib[i].price);}printf("请按任意键返回");_getch();}void name()//书名查询{int i;char name[10];printf("请输入所查图书名字:\n");scanf("%s",name);for(i=0;i<count;i++)if(strcmp(lib[i].name,name)==0){printf("查询结果如下:\n");printf(" 登录号 书名 作者名 出版单位 出版时间 分类号 价格 \n");printf(" %d %s%s %s %d %d %d\n",lib[i].num,lib[i].name,lib[i].nat,lib[i].adr,lib[i].time,lib[i].num2,lib[i].price);break;}if(i>=count){printf("\n\n\t狠抱歉,没有该图书的信息\n");}printf("请按任意键返回");_getch();}void nat()//作者名查询 {int i;char nat[10]; printf("请输入所查询作者的名字:\n");scanf("%s",nat);for(i=0;i<count;i++)if(strcmp(lib[i].nat,nat)==0){printf("查询结果如下:\n");printf(" 登录号 书名 作者名 出版单位 出版时间 分类号 价格 \n");printf(" %d %s%s %s %d %d %d\n",lib[i].num,lib[i].name,lib[i].nat,lib[i].adr,lib[i].time,lib[i].num2,lib[i].price);break;}if(i>=count){printf("\n\n\t狠抱歉,没有该图书的信息\n");}printf("请按任意键返回");_getch();}void search()//图书信息查询{void num();void name();void tel();int i;printf("\n");printf(" 1.按书名查询 \n");printf(" 2.按作者名查询 \n");printf(" 3.返回管理系统页面 \n");printf("\n");scanf("%d",&i);system("cls");switch(i){case 1: name();break;case 2: nat();break;case 3:break;}}void renum()//登录号修改{char name[10];int i,t;printf("请输入需要修改的图书名字:");scanf("%s",name);printf("\n\n");for(i=0;i<count;i++)if(strcmp(lib[i].name,name)==0){printf("本图书初始登录号为:%d\n",lib[i].num);printf("修改后的登录号是:");scanf("%d",&t);lib[i].num=t;printf("\n");printf("修改成功!!\n");break;}if(i>=count){printf("\n\n\t狠抱歉,没有该图书的信息\n");}printf("请按任意键返回");_getch();}void re_name()//修改书名 {char name[10];int i;char t[10];printf("请输入需要修改的图书名字:");scanf("%s",name);printf("\n");for(i=0;i<count;i++)if(strcmp(lib[i].name,name)==0){printf("本图书初始名字是:%d\n",lib[i].name);printf("修改后的名字是:");scanf("%s",t);strcpy(lib[i].name,t);printf("\n");printf("修改成功!!\n");break;}if(i>=count){printf("\n\n很抱歉,没有该图书的信息\n\n");}printf("请按任意键返回");_getch();}void renat()//作者名修改 {char name[10];int i;char nat[3];printf("请输入需要修改的图书名字:");scanf("%s",name);printf("\n\n");for(i=0;i<count;i++)if(strcmp(lib[i].name,name)==0){printf("本职工初始性别是:%d\n",lib[i].nat);printf("修改后的之后的性别是:");scanf("%s",nat);strcpy(lib[i].nat,nat);printf("\n");printf("修改成功!!\n");break;}if(i>=count){printf("\n\n很抱歉,没有该图书的信息\n\n");}printf("请按任意键返回");_getch();}void readr()//出版单位修改 {int i;char adr[10];char name[10];printf("请输入需要修改的图书名字:");scanf("%s",name);printf("\n\n");for(i=0;i<count;i++)if(strcmp(lib[i].name,name)==0){printf("本图书初始出版单位是:%d\n",lib[i].adr);printf("修改后的出版单位是:");scanf("%s",adr);strcpy(lib[i].adr,adr);printf("\n");printf("修改成功!!\n");break;}if(i>=count){printf("\n\n很抱歉,没有该图书的信息\n\n");}printf("请按任意键返回");_getch();}void retime()//{int time;char name[10];int i;printf("请输入需要修改的图书名字:");scanf("%s",name);printf("\n\n");for(i=0;i<count;i++)if(strcmp(lib[i].name,name)==0){printf("图书的初始出版时间是:%s\n",lib[i].time);printf("修改后的出版时间是:");scanf("%d",&time);lib[i].time=time;printf("\n");printf("修改成功!!\n");break;}if(i>=count){printf("\n\n很抱歉,没有该图书的信息\n\n");}printf("请按任意键返回");_getch();}void renum2()//分类号修改 {int num2;char name[10];int i;printf("请输入需要修改的图书名字:");scanf("%s",name);printf("\n\n");for(i=0;i<count;i++)if(strcmp(lib[i].name,name)==0){printf("本图书初始的分类号是:%d\n",lib[i].num2);printf("修改后的分类号是:");scanf("%d",&num2);lib[i].num2=num2;printf("\n");printf("修改成功!!\n");break;}if(i>=count){printf("\n\n很抱歉,没有该图书的信息\n\n");}printf("请按任意键返回");_getch();}void reprice()//{int price;char name[10];int i;printf("请输入需要修改的图书名字:");scanf("%s",name);printf("\n\n");for(i=0;i<count;i++)if(strcmp(lib[i].name,name)==0){printf("图书的初始价格是:%s\n",lib[i].price);printf("修改后的价格是:");scanf("%d",&price);lib[i].price=price;printf("\n");printf("修改成功!!\n");break;}if(i>=count){printf("\n\n很抱歉,没有该图书的信息\n\n");}printf("请按任意键返回");_getch();}void revise()//图书信息修改。{void renum();void re_name();void resex();void reage();void rexueli();void repay();void rezhuzhi();void retel();int j;printf(" 1.登录号修改\n");printf(" 2.图书名修改\n");printf(" 3.作者名修改\n");printf(" 4.出版单位修改\n");printf(" 5.出版时间修改\n");printf(" 6.分类号修改\n");printf(" 7.价格修改\n");printf(" 8.返回管理系统页面 \n");scanf("%d",&j);system("cls");switch(j){case 1: renum();break;case 2: re_name();break;case 3: renat();break;case 4: readr();break;case 5: retime();break;case 6: renum2();break;case 7: reprice();break; case 8:break;}}void dele()//图书信息的删除{int i,j;char del_name[10];printf("请输入需要删除的图书名字:\n");scanf("%s",del_name);printf("\n");for(i=0;i<count;i++){if((strcmp(lib[i].name,del_name)==0)){for(j=i;j<count;j++){lib[j]=lib[j+1];}printf("\t删除成功!!!\n\n");count--;}}printf("\n请按任意键返回\n");_getch();}void sort()//图书信息的排序{int j;void sortnum();void sortnum2();void sortprice();printf("选择排序方法:\n");printf(" 1.按登录号排序\n");printf(" 2.按分类号排序 \n");printf(" 3.按图书价格排序 \n");printf(" 4.返回管理系统页面 \n");scanf("%d",&j);system("cls");switch(j){case 1:sortnum();break;case 2:sortnum2();break;case 3:sortprice();break;case 4:break;}}void sortnum()//以登录号为标准,利用冒泡法进行排序{int i,j;struct Lib t;for(j=0;j<count-1;j++) //进行count-1次循环,实现count-1趟比较{for(i=0;i<count-1-j;i++) //在每趟中进行count-1-j次比较{if(lib[i].num<lib[i+1].num) //相邻两数比较{t=lib[i];lib[i]=lib[i+1];lib[i+1]=t;}}}printf("\n\n\t\t排序成功!!!\n\n");printf("请按任意键返回");_getch();}void sortnum2()//以分类号为标准,利用冒泡法进行排序{int i,j;struct Lib t;for(j=0;j<count-1;j++) //进行count-1次循环,实现count-1趟比较{for(i=0;i<count-1-j;i++) //在每趟中进行count-1-j次比较{if(lib[i].num2>lib[i+1].num2) //相邻两数比较{t=lib[i];lib[i]=lib[i+1];lib[i+1]=t;}}}printf("\n\n\t\t排序成功!!!\n\n");printf("请按任意键返回");_getch();}void sortprice()//以价格为标准,利用冒泡法进行排序{int i,j;struct Lib t;//设置t结构体作为中间变量实现两个图书信息的交换for(j=0;j<count-1;j++){for(i=0;i<count-1-j;i++){if(lib[i].price>lib[i+1].price){t=lib[i];lib[i]=lib[i+1];lib[i+1]=t;}}}printf("\n\n\n");printf("\t排序成功!!! \n\n\n");printf("请按任意键返回");_getch();}void save()//文件建立及保存 {FILE * fp;int i;if((fp=fopen("lib","wb"))==NULL){printf("不能打开文件\n");return;}for(i=0;i<count;i++){if(fwrite(&lib[i],sizeof(struct Lib),1,fp)!=1)printf("文件输出错误\n");}fclose(fp);printf("\n\n\t\t保存成功!!!\n\n");printf("请按任意键返回");_getch();}void read()//数据的读取{FILE * fp;fp=fopen("lib","rb");do{fread(&lib[i],sizeof(struct Lib),1,fp);//地址 长度 条数 指针count++;i++;}while(!feof(fp));//判断不等于0i--;count--;fclose(fp);printf("\n\n\t\t读取成功!!! \n\n");printf("请按任意键返回");_getch();}void quit(){int q;printf("\n\n\t\t1,确定退出\n\n");printf("\t\t2,取消退出\n \n");scanf("%d",&q);switch(q){case 1:return;break;case 2:break;}}void main(){int k;while(1){system("cls");printf("(1) 图书信息录入\n");printf("(2) 图书信息浏览\n");printf("(3) 图书信息查询\n");printf("(4) 图书信息修改\n");printf("(5) 图书信息删除\n");printf("(6) 图书信息排序\n");printf("(7) 图书数据保存\n");printf("(8) 图书信息读取\n");printf("(9) 退出 \n");printf("\n\n");scanf("%d",&k);switch(k){case 1:system("cls");input();break;case 2:system("cls");brouse();break;case 3:system("cls");search();break;case 4:system("cls");revise();break;case 5:system("cls");dele();break;case 6:system("cls");sort();break;case 7:system("cls");save();break;case 8:system("cls");read();break;case 9:system("cls");quit();break;}}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。