需要文件的请加企鹅号, 二四一五7072, Ado,由于时间原因,不是经常登录此账号。
这个是一个课程设计后的成果,在大二时候学习C语言后做的第一个大程序,总计900行代码,有注释,提供下载,c语言课程设计图书管理系统,找不到的来这下载吧。
C代码
- /*************************
- * 运行环境:vc6.0
- *************************/
- #include <stdio.h> /*头文件名*/
- #include <string.h>
- #include <stdlib.h>
- #define Max 3 /*定义最大借书权限(可更改)*/
- typedef struct book /*图书类型*/
- {
- char book_num[10];
- char book_name[20];
- int book_kc;
- int book_xc;
- struct book *next;
- }BK;
- typedef struct borrow /*借书数目类型*/
- {
- char borrow_book_num[10];
- }BO;
- typedef struct reader /*读者类型*/
- {
- char reader_num[10];
- char reader_name[10];
- int right;
- BO borrow[Max]; /*嵌套借书数目类型*/
- struct reader * next;
- }RD;
- BK *h_book; /*图书指针*/
- RD *h_reader; /*读者指针*/
- int Menu(); /*主菜单*/
- void Menu_select(); /*主菜单选择函数*/
- void Init(); /*初始化函数*/
- void Init_reader(); /*初始化读者*/
- void Init_book(); /*初始化图书*/
- void Insert_New_Book(); /*增加新书*/
- void Insert_New_Reader(); /*增加新读者*/
- void del_old_book(); /*删除旧图书*/
- void del_old_reader(); /*删除旧读者(就是已经不存在或毕业的同学)*/
- void book_not_enough(); /*库存不足信息函数*/
- int Find(); /*查找函数*/
- void Find_Select(); /*查找选择菜单*/
- void Find_Reader(); /*查找读者*/
- void Find_Book(); /*查找图书*/
- void Borrow_Book(); /*借书函数*/
- void Return_Book(); /*还书函数*/
- void about(); /*"关于系统的说明"函数*/
- int Print(); /*打印函数*/
- void Print_Select(); /*打印选择函数*/
- void Print_book(); /*打印图书信息*/
- void Print_reader(); /*打印读者信息*/
- void Save(); /*保存信息函数*/
- void Save_Reader(); /*保存读者信息*/
- void Save_Book(); /*保存图书信息*/
- void Load(); /*加载信息函数*/
- void Load_Reader(); /*加载读者信息*/
- void Load_Book(); /*加载图书信息*/
- int Menu()
- { int sn;
- printf("\n\t\t图书管理系统主菜单\n");
- printf("=================================================\n");
- printf("*\t0----退出系统 6----关于系统 \t*\n");
- printf("*\t1----新书入库 7----旧书出库 \t*\n");
- printf("*\t2----增新读者 8----删旧读者 \t*\n");
- printf("*\t3----图书查询 9----输出全部信息\t*\n");
- printf("*\t4----借书登记 10----库存不足图书\t*\n");
- printf("*\t5----还书管理 11----保存当前信息\t*\n");
- printf("=================================================\n");
- printf("请选择相应代码:"); /*代码选择模式(下同)*/
- for(;;)
- { scanf("%d",&sn);
- fflush(stdin);
- if(sn<0||sn>11)
- printf("\n错误!请重新输入:");
- else break;
- }
- return sn;
- }
- void Menu_select()
- {
- for(;;) /*循环调用模式,保证能进行重复操作(下同)*/
- {
- switch(Menu())
- { case 0:
- system("cls");
- Save();
- printf("\n\n\t文件保存成功!\n");
- printf("\n\n\tGoodBye!\n");
- getch();
- exit(0);
- case 1:Insert_New_Book();break; /*功能调用*/
- case 2:Insert_New_Reader();break;
- case 3:Find_Select();break;
- case 4:Borrow_Book();break;
- case 5:Return_Book();break;
- case 6:about();break;
- case 7:del_old_book();break;
- case 8:del_old_reader();break;
- case 9:Print_Select();break;
- case 10:book_not_enough();break;
- case 11:Save(); Load();
- printf("\n文件保存成功!按任意键进行下步操作....");
- getch(); system("cls");break;
- default:printf("\n错误!");exit(0);
- }
- }
- }
- void Init() /*初始化*/
- {
- Init_reader();
- Init_book();
- }
- void Init_reader() /*初始化读者信息(从键盘输入一组数据)*/
- {
- RD *p0;
- int i;
- printf("\n读者初始化开始,请输入读者信息..\n包括编号.姓名..\n");
- p0=(RD *)malloc(sizeof(RD));
- h_reader=p0;
- printf("\n请输入读者的信息:\n");
- printf("ReaderNo.:"); /*输入读者编号(唯一)*/
- scanf("%s",p0->reader_num);
- printf("ReaderName:"); /*输入读者姓名(不唯一)*/
- scanf("%s",p0->reader_name);
- p0->right=0;
- for(i=0;i<Max;i++)
- strcpy(p0->borrow[i].borrow_book_num,"0");
- /*所借图书直接置为0(即没有借书)*/
- p0->next=NULL;
- printf("\n读者信息初始化完毕!按任意键继续下一步操作..\n");
- /*头接点建立完毕*/
- getch();
- system("cls");
- }
- void Init_book() /*初始化图书信息(从键盘输入一组数据)*/
- {
- BK *p0;
- printf("\n图书初始化开始,请输入图书信息..\n包括编号.书名.数量..\n");
- p0=(BK *)malloc(sizeof(BK));
- h_book=p0;
- printf("\n请输入图书信息:\n");
- printf("BookNo.:"); /*输入图书编号(唯一)*/
- scanf("%s",p0->book_num);
- printf("BookName:"); /*输入图书名称(不唯一)*/
- scanf("%s",p0->book_name);
- printf("Number:"); /*输入图书数量*/
- scanf("%d",&p0->book_kc);
- p0->book_xc=p0->book_kc; /*开始时图书现存量和库存量相等*/
- p0->next=NULL;
- printf("\n图书信息初始化完毕!按任意键继续下一步操作..\n");
- getch();
- system("cls");
- }
- ................
- void main()
- {
- FILE *fp_book,*fp_reader;
- if((fp_book=fopen("Book.dat","rb"))==NULL||(fp_reader=fopen("Reader.dat","rb"))==NULL)
- {
- about(); /*第一次启动系统,则进行初始化,否则进行加载*/
- Init();
- }
- else
- Load();
- Menu_select(); /*调用主菜单*/
- }
本程序绝对可以运行,此程序在代码总计900行,一程序设计大赛中得奖。如有需要原程序学习的朋友,可以留下你的邮箱,我会在第一时间将程序发到你邮箱(包括可执行文件)