您的位置:首页 > 编程语言 > C语言/C++

图书管理系统(c语言课程设计)

2016-07-20 22:30 591 查看
写个c语言课程设计玩

要求: 职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。试设计一职工信息管理系统,使之能提供以下功能:

系统以菜单方式工作

1.职工信息录入功能(职工信息用文件保存)--输入
2.图书信息浏览功能————输出
3.查询和排序功能:(至少一种查询方式)  --算法
按工资查询 ,按学历查询等
4职工信息删除、修改功能(任选项)


代码如下:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct {
char number[10];//登录号
char name[20];//书名
char author[20];//作者
char sort[20];//分类号
char publish[50];//出版社
char time[20];//出版时间
float price;//价格
} mbook;
typedef struct {
int count;                                          //图书数
mbook book[100];                                    //最大可录入的图书数
} mlibrary;
mlibrary library;
void save() {                                           //保存图书信息
FILE *fp;
if((fp=fopen("library.txt","w"))==NULL) {
printf("保存图书失败\n");
return;
}
fwrite(&library.count,sizeof(int),1,fp);
fwrite(library.book,sizeof(library.book[0]),library.count,fp);
}
void putin() {                                          //图书录入
system("cls");
int t=1;
library.count=0;
while(t) {
printf("请输入图书登录号:");
scanf("%s",library.book[library.count].number);
printf("\n请输入图书书名:");
scanf("%s",library.book[library.count].name);
printf("\n    请输入作者:");
scanf("%s",library.book[library.count].author);
printf("\n  请输入分类号:");
scanf("%s",library.book[library.count].sort);
printf("\n  请输入出版社:");
scanf("%s",library.book[library.count].publish);
printf("\n请输入出版时间:");
scanf("%s",library.book[library.count].time);
fflush(stdin);
printf("\n请输入图书价格:");
scanf("%f",&library.book[library.count].price);
library.count++;//实际数比此数少1
printf("\n是否继续输入图书信息(1:是;0:否):");
scanf("%d",&t);
}
save();
}
void scan() {                                            //图书浏览
system("cls");
printf("登录号\t书名\t作者\t分类号\t出版社\t出版时间\t价格\n");
fflush(stdin);
for(int l=0; l<library.count; l++) {
printf("%s\t",library.book[l].number);
printf("%s\t",library.book[l].name);
printf("%s\t",library.book[l].author);
printf("%s\t",library.book[l].sort);
printf("%s\t",library.book[l].publish);
printf("%s\t",library.book[l].time);
printf("    %.2f\t\n",library.book[l].price);
}
getchar();
}
void search() {                                         //图书查询
system("cls");
fflush(stdin);
int l;
char c[20];
printf("请输入要查找的书名-_-:\n");
gets(c);
for(l=0; l<library.count; l++) {
if(strcmp(c,library.book[l].name)==0) {
printf("登录号\t书名\t作者\t分类号\t出版社\t出版时间\t价格\n");
printf("%s\t",library.book[l].number);
printf("%s\t",library.book[l].name);
printf("%s\t",library.book[l].author);
printf("%s\t",library.book[l].sort);
printf("%s\t",library.book[l].publish);
printf("%s\t",library.book[l].time);
printf("    %.2f\t",library.book[l].price);
break;
}
}
if(l==library.count)
printf("没有此图书\n");
fflush(stdin);
getchar();
}
void del() {                                            //图书删除
system("cls");
fflush(stdin);
int l;
char c[10];
printf("请输入要删除的书名-_-:\n");
gets(c);
for(l=0; l<library.count; l++) {
if(strcmp(c,library.book[l].name)==0)
break;
}
if(l==library.count)
printf("没有此图书\n");
else
for(int j=l; j<library.count-1; j++) {
strcpy(library.book[j].number,library.book[j+1].number);
strcpy(library.book[j].name,library.book[j+1].name);
strcpy(library.book[j].author,library.book[j+1].author);
strcpy(library.book[j].sort,library.book[j+1].sort);
strcpy(library.book[j].publish,library.book[j+1].publish);
strcpy(library.book[j].time,library.book[j+1].time);
library.book[j].price=library.book[j+1].price;
}
library.count--;
printf("\n再按一次回车");
fflush(stdin);
save();
getchar();
}
void update() {                                 //图书修改
system("cls");
fflush(stdin);
int l;
char c[10];
printf("请输入要修改的书名-_-:\n");
gets(c);
for(l=0; l<library.count; l++)
if(strcmp(c,library.book[l].name)==0)
break;
if(l==library.count)
printf("没有该图书\n");
else {
printf("请输入修改后的图书登录号:");
scanf("%s",library.book[l].number);
printf("\n请输入修改后的图书书名:");
scanf("%s",library.book[l].name);
printf("\n    请输入修改后的作者:");
scanf("%s",library.book[l].author);
printf("\n  请输入修改后的分类号:");
scanf("%s",library.book[l].sort);
printf("\n  请输入修改后的出版社:");
scanf("%s",library.book[l].publish);
printf("\n请输入修改后的出版时间:");
scanf("%s",library.book[l].time);
fflush(stdin);
printf("\n请输入修改后的图书价格:");
scanf("%f",&library.book[l].price);
}
fflush(stdin);
save();
}
int main() {                                    //主函数
FILE *fp;
if((fp=fopen("library.txt","r"))==NULL) {
printf("不能打开文件信息库\n");
fp=fopen("library.txt","w+");
printf("创建文档,请关闭后重启\n");
library.count=0;
fwrite(&library.count,sizeof(int),1,fp);
fclose(fp);
}
fread(&library.count,sizeof(int),1,fp);
fread(library.book,sizeof(library.book[0]),library.count,fp);
fclose(fp);
int x;
do {
system("cls");//清屏
printf("——————————图书信息管理系统设计——————————\n");
printf("                    1.图书信息录入\n");
printf("                    2.图书信息浏览\n");
printf("                    3.图书信息查询\n");
printf("                    4.图书信息删除\n");
printf("                    5.图书信息修改\n");
printf("                    6.退出\n");
printf("************************************************************\n");
printf("请输入数字以选择功能:");
fflush(stdin);//清除输入缓存
scanf("%d",&x);
switch(x) {
case 1:
putin();//录入
break;
case 2:
scan();//浏览
break;
case 3:
search();//查询(按书名)
break;
case 4:
del();//删除
break;
case 5:
update();//修改
break;
case 6:
printf("\n\n退出\n\n");
break;
default:
printf("\n序号不对\n");
break;
}
} while(x!=6);
save();
return 0;
}


完美运行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: