目录
C 语言是一门面向过程的程序设计语言,在做系统时采用模块化的设计思想,即将多个功能函数分别定义在各自的头文件中,再在主函数(.c文件)中声明导入。
主函数:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<windows.h>
#include<math.h>
#include"自动读取.h"
#include"结构体.h"
#include"图书保存.h"
#include"图书录入.h"
#include"图书输出.h"
#include"图书查询.h"
#include"图书修改.h"
#include"图书删除.h"
#include"图书排序.h"
#include"图书信息统计.h"
#include"图书统计.h"
#include"图书信息读取.h"
#include"库存.h"
#include"主菜单.h"
void main()
{
autoload();
menu();
}
运行示意图
结构体--定义图书为复杂类型即图书保存在结构体数组中:
struct CDliberary
{
int sh;
char sm[90];
char lb[90];
char zy[90];
int year;
int month;
int day;
int sell;
float price;
int member;
//float totalprice;
};
struct CDliberary ts[2000];
主菜单--对系统进行操作
void menu()
{
int sel;
int i;
system("cls");
printf("------- -------!\n");
printf("-------你即将进入重大城科图书管理系统-------!\n");
printf("/t/t/t进入系统中");
for(i=0;i<10;i++)
{ Sleep(300);
printf(".");
}
printf("\n");
printf("============================================================\n");
printf(" \n");
printf(" --*****欢 迎 使 用 重 大 城 科 图 书 管 理 系 统 ! *****-- \n");
printf(" \n");
printf("============================================================\n");
printf(" \n");
printf("------------------------------------------------------------\n");
printf("| 图- 书- 管- 理- 程 -序 |\n");
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("| 10. 图书统计功能 |\n");
printf("| 11. 退出图书程序 |\n");
printf("------------------------------------------------------------\n");
printf(" 输入你的选择(1-11): ");
scanf("%d", &sel);
while (sel <= 0 || sel >= 12)
{
printf(" 输入错误!!!\n");
printf(" 重新输入你的选择(1-11):");
scanf("%d", &sel);
}
switch (sel)
{
case 1: input(); menu(); break;
case 2: output(); menu(); break;
case 3: search(); menu(); break;
case 4: modify(); menu(); break;
case 5: deleted();menu(); break;
case 6: statist();menu(); break;
case 7: sort();menu(); break;
case 8: autosave();menu(); break;
case 9: load();menu(); break;
case 10: tongji();menu(); break;
case 11: exit(0); break;
}
system("pause");
}
运行示意图
输入函数:
//#pragma once
void input()
{
int i,sel,h;
system("cls");
printf("*****************************************\n");
printf("*******欢迎进入录入功能(整体录入)******\n");
printf("*****************************************\n");
printf("**********重庆大学城市科技学院***********\n");
printf("\n\n\n");
for(i=0;i<=199;i++)
{
if(ts[i].sh==0)
{
printf("-----------------------------------------------\n");
printf(" 即将开始录入某图书的信息 \n");
printf(" 1. 确定录入 2. 放弃录入 \n");
printf("-----------------------------------------------\n");
printf(" 输入你的选择:");
scanf("%d",&sel);
while(sel<=0 || sel>=3)
{
printf(" 输入错误!!! \n");
printf(" 重新输入你的选择(1 or 2):");
scanf("%d",&sel);
}
if(sel==1)
{
printf("输入书号:");
scanf("%d",&ts[i].sh);
getchar();
printf("输入书名:");
gets(ts[i].sm);
printf("输入类别:");
gets(ts[i].lb);
printf("输入录入日期(XXXX-XX-XX):");
scanf("%d-%d-%d",&ts[i].year,&ts[i].month,&ts[i].day);
printf("输入单价:");
//gets(ts[i].price);
scanf("%f",&ts[i].price);
// getchar();
printf("输入数量:");
scanf("%d",&ts[i].member);
getchar();
printf("输入适用专业:");
scanf("%s",&ts[i].zy);
}
else
break;
autosave();
}
}
}
运行示意图![](https://img-blog.csdnimg.cn/743a6983b8974273b748c3d88b55884d.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5p2O5Y-J5Y-JLS0t5ZCM5a2m,size_19,color_FFFFFF,t_70,g_se,x_16)
输出函数:
void output()
{
int h,i;
for(h=1;h<=100;h++)
printf("-");
printf("\n");
printf("|");
printf("%-19s","书号");
printf("|");
printf("%-19s","书名");
printf("|");
printf("%-15s","类别");
printf("|");
printf("%-11s","录入日期");
printf("|");
printf("%-9s", "单价");
printf("|");
printf("%-6s", "数量");
printf("|");
printf("%-13s", "专业");
printf("|");
printf("\n");
for(h=1;h<=100;h++)
printf("-");
printf("\n");
for(i=0;i<=199;i++)
{
if(ts[i].sh != 0)
{
printf("|");
printf("%-19d",ts[i].sh);
printf("|");
printf("%-19s",ts[i].sm);
printf("|");
printf("%-15s",ts[i].lb);
printf("|");
printf("%4d-%2d-%2d ",ts[i].year,ts[i].month,ts[i].day);
printf("|");
printf("%f",ts[i].price);
printf("|");
printf("%-6d",ts[i].member);
printf("|");
printf("%-13s",ts[i].zy);
printf("|");
printf("\n");
for(h=1;h<=100;h++)
printf("-");
printf("\n");
}
}
system("pause");
}
运行示意图
查询函数
void search()
{
int sel, i,h,flag;
int search_sh; //存放输入的查询书号
char search_sm[9]; //存放输入的查询书名
system("cls");
printf(" --*****欢 迎 使 用 重 大 城 科 图 书 管 理 系 统 ! *****-- \n");
printf(" \n");
printf("============================================================\n");
printf("| 欢迎进入查询功能 |\n");
printf("| 1. 按照书号进行查询 |\n");
printf("| 2. 按照书名进行查询 |\n");
printf("| 3. 查询所有图书 |\n");
printf("| 4. 返回主菜单 |\n");
printf("------------------------------------------------------------\n");
printf(" 输入你的选择(1-4):");
scanf("%d", &sel);
while (sel <= 0 || sel > 4)
{
printf(" 输入错误!!!\n");
printf(" 重新输入你的选择(1-4):");
scanf("%d", &sel);
}
switch (sel)
{
case 1: //输入查询的书号
printf("\t\t输入查询的书号:");
scanf("%d", &search_sh);
while (search_sh <= 99999 || search_sh >= 1000000)
{
printf("\t\t输入错误!!!\n");
printf("\t\t重新输入查询的书号:");
scanf("%d", &search_sh);// system("pause"); search();
}
//进行查询操作,应该是一个循环比较
for (i = 0; i <= 1999; i++)
{
if (search_sh == ts[i].sh)
{
//如果相等,说明查到,则输出
//第1部分的输出是:输出那些中文
for (h = 1; h <= 100; h++)
printf("-");
printf("\n");
printf("|");
printf("%-19s", "书号");
printf("|");
printf("%-19s", "书名");
printf("|");
printf("%-15s", "类别");
printf("|");
printf("%-11s", "录入日期");
printf("|");
printf("%-9s", "单价");
printf("|");
printf("%-6s","数量");
printf("|");
printf("%-13s", "专业");
printf("|");
printf("\n");
for (h = 1; h <= 100; h++)
printf("-");
printf("\n");
//第2部分,输出查到图书的值
printf("|");
printf("%-19d", ts[i].sh);
printf("|");
printf("%-19s", ts[i].sm);
printf("|");
printf("%-15s", ts[i].lb);
printf("|");
printf("%4d-%2d-%2d ", ts[i].year, ts[i].month, ts[i].day);
printf("|");
printf("%f",ts[i].price);
printf("|");
printf("%-6d",ts[i].member);
printf("|");
printf("%-13s",ts[i].zy);
printf("|");
printf("\n");
for (h = 1; h <= 100; h++)
printf("-");
printf("\n");
system("pause");
//因为书号是唯一的,所以如果查询到并输出,则循环提前结束
break;
}
}
//如果查询到就输出,否则输出查无此shu
//如果没有查到,则上述循环一定会全部做完。
if(i==2000)
printf("\t\t查无此书!!!\n");
getchar();
//调用查询函数,继续查询
search();
break;
case 2:
//输入查询的书名
//因为接下来输入的字符串,但是上面在选择2这个菜单的时候,有回车键
getchar();
printf("\t\t输入查询的书名:");
gets(search_sm);
getchar();
flag = 0; //0来表示没有查到
//进行查询操作,应该是一个循环比较
for (i = 0; i <= 199; i++)
{
if( strcmp(search_sm , ts[i].sm)== 0 )
{
//如果相等,说明查到,则输出
//第1部分的输出是:输出那些中文output();
flag = 1;
for (h = 1; h <= 100; h++)
printf("-");
printf("\n");
printf("|");
printf("%-19s", "书号");
printf("|");
printf("%-19s", "书名");
printf("|");
printf("%-15s", "类别");
printf("|");
printf("%-11s", "录入日期");
printf("|");
printf("%-9s", "单价");
printf("|");
printf("%-6s", "数量");
printf("|");
printf("%-13s", "专业");
printf("|");
printf("\n");
for (h = 1; h <= 100; h++)
printf("-");
printf("\n");
//第2部分,输出查到书的值
printf("|");
printf("%-19d", ts[i].sh);
printf("|");
printf("%-19s", ts[i].sm);
printf("|");
printf("%-15s", ts[i].lb);
printf("|");
printf("%4d-%2d-%2d ", ts[i].year, ts[i].month, ts[i].day);
printf("|");
printf("%f",ts[i].price);
printf("|");
printf("%-6d",ts[i].member);
printf("|");
printf("%-13s",ts[i].zy);
printf("|");
printf("\n");
for (h = 1; h <= 100; h++)
printf("-");
printf("\n");
}
}
//如果查询到就输出,否则输出查无此shu
//如果没有查到,则上述循环一定会全部做完。
if (flag == 0)
printf("\t\t查无此书!!!\n");
getchar();
//调用查询函数,继续查询
search();
break;
case 3:output(); search();
break;
case 4:
break;
}
system("pause");
}
运行示意图
删除函数
void deleted()
{
int sel,sel1, i,j,h,flag;
int search_sh; //存放输入的查询书号
system("cls");
printf(" --*****欢 迎 使 用 重 大 城 科 图 书 管 理 系 统 ! *****-- \n");
printf(" \n");
printf("============================================================\n");
printf("-------------------------------------------------\n");
printf("| 欢迎进入删除功能 |\n");
printf("| 1. 按照书号进行查询 |\n");
printf("| 2. 返回主菜单 |\n");
printf("-------------------------------------------------\n");
printf(" 输入你的选择(1-2):");
scanf("%d", &sel);
while (sel <= 0 || sel >= 3)
{
printf(" 输入错误!!!\n");
printf(" 重新输入你的选择(1-2):");
scanf("%d", &sel);
}
switch (sel)
{
case 1: //输入查询的书号
printf("\t\t输入查询的书号:");
scanf("%d", &search_sh);
while (search_sh <= 99999 || search_sh >= 1000000)
{
printf("\t\t输入错误!!!\n");
printf("\t\t重新输入查询的书号:");
scanf("%d", &search_sh);
}
//进行查询操作,应该是一个循环比较
for (i = 0; i <= 199; i++)
{
if (search_sh == ts[i].sh)
{
//如果相等,说明查到,则输出
//第1部分的输出是:输出那些中文
for (h = 1; h <= 90; h++)
printf("-");
printf("\n");
printf("|");
printf("%-9s", "书号");
printf("|");
printf("%-9s", "书名?");
printf("|");
printf("%-5s", "类别");
printf("|");
printf("%-11s", "录入日期");
printf("|");
printf("%-9s", "单价");
printf("|");
printf("%-5s", "数量");
printf("|");
printf("%-9s", "专业");
printf("|");
printf("\n");
for (h = 1; h <= 90; h++)
printf("-");
printf("\n");
//第2部分,输出查到图书的值
printf("|");
printf("%-9d", ts[i].sh);
printf("|");
printf("%-9s", ts[i].sm);
printf("|");
printf("%-5s", ts[i].lb);
printf("|");
printf("%4d-%2d-%2d ", ts[i].year, ts[i].month, ts[i].day);
printf("|");
printf("%f",ts[i].price);
printf("|");
printf("%-5d",ts[i].member);
printf("|");
printf("%-3s",ts[i].zy);
printf("|");
printf("\n");
for (h = 1; h <= 90; h++)
printf("-");
printf("\n");
//因为书号是唯一的,所以如果查询到并输出,则循环提前结束
//当上述输出查询道的某图书信息显示之后
//选择确定删除还是放弃删除
printf("**********************************\n");
printf("**********1. 确定删除*************\n");
printf("**********2. 放弃删除*************\n");
printf("**********************************\n");
printf(" 输入你的选择(1 or 2):");
scanf("%d",&sel1);
while(sel1<=0 || sel1>=3)
{
printf(" 输入错误!!!\n");
printf(" 输入你的选择(1 or 2):");
scanf("%d",&sel1);
}
if(sel1==1)
{
for(j=i+1;j<=199;j++)
ts[j-1]=ts[j];
printf("********删除成功********\n");
system("pause");
}
else
printf("********放弃删除********\n");
break;
}
}
//如果查询到就输出,否则输出查无此书
//如果没有查到,则上述循环一定会全部做完。
if(i==200)
printf("\t\t查无此书!!!\n");
system("pause");
//调用查询函数,继续查询
deleted();
break;
case 2:break;
}
system("pause");
}
运行示意图
先查 后删
修改函数
void modify()
{
int sel,sel2,sel3,sel4,sel5, i, h;
int search_sh; //存放输入的查询书号
//专门用来临时存放输入修改后的数据
int sh;
char sm[9];
char lb[3];
int year;
int month;
int day;
float price;
int member;
char zy[9];
system("cls");
printf(" --*****欢 迎 使 用 重 大 城 科 图 书 管 理 系 统 ! *****-- \n");
printf(" \n");
printf("============================================================\n");
printf("-------------------------------------------------\n");
printf("| 欢迎进入修改功能 |\n");
printf("| 1. 先按照书号进行查询 |\n");
printf("| 2. 返回主菜单 |\n");
printf("-------------------------------------------------\n");
printf(" 输入你的选择(1-2):");
scanf("%d", &sel);
while (sel <= 0 || sel >= 3)
{
printf(" 输入错误!!!\n");
printf(" 重新输入你的选择(1-2):");
scanf("%d", &sel);
}
//modify();
switch (sel)
{
case 1: //输入查询的书号
printf("\t\t输入查询的书号:");
scanf("%d", &search_sh);
while (search_sh <= 99999 || search_sh >= 1000000)
{
printf("\t\t输入错误!!!\n");
printf("\t\t重新输入查询的书号:");
scanf("%d", &search_sh);
}
//进行查询操作,应该是一个循环比较
for (i = 0; i <= 199; i++)
{
if (search_sh == ts[i].sh)
{
//如果相等,说明查到,则输出
//第1部分的输出是:输出那些中文
for (h = 1; h <= 90; h++)
printf("-");
printf("\n");
printf("|");
printf("%-9s", "书号");
printf("|");
printf("%-9s", "书名");
printf("|");
printf("%-5s", "类别");
printf("|");
printf("%-11s", "录入日期");
printf("|");
printf("%-9s", "单价");
printf("|");
printf("%-9s", "数量");
printf("|");
printf("%-9s", "专业");
printf("|");
printf("\n");
for (h = 1; h <= 90; h++)
printf("-");
printf("\n");
//第2部分,输出查到图书书的值
printf("|");
printf("%-9d", ts[i].sh);
printf("|");
printf("%-9s", ts[i].sm);
printf("|");
printf("%-5s", ts[i].lb);
printf("|");
printf("%4d-%2d-%2d ", ts[i].year, ts[i].month, ts[i].day);
printf("|");
printf("%2f",ts[i].price);
printf("|");
printf("%d",ts[i].member);
printf("|");
printf("%-3s",ts[i].zy);
printf("|");
printf("\n");
for (h = 1; h <= 90; h++)
printf("-");
printf("\n");
//因为书号是唯一的,所以如果查询到并输出,则循环提前结束
//选择是否是全部修改还是部分修改、
printf(" --*****欢 迎 使 用 重 大 城 科 图 书 管 理 系 统 ! *****-- \n");
printf(" \n");
printf("============================================================\n");
printf("\t\t********************************************************\n");
printf("\t\t* 1. 全部修改 *\n");
printf("\t\t* 2. 部分修改 *\n");
printf("\t\t* 3. 放弃修改 *\n");
printf("\t\t*********************************\n");
printf(" 输入你的选择(1-3):");
scanf("%d", &sel2);
while (sel2 <= 0 || sel2 >= 4)
{
printf(" 输入错误!!!\n");
printf(" 重新输入你的选择(1-3):");
scanf("%d", &sel2);
}
switch (sel2)
{
case 1: printf("\t\t开始全部修改\n");
printf("输入修改书号:");
scanf("%d", &sh);
getchar();
printf("输入修改书名:");
gets(sm);
printf("输入修改类别:");
gets(lb);
printf("输入修改录入日期(XXXX-XX-XX):");
scanf("%d-%d-%d", &year, &month, &day);
printf( "请输入修改单价:");
scanf("%f",&price);
printf("%-9s", "请输入修改数量:");
scanf("%d",&member);
getchar();
printf( "请输入修改专业:");
//scanf("%s",zy);
gets(zy);
system("cls") ;
printf(" --*****欢 迎 使 用 重 大 城 科 图 书 管 理 系 统 ! *****-- \n");
printf(" \n");
printf("============================================================\n");
printf("\t\t**************************************\n");
printf("\t\t* 1 确定修改 2 放弃修改 *\n");
printf("\t\t**************************************\n");
printf(" 输入你的选择(1-2):");
scanf("%d", &sel3);
while (sel3 <= 0 || sel3 >= 3)
{
printf(" 输入错误!!!\n");
printf(" 重新输入你的选择(1-2):");
scanf("%d", &sel3);
}
if (sel3 == 1) //确定修改
{
ts[i].sh = sh;
strcpy(ts[i].sm, sm);
strcpy(ts[i].lb, lb);
ts[i].year = year;
ts[i].month = month;
ts[i].day = day;
ts[i].price = price;
ts[i].member=member;
strcpy(ts[i].zy,zy);
printf("\t\t修改完毕!\n");
getchar();
}
autosave() ;
break;
case 2: printf("\t\t******************************\n");
printf("\t\t* 1. 修改书号 *\n");
printf("\t\t* 2. 修改书名 *\n");
printf("\t\t* 3. 修改性别 *\n");
printf("\t\t* 4. 修改录入年 *\n");
printf("\t\t* 5. 修改录入月 *\n");
printf("\t\t* 6. 修改录入日 *\n");
printf("\t\t* 7. 修改单价 *\n");
printf("\t\t* 8. 修改数量 *\n");
printf("\t\t* 9. 修改专业 *\n");
printf("\t\t******************************\n");
printf("\t\t 输入你的选择(1-10):");
scanf("%d", &sel4);
while(sel4<=0 || sel4>=11)
{
printf("\t\t 请重新输入(1-10):");
scanf("%d", &sel4);
}
if (sel4 == 1)
{
printf("输入修改书号:");
scanf("%d", &sh);
printf("\t\t**************************************\n");
printf("\t\t* 1 确定修改 2 放弃修改 *\n");
printf("\t\t**************************************\n");
printf(" 输入你的选择(1-2):");
scanf("%d", &sel5);
while (sel5 <= 0 || sel5 >= 3)
{
printf(" 输入错误!!!\n");
printf(" 重新输入你的选择(1-2):");
scanf("%d", &sel5);
}
if (sel5 == 1) //确定修改
{
ts[i].sh = sh;
printf("\t\t修改完毕!\n");
getchar();
}
}
if (sel4 == 2)
{
getchar();
printf("输入修改书名:");
gets(sm);
printf("\t\t**************************************\n");
printf("\t\t* 1 确定修改 2 放弃修改 *\n");
printf("\t\t**************************************\n");
printf(" 输入你的选择(1-2):");
scanf("%d", &sel5);
while (sel5 <= 0 || sel5 >= 3)
{
printf(" 输入错误!!!\n");
printf(" 重新输入你的选择(1-2):");
scanf("%d", &sel5);
}
if (sel5 == 1) //确定修改
{
strcpy(ts[i].sm, sm);
printf("\t\t修改完毕!\n");
getchar();
}
}
if (sel4 == 3)
{
getchar();
printf("输入修改类别:");
gets(lb);
printf("\t\t**************************************\n");
printf("\t\t* 1 确定修改 2 放弃修改 *\n");
printf("\t\t**************************************\n");
printf(" 输入你的选择(1-2):");
scanf("%d", &sel5);
while (sel5 <= 0 || sel5 >= 3)
{
printf(" 输入错误!!!\n");
printf(" 重新输入你的选择(1-2):");
scanf("%d", &sel5);
}
if (sel5 == 1) //确定修改
{
strcpy(ts[i].lb, lb);
printf("\t\t修改完毕!\n");
getchar();
}
}
if (sel4 == 4)
{
printf("输入修录入生年:");
scanf("%d", &year);
printf("\t\t**************************************\n");
printf("\t\t* 1 确定修改 2 放弃修改 *\n");
printf("\t\t**************************************\n");
printf(" 输入你的选择(1-2):");
scanf("%d", &sel5);
while (sel5 <= 0 || sel5 >= 3)
{
printf(" 输入错误!!!\n");
printf(" 重新输入你的选择(1-2):");
scanf("%d", &sel5);
}
if (sel5 == 1) //确定修改
{
ts[i].year = year;
printf("\t\t修改完毕!\n");
getchar();
}
}
if (sel4 == 5)
{
printf("输入修改录入月:");
scanf("%d", &month);
printf("\t\t**************************************\n");
printf("\t\t* 1 确定修改 2 放弃修改 *\n");
printf("\t\t**************************************\n");
printf(" 输入你的选择(1-2):");
scanf("%d", &sel5);
while (sel5 <= 0 || sel5 >= 3)
{
printf(" 输入错误!!!\n");
printf(" 重新输入你的选择(1-2):");
scanf("%d", &sel5);
}
if (sel5 == 1) //确定修改
{
ts[i].month = month;
printf("\t\t修改完毕!\n");
getchar();
}
}
if (sel4 == 6)
{
printf("输入修改录入日:");
scanf("%d", &day);
printf("\t\t**************************************\n");
printf("\t\t* 1 确定修改 2 放弃修改 *\n");
printf("\t\t**************************************\n");
printf(" 输入你的选择(1-2):");
scanf("%d", &sel5);
while (sel5 <= 0 || sel5 >= 3)
{
printf(" 输入错误!!!\n");
printf(" 重新输入你的选择(1-2):");
scanf("%d", &sel5);
}
if (sel5 == 1) //确定修改
{
ts[i].day = day;
printf("\t\t修改完毕!\n");
getchar();
}
}
if (sel4 == 7)
{
printf("输入修改单价:");
scanf("%d", &day);
printf("\t\t**************************************\n");
printf("\t\t* 1 确定修改 2 放弃修改 *\n");
printf("\t\t**************************************\n");
printf(" 输入你的选择(1-2):");
scanf("%d", &sel5);
while (sel5 <= 0 || sel5 >= 3)
{
printf(" 输入错误!!!\n");
printf(" 重新输入你的选择(1-2):");
scanf("%d", &sel5);
}
if (sel5 == 1) //确定修改
{
ts[i].price=price;
printf("\t\t修改完毕!\n");
getchar();
}
}
if (sel4 == 8)
{
printf("输入修改数量:");
scanf("%d", &day);
printf("\t\t**************************************\n");
printf("\t\t* 1 确定修改 2 放弃修改 *\n");
printf("\t\t**************************************\n");
printf(" 输入你的选择(1-2):");
scanf("%d", &sel5);
while (sel5 <= 0 || sel5 >= 3)
{
printf(" 输入错误!!!\n");
printf(" 重新输入你的选择(1-2):");
scanf("%d", &sel5);
}
if (sel5 == 1) //确定修改
{
ts[i].member=member;
printf("\t\t修改完毕!\n");
getchar();
}
}
if (sel4 == 9)
{
printf("输入修改专业:");
scanf("%d", &day);
printf("\t\t**************************************\n");
printf("\t\t* 1 确定修改 2 放弃修改 *\n");
printf("\t\t**************************************\n");
printf(" 输入你的选择(1-2):");
scanf("%d", &sel5);
while (sel5 <= 0 || sel5 >= 3)
{
printf(" 输入错误!!!\n");
printf(" 重新输入你的选择(1-2):");
scanf("%d", &sel5);
}
if (sel5 == 1) //确定修改
{
strcpy(ts[i].zy, zy);
printf("\t\t修改完毕!\n");
getchar();
}
}
case 3:break;
}
break;
}
}
//如果查询到就输出,否则输出查无此书
//如果没有查到,则上述循环一定会全部做完。
if (i == 200)
printf("\t\t查无此书!!!\n");
getchar();
//调用修改函数,继续修改
modify();
break;
case 2:break;
}
system("pause");
}
运行示意图
排序函数
void sort()
{ int i,j,sel;
int n;统计实际图书本数。
struct CDliberary t;
system("cls");
printf("****************************************************\n");
printf("======== 欢迎进入排序功能 ========================\n");
printf("-----------------------------------------------------\n");
printf("******* 1.按书号进行升序排序 *********************\n");
printf("-------- 2.按书号进行降序排序 ----------------------\n");
printf("******* 3.退出排序功能 *********************\n");
printf("=========重庆大学城市科技学院=========================\n");
printf(" 输入你的选择:");
printf("\n\n\n");
scanf("%d", &sel);
while (sel <= 0 || sel >3)
{
printf(" 输入错误!!!\n");
printf(" 重新输入你的选择(1-3):");
scanf("%d", &sel);
}
n=0;
for(i=0;i<=200;i++)
{ if(ts[i].sh!=0)
n++;
}
switch(sel)
{
case 1:
for(j=0;j<=n-2;j++)
{ for(i=0;i<=n-2-j;i++)
{ if(ts[i].sh>ts[i+1].sh)
{
t=ts[i];
ts[i]=ts[i+1];
ts[i+1]=t;
}
}
}
output();
sort();
break;
case 2:
for(j=0;j<=n-2;j++)
{
for(i=0;i<=n-2-j;i++)
{
if(ts[i].sh<ts[i+1].sh)
{
t=ts[i];
ts[i]=ts[i+1];
ts[i+1]=t;
}
}
}
output();
sort();
break;
}
}
运行示意图
保存函数
void autosave()
{
int sel;
system("cls");
printf(" --*****欢 迎 使 用 重 大 城 科 图 书 管 理 系 统 ! *****-- \n");
printf(" \n");
printf("============================================================\n");
printf("-------------------------------------------------\n");
printf("| 欢迎进入数据保存功能 |\n");
printf("| 1. 选择保存 |\n");
printf("| 2. 放弃保存 |\n");
printf("-------------------------------------------------\n");
printf(" 输入你的选择(1-2):");
scanf("%d", &sel);
while (sel <= 0 || sel >= 3)
{
printf(" 输入错误!!!\n");
printf(" 重新输入你的选择(1-2):");
scanf("%d", &sel);
}
if(sel==1)
{
FILE *fp;
fp=fopen("欢 迎 使 用 重 大 城 科 图 书 数 据.txt","w");
if(fp == NULL)
{
printf("文件打开失败!\n");
exit(0);
}
fwrite(ts,sizeof(struct CDliberary),200,fp);
printf("-------保存成功-------!\n");
fclose(fp);
system("pause");
}
else
{
printf("-------你已经选择放弃保存数据-------!\n");
system("pause");
}
}
运行示意图
读取信息函数
void load()
{
int sel;
system("cls");
printf(" --*****欢 迎 使 用 重 大 城 科 图 书 管 理 系 统 ! *****-- \n");
printf(" \n");
printf("============================================================\n");
printf("-------------------------------------------------\n");
printf("| 欢迎进入数据读取功能 |\n");
printf("| 1. 选择读取 |\n");
printf("| 2. 放弃读取 |\n");
printf("-------------------------------------------------\n");
printf(" 输入你的选择(1-2):");
scanf("%d", &sel);
while (sel <= 0 || sel >= 3)
{
printf(" 输入错误!!!\n");
printf(" 重新输入你的选择(1-2):");
scanf("%d", &sel);
}
if(sel==1)
{
FILE *fp;
fp=fopen("欢 迎 使 用 重 大 城 科 图 书 数 据.txt","r");
if(fp == NULL)
{
printf("文件打开失败!\n");
exit(0);
}
fread(ts,sizeof(struct CDliberary),200,fp);
printf("-------读取成功-------!\n");
fclose(fp);
system("pause");
output();
}
else
{
printf("-------你已经选择放弃读取数据-------!\n");
system("pause");
}
}
运行示意图
统计函数
void tongji()
{int i,sel,j,h;
struct CDliberary t;
int search_sh;
system("cls");
printf("------------------------------------------------------------\n");
printf("| 欢迎进入图书统计功能 |\n");
printf("| 1. 图书销售统计 |\n");
printf("| 2. 图书库存统计 |\n");
printf("| 3. 退出图书退出统计 |\n");
printf("------------------------------------------------------------\n");
printf(" 输入你的选择(1-3): ");
printf("\n\n\n");
scanf("%d", &sel);
while (sel < 0 || sel >3)
{
printf(" 输入错误!!!\n");
printf(" 重新输入你的选择(1-3):");
scanf("%d", &sel);
}
switch (sel)
{
case 1:
printf("----------欢迎使用销售统计------------\n");
printf("----------查询所需要统计的图书--------\n");
search();
printf("------------------------------------------------------------\n");
printf("请输入所查询图书的书号\n");
printf("------------------------------------------------------------\n");
scanf("%d", &search_sh);
while (search_sh <= 99999 || search_sh >= 1000000)
{
printf("\t\t输入错误!!!\n");
printf("\t\t重新输入查询的书号:");
scanf("%d", &search_sh);
}
for(j=0;j<=2000;j++)
{ if (search_sh == ts[j].sh)
break; }
printf("------------------------------------------------------------\n");
printf("请输入所查询图书的销售数量\n");
printf("------------------------------------------------------------\n");
scanf("%d", &ts[j].sell);
printf("*******************************************************************\n");
printf("所查询图书的销售数量为%d\n",ts[j].sell);
printf("*******************************************************************\n");
system("cls");
printf("loading");
for(i=0;i<6;i++)
{ Sleep(300);
printf(".");
}printf("\n");
printf("-----------------------------------");
printf("------------销售状况---------------");
printf("-----------------------------------");
for(h=1;h<=90;h++)
printf("-");
printf("\n");
printf("|");
printf("%-9s","书号");
printf("|");
printf("%-19s","书名");
printf("|");
printf("%-5s","类别");
printf("|");
printf("%-11s","录入日期");
printf("|");
printf("%-9s", "单价");
printf("|");
printf("%-6s", "销售数量");
printf("|");
printf("%-9s", "销售总额");
printf("|");
printf("%-5s", "销售率");
printf("|");
printf("\n");
for(h=1;h<=90;h++)
printf("-");
printf("\n");
if(ts[j].sh != 0)
{
printf("|");
printf("%-9d",ts[j].sh);
printf("|");
printf("%-19s",ts[j].sm);
printf("|");
printf("%-5s",ts[j].lb);
printf("|");
printf("%4d-%2d-%2d ",ts[j].year,ts[j].month,ts[j].day);
printf("|");
printf("%-9f",ts[j].price);
printf("|");
printf("%-6d",ts[j].sell);
printf("|");
printf("%-9.2f",(ts[j].sell)*(ts[j].price));
printf("|");
printf("%-.2f%% ",1.0*(ts[j].sell)/(ts[j].member)*100);
printf("|");
printf("\n");
for(h=1;h<=90;h++)
printf("-");
printf("\n");
}
// stock();tongji();
break;
case 2: search();
printf("------------------------------------------------------------\n");
printf("请输入所查询图书的书号\n");
printf("------------------------------------------------------------\n");
scanf("%d", &search_sh);
while (search_sh <= 99999|| search_sh >= 1000000)
{
printf("\t\t输入错误!!!\n");
printf("\t\t重新输入查询的书号:");
scanf("%d", &search_sh);
}
for(j=0;j<=2000;j++)
{ if (search_sh == ts[j].sh)
break; }
printf("------------------------------------------------------------\n");
printf("请输入所查询图书的销售数量\n");
printf("------------------------------------------------------------\n");
scanf("%d", &ts[j].sell);
system("cls");
printf("loading");
for(i=0;i<6;i++)
{ Sleep(300);
printf(".");
}printf("\n");
printf("-----------------------------------");
printf("------------库存状况---------------");
printf("-----------------------------------");
for(h=1;h<=90;h++)
printf("-");
printf("\n");
printf("|");
printf("%-9s","书号");
printf("|");
printf("%-19s","书名");
printf("|");
printf("%-5s","类别");
printf("|");
printf("%-11s","录入日期");
printf("|");
printf("%-9s", "单价");
printf("|");
printf("%-6s", "库存数量");
printf("|");
printf("%-9s", "库存总额");
printf("|");
printf("%-5s", "库存率");
printf("|");
printf("\n");
for(h=1;h<=90;h++)
printf("-");
printf("\n");
// for(i=0;i<=199;i++)
// {
if(ts[j].sh != 0)
{
printf("|");
printf("%-9d",ts[j].sh);
printf("|");
printf("%-19s",ts[j].sm);
printf("|");
printf("%-5s",ts[j].lb);
printf("|");
printf("%4d-%2d-%2d ",ts[j].year,ts[j].month,ts[j].day);
printf("|");
printf("%-9f",ts[j].price);
printf("|");
printf("%-6d",ts[j].member-ts[j].sell);
printf("|");
printf("%-9.2f%",(ts[j].member-ts[j].sell)*ts[j].price);
printf("|") ;
printf("%-.2f%% ",100-(1.0*(ts[j].sell)/(ts[j].member)*100));
printf("|");
printf("\n");
for(h=1;h<=90;h++)
printf("-");
printf("\n");
//break;
}
// } tongji();
break;
case 3: break;
}
system("pause");
}
运行示意图
库存函数
void stock()
{ int h,j;
printf("-----------------------------------");
printf("------------库存状况---------------");
printf("-----------------------------------");
for(h=1;h<=90;h++)
printf("-");
printf("\n");
printf("|");
printf("%-9s","书号");
printf("|");
printf("%-19s","书名");
printf("|");
printf("%-5s","类别");
printf("|");
printf("%-11s","录入日期");
printf("|");
printf("%-9s", "单价");
printf("|");
printf("%-6s", "库存数量");
printf("|");
printf("%-9s", "库存总额");
printf("|");
printf("%-5s", "库存率");
printf("|");
printf("\n");
for(h=1;h<=90;h++)
printf("-");
printf("\n");
// for(i=0;i<=199;i++)
// {
if(ts[j].sh != 0)
{
printf("|");
printf("%-9d",ts[j].sh);
printf("|");
printf("%-19s",ts[j].sm);
printf("|");
printf("%-5s",ts[j].lb);
printf("|");
printf("%4d-%2d-%2d ",ts[j].year,ts[j].month,ts[j].day);
printf("|");
printf("%-9f",ts[j].price);
printf("|");
printf("%-6d",ts[j].member-ts[j].sell);
printf("|");
printf("%-9.2f%",(ts[j].member-ts[j].sell)*ts[j].price);
printf("|") ;
printf("%-.2f%% ",100-(1.0*(ts[j].sell)/(ts[j].member)*100));
printf("|");
printf("\n");
for(h=1;h<=90;h++)
printf("-");
printf("\n");
//break;
}
// }
}