图书管理系统(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; }
完美运行。
相关文章推荐
- C++提高5 STL算法 :查找,统计,排序,拷贝,替换,算术,集合 |STL 案例:学校演讲比赛介绍
- 备忘录模式-c++实现
- 大话设计模式03----单一职责原则
- 已知先序、中序求后序;已知中序、后序求先序(C++)
- 大数运算模板(C语言)
- 动态规划的思考(三)
- 代刷题目分类(二)
- 大话设计模式02----商场促销-策略模式
- Combinations
- C++中关于堆和栈的说法,哪个是错误的:
- C++ Learning (1)
- C++不是类型安全的语言
- 读书笔记:Effective C++(二)
- C语言中FILE相关与CodeBlocks命令行(windows)
- C语言之内存覆盖
- c++11多线程 生产者-消费者模型/条件变量condition_variable
- C++的类为什么要用指针
- Sort Colors
- C++中new和delete的用法注意。
- c++对象模型和RTTI(runtime type information)