精华内容
下载资源
问答
  • 加深对《C语言》课程所学知识的理解,进一步巩固C语言语法规则。熟练掌握C语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、...大程序的功能分解方法(即函数的使用)等。
  • c语言 程序设计大作业,学生管理系统··
  • 可以作为C语言、高级语言、程序设计的课程设计和大作业 系统不会很复杂也不是很简单;功能完善,程序可以直接运行 经过分析得出系统需要的功能有:登记入住、查询入住情况、查询当前费用、办理退房、退出系统 具体...
  • c语言程序设计课后总结作业上海建桥学院2014-2015学年第一学期随堂测验《 C语言程序设计 》试卷 随堂测验(本卷考试时间:90分钟)本科 13 级 电子商务 专业 班 学号 姓名一、阅读程序题(每小题4分,共10题,共40分)1...

    c语言程序设计课后总结作业

    上海建桥学院2014-2015学年第一学期随堂测验

    《 C语言程序设计 》试卷 随堂测验

    (本卷考试时间:90分钟)

    本科 13 级 电子商务 专业 班 学号 姓名

    一、阅读程序题(每小题4分,共10题,共40分)

    1.int x=6, y=7;

    printf(“%d,”,x++); printf(“%d\n”,++y);

    程序的输出结果是

    2.float f=3.1415927;

    printf(“%f,%6.4f,%5.3f”,f,f,f);

    则程序的输出结果是 3.141593,3.1416,3.142 。

    3.a=3;

    a+=(a<1)?a:1; printf(“%d”,a);

    结果是。

    4. 以下程序运行后的输出结果是 A B C 。

    main()

    { char s[ ]="GFEDCBA";

    int p=6;

    while(s[p]!=‘D’)

    { printf("%c ", s[p]);

    p=p-1; } }

    5. main ( )

    { int x=10,y=10;

    printf(“%d %d\n”,x--,--y); }

    该程序的运行结果是___10 9___________________。

    6.main()

    { int a[5], k;

    for(k=0;k<5;k++)

    a[k]=10*k ;

    展开全文
  • C语言程序设计大作业图书管理系统C语言程序设计大作业设计报告设计方案本程序旨在用一个C语言程序实现简单的图书馆图书管理系统,程序包含平时的借书,还书,新书录入,查询功能,用简单明了的人机交互界面快速实现...

    C语言程序设计大作业图书管理系统

    C语言程序设计大作业

    设计报告

    设计方案

    本程序旨在用一个C语言程序实现简单的图书馆图书管理系统,程序包含平时的借书,还书,新书录入,查询功能,用简单明了的人机交互界面快速实现图书管理的目的。

    模块说明及代码分析

    1.主函数:

    源代码:

    void main()

    {

    int a;

    printf("\n");

    printf("\n");

    printf(" ( ^_^ ) WELCOME!\n");

    printf("\n");

    printf("\n");

    printf("\n");

    printf("\n");

    printf("\n");

    printf("\t〉〉-------------BJTU图书管理系统--------------〈〈");

    printf("\n");

    printf("\n");

    printf("\n");

    printf("\n");

    printf("\n");

    printf("\n");

    printf("\n");

    do {

    printf("1.借书 2.还书 3.新书录入 4.查询 0.退出");

    printf("\n");

    printf("\n");

    printf("\n");

    printf("\n");

    printf("请选择序号:");

    scanf("%d",&a);

    switch(a)

    {

    case 1:jieshu();break;

    case 2:huanshu();break;

    case 3:xinshu();break;

    case 4:chaxun();break;

    case 0:break;

    default:printf("请选择正确的序号!\n");printf("\n");

    }

    }while(a!=0);

    printf("谢谢使用图书管理系统!\n");

    }

    主函数提供人机交互界面,让操作者选择所需的操作项目,并有退出选项。

    2.新书录入模块

    源代码:

    void xinshu()

    {

    int i;

    FILE *fp;

    if((fp=fopen("library.txt","w"))==NULL)

    {

    printf("打开文件失败!\n");

    exit(0);

    }

    printf("请输入要录入的新书的编号:");

    scanf("%d",&s[count].number);

    for(i=0;i

    {

    if(s[i].number==s[count].number)

    {

    printf("编号已存在,请重新输入:");

    scanf("%d",&s[count].number);

    }

    }

    printf("请输入图书名称:");

    scanf("%s",&s[count].name);

    printf("请输入图书作者:");

    scanf("%s",&s[count].author);

    printf("请输入图书数量:");

    scanf("%d",&s[count].shuliang);

    count++;

    fclose(fp);

    printf("录入成功!\n");

    printf("\n");

    printf("\n");

    printf("\n");

    }

    新书录入模块实现了新书的编号、书名、作者、数量的录入,并设计有输入错误时的提示。

    3.借书模块

    源代码:

    void jieshu()

    {

    int b,i,shu;

    printf("请输入要借书的编号:");

    scanf("%d",&b);

    for(i=0;i<=count;i++)

    {

    if(s[i].number==b)

    {

    printf("您要借的书是:\n");

    printf("\t编号\t书名\t作者\t数量\n");

    printf("\t%d\t%s\t%s\t%d\n",s[i].number,s[i].name,s[i].author,s[i].shuliang);

    printf("确认后请输入要借书的数量:");

    scanf("%d",&shu);

    if((s[i].shuliang-shu)>=0)

    {

    printf("借书成功!");

    s[i].shuliang=s[i].shuliang-shu;

    }

    else

    {

    printf("抱歉,图书数量不够> < 请重新输入:");

    scanf("%d",&shu);

    展开全文
  • 代码有参考CSDN上某位前辈的,但是我忘记是哪一个来着了…如果有人发现侵权,请联系我删除。 直接上代码了,里面有注释。 头文件及替换 #include<stdio.h> #include<string.h>...#define ...

    代码有参考CSDN上某位前辈的,但是我忘记是哪一个来着了…如果有人发现侵权,请联系我删除。
    直接上代码了,里面有注释。

    头文件及替换

    #include<stdio.h>
    #include<string.h>
    #include<windows.h>
    #include<conio.h>
    #include<stdlib.h>
    
    #define S sizeof(struct BOOK)
    #define D sizeof(struct READER)
    #define J sizeof(struct BORROW)
    

    图书信息、读者信息、借阅信息的结构体

    struct BOOK   //图书信息,不可把数组写满,否则取用文件中内容时出现错误
    {
    	char number[10];        //库存编号号
    	char name[26];         //书名
    	char author[20];       //作者名
    	char type[10];          //图书类型
    	char publish[18];      //图书出版社
    	float price;           //图书定价
    	int _amount;           //图书当前在库数量
    	int amount;            //图书数量
    	int total;             //图书被借次数
    	int x;
    	struct BOOK *next;
    };
    typedef struct BOOK Book;       //类型定义符typedef将之后可以用Book代替结构体BOOK
    typedef Book *book;             //用指针*book代替Book
    
    struct READER                  //读者信息
    {
    	char readernumber[12];     //读者编号
    	char readername[12];       //名字
    	char readersex[4];         //性别
    	char password[12];         //密码
    	char tele[12];             //联系电话
    	int  s;                    //性别标记
    	int  readertotal;          //已借阅图书数
    	int  y;
    	struct READER *next;
    };
    typedef struct READER Reader;
    typedef Reader *reader;
    
    struct BORROW     //借阅信息
    {
    	char borrowamount[12];        //借阅者编号
    	char borrowname[12];          //借阅读者姓名
    	char borrowsex[4];            //性别
    	char borrowtele[12];         //借阅者电话
    	char booknumber[10];         //库存编号号
    	char bookname[26];          //书名
    	char bookauthor[20];        //作者名
    	char booktype[10];           //图书类型
    	char bookpublish[18];       //图书出版社
    	int  z;
    	struct BORROW *next;
    };
    typedef struct BORROW Borrow;
    typedef Borrow *borrow;
    

    文件

    
    book   booklist();
    reader readerlist();
    borrow borrowlist();
    
    book booklist()                              //将文件中的内容读出到链表中,返回值为表头地址 
    {
    	FILE *fs;                                //初始化FILE,定义一个指向FILE结构体的指针,借此通过文件指针变量获取文件操作过程中FILE结构体中某些成员信息 
    	int n = 0;
    	book bookhead = NULL;
    	book bookpc = NULL;
    	book bookpa, bookpb;
    	fs = fopen("repository.txt", "at+");     //读写打开文本文件repository,允许读与在文件末追加数据 
    	if (fs == NULL)                       //如果返回的指针为空,表示不能打开repository文件
    	{
    		printf("无法打开repository文件\n");
    	}
    	while (!feof(fs))                        //判断文件位置标志是否移动到文件末尾,feof检测文件结束符,如果文件结束返回非0值,否则返回0
    	{
    		n++;
    		bookpa = (book)malloc(S);            //调用malloc函数分配结构体BOOK所占用内存空间,并将返回值强制转换为该类型指针
    		fread(bookpa, S, 1, fs);             //调用数据块读写函数fread,表示一个指针bookpa,用于存放数据首地址;N表示数据块字节数;1表示要读写一个数据块;fp表示文件指针
    		if (n == 1)                          //
    		{
    			bookhead = bookpa;               //头指针指向bookpa
    			bookpb = bookpa;                 //bookpb指向bookpa
    		}
    		else                                 //创建链表 
    		{
    			bookpc = bookpb;                 //bookpc指向bookpb
    			bookpb->next = bookpa;           //bookpb指向下一位
    			bookpb = bookpa;                 //bookpb指向bookpa
    		}
    	}
    	if (bookpc != NULL)bookpc->next = NULL;  //链表结束,最后一个指针指向空
    	else bookhead = NULL;                    //链表为空
    	fclose(fs);                              //关闭文件 
    	return bookhead;                         //返回头指针 
    }
    
    reader readerlist()                              //将文件中的内容读出到链表中,返回值为表头地址 
    {
    	FILE *fd;                                //初始化FILE,定义一个指向FILE结构体的指针,借此通过文件指针变量获取文件操作过程中FILE结构体中某些成员信息 
    	int n = 0;
    	reader readerhead = NULL;
    	reader readerpc = NULL;
    	reader readerpa, readerpb;
    	fd = fopen("reader.txt", "at+");     //读写打开文本文件reader,允许读与在文件末追加数据 
    	if (fd == NULL)                       //如果返回的指针为空,表示不能打开reader文件
    	{
    		printf("无法打开reader文件\n");
    	}
    	while (!feof(fd))                           //判断文件位置标志是否移动到文件末尾,feof检测文件结束符,如果文件结束返回非0值,否则返回0
    	{
    		n++;
    		readerpa = (reader)malloc(D);           //调用malloc函数分配结构体BOOK所占用内存空间,并将返回值强制转换为该类型指针
    		fread(readerpa, D, 1, fd);              //调用数据块读写函数fread,表示一个指针readerpa,用于存放数据首地址;N表示数据块字节数;1表示要读写一个数据块;fp表示文件指针
    		if (n == 1)                             //
    		{
    			readerhead = readerpa;              //头指针指向readerpa
    			readerpb = readerpa;                //readerpb指向readerpa
    		}
    		else                                    //创建链表 
    		{
    			readerpc = readerpb;                //readerpc指向readerpb
    			readerpb->next = readerpa;          //readerpb指向下一位
    			readerpb = readerpa;                //readerpb指向readerpa
    		}
    	}
    	if (readerpc != NULL)readerpc->next = NULL; //链表结束,最后一个指针指向空
    	else readerhead = NULL;                     //链表为空
    	fclose(fd);                                 //关闭文件 
    	return readerhead;                         //返回头指针 
    }
    
    borrow borrowlist()                              //将文件中的内容读出到链表中,返回值为表头地址 
    {
    	FILE *fj;                                //初始化FILE,定义一个指向FILE结构体的指针,借此通过文件指针变量获取文件操作过程中FILE结构体中某些成员信息 
    	int n = 0;
    	borrow borrowhead = NULL;
    	borrow borrowpc = NULL;
    	borrow borrowpa, borrowpb;
    	fj = fopen("borrow.txt", "at+");     //读写打开文本文件borrow,允许读与在文件末追加数据 
    	if (fj == NULL)                       //如果返回的指针为空,表示不能打开borrow文件
    	{
    		printf("无法打开borrow文件\n");
    	}
    	while (!feof(fj))                           //判断文件位置标志是否移动到文件末尾,feof检测文件结束符,如果文件结束返回非0值,否则返回0
    	{
    		n++;
    		borrowpa = (borrow)malloc(J);           //调用malloc函数分配结构体BOOK所占用内存空间,并将返回值强制转换为该类型指针
    		fread(borrowpa, J, 1, fj);              //调用数据块读写函数fread,表示一个指针readerpa,用于存放数据首地址;N表示数据块字节数;1表示要读写一个数据块;fp表示文件指针
    		if (n == 1)                             //
    		{
    			borrowhead = borrowpa;              //头指针指向borrowpa
    			borrowpb = borrowpa;                //borrowpb指向borrowpa
    		}
    		else                                    //创建链表 
    		{
    			borrowpc = borrowpb;                //borrowpc指向borrowpb
    			borrowpb->next = borrowpa;          //borrowpb指向下一位
    			borrowpb = borrowpa;                //borrowpb指向borrowpa
    		}
    	}
    	if (borrowpc != NULL)borrowpc->next = NULL; //链表结束,最后一个指针指向空
    	else borrowhead = NULL;                     //链表为空
    	fclose(fj);                                 //关闭文件 
    	return borrowhead;                         //返回头指针 
    }
    
    

    声明

    //第一模块:控制台界面模块()
    void HideCursor();              //隐藏光标
    void Toxy(int x, int y);        //将光标移动到X,Y坐标处
    void Color(short x);            //设置颜色
    void Menu();                    //菜单
    void FindBook();                //查询图书界面
    void BookCatalog();             //图书总览
    void ReaderMenu();              //借阅与归还
    void AdministratorMenu();       //管理员界面
    void Over();                    //退出软件
    
    //第二模块:图书查询模块()
    void FindBookName();            //根据书名查询图书
    void FindBookAuthor();          //根据作者姓名查询图书
    void FindBookNumber();          //根据图书库存编号查询图书
    void FindBookPublish();         //根据出版社查询图书
    void FindBookType();            //根据图书类型查询图书
    void FuzzySearch();             //模糊查询图书
    void FuzzyCatalog();            //图书总览-库存先后
    void BookNameCatalog();         //图书总览-书名
    void BookAuthorCatalog();       //图书总览-作者
    void BookNumberCatalog();       //图书总览-库存编号
    void BookTypeCatalog();         //图书总览-书籍类型
    void BookTotalCatalog();        //图书总览-借阅量
    
    //第三模块:读者模块()
    void ReaderRegister();            //读者注册
    void BorrowBooks();               //借阅图书
    void ReturnBooks();               //归还图书
    
    //第四模块:管理员模块()
    void EnterRepository();            //图书入库
    void ChangeRepository();           //修改图书库存信息
    void DeleteRepository();           //删除图书库存信息
    void ReorderRepository();          //存书信息排序
    void ReaderInformation();          //读者信息界面
    void ReaderInformationCatalog();   //读者信息总览
    void ChangeReaderInformation();    //修改读者信息
    void DeleteReaderInformation();    //删除读者信息
    void BorrowInformationCatalog();   //借阅总览
    

    第一部分

    void HideCursor()                                                         //隐藏光标
    {
    	CONSOLE_CURSOR_INFO cursor_info = { 1,0 };                            //CONSOLE_CURSOR_INFO这个结构包含的是控制台光标的信息,1,0为光标厚度和可见度,如若没下面一句,光标照样会出来
    	SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);  //SetConsoleCursorInfo是用来设置指定的控制台光标的大小和可见性,GetStdHandle(STD_OUTPUT_HANDLE)返回标准的输出的句柄,并赋值给对象cursor_info
    }                                                                         //GetStdHandle和SetConsoleTextAttribute在头文件windows.h中
    
    void Toxy(int x, int y)                            //将光标移动到X,Y坐标处
    {
    	COORD pos = { x , y };                         //COORD是Windows API中定义的一种结构,表示一个字符在控制台屏幕上的坐标。
    	HANDLE Out = GetStdHandle(STD_OUTPUT_HANDLE);  //并新建句柄Out,实例化句柄Out
    	SetConsoleCursorPosition(Out, pos);            //SetConsoleCursorPosition是一个计算机函数,如果用户定义了 COORD pos,
    }                                                  //那么pos其实是一个结构体变量,其中X和Y是它的成员,通过修改pos.X和pos.Y的值就可以实现光标的位置控制。
    
    void Color(short x)                                                   //设置颜色
    {
    	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), x);      //SetConsoleTextAttribute()函数是一个API设置字体颜色和背景色的函数
    }
    
    void Menu()    //菜单 
    {
    	do
    	{
    		system("cls");                                   //清屏 
    		HideCursor();                                    //隐藏光标 
    		Color(15);                                       //设置菜单颜色为亮白色 
    		char t;
    		Toxy(50, 5);                                     //将光标移动到(50,5)坐标处
    		printf("lime图书查询管理系统");
    		Toxy(48, 8);
    		printf("|     1.图书查询      |");
    		Toxy(48, 10);
    		printf("|     2.图书总览      |");
    		Toxy(48, 12);
    		printf("|     3.读者注册      |");
    		Toxy(48, 14);
    		printf("|     4.借阅与归还    |");
    		Toxy(48, 16);
    		printf("|     5.管理员界面    |");
    		Toxy(48, 18);
    		printf("|     0.退出软件      |");
    		t = getch();                                   //不回显函数 
    		switch (t)
    		{
    		case '1':FindBook(); break;
    		case '2':BookCatalog(); break;
    		case '3':ReaderRegister(); break;
    		case '4':ReaderMenu(); break;
    		case '5':AdministratorMenu(); break;
    		case '0':Over(); break;
    		default:break;
    		}
    	} while (1);
    }
    
    void Over()       //退出软件 
    {
    	char t;
    	system("cls");
    	Color(12);
    	Toxy(48, 11);
    	printf("-----------------------");
    	Toxy(48, 12);
    	printf("|   您确定要退出吗?  |");
    	Toxy(48, 14);
    	printf("| 1.确定     2.取消   |");
    	Toxy(48, 15);
    	printf("-----------------------");
    	while (1)
    	{
    		t = getch();
    		switch (t)
    		{
    		case '1':
    			system("cls");
    			Color(12);
    			Toxy(48, 10);
    			printf("正在安全退出....");
    			Sleep(1000);                           //暂停1秒 
    			system("cls");
    			Color(11);
    			Toxy(48, 10);
    			printf("已安全退出软件");
    			Toxy(48, 12);
    			printf("谢谢使用!");
    			Toxy(48, 14);
    			printf("by-by^_^");
    			Sleep(1000);                           //暂停1秒
    			exit(0); break;                         //终止程序 
    		case '2':
    			Menu(); break;                         //调用函数,进入菜单 
    		default:break;
    		}
    	}
    }
    
    void FindBook()  //查询图书界面
    {
    	do
    	{
    		system("cls");  //清屏 
    		Color(14);
    		char t;
    		Toxy(56, 6);
    		printf(" 图书查询");
    		Toxy(48, 8);
    		printf("|     1.书名  查询      |");
    		Toxy(48, 10);
    		printf("|     2.作者  查询      |");
    		Toxy(48, 12);
    		printf("|     3.库存编号查询    |");
    		Toxy(48, 14);
    		printf("|     4.出版社查询      |");
    		Toxy(48, 16);
    		printf("|     5.图书类别查询    |");
    		Toxy(48, 18);
    		printf("|     6.模糊  查询      |");
    		Toxy(50, 20);
    		printf("按0返回主菜单");
    		t = getch();
    		switch (t)
    		{
    		case '1':FindBookName(); break;
    		case '2':FindBookAuthor(); break;
    		case '3':FindBookNumber(); break;
    		case '4':FindBookPublish(); break;
    		case '5':FindBookType(); break;
    		case '6':FuzzySearch(); break;
    		case '0':Menu(); break;
    		default:break;
    		}
    	} while (1);
    }
    
    void BookCatalog()         //图书总览
    {
    	do
    	{
    		system("cls");  //清屏 
    		Color(13);
    		char t;
    		Toxy(58, 6);
    		printf("图书总览");
    		Toxy(48, 8);
    		printf("|     1.库存先后排序      |");
    		Toxy(48, 10);
    		printf("|     2.按书名排序        |");
    		Toxy(48, 12);
    		printf("|     3.按作者排序        |");
    		Toxy(48, 14);
    		printf("|     4.按库存编号排序    |");
    		Toxy(48, 16);
    		printf("|     5.按图书类别排序    |");
    		Toxy(48, 18);
    		printf("|     6.按借阅量排序      |");
    		Toxy(50, 20);
    		printf("按0返回主菜单");
    		t = getch();
    		switch (t)
    		{
    		case '1':FuzzyCatalog(); break;
    		case '2':BookNameCatalog(); break;
    		case '3':BookAuthorCatalog(); break;
    		case '4':BookNumberCatalog(); break;
    		case '5':BookTypeCatalog(); break;
    		case '6':BookTotalCatalog(); break;
    		case '0':Menu(); break;
    		default:break;
    		}
    	} while (1);
    }
    
    void ReaderMenu()                                        //借阅与归还
    {
    	do
    	{
    		system("cls");                                   //清屏 
    		HideCursor();                                    //隐藏光标 
    		Color(15);                                       //设置菜单颜色为亮白色 
    		char t;
    		Toxy(50, 5);                                     //将光标移动到(50,5)坐标处
    		printf("lime图书管理系统");
    		Toxy(48, 8);
    		printf("|     1.借阅图书      |");
    		Toxy(48, 10);
    		printf("|     2.归还图书      |");
    		Toxy(48, 12);
    		printf("|     0.返回主菜单    |");
    		t = getch();                                   //不回显函数 
    		switch (t)
    		{
    		case '1':BorrowBooks(); break;
    		case '2':ReturnBooks(); break;
    		case '0':Menu(); break;
    		default:break;
    		}
    	} while (1);
    }
    
    void AdministratorMenu()   //管理员界面
    {
    	do
    	{
    		system("cls");                                   //清屏 
    		HideCursor();                                    //隐藏光标 
    		Color(15);                                       //设置菜单颜色为亮白色 
    		char t;
    		Toxy(50, 5);                                     //将光标移动到(50,5)坐标处
    		printf("lime图书管理系统");
    		Toxy(48, 8);
    		printf("|   1.图书入库          |");
    		Toxy(48, 10);
    		printf("|   2.图书借阅信息总览  |");
    		Toxy(48, 12);
    		printf("|   3.管理读者信息      |");
    		Toxy(48, 14);
    		printf("|   4.修改存书信息      |");
    		Toxy(48, 16);
    		printf("|   5.删除存书信息      |");
    		Toxy(48, 18);
    		printf("|   6.存书信息排序      |");
    		Toxy(48, 20);
    		printf("|   0.返回主菜单        |");
    		t = getch();                                   //不回显函数 
    		switch (t)
    		{
    		case '1':EnterRepository(); break;
    		case '2':BorrowInformationCatalog(); break;
    		case '3':ReaderInformation(); break;
    		case '4':ChangeRepository(); break;
    		case '5':DeleteRepository(); break;
    		case '6':ReorderRepository(); break;
    		case '0':Menu(); break;
    		default:break;
    		}
    	} while (1);
    }
    
    void ReaderInformation()          //读者信息界面
    {
    	do
    	{
    		system("cls");                                   //清屏 
    		HideCursor();                                    //隐藏光标 
    		Color(15);                                       //设置菜单颜色为亮白色 
    		char t;
    		Toxy(50, 5);                                     //将光标移动到(50,5)坐标处
    		printf("lime图书管理系统");
    		Toxy(48, 8);
    		printf("|     1.修改读者信息      |");
    		Toxy(48, 10);
    		printf("|     2.删除读者信息      |");
    		Toxy(48, 12);
    		printf("|     3.读者信息总览      |");
    		Toxy(48, 14);
    		printf("|     0.返回管理员菜单    |");
    		t = getch();                                   //不回显函数 
    		switch (t)
    		{
    		case '1':ChangeReaderInformation(); break;
    		case '2':DeleteReaderInformation(); break;
    		case '3':ReaderInformationCatalog(); break;
    		case '0':AdministratorMenu(); break;
    		default:break;
    		}
    	} while (1);
    }
    

    第二模块

    void FindBookName()            //根据书名查询图书
    {
    	system("cls");
    	Color(14);
    	book bookhead, bookp;
    	int i = 10;
    	bookhead = booklist();
    	char name[25];
    	Toxy(48, 8);
    	printf("请输入您要查询图书的书名:");
    	gets(name);
    	Toxy(48, 9);
    	printf("正在查询....");
    	Sleep(500);
    	bookp = bookhead;
    	Toxy(2, 5);
    	printf("************************************************图书总览************************************************************");
    	Toxy(2, 7);
    	printf("--------------------------------------------------------------------------------------------------------------------");
    	Toxy(2, 8);
    	printf("|库存编号|书名                    |作者名            |图书类别|出版单位        |图书定价|在库数量|  总数量|  借阅量|");
    	Toxy(2, 9);
    	printf("--------------------------------------------------------------------------------------------------------------------");
    	while (bookp != NULL)
    	{
    		if (bookp != NULL && strcmp(bookp->name, name) == 0)
    		{
    			Toxy(2, i);
    			printf("|%8s|%24s|%18s|%8s|%16s|%8.2f|%8d|%8d|%8d|", bookp->number, bookp->name, bookp->author, bookp->type, bookp->publish, bookp->price, bookp->_amount, bookp->amount, bookp->total);
    			i++;
    			Toxy(2, i);
    			printf("--------------------------------------------------------------------------------------------------------------------");
    			i++;
    		}
    		bookp = bookp->next;
    	}
    	Toxy(45, i);
    	printf("按任意键返回!");
    	getch();
    	FindBook();
    }
    
    void FindBookAuthor()          //根据作者姓名查询图书
    {
    	system("cls");
    	Color(14);
    	book bookhead, bookp;
    	int i = 10;
    	bookhead = booklist();
    	char author[19];
    	Toxy(48, 8);
    	printf("请输入您要查询图书的作者名:");
    	gets(author);
    	Toxy(48, 9);
    	printf("正在查询....");
    	Sleep(500);
    	bookp = bookhead;
    	Toxy(2, 5);
    	printf("************************************************图书总览************************************************************");
    	Toxy(2, 7);
    	printf("--------------------------------------------------------------------------------------------------------------------");
    	Toxy(2, 8);
    	printf("|库存编号|书名                    |作者名            |图书类别|出版单位        |图书定价|在库数量|  总数量|  借阅量|");
    	Toxy(2, 9);
    	printf("--------------------------------------------------------------------------------------------------------------------");
    	while (bookp != NULL)
    	{
    		if (strcmp(bookp->author, author) == 0)
    		{
    			Toxy(2, i);
    			printf("|%8s|%24s|%18s|%8s|%16s|%8.2f|%8d|%8d|%8d|", bookp->number, bookp->name, bookp->author, bookp->type, bookp->publish, bookp->price, bookp->_amount, bookp->amount, bookp->total);
    			i++;
    			Toxy(2, i);
    			printf("--------------------------------------------------------------------------------------------------------------------");
    			i++;
    		}
    		bookp = bookp->next;
    	}
    	Toxy(45, i);
    	printf("按任意键返回!");
    	getch();
    	FindBook();
    }
    
    void FindBookNumber()         //根据图书库存编号查询图书
    {
    	system("cls");
    	Color(14);
    	book bookhead, bookp;
    	int i = 10;
    	bookhead = booklist();
    	char number[9];
    	Toxy(48, 8);
    	printf("请输入您要查询八位图书库存编号:");
    	gets(number);
    	Toxy(48, 9);
    	printf("正在查询....");
    	Sleep(500);
    	bookp = bookhead;
    	Toxy(2, 5);
    	printf("************************************************图书总览************************************************************");
    	Toxy(2, 7);
    	printf("--------------------------------------------------------------------------------------------------------------------");
    	Toxy(2, 8);
    	printf("|库存编号|书名                    |作者名            |图书类别|出版单位        |图书定价|在库数量|  总数量|  借阅量|");
    	Toxy(2, 9);
    	printf("--------------------------------------------------------------------------------------------------------------------");
    	while (bookp != NULL)
    	{
    		if (bookp != NULL && strcmp(bookp->number, number) == 0)
    		{
    			Toxy(2, i);
    			printf("|%8s|%24s|%18s|%8s|%16s|%8.2f|%8d|%8d|%8d|", bookp->number, bookp->name, bookp->author, bookp->type, bookp->publish, bookp->price, bookp->_amount, bookp->amount, bookp->total);
    			i++;
    			Toxy(2, i);
    			printf("--------------------------------------------------------------------------------------------------------------------");
    			i++;
    		}
    		bookp = bookp->next;
    	}
    	Toxy(45, i);
    	printf("按任意键返回!");
    	getch();
    	FindBook();
    }
    
    void FindBookPublish()         //根据出版社查询图书
    {
    	system("cls");
    	Color(14);
    	book bookhead, bookp;
    	int i = 10;
    	bookhead = booklist();
    	char publish[17];
    	Toxy(48, 8);
    	printf("请输入您要查询图书的出版社:");
    	gets(publish);
    	Toxy(48, 9);
    	printf("正在查询....");
    	Sleep(500);
    	bookp = bookhead;
    	Toxy(2, 5);
    	printf("************************************************图书总览************************************************************");
    	Toxy(2, 7);
    	printf("--------------------------------------------------------------------------------------------------------------------");
    	Toxy(2, 8);
    	printf("|库存编号|书名                    |作者名            |图书类别|出版单位        |图书定价|在库数量|  总数量|  借阅量|");
    	Toxy(2, 9);
    	printf("--------------------------------------------------------------------------------------------------------------------");
    	while (bookp != NULL)
    	{
    		if (bookp != NULL && strcmp(bookp->publish, publish) == 0)
    		{
    			Toxy(2, i);
    			printf("|%8s|%24s|%18s|%8s|%16s|%8.2f|%8d|%8d|%8d|", bookp->number, bookp->name, bookp->author, bookp->type, bookp->publish, bookp->price, bookp->_amount, bookp->amount, bookp->total);
    			i++;
    			Toxy(2, i);
    			printf("--------------------------------------------------------------------------------------------------------------------");
    			i++;
    		}
    		bookp = bookp->next;
    	}
    	Toxy(45, i);
    	printf("按任意键返回!");
    	getch();
    	FindBook();
    }
    
    void FindBookType()            //根据图书类型查询图书
    {
    	system("cls");
    	Color(14);
    	book bookhead, bookp;
    	int i = 10;
    	bookhead = booklist();
    	char type[9];                  //图书类型;
    	Toxy(48, 8);
    	printf("请输入您要查询图书的类型:");
    	gets(type);
    	Toxy(48, 9);
    	printf("正在查询....");
    	Sleep(500);
    	bookp = bookhead;
    	Toxy(2, 5);
    	printf("************************************************图书总览************************************************************");
    	Toxy(2, 7);
    	printf("--------------------------------------------------------------------------------------------------------------------");
    	Toxy(2, 8);
    	printf("|库存编号|书名                    |作者名            |图书类别|出版单位        |图书定价|在库数量|  总数量|  借阅量|");
    	Toxy(2, 9);
    	printf("--------------------------------------------------------------------------------------------------------------------");
    	while (bookp != NULL)
    	{
    		if (bookp != NULL && strcmp(bookp->type, type) == 0)
    		{
    			Toxy(2, i);
    			printf("|%8s|%24s|%18s|%8s|%16s|%8.2f|%8d|%8d|%8d|", bookp->number, bookp->name, bookp->author, bookp->type, bookp->publish, bookp->price, bookp->_amount, bookp->amount, bookp->total);
    			i++;
    			Toxy(2, i);
    			printf("--------------------------------------------------------------------------------------------------------------------");
    			i++;
    		}
    		bookp = bookp->next;
    	}
    	Toxy(45, i);
    	printf("按任意键返回!");
    	getch();
    	FindBook();
    }
    
    void FuzzySearch()             //模糊查询图书
    {
    	system("cls");
    	Color(14);
    	book bookhead, bookp;
    	int i = 10;
    	bookhead = booklist();
    	char information[25];
    	Toxy(48, 8);
    	printf("请输入您要查询图书的信息:");
    	gets(information);
    	Toxy(48, 9);
    	printf("正在查询....");
    	Sleep(500);
    	bookp = bookhead;
    	Toxy(2, 5);
    	printf("************************************************图书总览************************************************************");
    	Toxy(2, 7);
    	printf("--------------------------------------------------------------------------------------------------------------------");
    	Toxy(2, 8);
    	printf("|库存编号|书名                    |作者名            |图书类别|出版单位        |图书定价|在库数量|  总数量|  借阅量|");
    	Toxy(2, 9);
    	printf("--------------------------------------------------------------------------------------------------------------------");
    	while (bookp != NULL)
    	{
    		if (bookp != NULL && (strcmp(bookp->name, information) == 0 || strcmp(bookp->author, information) == 0 || strcmp(bookp->number, information) == 0 || strcmp(bookp->publish, information) == 0) || strcmp(bookp->type, information) == 0)
    		{
    			Toxy(2, i);
    			printf("|%8s|%24s|%18s|%8s|%16s|%8.2f|%8d|%8d|%8d|", bookp->number, bookp->name, bookp->author, bookp->type, bookp->publish, bookp->price, bookp->_amount, bookp->amount, bookp->total);
    			i++;
    			Toxy(2, i);
    			printf("--------------------------------------------------------------------------------------------------------------------");
    			i++;
    		}
    		bookp = bookp->next;
    	}
    	Toxy(45, i);
    	printf("按任意键返回!");
    	getch();
    	FindBook();
    }
    
    void FuzzyCatalog()                      //图书总览-乱序
    {
    	system("cls");
    	Color(14);
    	book bookhead, bookp;
    	int i = 10;
    	int book_amount = 0, bookamount = 0;
    	bookhead = booklist();
    	Toxy(2, 5);
    	printf("************************************************图书总览************************************************************");
    	Toxy(2, 7);
    	printf("--------------------------------------------------------------------------------------------------------------------");
    	Toxy(2, 8);
    	printf("|库存编号|书名                    |作者名            |图书类别|出版单位        |图书定价|在库数量|  总数量|  借阅量|");
    	Toxy(2, 9);
    	printf("--------------------------------------------------------------------------------------------------------------------");
    	bookp = bookhead;
    	if (bookhead == NULL)
    	{
    		Toxy(2, 10);
    		printf("书库暂时没有书哦~赶快去添加几本吧^_^(按任意键返回)\n");
    		getch();
    		BookCatalog();
    	}
    	while (bookp != NULL)
    	{
    		Toxy(2, i);
    		printf("|%8s|%24s|%18s|%8s|%16s|%8.2f|%8d|%8d|%8d|", bookp->number, bookp->name, bookp->author, bookp->type, bookp->publish, bookp->price, bookp->_amount, bookp->amount, bookp->total);
    		i++;
    		Toxy(2, i);
    		printf("--------------------------------------------------------------------------------------------------------------------");
    		i++;
    		book_amount += bookp->_amount;//计算图书总量
    		bookamount += bookp->amount;//计算图书总量
    		bookp = bookp->next;
    	}
    	Toxy(2, i);
    	printf("                            当前库存图书总量为:%d,书库图书总量为:%d\n", book_amount, bookamount);
    	i++;
    	Toxy(2, i);
    	printf("按任意键返回\n");
    	getch();//不回显函数 
    	BookCatalog();
    }
    
    void BookNameCatalog()         //图书总览-书名
    {
    	system("cls");
    	Color(14);
    	book bookhead, bookp, a[10000], temp;
    	int i, j,t;
    	bookhead = booklist();
    	Toxy(2, 5);
    	printf("************************************************图书总览************************************************************");
    	Toxy(2, 7);
    	printf("--------------------------------------------------------------------------------------------------------------------");
    	Toxy(2, 8);
    	printf("|库存编号|书名                    |作者名            |图书类别|出版单位        |图书定价|在库数量|  总数量|  借阅量|");
    	Toxy(2, 9);
    	printf("--------------------------------------------------------------------------------------------------------------------");
    	bookp = bookhead;
    	for (i = 0; bookp != NULL; bookp = bookp->next, i++) a[i] = bookp;
    	t = i;
    	for (i = 0;i<t; i++)
    	{
    		j = i + 1;
    		for (;j<t; j++)
    			if (strcmp(a[i]->name, a[j]->name) > 0)
    			{
    				temp = a[i];
    				a[i] = a[j];
    				a[j] = temp;
    			}
    	}
    	j = 0; i = 10;
    	while (j<t)
    	{
    		Toxy(2, i);
    		printf("|%8s|%24s|%18s|%8s|%16s|%8.2f|%8d|%8d|%8d|", a[j]->number, a[j]->name, a[j]->author, a[j]->type, a[j]->publish, a[j]->price, a[j]->_amount, a[j]->amount, a[j]->total);
    		i++;
    		Toxy(2, i);
    		printf("--------------------------------------------------------------------------------------------------------------------");
    		i++;
    		j++;
    	}
    	Toxy(2, i);
    	i++;
    	Toxy(2, i);
    	printf("按任意键返回\n");
    	getch();
    	BookCatalog();
    }
    
    void BookAuthorCatalog() //图书总览-作者
    {
    	system("cls");
    	Color(14);
    	book bookhead, bookp, a[10000], temp;
    	int i, j,t;
    	bookhead = booklist();
    	Toxy(2, 5);
    	printf("************************************************图书总览************************************************************");
    	Toxy(2, 7);
    	printf("--------------------------------------------------------------------------------------------------------------------");
    	Toxy(2, 8);
    	printf("|库存编号|书名                    |作者名            |图书类别|出版单位        |图书定价|在库数量|  总数量|  借阅量|");
    	Toxy(2, 9);
    	printf("--------------------------------------------------------------------------------------------------------------------");
    	bookp = bookhead;
    	if (bookhead == NULL)
    	{
    		Toxy(2, 10);
    		printf("书库暂时没有书哦~赶快去添加几本吧^_^(按任意键返回)\n");
    		getch();
    		BookCatalog();
    	}
    	for (i = 0; bookp != NULL; bookp = bookp->next, i++) a[i] = bookp;
    	t = i;
    	for (i = 0;i<t; i++)
    	{
    		j = i + 1;
    		for (;j<t; j++)
    			if (strcmp(a[i]->author, a[j]->author) > 0)
    			{
    				temp = a[i];
    				a[i] = a[j];
    				a[j] = temp;
    			}
    	}
    	j = 0; i = 10;
    	while (j<t)
    	{
    		Toxy(2, i);
    		printf("|%8s|%24s|%18s|%8s|%16s|%8.2f|%8d|%8d|%8d|", a[j]->number, a[j]->name, a[j]->author, a[j]->type, a[j]->publish, a[j]->price, a[j]->_amount, a[j]->amount, a[j]->total);
    		i++;
    		Toxy(2, i);
    		printf("--------------------------------------------------------------------------------------------------------------------");
    		i++;
    		j++;
    	}
    	Toxy(2, i);
    	i++;
    	Toxy(2, i);
    	printf("按任意键返回\n");
    	getch();
    	BookCatalog();
    }
    
    void BookNumberCatalog()       //图书总览-库存编号
    {
    	system("cls");
    	Color(14);
    	book bookhead, bookp, a[10000], temp;
    	int i, j,t;
    	bookhead = booklist();
    	Toxy(2, 5);
    	printf("************************************************图书总览************************************************************");
    	Toxy(2, 7);
    	printf("--------------------------------------------------------------------------------------------------------------------");
    	Toxy(2, 8);
    	printf("|库存编号|书名                    |作者名            |图书类别|出版单位        |图书定价|在库数量|  总数量|  借阅量|");
    	Toxy(2, 9);
    	printf("--------------------------------------------------------------------------------------------------------------------");
    	bookp = bookhead;
    	if (bookhead == NULL)
    	{
    		Toxy(2, 10);
    		printf("书库暂时没有书哦~赶快去添加几本吧^_^(按任意键返回)\n");
    		getch();
    		BookCatalog();
    	}
    	for (i = 0; bookp != NULL; bookp = bookp->next, i++) a[i] = bookp;
    	t = i;
    	for (i = 0; i<t; i++)
    	{
    		j = i + 1;
    		for (; j<t; j++)
    			if (strcmp(a[i]->number, a[j]->number) > 0)
    			{
    				temp = a[i];
    				a[i] = a[j];
    				a[j] = temp;
    			}
    	}
    	j = 0; i = 10;
    	while (j<t)
    	{
    		Toxy(2, i);
    		printf("|%8s|%24s|%18s|%8s|%16s|%8.2f|%8d|%8d|%8d|", a[j]->number, a[j]->name, a[j]->author, a[j]->type, a[j]->publish, a[j]->price, a[j]->_amount, a[j]->amount, a[j]->total);
    		i++;
    		Toxy(2, i);
    		printf("--------------------------------------------------------------------------------------------------------------------");
    		i++;
    		j++;
    	}
    	Toxy(2, i);
    	i++;
    	Toxy(2, i);
    	printf("按任意键返回\n");
    	getch();
    	BookCatalog();
    }
    
    void BookTypeCatalog()   //图书总览-类别 
    {
    	system("cls");
    	Color(14);
    	book bookhead, bookp, a[10000], temp;
    	int i, j,t;
    	bookhead = booklist();
    	Toxy(2, 5);
    	printf("************************************************图书总览************************************************************");
    	Toxy(2, 7);
    	printf("--------------------------------------------------------------------------------------------------------------------");
    	Toxy(2, 8);
    	printf("|库存编号|书名                    |作者名            |图书类别|出版单位        |图书定价|在库数量|  总数量|  借阅量|");
    	Toxy(2, 9);
    	printf("--------------------------------------------------------------------------------------------------------------------");
    	bookp = bookhead;
    	if (bookhead == NULL)
    	{
    		Toxy(2, 10);
    		printf("书库暂时没有书哦~赶快去添加几本吧^_^(按任意键返回)\n");
    		getch();
    		BookCatalog();
    	}
    	for (i = 0; bookp != NULL; bookp = bookp->next, i++) a[i] = bookp;
    	t = i;
    	for (i = 0;i<t; i++)
    	{
    		j = i + 1;
    		for (; j<t; j++)
    			if (strcmp(a[i]->type, a[j]->type) > 0)
    			{
    				temp = a[i];
    				a[i] = a[j];
    				a[j] = temp;
    			}
    	}
    	j = 0; i = 10;
    	while (j<t)
    	{
    		Toxy(2, i);
    		printf("|%8s|%24s|%18s|%8s|%16s|%8.2f|%8d|%8d|%8d|", a[j]->number, a[j]->name, a[j]->author, a[j]->type, a[j]->publish, a[j]->price, a[j]->_amount, a[j]->amount, a[j]->total);
    		i++;
    		Toxy(2, i);
    		printf("--------------------------------------------------------------------------------------------------------------------");
    		i++;
    		j++;
    	}
    	Toxy(2, i);
    	i++;
    	Toxy(2, i);
    	printf("按任意键返回\n");
    	getch();
    	BookCatalog();
    }
    
    void BookTotalCatalog()        //图书总览-借阅量
    {
    	system("cls");
    	Color(14);
    	book bookhead, bookp, a[10000], temp;
    	int i, j, t;
    	bookhead = booklist();
    	Toxy(2, 5);
    	printf("************************************************图书总览************************************************************");
    	Toxy(2, 7);
    	printf("--------------------------------------------------------------------------------------------------------------------");
    	Toxy(2, 8);
    	printf("|库存编号|书名                    |作者名            |图书类别|出版单位        |图书定价|在库数量|  总数量|  借阅量|");
    	Toxy(2, 9);
    	printf("--------------------------------------------------------------------------------------------------------------------");
    	bookp = bookhead;
    	if (bookhead == NULL)
    	{
    		Toxy(2, 10);
    		printf("书库暂时没有书哦~赶快去添加几本吧^_^(按任意键返回)\n");
    		getch();
    		BookCatalog();
    	}
    	for (i = 0; bookp != NULL; bookp = bookp->next, i++) a[i] = bookp;
    	t = i;
    	for (i = 0; i < t; i++)
    	{
    		j = i + 1;
    		for (; j < t; j++)
    			if (a[i]->total> a[j]->total)
    			{
    				temp = a[i];
    				a[i] = a[j];
    				a[j] = temp;
    			}
    	}
    	j = 0; i = 10;
    	while (j < t)
    	{
    		Toxy(2, i);
    		printf("|%8s|%24s|%18s|%8s|%16s|%8.2f|%8d|%8d|%8d|", a[j]->number, a[j]->name, a[j]->author, a[j]->type, a[j]->publish, a[j]->price, a[j]->_amount, a[j]->amount, a[j]->total);
    		i++;
    		Toxy(2, i);
    		printf("--------------------------------------------------------------------------------------------------------------------");
    		i++;
    		j++;
    	}
    	Toxy(2, i);
    	i++;
    	Toxy(2, i);
    	printf("按任意键返回\n");
    	getch();
    	BookCatalog();
    }
    
    

    第三板块

    void ReaderRegister()          //读者注册
    {
    	system("cls");
    	Color(10);
    	reader readerp;
    	readerp = (reader)malloc(D);     //申请空间 
    	//输入注册信息
    	Toxy(48, 8);
    	printf("请输入学号(10字符):");
    	scanf("%s", readerp->readernumber); getchar();
    	Toxy(48, 10);
    	printf("请输入姓名(不超过10字符):");
    	scanf("%s", readerp->readername); getchar();
    	Toxy(48, 12);
    	printf("请输入密码(不超过10字符):");
    	scanf("%s", readerp->password); getchar();
    	Toxy(48, 14);
    	printf("请输入手机号(11位字符):");
    	scanf("%s", readerp->tele); getchar();
    	if ((strlen(readerp->readernumber) == 10) && (strlen(readerp->readername) < 10) && (strlen(readerp->password) < 10) && (strlen(readerp->tele) == 11))
    	{
    		char t;
    		system("cls");
    		Color(12);
    		Toxy(46, 8);
    		printf("-------------------------------");
    		Toxy(46, 9);
    		printf("|                             |");
    		Toxy(46, 10);
    		printf("|       请选择你的性别        |");
    		Toxy(46, 12);
    		printf("|    1.男            2.女     |");
    		Toxy(46, 13);
    		printf("|                             |");
    		Toxy(46, 14);
    		printf("-------------------------------");
    		while (1)
    		{
    			t = getch();
    			if (t == '1')
    			{
    				strcpy((*readerp).readersex, "男 ");
    				readerp->s = 1;
    				readerp->readertotal = 0;
    				break;
    			}
    			else if (t == '2')
    			{
    				strcpy((*readerp).readersex, "女 ");
    				readerp->s = 2;
    				readerp->readertotal = 0;
    				break;
    			}
    		}
    		FILE *fd;    //文件指针 
    		fd = fopen("reader.txt", "at");   //以追加的方式打开名字为reader的文本文件 
    		if (fd == NULL)
    		{
    			printf("无法打开reader文件");
    		}
    		if (fwrite(readerp, D, 1, fd) != 1)   //将readerp所指向的一段大小为D的内容存入fd所指向的文件中 
    		{
    			printf("写入错误");
    		}
    		fclose(fd);    //关闭文件 
    		system("cls");
    		Toxy(48, 14);
    		printf("正在保存....");
    		Sleep(500);   //暂停0.5秒 
    		system("cls");
    		Color(9);
    		Toxy(46, 8);
    		printf("-----------------------------");
    		Toxy(46, 9);
    		printf("|                           |");
    		Toxy(46, 10);
    		printf("|  注册成功!是否借阅图书? |");
    		Toxy(46, 12);
    		printf("|  1.是             2.否    |");
    		Toxy(46, 13);
    		printf("|                           |");
    		Toxy(46, 14);
    		printf("-----------------------------");
    		while (1)    //利用死循环可有效防止其他按键干扰 
    		{
    			t = getch();
    			if (t == '1')
    			{
    				ReaderMenu();
    			}
    			else if (t == '2')
    			{
    				Menu();
    			}
    		}
    	}
    	else
    	{
    		char t;
    		system("cls");
    		Color(12);
    		Toxy(46, 8);
    		printf("-------------------------------");
    		Toxy(46, 9);
    		printf("|                             |");
    		Toxy(46, 10);
    		printf("|  信息填写错误,是否重新输入 |");
    		Toxy(46, 12);
    		printf("|    1.是            2.否     |");
    		Toxy(46, 13);
    		printf("|                             |");
    		Toxy(46, 14);
    		printf("-------------------------------");
    		while (1)
    		{
    			t = getch();
    			if (t == '1')
    			{
    				ReaderRegister();
    			}
    			else if (t == '2')
    			{
    				Menu();
    			}
    		}
    	}
    }
    
    void BorrowBooks()               //借阅图书
    {
    	system("cls");                                   //清屏 
    	HideCursor();                                    //隐藏光标 
    	Color(9);                                       //设置登陆界面颜色为绿色 
    	char name[11], password[11];
    	char t;
    	reader readerhead, readerp;
    	FILE *fd, *fs, *fj;    //文件指针 
    	readerhead = readerlist();
    	readerp = readerhead;
    	Toxy(48, 8);
    	printf("请输入你的姓名:");
    	scanf("%s", &name); getchar();
    	Toxy(48, 10);
    	printf("请输入密码:");
    	scanf("%s", &password); getchar();
    	if (readerp == NULL)
    	{
    		system("cls");
    		Color(12);
    		Toxy(46, 8);
    		printf("----------------------------");
    		Toxy(46, 9);
    		printf("|                           |");
    		Toxy(46, 10);
    		printf("|   尚未注册,是否注册      |");
    		Toxy(46, 12);
    		printf("|   1.是            2.否    |");
    		Toxy(46, 13);
    		printf("|                           |");
    		Toxy(46, 14);
    		printf("-----------------------------");
    		while (1)    //利用死循环可有效防止其他按键干扰 
    		{
    			t = getch();
    			if (t == '1')
    			{
    				ReaderRegister();
    			}
    			else if (t == '2')
    			{
    				ReaderMenu();
    			}
    		}
    	}
    	while (readerp != NULL)
    	{
    		if (readerp != NULL && strcmp(readerp->readername, name) == 0)
    		{
    			if (readerp != NULL && strcmp(readerp->password, password) == 0)
    			{
    				system("cls");
    				Color(9);
    				Toxy(48, 10);
    				printf("登陆成功!!!");
    				Sleep(1000);
    				break;
    			}
    			else
    			{
    				system("cls");
    				Color(12);
    				Toxy(46, 8);
    				printf("----------------------------");
    				Toxy(46, 9);
    				printf("|                           |");
    				Toxy(46, 10);
    				printf("|   密码错误,是否重新登陆  |");
    				Toxy(46, 12);
    				printf("|   1.是            2.否    |");
    				Toxy(46, 13);
    				printf("|                           |");
    				Toxy(46, 14);
    				printf("-----------------------------");
    				while (1)    //利用死循环可有效防止其他按键干扰 
    				{
    					t = getch();
    					if (t == '1')
    					{
    						BorrowBooks();
    					}
    					else if (t == '2')
    					{
    						ReaderMenu();
    					}
    				}
    			}
    		}
    		else
    		{
    			system("cls");
    			Color(12);
    			Toxy(46, 8);
    			printf("----------------------------");
    			Toxy(46, 9);
    			printf("|                           |");
    			Toxy(46, 10);
    			printf("|   姓名错误,是否重新登陆  |");
    			Toxy(46, 12);
    			printf("|   1.是            2.否    |");
    			Toxy(46, 13);
    			printf("|                           |");
    			Toxy(46, 14);
    			printf("-----------------------------");
    			while (1)    //利用死循环可有效防止其他按键干扰 
    			{
    				t = getch();
    				if (t == '1')
    				{
    					BorrowBooks();
    				}
    				else if (t == '2')
    				{
    					ReaderMenu();
    				}
    			}
    		}
    		readerp = readerp->next;
    	}
    	//以上为登陆界面
    	do
    	{
    		system("cls");
    		Color(14);
    		book bookhead, bookp;
    		int i = 10, j = 0, n;
    		char ch, information[25];
    		bookhead = booklist();
    		Toxy(48, 8);
    		printf("请输入您要借阅图书的信息:");
    		gets(information);
    		Toxy(48, 9);
    		printf("正在查询....");
    		Sleep(500);
    		bookp = bookhead;
    		Toxy(2, 5);
    		printf("************************************************图书总览************************************************************");
    		Toxy(2, 7);
    		printf("--------------------------------------------------------------------------------------------------------------------");
    		Toxy(2, 8);
    		printf("|库存编号|书名                    |作者名            |图书类别|出版单位        |图书定价|在库数量|  总数量|  借阅量|");
    		Toxy(2, 9);
    		printf("--------------------------------------------------------------------------------------------------------------------");
    		while (bookp != NULL)
    		{
    			if (bookp != NULL && (strcmp(bookp->name, information) == 0 || strcmp(bookp->author, information) == 0 || strcmp(bookp->number, information) == 0 || strcmp(bookp->publish, information) == 0) || strcmp(bookp->type, information) == 0)
    			{
    				Toxy(0, i);
    				j++;
    				printf("%d|%8s|%24s|%18s|%8s|%16s|%8.2f|%8d|%8d|%8d|", j, bookp->number, bookp->name, bookp->author, bookp->type, bookp->publish, bookp->price, bookp->_amount, bookp->amount, bookp->total);
    				bookp->x = j;    //给符合查询标准的结点标号 
    				i++;
    			}
    			bookp = bookp->next;
    		}
    		if (j == 0)                   //如果j=0,即没有进入前面的搜索循环,也就是没有找到相应的信息 
    		{
    			Color(12);
    			Toxy(2, i);
    			printf("--------------------------------------------------------------------------------------------------------------------");
    			i++;
    			Toxy(2, i);
    			printf("没有找到相应的信息!(按0返回,按1重新搜索)");
    			while (1)               //死循环是为了防止除0和1的其他按键干扰 
    			{
    				ch = getch();
    				if (ch == '0')
    				{
    					ReaderMenu(); break;
    				}
    				else if (ch == '1')
    				{
    					break;
    				}
    			}
    			if (ch == '1')     //如果输入的ch等于1,则结束本次循环 
    				continue;
    		}
    		while (1)
    		{
    			Color(14);
    			Toxy(2, i);
    			printf("--------------------------------------------------------------------------------------------------------------------");
    			i++;
    			Toxy(2, i);
    			printf("请输入您要借阅的图书所在行数:");
    			scanf("%d", &n); getchar();
    			if (n > j || n == 0)
    			{
    				Color(12);
    				Toxy(2, ++i);
    				printf("输入错误,请重新输入!");
    				Sleep(500);
    			}
    			else
    			{
    				break;
    			}
    		}
    		bookp = bookhead;     //让p重新指向表头 
    		while (bookp != NULL && bookp->x != n)   //遍历链表查询符合条件的结点 
    		{
    			bookp = bookp->next;
    		}
    		if (bookp->_amount == 0)
    		{
    			system("cls");
    			Color(14);
    			Toxy(48, 10);
    			printf("暂无该书在库,请借阅其他图书!(按任意键返回)");
    			Sleep(500);
    			ReaderMenu();
    		}
    		system("cls");
    		Color(12);
    		Toxy(48, 8);
    		printf("-------------------------");
    		Toxy(48, 9);
    		printf("|                       |");
    		Toxy(48, 10);
    		printf("|     是否确认借阅?    |");
    		Toxy(48, 12);
    		printf("| 1.是             2.否 |");
    		Toxy(48, 13);
    		printf("|                       |");
    		Toxy(48, 14);
    		printf("-------------------------");
    		while (1)   //利用死循环防止其他按键干扰 
    		{
    			t = getch();
    			if (t == '1')
    			{
    				break;
    			}
    			else if (t == '2')
    			{
    				ReaderMenu();
    			}
    		}
    		bookp->_amount = bookp->_amount - 1;
    		bookp->total = bookp->total + 1;
    		system("cls");
    		Toxy(48, 10);
    		printf("正在借阅,请稍后....");
    		if (readerp->readertotal > 20)
    		{
    			system("cls");
    			Color(12);
    			Toxy(48, 10);
    			printf("借阅失败,已超出最大借阅图书数,正在返回....");
    			Sleep(500);
    			break;
    		}
    		borrow borrowp;
    		borrowp = (borrow)malloc(J);
    		strcpy((*borrowp).borrowamount, readerp->readernumber);
    		strcpy((*borrowp).borrowname, readerp->readername);
    		strcpy((*borrowp).borrowsex, readerp->readersex);
    		strcpy((*borrowp).borrowtele, readerp->tele);
    		strcpy((*borrowp).booknumber, bookp->number);
    		strcpy((*borrowp).bookname, bookp->name);
    		strcpy((*borrowp).bookauthor, bookp->author);
    		strcpy((*borrowp).booktype, bookp->type);
    		strcpy((*borrowp).bookpublish, bookp->publish);
    
    		fj = fopen("borrow.txt", "at");   //以追加的方式打开名字为repository的文本文件 
    		if (fj == NULL)
    		{
    			printf("无法打开borrow文件");
    		}
    		if (fwrite(borrowp, J, 1, fj) != 1)   //将p所指向的一段大小为J的内容存入fj所指向的文件中 
    		{
    			printf("写入错误");
    		}
    		fclose(fj);    //关闭文件 
    
    		bookp = bookhead;     //让p重新指向表头 
    		while (bookp != NULL)
    		{
    			bookp->x = 0;
    			bookp = bookp->next;
    		}
    		fs = fopen("repository.txt", "wt");   //以只写的方式打开名为repository的文本文件,打开的同时清空文件中的内容 
    		if (fs == NULL)
    		{
    			printf("无法打开repository文件");
    		}
    		if (fwrite(bookhead, S, 1, fs) != 1)   //将head写入fp所指向的文件中 
    		{
    			printf("写入错误!");
    		}
    		fclose(fs);   //关闭文件 
    		if (bookhead != NULL)   //如果head不为空 
    		{
    			bookp = bookhead->next;     //让p指向第二个结点 
    			fs = fopen("repository.txt", "at");   //以追加的方式打开文件 
    			if (fs == NULL)
    			{
    				printf("无法打开repository文件");
    			}
    			while (bookp != NULL)
    			{
    				if (fwrite(bookp, S, 1, fs) != 1)//将p写入fp所指向的文件中
    				{
    					printf("写入错误!");
    				}
    				bookp = bookp->next;
    			}
    			fclose(fs);  //关闭文件 
    		}
    		readerp->readertotal = readerp->readertotal + 1;
    		fd = fopen("reader.txt", "wt");   //以只写的方式打开名为reader的文本文件,打开的同时清空文件中的内容 
    		if (fd == NULL)
    		{
    			printf("无法打开reader文件");
    		}
    		if (fwrite(readerhead, D, 1, fd) != 1)   //将head写入fp所指向的文件中 
    		{
    			printf("写入错误!");
    		}
    		fclose(fd);   //关闭文件 
    		if (readerhead != NULL)   //如果head不为空 
    		{
    			readerp = readerhead->next;     //让p指向第二个结点 
    			fd = fopen("reader.txt", "at");   //以追加的方式打开文件 
    			if (fd == NULL)
    			{
    				printf("无法打开reader文件");
    			}
    			while (readerp != NULL)
    			{
    				if (fwrite(readerp, D, 1, fd) != 1)//将p写入fp所指向的文件中
    				{
    					printf("写入错误!");
    				}
    				readerp = readerp->next;
    			}
    			fclose(fd);  //关闭文件 
    		}
    		Sleep(500);   //暂停0.5秒 
    		system("cls");
    		Color(9);
    		Toxy(46, 10);
    		printf("借阅成功!即将自动返回菜单....");
    		Sleep(500);
    		break;
    	} while (1);
    }
    
    void ReturnBooks()               //归还图书
    {
    	system("cls"); 
    	HideCursor(); 
    	Color(9); 
    	char name[11], password[11];
    	char r;
    	FILE *fd, *fs, *fj;    //文件指针 
    	reader readerhead, readerp;
    	readerhead = readerlist();
    	readerp = readerhead;
    	Toxy(48, 8);
    	printf("请输入你的姓名:");
    	scanf("%s", &name); getchar();
    	Toxy(48, 10);
    	printf("请输入密码:");
    	scanf("%s", &password); getchar();
    	while (readerp != NULL)
    	{
    		if (readerp != NULL && strcmp(readerp->readername, name) == 0)
    		{
    			if (readerp != NULL && strcmp(readerp->password, password) == 0)
    			{
    				system("cls");
    				Color(9);
    				Toxy(48, 10);
    				printf("登陆成功!!!");
    				Sleep(1000);
    				break;
    			}
    			else
    			{
    				system("cls");
    				Color(12);
    				Toxy(46, 8);
    				printf("----------------------------");
    				Toxy(46, 9);
    				printf("|                           |");
    				Toxy(46, 10);
    				printf("|   密码错误,是否重新登陆  |");
    				Toxy(46, 12);
    				printf("|   1.是            2.否    |");
    				Toxy(46, 13);
    				printf("|                           |");
    				Toxy(46, 14);
    				printf("-----------------------------");
    				while (1)    //利用死循环可有效防止其他按键干扰 
    				{
    					r = getch();
    					if (r == '1')
    					{
    						BorrowBooks();
    					}
    					else if (r == '2')
    					{
    						ReaderMenu();
    					}
    				}
    			}
    		}
    		else
    		{
    			system("cls");
    			Color(12);
    			Toxy(46, 8);
    			printf("----------------------------");
    			Toxy(46, 9);
    			printf("|                           |");
    			Toxy(46, 10);
    			printf("|   姓名错误,是否重新登陆  |");
    			Toxy(46, 12);
    			printf("|   1.是            2.否    |");
    			Toxy(46, 13);
    			printf("|                           |");
    			Toxy(46, 14);
    			printf("-----------------------------");
    			while (1)    //利用死循环可有效防止其他按键干扰 
    			{
    				r = getch();
    				if (r == '1')
    				{
    					BorrowBooks();
    				}
    				else if (r == '2')
    				{
    					ReaderMenu();
    				}
    			}
    		}
    		readerp = readerp->next;
    	}
    	//以上为登陆界面
    	do
    	{
    		system("cls");
    		Color(14);
    		borrow borrowhead, borrowpa;
    		borrow borrowpb = NULL;
    		book bookp, bookhead;
    		int i = 10, j = 0, t = 0, n;
    		borrowhead = borrowlist();
    		Toxy(2, 5);
    		printf("**********************************************借阅信息总览***********************************************************");
    		Toxy(2, 7);
    		printf("---------------------------------------------------------------------------------------------------------------------");
    		Toxy(2, 8);
    		printf("借阅者编号|借阅者姓名|性别|   电话号码|库存编号|                    书名|            作者名|图书类型|          出版社");
    		Toxy(2, 9);
    		printf("---------------------------------------------------------------------------------------------------------------------");
    		borrowpa = borrowhead;
    		while (borrowpa != NULL)
    		{
    			if (strcmp(borrowpa->borrowamount, readerp->readernumber) == 0)
    			{
    				j++;
    				Toxy(0, i);
    				printf("%d:%10s|%10s|%4s|%11s|%8s|%24s|%18s|%8s|%16s\n", j, borrowpa->borrowamount, borrowpa->borrowname, borrowpa->borrowsex, borrowpa->borrowtele, borrowpa->booknumber, borrowpa->bookname, borrowpa->bookauthor, borrowpa->booktype, borrowpa->bookpublish);
    				i++;
    				Toxy(2, i);
    				printf("----------------------------------------------------------------------------------------------------------------------");
    				i++;
    				t++;
    				borrowpa->z = j;
    			}
    			borrowpa = borrowpa->next;
    		}
    		if (t == 0)
    		{
    			Toxy(2, 10);
    			printf("你暂时没有借阅图书哦^_^(按任意键返回)\n");
    			getch();
    			ReaderMenu();
    		}
    		else
    		{
    			Toxy(2, i);
    			printf("你已借出图书:%d本!!!", t);
    		}
    		i++;
    		Toxy(2, i);
    		printf("----------------------------------------------------------------------------------------------------------------------");
    		while (1)
    		{
    			i++;
    			Toxy(2, i);
    			printf("请输入您要归还的图书所在行数:");
    			scanf("%d", &n); getchar();
    			if (n > j || n == 0)
    			{
    				Color(12);
    				Toxy(2, ++i);
    				printf("-------------------------------------------------------------------------------------------------------------------");
    				Toxy(2, ++i);
    				printf("输入错误,请重新输入!");
    				Sleep(500);
    			}
    			else
    			{
    				break;
    			}
    		}
    		borrowpa = borrowhead;     //让p重新指向表头 
    		while (borrowpa != NULL && borrowpa->z != n)   //遍历链表查询符合条件的结点 
    		{
    			borrowpb = borrowpa;
    			borrowpa = borrowpa->next;
    		}
    		bookhead = booklist();
    		bookp = bookhead;
    		while (bookp != NULL)
    		{
    			if (strcmp(bookp->number, borrowpa->booknumber) == 0)
    			{
    				bookp->_amount = bookp->_amount + 1;
    			}
    			bookp = bookp->next;
    		}
    		if (borrowpa != NULL)
    		{
    			if (borrowpb == NULL)
    			{
    				borrowhead = borrowhead->next;
    			}
    			else
    			{
    				borrowpb->next = borrowpa->next;
    			}
    		}
    		free(borrowpa);
    		Color(12);
    		Toxy(46, 8);
    		printf("-------------------------");
    		Toxy(46, 9);
    		printf("|                       |");
    		Toxy(46, 10);
    		printf("|     是否确认归还?    |");
    		Toxy(46, 12);
    		printf("| 1.是             2.否 |");
    		Toxy(46, 13);
    		printf("|                       |");
    		Toxy(46, 14);
    		printf("-------------------------");
    		while (1)
    		{
    			t = getch();
    			if (t == '1')
    			{
    				break;
    			}
    			else if (t == '2')
    			{
    				ReaderMenu();
    			}
    		}
    		system("cls");
    		Color(9);
    		Toxy(46, 10);
    		printf("正在归还,请稍后....");
    		borrowpa = borrowhead;     //让p重新指向表头 
    		while (borrowpa != NULL)
    		{
    			borrowpa->z = 0;
    			borrowpa = borrowpa->next;
    		}
    		fj = fopen("borrow.txt", "wt");   //以只写的方式打开名为borrow的文本文件,打开的同时清空文件中的内容
    		if (borrowhead != NULL)
    		{
    			if (fj == NULL)
    			{
    				printf("无法打开borrow文件");
    			}
    			if (fwrite(borrowhead, J, 1, fj) != 1)   //将head写入fp所指向的文件中 
    			{
    				printf("写入错误!");
    			}
    		}
    		fclose(fj);   //关闭文件 
    		if (borrowhead != NULL)   //如果head不为空 
    		{
    			borrowpa = borrowhead->next;     //让p指向第二个结点 
    			fj = fopen("borrow.txt", "at");   //以追加的方式打开文件 
    			if (fj == NULL)
    			{
    				printf("无法打开borrow文件");
    			}
    			while (borrowpa != NULL)
    			{
    				if (fwrite(borrowpa, J, 1, fj) != 1)//将p写入fp所指向的文件中
    				{
    					printf("写入错误!");
    				}
    				borrowpa = borrowpa->next;
    			}
    			fclose(fj);  //关闭文件 
    		}
    		fs = fopen("repository.txt", "wt");   //以只写的方式打开名为repository的文本文件,打开的同时清空文件中的内容 
    		if (fs == NULL)
    		{
    			printf("无法打开repository文件");
    		}
    		if (fwrite(bookhead, S, 1, fs) != 1)   //将head写入fp所指向的文件中 
    		{
    			printf("写入错误!");
    		}
    		fclose(fs);   //关闭文件 
    		if (bookhead != NULL)   //如果head不为空 
    		{
    			bookp = bookhead->next;     //让p指向第二个结点 
    			fs = fopen("repository.txt", "at");   //以追加的方式打开文件 
    			if (fs == NULL)
    			{
    				printf("无法打开repository文件");
    			}
    			while (bookp != NULL)
    			{
    				if (fwrite(bookp, S, 1, fs) != 1)//将p写入fp所指向的文件中
    				{
    					printf("写入错误!");
    				}
    				bookp = bookp->next;
    			}
    			fclose(fs);  //关闭文件 
    		}
    		readerp->readertotal = readerp->readertotal - 1;
    		fd = fopen("reader.txt", "wt");   //以只写的方式打开名为reader的文本文件,打开的同时清空文件中的内容 
    		if (fd == NULL)
    		{
    			printf("无法打开reader文件");
    		}
    		if (fwrite(readerhead, D, 1, fd) != 1)   //将head写入fp所指向的文件中 
    		{
    			printf("写入错误!");
    		}
    		fclose(fd);   //关闭文件 
    		if (readerhead != NULL)   //如果head不为空 
    		{
    			readerp = readerhead->next;     //让p指向第二个结点 
    			fd = fopen("reader.txt", "at");   //以追加的方式打开文件 
    			if (fd == NULL)
    			{
    				printf("无法打开reader文件");
    			}
    			while (readerp != NULL)
    			{
    				if (fwrite(readerp, D, 1, fd) != 1)//将p写入fp所指向的文件中
    				{
    					printf("写入错误!");
    				}
    				readerp = readerp->next;
    			}
    			fclose(fd);  //关闭文件 
    		}
    		Sleep(500);   //暂停0.5秒 
    		system("cls");
    		Toxy(46, 10);
    		printf("借阅成功!即将自动返回菜单....");
    		Sleep(500);
    		break;
    	} while (1);
    }
    
    

    第四板块

    void EnterRepository()            //图书入库
    {
    	do
    	{
    		system("cls");
    		Color(10);
    		char t;
    		book bookp;
    		bookp = (book)malloc(S);     //申请空间 
    		//输入图书信息
    		Toxy(48, 8);
    		printf("请输入图书库存编号(8位库存编号):");
    		scanf("%s", bookp->number); getchar();
    		Toxy(48, 10);
    		printf("请输入书名(不超过24个字符):");
    		scanf("%s", bookp->name); getchar();
    		Toxy(48, 12);
    		printf("请输入作者名(不超过18个字符):");
    		scanf("%s", bookp->author); getchar();
    		Toxy(48, 14);
    		printf("请输入图书类别(不超过8个字符):");
    		scanf("%s", bookp->type); getchar();
    		Toxy(48, 16);
    		printf("请输入图书出版单位(不超过16个字符):");
    		scanf("%s", bookp->publish); getchar();
    		Toxy(48, 18);
    		printf("请输入图书价格(可保留两位小数):");
    		scanf("%f", &bookp->price); getchar();
    		Toxy(48, 20);
    		printf("请输入在库数量:");
    		scanf("%d", &bookp->_amount); getchar();
    		Toxy(48, 22);
    		printf("请输入图书总数量:");
    		scanf("%d", &bookp->amount);
    		if (strlen(bookp->number) != 8 || strlen(bookp->name) > 24 || strlen(bookp->author) > 18 || strlen(bookp->type) > 8 || strlen(bookp->publish) > 16 || bookp->_amount > bookp->amount)
    		{
    			system("cls");
    			Color(12);
    			Toxy(46, 8);
    			printf("---------------------------------");
    			Toxy(46, 9);
    			printf("|                               |");
    			Toxy(46, 10);
    			printf("|  信息填写错误!是否重新填写?  |");
    			Toxy(46, 12);
    			printf("|    1.是               2.否    |");
    			Toxy(46, 13);
    			printf("|                               |");
    			Toxy(46, 14);
    			printf("---------------------------------");
    			while (1)    //利用死循环可有效防止其他按键干扰 
    			{
    				t = getch();
    				if (t == '1')
    				{
    					EnterRepository();
    				}
    				else if (t == '2')
    				{
    					AdministratorMenu();
    				}
    			}
    		}
    		bookp->total = 0;
    		FILE *fs;    //文件指针 
    		fs = fopen("repository.txt", "at");   //以追加的方式打开名字为repository的文本文件 
    		if (fs == NULL)
    		{
    			printf("无法打开repository文件");
    		}
    		if (fwrite(bookp, S, 1, fs) != 1)   //将p所指向的一段大小为N的内容存入fp所指向的文件中 
    		{
    			printf("写入错误");
    		}
    		fclose(fs);    //关闭文件 
    		Toxy(48, 24);
    		printf("正在保存....");
    		Sleep(500);   //暂停0.5秒 
    		system("cls");
    		Color(9);
    		Toxy(46, 8);
    		printf("-------------------------");
    		Toxy(46, 9);
    		printf("|                       |");
    		Toxy(46, 10);
    		printf("| 保存成功!是否继续?  |");
    		Toxy(46, 12);
    		printf("| 1.是             2.否 |");
    		Toxy(46, 13);
    		printf("|                       |");
    		Toxy(46, 14);
    		printf("-------------------------");
    		while (1)    //利用死循环可有效防止其他按键干扰 
    		{
    			t = getch();
    			if (t == '1')
    			{
    				break;
    			}
    			else if (t == '2')
    			{
    				AdministratorMenu();
    			}
    		}
    	} while (1);
    }
    
    void ChangeRepository()           //修改图书库存信息
    {
    	do
    	{
    		system("cls");
    		Color(10);
    		book bookhead, bookp;
    		int i = 10, j = 0, n;
    		char ch, t;
    		FILE *fs;    //文件指针 
    		char _name[31];
    		bookhead = booklist();
    		Toxy(48, 10);
    		printf("请输入你要修改的图书的书名:");
    		scanf("%s", _name);
    		bookp = bookhead;
    		system("cls");
    		Color(14);
    		Toxy(2, 5);
    		printf("************************************************图书总览************************************************************");
    		Toxy(2, 7);
    		printf("--------------------------------------------------------------------------------------------------------------------");
    		Toxy(2, 8);
    		printf("|库存编号|书名                    |作者名            |图书类别|出版单位        |图书定价|在库数量|  总数量|  借阅量|");
    		Toxy(2, 9);
    		printf("--------------------------------------------------------------------------------------------------------------------");
    		while (bookp != NULL)
    		{
    			if (bookp != NULL && strcmp(bookp->name, _name) == 0)
    			{
    				Toxy(0, i);
    				j++;
    				printf("%d|%8s|%24s|%18s|%8s|%16s|%8.2f|%8d|%8d|%8d|", j, bookp->number, bookp->name, bookp->author, bookp->type, bookp->publish, bookp->price, bookp->_amount, bookp->amount, bookp->total);
    				bookp->x = j;    //给符合查询标准的结点标号 
    				i++;
    			}
    			bookp = bookp->next;
    		}
    		if (j == 0)                   //如果j=0,即没有进入前面的搜索循环,也就是没有找到相应的信息 
    		{
    			Color(12);
    			Toxy(2, i);
    			printf("--------------------------------------------------------------------------------------------------------------------");
    			i++;
    			Toxy(2, i);
    			printf("没有找到相应的信息!(按0返回,按1重新搜索)");
    			while (1)               //死循环是为了防止除0和1的其他按键干扰 
    			{
    				ch = getch();
    				if (ch == '0')
    				{
    					AdministratorMenu(); break;
    				}
    				else if (ch == '1')
    				{
    					break;
    				}
    			}
    			if (ch == '1')     //如果输入的ch等于1,则结束本次循环 
    				continue;
    		}
    		while (1)
    		{
    			Color(12);
    			Toxy(2, i);
    			printf("--------------------------------------------------------------------------------------------------------------------");
    			i++;
    			Toxy(2, i);
    			printf("请输入您要修改的图书所在行数:");
    			scanf("%d", &n); getchar();
    			if (n > j || n == 0)
    			{
    				Toxy(2, ++i);
    				printf("输入错误,请重新输入!");
    				Sleep(500);
    			}
    			else
    			{
    				break;
    			}
    		}
    		bookp = bookhead;     //让p重新指向表头 
    		while (bookp != NULL && bookp->x != n)   //遍历链表查询符合条件的结点 
    		{
    			bookp = bookp->next;
    		}
    		if (bookp)    //如果p不为空 
    		{
    			//输入要修改的信息 
    			system("cls");                                   //清屏 
    			HideCursor();                                    //隐藏光标 
    			Color(15);                                       //设置菜单颜色为亮白色 
    			char t;
    			Toxy(54, 5);                                     //将光标移动到(50,5)坐标处
    			printf("lime图书查询管理系统");
    			Toxy(48, 8);
    			printf("|     1.修改图书库存编号      |");
    			Toxy(48, 10);
    			printf("|     2.修改图书名称          |");
    			Toxy(48, 12);
    			printf("|     3.修改作者名字          |");
    			Toxy(48, 14);
    			printf("|     4.修改图书类别          |");
    			Toxy(48, 16);
    			printf("|     5.修改图书出版单位      |");
    			Toxy(48, 18);
    			printf("|     6.修改图书价格          |");
    			Toxy(48, 20);
    			printf("|     7.修改图书数量          |");
    			Toxy(48, 22);
    			printf("|     0.返回菜单              |");
    			t = getch();                                   //不回显函数 
    			switch (t)
    			{
    			case '1':
    			{
    				system("cls");                                   //清屏 
    				HideCursor();                                    //隐藏光标 
    				Color(10);                                       //设置颜色为亮白色
    				Toxy(48, 12);
    				printf("请输入图书库存编号(8位库存编号):");
    				scanf("%s", bookp->number); getchar();
    				if (strlen(bookp->number) != 8)
    				{
    					system("cls");
    					Color(12);
    					Toxy(46, 14);
    					printf("信息填写错误!请重新修改");
    					ChangeRepository();
    				}
    			};
    			break;
    			case '2':
    			{
    				system("cls");                                   //清屏 
    				HideCursor();                                    //隐藏光标 
    				Color(10);                                       //设置颜色为亮白色
    				Toxy(48, 12);
    				printf("请输入书名(不超过24个字符):");
    				scanf("%s", bookp->name); getchar();
    				if (strlen(bookp->name) > 24)
    				{
    					system("cls");
    					Color(12);
    					Toxy(46, 14);
    					printf("信息填写错误!请重新修改");
    					ChangeRepository();
    				}
    			};
    			break;
    			case '3':
    			{
    				system("cls");                                   //清屏 
    				HideCursor();                                    //隐藏光标 
    				Color(10);                                       //设置颜色为亮白色
    				Toxy(48, 12);
    				printf("请输入作者名(不超过18个字符):");
    				scanf("%s", bookp->author); getchar();
    				if (strlen(bookp->author) > 18)
    				{
    					system("cls");
    					Color(12);
    					Toxy(46, 14);
    					printf("信息填写错误!请重新修改");
    					ChangeRepository();
    				}
    			};
    			break;
    			case '4':
    			{
    				system("cls");                                   //清屏 
    				HideCursor();                                    //隐藏光标 
    				Color(10);                                       //设置颜色为亮白色
    				Toxy(48, 12);
    				printf("请输入图书类别(不超过8个字符):");
    				scanf("%s", bookp->type); getchar();
    				if (strlen(bookp->type) > 8)
    				{
    					system("cls");
    					Color(12);
    					Toxy(46, 14);
    					printf("信息填写错误!请重新修改");
    					ChangeRepository();
    				}
    			};
    			break;
    			case '5':
    			{
    				system("cls");                                   //清屏 
    				HideCursor();                                    //隐藏光标 
    				Color(10);                                       //设置颜色为亮白色
    				Toxy(48, 12);
    				printf("请输入图书出版单位(不超过16个字符):");
    				scanf("%s", bookp->publish); getchar();
    				if (strlen(bookp->publish) > 16)
    				{
    					system("cls");
    					Color(12);
    					Toxy(46, 14);
    					printf("信息填写错误!请重新修改");
    					ChangeRepository();
    				}
    			};
    			break;
    			case '6':
    			{
    				system("cls");                                   //清屏 
    				HideCursor();                                    //隐藏光标 
    				Color(10);                                       //设置颜色为亮白色
    				Toxy(48, 12);
    				printf("请输入图书价格(可保留两位小数):");
    				scanf("%f", &bookp->price); getchar();
    			};
    			break;
    			case '7':
    			{
    				system("cls");                                   //清屏 
    				HideCursor();                                    //隐藏光标 
    				Color(10);                                       //设置颜色为亮白色
    				Toxy(48, 12);
    				printf("请输入在库数量:");
    				scanf("%d", &bookp->_amount); getchar();
    				Toxy(48, 14);
    				printf("请输入图书总数量:");
    				scanf("%d", &bookp->amount);
    				if (strlen(bookp->publish) > 16 || bookp->_amount > bookp->amount)
    				{
    					system("cls");
    					Color(12);
    					Toxy(46, 10);
    					printf("信息填写错误!请重新修改");
    					ChangeRepository();
    				}
    			};
    			break;
    			case '0':AdministratorMenu(); break;
    			default:AdministratorMenu(); break;
    			}
    		}
    		system("cls");
    		Color(12);
    		Toxy(48, 8);
    		printf("-------------------------");
    		Toxy(48, 9);
    		printf("|                       |");
    		Toxy(48, 10);
    		printf("|     是否确认修改?    |");
    		Toxy(48, 12);
    		printf("| 1.是             2.否 |");
    		Toxy(48, 13);
    		printf("|                       |");
    		Toxy(48, 14);
    		printf("-------------------------");
    		while (1)   //利用死循环防止其他按键干扰 
    		{
    			t = getch();
    			if (t == '1')
    			{
    				break;
    			}
    			else if (t == '2')
    			{
    				AdministratorMenu();
    			}
    		}
    		system("cls");
    		Toxy(48, 10);
    		printf("正在修改,请稍后....");
    		bookp = bookhead;     //让p重新指向表头 
    		while (bookp != NULL)
    		{
    			bookp->x = 0;
    			bookp = bookp->next;
    		}
    		fs = fopen("repository.txt", "wt");   //以只写的方式打开名为repository的文本文件,打开的同时清空文件中的内容 
    		if (fs == NULL)
    		{
    			printf("无法打开repository文件");
    		}
    		if (fwrite(bookhead, S, 1, fs) != 1)   //将head写入fp所指向的文件中 
    		{
    			printf("写入错误!");
    		}
    		fclose(fs);   //关闭文件 
    		if (bookhead != NULL)   //如果head不为空 
    		{
    			bookp = bookhead->next;     //让p指向第二个结点 
    			fs = fopen("repository.txt", "at");   //以追加的方式打开文件 
    			if (fs == NULL)
    			{
    				printf("无法打开repository文件");
    			}
    			while (bookp != NULL)
    			{
    				if (fwrite(bookp, S, 1, fs) != 1)//将p写入fp所指向的文件中
    				{
    					printf("写入错误!");
    				}
    				bookp = bookp->next;
    			}
    			fclose(fs);  //关闭文件 
    		}
    		Sleep(500);   //暂停0.5秒 
    		system("cls");
    		Toxy(46, 10);
    		printf("修改成功!即将自动返回主菜单....");
    		Sleep(500);
    		break;
    	} while (1);
    }
    
    void DeleteRepository()           //删除图书库存信息
    {
    	do
    	{
    		system("cls");
    		Color(10);
    		FILE *fs, *rfs;
    		book bookhead, bookpa;
    		book bookpb = NULL;
    		int n, h = 0, i = 10;
    		char name[10];
    		char t, c, ch;
    		bookhead = booklist();    //调用函数,返回表头地址 
    		Toxy(48, 9);
    		printf("请输入你要删除的图书的书名:");
    		scanf("%s", name);
    		bookpa = bookhead;
    		Color(14);
    		Toxy(2, 5);
    		printf("************************************************图书总览************************************************************");
    		Toxy(2, 7);
    		printf("--------------------------------------------------------------------------------------------------------------------");
    		Toxy(2, 8);
    		printf("|库存编号|书名                    |作者名            |图书类别|出版单位        |图书定价|在库数量|  总数量|  借阅量|");
    		Toxy(2, 9);
    		printf("--------------------------------------------------------------------------------------------------------------------");
    		while (bookpa != NULL)
    		{
    			if (bookpa != NULL && strcmp(bookpa->name, name) == 0)
    			{
    				Toxy(0, i);
    				h++;
    				printf("%d:|%8s|%24s|%18s|%8s|%16s|%8.2f|%8d|%8d|%8d|", h, bookpa->number, bookpa->name, bookpa->author, bookpa->type, bookpa->publish, bookpa->price, bookpa->_amount, bookpa->amount, bookpa->total);
    				i++;
    				Toxy(2, i);
    				printf("--------------------------------------------------------------------------------------------------------------------");
    				bookpa->x = h;
    				i++;
    			}
    			bookpa = bookpa->next;
    		}
    		if (h == 0)                   //如果j=0,即没有进入前面的搜索循环,也就是没有找到相应的信息 
    		{
    			Color(12);
    			Toxy(2, i);
    			printf("--------------------------------------------------------------------------------------------------------------------");
    			i++;
    			Toxy(2, i);
    			printf("没有找到相应的信息!(按0返回,按1重新搜索)");
    			while (1)               //死循环是为了防止除0和1的其他按键干扰 
    			{
    				ch = getch();
    				if (ch == '0')
    				{
    					AdministratorMenu(); break;
    				}
    				else if (ch == '1')
    				{
    					break;
    				}
    			}
    			if (ch == '1')     //如果输入的ch等于1,则结束本次循环 
    				continue;
    		}
    		while (1)
    		{
    			Toxy(2, i);
    			printf("请输入您要删除的图书所在行数:");
    			scanf("%d", &n); getchar();
    			if (n > h || n == 0)
    			{
    				Color(12);
    				Toxy(2, ++i);
    				printf("-------------------------------------------------------------------------------------------------------------------");
    				Toxy(2, ++i);
    				printf("输入错误,请重新输入!");
    				Sleep(500);
    			}
    			else
    			{
    				break;
    			}
    		}
    		bookpa = bookhead;     //让p重新指向表头 
    		while (bookpa != NULL && bookpa->x != n)   //遍历链表查询符合条件的结点 
    		{
    			bookpb = bookpa;
    			bookpa = bookpa->next;
    		}
    		if (bookpa != NULL)
    		{
    			if (bookpb == NULL)
    			{
    				bookhead = bookhead->next;
    			}
    			else
    			{
    				bookpb->next = bookpa->next;
    			}
    		}
    		free(bookpa);
    		Color(12);
    		Toxy(46, 8);
    		printf("-------------------------");
    		Toxy(46, 9);
    		printf("|                       |");
    		Toxy(46, 10);
    		printf("|     是否确认删除?    |");
    		Toxy(46, 12);
    		printf("| 1.是             2.否 |");
    		Toxy(46, 13);
    		printf("|                       |");
    		Toxy(46, 14);
    		printf("-------------------------");
    		while (1)
    		{
    			t = getch();
    			if (t == '1')
    			{
    				break;
    			}
    			else if (t == '2')
    			{
    				AdministratorMenu();
    			}
    		}
    		system("cls");
    		Toxy(46, 10);
    		printf("正在删除,请稍后....");
    		bookpa = bookhead;     //让p重新指向表头 
    		while (bookpa != NULL)
    		{
    			bookpa->x = 0;
    			bookpa = bookpa->next;
    		}
    		fs = fopen("repository.txt", "wt");   //以只写的方式打开名为repository的文本文件,打开的同时清空文件中的内容
    		if (bookhead != NULL)
    		{
    			if (fs == NULL)
    			{
    				printf("无法打开repository文件");
    			}
    			if (fwrite(bookhead, S, 1, fs) != 1)   //将head写入fp所指向的文件中 
    			{
    				printf("写入错误!");
    			}
    		}
    		fclose(fs);   //关闭文件 
    		if (bookhead != NULL)   //如果head不为空 
    		{
    			bookpa = bookhead->next;     //让p指向第二个结点 
    			fs = fopen("repository.txt", "at");   //以追加的方式打开文件 
    			if (fs == NULL)
    			{
    				printf("无法打开repository文件");
    			}
    			while (bookpa != NULL)
    			{
    				if (fwrite(bookpa, S, 1, fs) != 1)//将p写入fp所指向的文件中
    				{
    					printf("写入错误!");
    				}
    				bookpa = bookpa->next;
    			}
    			fclose(fs);  //关闭文件 
    		}
    		Sleep(500);
    		system("cls");
    		Color(12);
    		Toxy(46, 8);
    		printf("-------------------------");
    		Toxy(46, 9);
    		printf("|                       |");
    		Toxy(46, 10);
    		printf("|  删除成功,是否继续? |");
    		Toxy(46, 12);
    		printf("| 1.是             2.否 |");
    		Toxy(46, 13);
    		printf("|                       |");
    		Toxy(46, 14);
    		printf("-------------------------");
    		while (1)
    		{
    			c = getch();
    			if (c == '1')
    			{
    				break;
    			}
    			else if (c == '2')
    			{
    				AdministratorMenu();
    			}
    		}
    	} while (1);
    }
    
    void ReorderRepository()          //存书信息排序
    {
    	do
    	{
    		system("cls");
    		Color(14);
    		book bookhead, bookpa;
    		int i = 10;
    		int h = 0, n, j;
    		char t;
    		FILE *fs;
    		book bookpb = NULL, bookpc = NULL;
    		bookhead = booklist();
    		Toxy(2, 5);
    		printf("************************************************图书总览************************************************************");
    		Toxy(2, 7);
    		printf("--------------------------------------------------------------------------------------------------------------------");
    		Toxy(2, 8);
    		printf("|库存编号|书名                    |作者名            |图书类别|出版单位        |图书定价|在库数量|  总数量|  借阅量|");
    		Toxy(2, 9);
    		printf("--------------------------------------------------------------------------------------------------------------------");
    		bookpa = bookhead;
    		if (bookhead == NULL)
    		{
    			Toxy(2, 10);
    			printf("书库暂时没有书哦~赶快去添加几本吧^_^(按任意键返回)\n");
    			getch();
    			AdministratorMenu();
    		}
    		while (bookpa != NULL)
    		{
    			h++;
    			Toxy(0, i);
    			printf("%d:|%8s|%24s|%18s|%8s|%16s|%8.2f|%8d|%8d|%8d|", h, bookpa->number, bookpa->name, bookpa->author, bookpa->type, bookpa->publish, bookpa->price, bookpa->_amount, bookpa->amount, bookpa->total);
    			i++;
    			Toxy(2, i);
    			printf("--------------------------------------------------------------------------------------------------------------------");
    			i++;
    			bookpa = bookpa->next;
    		}
    		while (1)
    		{
    			if (h == 1)
    			{
    				Toxy(2, i);
    				printf("暂时不需要修改图书次序哦~赶快去添加几本吧^_^(按任意键返回)\n");
    				getch();
    				AdministratorMenu();
    			}
    			Toxy(2, i);
    			printf("请输入您要修改的图书所在行数(输入0返回):");
    			scanf("%d", &n);
    			i++;
    			if (n < 0)
    			{
    				system("cls");
    				Color(12);
    				Toxy(2, i);
    				printf("输入错误,请重新输入.....");
    				ReorderRepository();
    			}
    			if (n == 0)
    			{
    				AdministratorMenu();
    			}
    			break;
    		}
    		bookpa = bookhead;
    		Toxy(2, i);
    		printf("上移请按1,下移请按2,返回请按0:");
    		i++;
    		t = getch();                                   //不回显函数 
    		switch (t)
    		{
    		case '1':
    		{
    			if (n == 1)
    			{
    				system("cls");
    				Color(12);
    				Toxy(48, 10);
    				printf("移动错误,移动距离超出允许距离......");
    				Sleep(1000);
    				ReorderRepository();
    			}
    			else if (n == 2)
    			{
    				bookhead = bookpa->next;
    				bookpb = bookhead->next;
    				bookhead->next = bookpa;
    				bookpa->next = bookpb;
    			}
    			else
    			{
    				for (j = 0; j < (n - 2); j++)
    				{
    					bookpb = bookpa;
    					bookpa = bookpb->next;
    					bookpc = bookpa->next;
    				}
    				bookpa->next = bookpc->next;
    				bookpc->next = bookpa;
    				bookpb->next = bookpc;
    			}
    			fs = fopen("repository.txt", "wt");
    			if (fs == NULL)
    			{
    				printf("无法打开repository文件");
    			}
    			if (fwrite(bookhead, S, 1, fs) != 1)
    			{
    				printf("写入错误!");
    			}
    			fclose(fs);
    			if (bookhead != NULL)
    			{
    				bookpa = bookhead->next;
    				fs = fopen("repository.txt", "at");
    				if (fs == NULL)
    				{
    					printf("无法打开repository文件");
    				}
    				while (bookpa != NULL)
    				{
    					if (fwrite(bookpa, S, 1, fs) != 1)
    					{
    						printf("写入错误!");
    					}
    					bookpa = bookpa->next;
    				}
    				fclose(fs);
    			}
    			system("cls");
    			Color(12);
    			Toxy(46, 8);
    			printf("-------------------------");
    			Toxy(46, 9);
    			printf("|                       |");
    			Toxy(46, 10);
    			printf("|  修改成功,是否继续? |");
    			Toxy(46, 12);
    			printf("| 1.是             2.否 |");
    			Toxy(46, 13);
    			printf("|                       |");
    			Toxy(46, 14);
    			printf("-------------------------");
    			char c;
    			while (1)
    			{
    				c = getch();
    				if (c == '1')
    				{
    					ReorderRepository();
    				}
    				else if (c == '2')
    				{
    					AdministratorMenu();
    				}
    			}
    		}; break;
    		case '2':
    		{
    			if (n == h)
    			{
    				system("cls");
    				Color(12);
    				Toxy(48, 10);
    				printf("移动错误,移动距离超出允许距离......");
    				Sleep(1000);
    				ReorderRepository();
    			}
    			else if (n == 1)
    			{
    				bookpb = bookhead->next;
    				bookhead = bookpb;
    				bookpa->next = bookpb->next;
    				bookhead->next = bookpa;
    			}
    			else
    			{
    				for (j = 0; j < (n - 1); j++)
    				{
    					bookpb = bookpa;
    					bookpa = bookpb->next;
    					bookpc = bookpa->next;
    				}
    				bookpa->next = bookpc->next;
    				bookpc->next = bookpa;
    				bookpb->next = bookpc;
    			}
    			fs = fopen("repository.txt", "wt");
    			if (fs == NULL)
    			{
    				printf("无法打开repository文件");
    			}
    			if (fwrite(bookhead, S, 1, fs) != 1)
    			{
    				printf("写入错误!");
    			}
    			fclose(fs);
    			if (bookhead != NULL)
    			{
    				bookpa = bookhead->next;
    				fs = fopen("repository.txt", "at");
    				if (fs == NULL)
    				{
    					printf("无法打开repository文件");
    				}
    				while (bookpa != NULL)
    				{
    					if (fwrite(bookpa, S, 1, fs) != 1)
    					{
    						printf("写入错误!");
    					}
    					bookpa = bookpa->next;
    				}
    				fclose(fs);
    			}
    			system("cls");
    			Color(12);
    			Toxy(46, 8);
    			printf("-------------------------");
    			Toxy(46, 9);
    			printf("|                       |");
    			Toxy(46, 10);
    			printf("|  修改成功,是否继续? |");
    			Toxy(46, 12);
    			printf("| 1.是             2.否 |");
    			Toxy(46, 13);
    			printf("|                       |");
    			Toxy(46, 14);
    			printf("-------------------------");
    			char c;
    			while (1)
    			{
    				c = getch();
    				if (c == '1')
    				{
    					ReorderRepository();
    				}
    				else if (c == '2')
    				{
    					AdministratorMenu();
    				}
    			}
    		}; break;
    		case '0':AdministratorMenu(); break;
    		default:break;
    		}
    	} while (1);
    }
    
    void ChangeReaderInformation()              //修改读者信息
    {
    	do
    	{
    		system("cls");
    		Color(10);
    		reader readerhead, readerp;
    		int i = 10, h = 0, n;
    		char ch, t;
    		FILE *fd;    //文件指针 
    		char _name[11];
    		readerhead = readerlist();
    		Toxy(48, 10);
    		printf("请输入你要修改的读者的姓名:");
    		scanf("%s", _name);
    		Color(14);
    		Toxy(2, 5);
    		printf("*********************************************读者信息总览********************************************************");
    		Toxy(2, 7);
    		printf("-----------------------------------------------------------------------------------------------------------------");
    		Toxy(2, 8);
    		printf("|                编号|            姓名|        性别|            联系电话|              密码|        已借阅图书数|");
    		Toxy(2, 9);
    		printf("-----------------------------------------------------------------------------------------------------------------");
    		readerp = readerhead;
    		while (readerp != NULL)
    		{
    			if (readerp != NULL && strcmp(readerp->readername, _name) == 0)
    			{
    				h++;
    				Toxy(0, i);
    				printf("%d:|%18s|%16s|%12s|%20s|%18s|%20d|\n", h, readerp->readernumber, readerp->readername, readerp->readersex, readerp->tele, readerp->password, readerp->readertotal);
    				i++;
    				Toxy(2, i);
    				printf("-----------------------------------------------------------------------------------------------------------------");
    				readerp->y = h;
    				i++;
    			}
    			readerp = readerp->next;
    		}
    		if (h == 0)                   //如果 h=0,即没有进入前面的搜索循环,也就是没有找到相应的信息 
    		{
    			Color(12);
    			Toxy(2, i);
    			printf("-------------------------------------------------------------------------------------------------------------------");
    			i++;
    			Toxy(2, i);
    			printf("没有找到相应的信息!(按0返回,按1重新搜索)");
    			while (1)               //死循环是为了防止除0和1的其他按键干扰 
    			{
    				ch = getch();
    				if (ch == '0')
    				{
    					ReaderInformation(); break;
    				}
    				else if (ch == '1')
    				{
    					break;
    				}
    			}
    			if (ch == '1')     //如果输入的ch等于1,则结束本次循环 
    				continue;
    		}
    		while (1)
    		{
    			Color(12);
    			Toxy(2, i);
    			printf("-------------------------------------------------------------------------------------------------------------------");
    			i++;
    			Toxy(2, i);
    			printf("请输入您要修改的读者信息所在行数:");
    			scanf("%d", &n); getchar();
    			if (n > h || n == 0)
    			{
    				Toxy(2, ++i);
    				printf("输入错误,请重新输入!");
    				Sleep(500);
    			}
    			else
    			{
    				break;
    			}
    		}
    		readerp = readerhead;     //让p重新指向表头 
    		while (readerp != NULL && readerp->y != n)   //遍历链表查询符合条件的结点 
    		{
    			readerp = readerp->next;
    		}
    		if (readerp)    //如果p不为空 
    		{
    			//输入要修改的信息 
    			system("cls");                                   //清屏 
    			HideCursor();                                    //隐藏光标 
    			Color(15);                                       //设置菜单颜色为亮白色 
    			char t;
    			Toxy(54, 5);                                     //将光标移动到(50,5)坐标处
    			printf("lime图书查询管理系统");
    			Toxy(48, 8);
    			printf("|     1.修改读者学号          |");
    			Toxy(48, 10);
    			printf("|     2.修改读者姓名          |");
    			Toxy(48, 12);
    			printf("|     3.修改读者性别          |");
    			Toxy(48, 14);
    			printf("|     4.修改读者密码          |");
    			Toxy(48, 16);
    			printf("|     5.修改读者联系方式      |");
    			Toxy(48, 18);
    			printf("|     6.修改读者已借图书数    |");
    			Toxy(48, 20);
    			printf("|     0.返回菜单              |");
    			t = getch();                                   //不回显函数 
    			switch (t)
    			{
    			case '1':
    			{
    				system("cls");                                   //清屏 
    				HideCursor();                                    //隐藏光标 
    				Color(10);                                       //设置颜色为亮白色
    				Toxy(48, 12);
    				printf("请输入学号(10字符):");
    				scanf("%s", readerp->readername); getchar();
    				if (strlen(readerp->readername) != 10)
    				{
    					system("cls");
    					Color(12);
    					Toxy(46, 14);
    					printf("信息填写错误!请重新修改");
    					ChangeReaderInformation();
    				}
    			};
    			break;
    			case '2':
    			{
    				system("cls");                                   //清屏 
    				HideCursor();                                    //隐藏光标 
    				Color(10);                                       //设置颜色为亮白色
    				Toxy(48, 12);
    				printf("请输入姓名(不超过10字符):");
    				scanf("%s", readerp->readername); getchar();
    				if (strlen(readerp->readername) > 10)
    				{
    					system("cls");
    					Color(12);
    					Toxy(46, 14);
    					printf("信息填写错误!请重新修改");
    					ChangeReaderInformation();
    				}
    			};
    			break;
    			case '3':
    			{
    				system("cls");                                   //清屏 
    				HideCursor();                                    //隐藏光标 
    				Color(9);                                       //设置颜色为亮白色
    				Toxy(46, 8);
    				printf("-------------------------------");
    				Toxy(46, 9);
    				printf("|                             |");
    				Toxy(46, 10);
    				printf("|       请选择你的性别        |");
    				Toxy(46, 12);
    				printf("|    1.男            2.女     |");
    				Toxy(46, 13);
    				printf("|                             |");
    				Toxy(46, 14);
    				printf("-------------------------------");
    				while (1)
    				{
    					t = getch();
    					if (t == '1')
    					{
    						strcpy((*readerp).readersex, "男 ");
    						readerp->s = 1;
    						break;
    					}
    					else if (t == '2')
    					{
    						strcpy((*readerp).readersex, "女 ");
    						readerp->s = 2;
    						break;
    					}
    				}
    			};
    			break;
    			case '4':
    			{
    				system("cls");                                   //清屏 
    				HideCursor();                                    //隐藏光标 
    				Color(10);                                       //设置颜色为亮白色
    				Toxy(48, 12);
    				printf("请输入密码(不超过10字符):");
    				scanf("%s", readerp->password); getchar();
    				if (strlen(readerp->password) > 10)
    				{
    					system("cls");
    					Color(12);
    					Toxy(46, 14);
    					printf("信息填写错误!请重新修改");
    					ChangeReaderInformation();
    				}
    			};
    			break;
    			case '5':
    			{
    				system("cls");                                   //清屏 
    				HideCursor();                                    //隐藏光标 
    				Color(10);                                       //设置颜色为亮白色
    				Toxy(48, 12);
    				printf("请输入手机号(11位字符):");
    				scanf("%s", readerp->tele); getchar();
    				if (strlen(readerp->tele) == 11)
    				{
    					system("cls");
    					Color(12);
    					Toxy(46, 14);
    					printf("信息填写错误!请重新修改");
    					ChangeReaderInformation();
    				}
    			};
    			break;
    			case '6':
    			{
    				system("cls"); 
    				HideCursor();
    				Color(10);
    				Toxy(48, 12);
    				printf("请输入已借阅图书数:");
    				scanf("%d", &readerp->readertotal); getchar();
    			};
    			break;
    			case '0':ChangeReaderInformation(); break;
    			default:ChangeReaderInformation(); break;
    			}
    		}
    		system("cls");
    		Color(12);
    		Toxy(48, 8);
    		printf("-------------------------");
    		Toxy(48, 9);
    		printf("|                       |");
    		Toxy(48, 10);
    		printf("|     是否确认修改?    |");
    		Toxy(48, 12);
    		printf("| 1.是             2.否 |");
    		Toxy(48, 13);
    		printf("|                       |");
    		Toxy(48, 14);
    		printf("-------------------------");
    		while (1)   //利用死循环防止其他按键干扰 
    		{
    			t = getch();
    			if (t == '1')
    			{
    				break;
    			}
    			else if (t == '2')
    			{
    				ReaderInformation();
    			}
    		}
    		system("cls");
    		Toxy(48, 10);
    		printf("正在修改,请稍后....");
    		readerp = readerhead;     //让p重新指向表头 
    		while (readerp != NULL)
    		{
    			readerp->y = 0;
    			readerp = readerp->next;
    		}
    		fd = fopen("reader.txt", "wt");   //以只写的方式打开名为reader的文本文件,打开的同时清空文件中的内容 
    		if (fd == NULL)
    		{
    			printf("无法打开reader文件");
    		}
    		if (fwrite(readerhead, D, 1, fd) != 1)   //将head写入fp所指向的文件中 
    		{
    			printf("写入错误!");
    		}
    		fclose(fd);   //关闭文件 
    		if (readerhead != NULL)   //如果head不为空 
    		{
    			readerp = readerhead->next;     //让p指向第二个结点 
    			fd = fopen("reader.txt", "at");   //以追加的方式打开文件 
    			if (fd == NULL)
    			{
    				printf("无法打开reader文件");
    			}
    			while (readerp != NULL)
    			{
    				if (fwrite(readerp, D, 1, fd) != 1)//将p写入fp所指向的文件中
    				{
    					printf("写入错误!");
    				}
    				readerp = readerp->next;
    			}
    			fclose(fd);  //关闭文件 
    		}
    		Sleep(500);   //暂停0.5秒 
    		system("cls");
    		Toxy(46, 10);
    		printf("修改成功!即将自动返回主菜单....");
    		Sleep(500);
    		break;
    	} while (1);
    }
    
    void DeleteReaderInformation()           //删除读者信息
    {
    	do
    	{
    		system("cls");
    		Color(14);
    		FILE *fd;
    		reader readerhead, readerpa;
    		reader readerpb = NULL;
    		int h = 0, n, i = 10;
    		char name[10];
    		char t, c, ch;
    		Toxy(48, 9);
    		printf("请输入你要删除的读者的姓名:");
    		scanf("%s", name);
    		readerhead = readerlist();    //调用函数,返回表头地址 
    		Toxy(2, 5);
    		printf("*********************************************读者信息总览********************************************************");
    		Toxy(2, 7);
    		printf("-----------------------------------------------------------------------------------------------------------------");
    		Toxy(2, 8);
    		printf("|                编号|            姓名|        性别|            联系电话|              密码|        已借阅图书数|");
    		Toxy(2, 9);
    		printf("-----------------------------------------------------------------------------------------------------------------");
    		readerpa = readerhead;
    		while (readerpa != NULL)
    		{
    			if (readerpa != NULL && strcmp(readerpa->readername, name) == 0)
    			{
    				h++;
    				Toxy(0, i);
    				printf("%d:|%18s|%16s|%12s|%20s|%18s|%20d|\n", h, readerpa->readernumber, readerpa->readername, readerpa->readersex, readerpa->tele, readerpa->password, readerpa->readertotal);
    				i++;
    				Toxy(2, i);
    				printf("-----------------------------------------------------------------------------------------------------------------");
    				readerpa->y = h;
    				i++;
    			}
    			readerpa = readerpa->next;
    		}
    		if (h == 0)                   //如果j=0,即没有进入前面的搜索循环,也就是没有找到相应的信息 
    		{
    			Color(12);
    			Toxy(2, i);
    			printf("-----------------------------------------------------------------------------------------------------------------");
    			i++;
    			Toxy(2, i);
    			printf("没有找到相应的信息!(按0返回,按1重新搜索)");
    			while (1)               //死循环是为了防止除0和1的其他按键干扰 
    			{
    				ch = getch();
    				if (ch == '0')
    				{
    					ReaderInformation(); break;
    				}
    				else if (ch == '1')
    				{
    					break;
    				}
    			}
    			if (ch == '1')     //如果输入的ch等于1,则结束本次循环 
    				continue;
    		}
    		while (1)
    		{
    			Toxy(2, i);
    			printf("请输入您要删除的图书所在行数:");
    			scanf("%d", &n); getchar();
    			if (n > h || n == 0)
    			{
    				Toxy(2, ++i);
    				printf("-----------------------------------------------------------------------------------------------------------------");
    				Toxy(2, ++i);
    				printf("输入错误,请重新输入!");
    				Sleep(500);
    			}
    			else
    			{
    				break;
    			}
    		}
    		system("cls");
    		Color(12);
    		Toxy(46, 8);
    		printf("-------------------------");
    		Toxy(46, 9);
    		printf("|                       |");
    		Toxy(46, 10);
    		printf("|     是否确认删除?    |");
    		Toxy(46, 12);
    		printf("| 1.是             2.否 |");
    		Toxy(46, 13);
    		printf("|                       |");
    		Toxy(46, 14);
    		printf("-------------------------");
    		while (1)
    		{
    			t = getch();
    			if (t == '1')
    			{
    				break;
    			}
    			else if (t == '2')
    			{
    				ReaderInformation();
    			}
    		}
    		readerpa = readerhead;
    		while (readerpa != NULL && readerpa->y != n)
    		{
    			readerpb = readerpa;
    			readerpa = readerpa->next;
    		}
    		if (readerpa != NULL)
    		{
    			if (readerpb == NULL)
    			{
    				readerhead = readerhead->next;
    			}
    			else
    			{
    				readerpb->next = readerpa->next;
    			}
    		}
    		free(readerpa);
    		system("cls");
    		Color(9);
    		Toxy(46, 10);
    		printf("正在删除,请稍后....");
    		readerpa = readerhead;     //让p重新指向表头 
    		while (readerpa != NULL)
    		{
    			readerpa->y = 0;
    			readerpa = readerpa->next;
    		}
    		fd = fopen("reader.txt", "wt");
    		if (readerhead != NULL)
    		{
    			if (fd == NULL)
    			{
    				printf("无法打开reader文件");
    			}
    			if (fwrite(readerhead, D, 1, fd) != 1)
    			{
    				printf("写入错误!");
    			}
    		}
    		fclose(fd);
    		if (readerhead != NULL)
    		{
    			readerpa = readerhead->next;
    			fd = fopen("reader.txt", "at");
    			if (fd == NULL)
    			{
    				printf("无法打开reader文件");
    			}
    			while (readerpa != NULL)
    			{
    				if (fwrite(readerpa, D, 1, fd) != 1)
    				{
    					printf("写入错误!");
    				}
    				readerpa = readerpa->next;
    			}
    			fclose(fd);
    		}
    		Sleep(500);
    		system("cls");
    		Color(12);
    		Toxy(46, 8);
    		printf("-------------------------");
    		Toxy(46, 9);
    		printf("|                       |");
    		Toxy(46, 10);
    		printf("|  删除成功,是否继续? |");
    		Toxy(46, 12);
    		printf("| 1.是             2.否 |");
    		Toxy(46, 13);
    		printf("|                       |");
    		Toxy(46, 14);
    		printf("-------------------------");
    		while (1)
    		{
    			c = getch();
    			if (c == '1')
    			{
    				break;
    			}
    			else if (c == '2')
    			{
    				ReaderInformation();
    			}
    		}
    	} while (1);
    }
    
    void ReaderInformationCatalog()   //读者信息总览
    {
    	system("cls");
    	Color(14);
    	reader readerhead, readerp;
    	int i = 10, h = 0;
    	char readername[11];
    	int sum_nan = 0, sum_nv = 0;
    	readerhead = readerlist();
    	Toxy(2, 5);
    	printf("*********************************************读者信息总览********************************************************");
    	Toxy(2, 7);
    	printf("-----------------------------------------------------------------------------------------------------------------");
    	Toxy(2, 8);
    	printf("|                编号|            姓名|        性别|            联系电话|              密码|        已借阅图书数|");
    	Toxy(2, 9);
    	printf("-----------------------------------------------------------------------------------------------------------------");
    	readerp = readerhead;
    	if (readerhead == NULL)
    	{
    		Toxy(2, 10);
    		printf("暂时没有读者注册哦^_^(按任意键返回)\n");
    		getch();
    		ReaderInformation();
    	}
    	while (readerp != NULL)
    	{
    		Toxy(2, i);
    		printf("|%20s|%16s|%12s|%20s|%18s|%20d|\n", readerp->readernumber, readerp->readername, readerp->readersex, readerp->tele, readerp->password, readerp->readertotal);
    		i++;
    		Toxy(2, i);
    		printf("-----------------------------------------------------------------------------------------------------------------");
    		i++;
    		if (readerp->s == 1)
    		{
    			sum_nan++;
    		}
    		else
    		{
    			sum_nv++;
    		}
    		if (readerp->readertotal > h || readerp->readertotal == h)
    		{
    			h = readerp->readertotal;
    			strcpy(readername, readerp->readername);
    		}
    		readerp = readerp->next;
    	}
    	Toxy(2, i);
    	printf("当前注册读者中男性读者人数:%d,女性读者人数:%d", sum_nan, sum_nv);
    	i++;
    	Toxy(2, i);
    	printf("-----------------------------------------------------------------------------------------------------------------");
    	i++;
    	Toxy(2, i);
    	printf("当前注册读者中借阅图书最多的人是:%s", readername);
    	i++;
    	Toxy(2, i);
    	printf("按任意键返回\n");
    	getch();//不回显函数 
    }
    
    void BorrowInformationCatalog()       //借阅总览
    {
    	system("cls");
    	Color(14);
    	borrow borrowhead, borrowp;
    	int i = 10;
    	int t = 0;
    	borrowhead = borrowlist();
    	Toxy(2, 5);
    	printf("**********************************************借阅信息总览***********************************************************");
    	Toxy(2, 7);
    	printf("---------------------------------------------------------------------------------------------------------------------");
    	Toxy(2, 8);
    	printf("借阅者编号|借阅者姓名|性别|   电话号码|库存编号|                    书名|            作者名|图书类型|          出版社");
    	Toxy(2, 9);
    	printf("---------------------------------------------------------------------------------------------------------------------");
    	borrowp = borrowhead;
    	if (borrowhead == NULL)
    	{
    		Toxy(2, 10);
    		printf("暂时没有读者借阅图书哦^_^(按任意键返回)\n");
    		getch();
    		AdministratorMenu();
    	}
    	while (borrowp != NULL)
    	{
    		Toxy(2, i);
    		printf("%10s|%10s|%4s|%11s|%8s|%24s|%18s|%8s|%16s\n", borrowp->borrowamount, borrowp->borrowname, borrowp->borrowsex, borrowp->borrowtele, borrowp->booknumber, borrowp->bookname, borrowp->bookauthor, borrowp->booktype, borrowp->bookpublish);
    		i++;
    		Toxy(2, i);
    		printf("----------------------------------------------------------------------------------------------------------------------");
    		i++;
    		t++;
    		borrowp = borrowp->next;
    	}
    	Toxy(2, i);
    	printf("已借出图书:%d本!!!", t);
    	i++;
    	Toxy(2, i);
    	printf("按任意键返回\n");
    	getch();//不回显函数 
    }
    
    

    主函数

    //主函数
    int main()                           //主函数,调用菜单
    {
    	Menu();                          //菜单
    	return 0;
    }
    
    展开全文
  • 我是小张,一名普通的在校学生。在学习之余,用博客来记录我学习过程中的点点滴滴,也希望我的博客能够更给同样热爱学习热爱技术的你们带来收获!希望大家多多关照,我们一起成长一起进步。也希望大家多多支持我鸭...

    写在前面:欢迎来到「发奋的小张」的博客。我是小张,一名普通的在校大学生。在学习之余,用博客来记录我学习过程中的点点滴滴,也希望我的博客能够更给同样热爱学习热爱技术的你们带来收获!希望大家多多关照,我们一起成长一起进步。也希望大家多多支持我鸭,喜欢我就给我一个关注吧!

    员工管理系统

    一、 课程设计目的

    通过本课程设计,强化上机动手能力,使学生在理论和实践的基础上进一步巩固
    《C 语言程序设计》课程学习的内容,掌握工程软件设计的基本方法。
    学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力。
    为后续各门计算机课程的学习打下坚实基础。
    为毕业设计和以后工作打下必要基础。

    二、课程设计内容

    针对某企业的员工,对其信息进行系统的管理。

    三、需求分析

    对所开发系统功能、性能的描述,想要实现的目标。
    此系统可对该厂员工进行信息的录入,修改,删除,添加,查询,排序,统计,
    打印等功能。用户可通过提示选择进入某一功能界面,然后进行对员工的信息管
    理。每一功能模块都充分为用户考虑,编排详细。使用户可以方便快捷的了解员
    工信息,及时有效的对员工进行信息的管理。

    四、概要设计

    1.系统结构图(功能模块图)
    在这里插入图片描述
    对系统进行分析,给出系统结构图;
    分析:此系统,为方便客户输入,以及使程序清晰化,因而本人采用模块法,
    将每一功能模块化,使程序中各函数间调用更加明了。
    2.功能模块说明
    对各个模块进行功能的描述。
    录入模块:输入该厂现有员工信息并保存与文件中,方便日后进行排序,更
    新,统计,打印等操作。
    输出模块:将所有员工信息,或所需员工信息输出于屏幕上,用于打印或查
    询员工信息。
    删除模块:对已退休或离开该厂的员工进行删除操作。
    添加模块:添加新入厂的员工信息并保存起来。
    修改模块:找到该员工并,选择所要修改的选项。
    排序模块:本程序只对员工年龄进行从小到大排序。(此模块代码还没写)
    查询模块:此模块分为按姓名,年龄,工作查询。(此模块代码还没写)

    五、职工管理系统代码

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<conio.h>
    struct employee
    {
    	char no[40];   //职工号
    	char name[40]; //职工姓名
    	char sex[10];  //职工性别
    	int age;	   //职工年龄
    	struct employee *next;//下一结点指针
    };
    typedef struct employee EMP;
    EMP *h;
    
    void load();       //读文件数据,并创建链表
    void save();       //将链表中数据写到文件中
    void add(EMP *p);  //链表中增加职工结点
    void del(char *s); //链表中删除指定姓名的职工结点
    void update();    //链表中更新职工结点中的数据
    void browse();    //在屏幕上显示链表中所有结点数据
    void menu();      //显示系统主菜单
    void delEmp();    //删除职工
    void addEmp();    //增加职工
    void main(void)
    {
       
    	int op;//operation
    	h =(EMP *)malloc(sizeof(EMP));   //创建链表的头结点
    	h->next = NULL;              //初始化链表头节点中下一节点指针为NULL
    	menu();
        scanf("%d",&op);     
    	while(op!=0)
    	{
    		switch(op)
    		{		  
    		  case 1:
    				load();
    				break;
    		  case 2:
    				save();
    				break;
    		  case 3:
    				addEmp();
    				break;
    		  case 4:
    				delEmp();
    				break;
    		  case 5:
    				update();
    				break;
    		  case 6:
    				browse();
    				break;
    		}
           	menu();
           scanf("%d",&op);
    	}
    }
    
    //显示系统主菜单函数
    void menu()  
    {
         printf("         Main   Menu\n");
    	 printf("   **********************   \n");
    	 printf("   *  0:quit   1 :load   *  \n");
    	 printf("   *  2:save   3 :add    *  \n");
    	 printf("   *  4:delete 5 :update *  \n");
    	 printf("   *  6:browse 7 :default*  \n");
    	 printf("   **********************   \n");
    }
    
    //读文件数据,并创建链表函数
    void load()
    {
      FILE *fp;
      char ch;
     
      fp = fopen("data.txt","r");
      if(fp==NULL)
      {
    	  printf("打开文件错误,按任意返回主菜单\n");
    	  getch();//程序停下来,等待输入
    	  return;
      }  
      while(!feof(fp))
      {
    	  EMP *node =(EMP *)malloc(sizeof(EMP));
    	  node->next = NULL;
    	  fscanf(fp,"%s%s%s%d",node->no,node->name,node->sex,&node->age);//从文件中读一行职工信息
    	  add(node); //	调用函数增加链表结点   
      } 
      fclose(fp);  
    }
    
    //链表中增加职工结点的函数
    void add(EMP *p)
    {
       EMP *q;
       q = h->next;  //将q指针指向链表中第一个职工结点
       if(q==NULL)  //如果q指针为NULL,则表示当前链表为空
       {
    	   h->next = p; //p指针指向的结点为链表中第一个结点
    	   p->next = NULL;      
       }
       else
       {
    	   while(q->next!=NULL) //通过while循环找到链表中最后一个结点
    	   {
    		  q = q ->next;
    	   }
    	   q->next = p;    //将q指针指向的最后一个结点的next指针指向新增结点
    	   p->next =NULL;  //现在p指针指向的是最后一个结点,因此将该节点的next指针设为NULL
       }
    
    }
    
    //增加职工函数
    void addEmp()
    {
      EMP *node;
      node = (EMP *)malloc(sizeof(EMP));
      node->next = NULL;
      printf("input the employee's no name sex age:\n");
      scanf("%s%s%s%d",node->no,node->name,node->sex,&node->age);
      add(node);
    
    }
    
    //删除职工函数
    void delEmp()
    {
       char name[40];
       printf("input del name:\n");
       scanf("%s",name);
       del(name);
    }
    
    //在屏幕上显示链表中所有职工结点数据函数
    void browse()
    {
    	EMP *node;
        node = h->next;  //node指针指向链表第一个结点
    	printf("Employee no    name  age  sex\n");
    	while(node)   //遍历链表
    	{
    		printf("%12s%6s%5d%4s\n",node->no,node->name,node->age,node->sex);
            node = node->next;  //node指针指向下一个职工结点
    	}
    	printf("\n");
    }
    
    
    //将链表中数据写到文件中的函数
    void save()
    {
    	FILE *fp;
    	EMP *node;
    	fp = fopen("data.txt","w"); //以写的方式打开文件
    	node = h->next;     //node指针指向链表第一个结点
    	while(node!=NULL)
    	{   //"%s %s %s %d\n" 格式符之间有空格
    		fprintf(fp,"%s %s %s %d\n",node->no,node->name,node->sex,node->age);
    		node  = node ->next;
    	}
    	fclose(fp);
    }
    
    //删除职工结点的函数
    void del(char *s)
    {
        EMP *p,*q;
    	p = h->next;//链表中第一个节点  p->next=p->next->next;
    	q = p->next;//链表中第二个节点
    	if(strcmp(s,p->name)==0)
    	{h->next=p->next;
    	 free(p);
    	 return;
    	}
    	while(q!=NULL)
    	{
          if(strcmp(s,q->name)==0)
    	  {
            p->next = q->next;
    		free(q);
    		break;
    	  }
    	  p = q;
    	  q = q->next;
    	}
    }
    
    //更新职工结点的函数
    void update()
    {
        char name[40];
    	int flag = 0;
    	EMP *p;
    	printf("input the name:\n");
    	scanf("%s",name);
        p = h->next;
    	while(p!=NULL)
    	{
    		if(strcmp(name,p->name)==0)
    		{
             	printf("input the age:\n");
    			scanf("%d",&p->age);
                printf("input the sex:\n");
    		    getchar();
    			scanf("%c",&p->sex);
    			flag = 1;
    			break;
    		}
    		p=p->next;
    
    	}
        if(flag==0)
    	{
           printf("error username\n");
    	}
    }
    

    6、系统描述

    本系统采用可以自行扩容的c语言传统数据结构:链表实现。相比用数组做存储,它具有可扩展性!
    系统实现了对员工的增删改查,打印输出,写入磁盘,读取磁盘信息等基本功能。
    系统具有良好的扩展性,可以扩展其他功能。比如:控制台加密,组合查询等·多种功能·!

    7、系统运行部分功能截图

    1. 添加员工以及显示所有员工
      在这里插入图片描述
    2. 修改员工信息
      在这里插入图片描述
      在这里插入图片描述
    3. 删除员工
      在这里插入图片描述
    博主后记:

    希望看到此篇博文的小伙伴,能够按照此模板写出自己需要的课程设计!如果程序运行有问题,欢迎在下方留言!博主会改正!大家一起共同进步。如果对你有所帮助,可以给博主一个赞👍 ,顺便关注一下博主哦,博主后续还会发一些常见的c语言课程设计。

    展开全文
  • C语言程序设计作业答案the resolution of the shareholders or the Board of Directors shall be provided the original resolution. 16th account managers should carefully verify the information provided by...
  • 大学C语言程序设计课程作业大作业-交通处罚单管理程序,适合初学者学习;大学C语言程序设计课程作业大作业-交通处罚单管理程序,适合初学者学习;大学C语言程序设计课程作业大作业-交通处罚单管理程序,适合初学者...
  • 兰州大学C语言程序设计课程作业1全解C语言程序设计课程作业_A历次成绩完成时间查看详情1.0.02015-11-21 09:15:312.0.02015-11-21 09:15:243.0.02015-11-21 09:15:184.0.02015-11-21 09:15:115.0.02015-11-21 09:15:...
  • C 语言程序设计课程作业 _A 14. 在文件包含预处理语句的使用形式中 ,当#include 后面的文件名用 '括起时 ,寻找被包 含文件的方式是 ( ) 直接按照系统设定的标准方式搜索目录 先在源程序所在目录搜索 ,再按照系统设定...
  • C语言程序设计-作业集目 录作业一2作业二4作业三9作业四13作业五19作业六27作业七36作业八45作业九47作业十51作业十一55作业一一、查找相关资料,回答下列问题1.什么是计算机程序?2.什么是程序设计语言?程序设计...
  • 计算机二级C语言程序设计测试题及答案2017下半年计算机等级考试时间9月23日-26日,目前进入了冲刺的阶段。接下来应届毕业生小编为大家精心准备了计算机二级C语言程序设计测试题及答案,希望能够给大家带来帮助!一、...
  • C语言程序设计形成性作业C语言程序设计形成性考核册参考答案作业 2009-06-30 23:01 阅读355 评论1 字号: 大大 中中 小小 一、 选择题1. 在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为(A)。A....
  • 西工18春《C语言程序设计》平时作业辅导资料.docx西工 18春 C语言程序设计平时作业 1、 C 2、 B 3、 C 4、 D 5、 A 一、单选题共 35 题, 70分 1、在 C语言中,要求参加运算的数必须是整数的运算符是( )。...
  • (0039)《C语言程序设计大作业A西南大学网络与继续教育学院课程考试试题卷类别:网教 专业:算机科学与技术,计算机应用技术 2015年12月课程名称【编号】:C语言程序设计【0039】 A卷大作业 满分:100 分一、大作业...
  • 安徽大学考研复试科目C语言考试资料,信号与信息处理,电子与通信工程,电路,集成电路专业复试资料,安大本校的c语言平时作业
  • 168 16 8 C语言程序设计课程作业_A 历次成绩 完成时间 查看详情 1.0.0 2015-11-21 09:15:31 2.0.0 2015-11-21 09:15:24 3.0.0 2015-11-21 09:15:18 4.0.0 2015-11-21 09:15:11 5.0.0 2015-11-21 09:15:05 6.0.0 2015...
  • 西南大学网络与继续教育学院课程考试试题卷类别:网教 专业:算机科学与技术,计算机应用技术 2015年12月课程名称【编号】: C语言程序设计 【0039】 A卷大作业 满分:100 分一、大作业题目1.通过你对C语言程序设计...
  • 实用文档文案大全C语言程序设计课程作业_A一、单选题1.(4分)设有以下定义int k=7, x=12;,则能使值为3的表达式是( )A. x%=(k%=5)B. x%=(k-k%5)C. x%=kD. (x%=k)-(k%=5)答案 D解析 C语言程序设计/数据类型与运算/整型...
  • [南开大学]18秋学期(1709、1803、1809)《C语言程序设计》在线作业谋学网http://doc.xuehai.net【奥鹏】[南开大学]18秋学期(1709、1803、1809)《C语言程序设计》在线作业试卷总分:100 得分:100第1题,#include "stdio....
  • C语言实验作业,学校C语言课程的上机作业
  • C语言通讯录程序设计大作业的范例
  • 西南大学网络与继续教育学院课程考试答题卷学号: 姓名: 层次: 高起专 201 5 年 12 月 A 卷总分 评卷人类别: 网教专业: 计算机应用技术课程名称【编号】 :C 语言程序设计【0039】题号 一 二 三 四 五#include ...
  • PAGE C语言程序设计作业 一单项选择 1下面的哪一个保留字不能作为函数返回类型 A long B auto C float D char 2在C语言中合法的字符常量是 A \xfg B \083 C \0 D \r 3以下程序的输出结果为 main) {char x=012;...
  • [优质文档]2019西南大学0039C语言程序设计机考大作业答案 西南大学网络与继续教育学院课程考试试题卷 类别: 网教 2019年 6月 课程名称【编号】: C语言程序设计 【0039】 A卷 大作业 满分:100 分 一、大作业题目 1...
  • 3. 3. 3. 3. C 语言程序设计课程作业_A 一单选题 1. (4分)设有以下定义int k=7, x=12,则... (x%=k)-(k%=5) 答案D 解析C语言程序设计/数据类型与运算/整型算术表达式 2. (4 分)以下程序的输岀结果是 #include main) { in
  • 《20春学期《C语言程序设计》在线平时作业1答卷.txt》由会员分享,可在线阅读,更多相关《20春学期《C语言程序设计》在线平时作业1答卷.txt(3页珍藏版)》请在第二文库上搜索。1、20春学期《C语言程序设计》...
  • C 语言程序设计课程作业 _A 一单选题 1. (4 分 )设有以下定义 int k=7, x=12, 则能使值为 3 的表达式是 A. x%=(k%=5) B. x%=(k-k%5) C. x%=k D. (x%=k)-(k%=5) 答案 D 解析 C 语言程序设计 /数据类型与运算 / 整型...
  • “构建程序设计的思想和方法、提升阅读程序能力和编写程序能力”是C语言程序设计的课程学习的主要目标。请简要说明你在《C语言程序设计》课程学习过程中做的主要工作(馨如用了哪些方法?采用哪些途径来学习?学习了...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,717
精华内容 9,486
关键字:

c语言程序设计大作业

c语言 订阅