精华内容
下载资源
问答
  • c语言文件管理系统

    2020-08-02 10:12:24
    if((fp=fopen("xxxxxxxxxxxx王大锤.txt","w"))==NULL) { printf("打不开此文件\n"); exit(0); } while(p!=NULL){ fprintf(fp,"学号:%d姓名:%s高数成绩:%d英语成绩:%d物理成绩:%d\n",p->xh,p->xm,p->...
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    FILE *fp;
    struct xsonde
    {
    	int xh;
    	char xm[15];
    	int gs;
    	int yy;
    	int wl;
    	double pj;
    	struct xsonde *next;
    };
    void *bc(struct xsonde *head)//保存在文件夹中的函数
    {
    	struct xsonde *p;
    	p=head;
    	if((fp=fopen("xxxxxxxxxxxx王大锤.txt","w"))==NULL)
    	{
    		printf("打不开此文件\n");
    		exit(0);
    	}
    	while(p!=NULL){
    	fprintf(fp,"学号:%d姓名:%s高数成绩:%d英语成绩:%d物理成绩:%d\n",p->xh,p->xm,p->gs,p->yy,p->wl);
    	p=p->next;
    	}
    	printf("数据已写入文件夹\n\n\n");
    	fclose(fp);
    	return 0;
    }
    void *ck(struct xsonde *head)//查看保存在文件夹中的函数
    {
    	int i=0;
    	char a;
    	struct xsonde *p;
    	p=head;
    	if((fp=fopen("xxxxxxxxxxxx王大锤","r"))==NULL)
    	{
    		printf("打不开此文件\n");
    		exit(0);
    	}
    	printf("\n所有人成绩为:\n");
    	a=getc(fp);
    	while(!feof(fp))
    	{ 
    	putchar(a);
    	a=getc(fp);
    	} 
    
    	fclose(fp);
    	return 0;
    }
    struct xsonde *lr()//录入成绩函数
    {
    	int i=0,n=0;
    	struct xsonde *p1,*p2,*head;
    	p1=p2=(struct xsonde *)malloc(sizeof(struct xsonde));
    	printf("第%d名学生学号:",i+1);
    	scanf("%d",&p1->xh);
    	printf("姓名:");
    	scanf("%s",p1->xm);
    	printf("高数成绩:");
    	scanf("%d",&p1->gs);
    	printf("英语成绩:");
    	scanf("%d",&p1->yy);
    	printf("物理成绩:");
    	scanf("%d",&p1->wl);
    	head=NULL;
    	while(n>=0)
    	{
    		n++;
    		i++;
    		if(i==1)head=p1;
    		else p2->next=p1;
    		p2=p1;
    		p1=(struct xsonde *)malloc(sizeof(struct xsonde));
    		printf("第%d名学生学号:",i+1);
    		scanf("%d",&p1->xh);
    		if(p1->xh==0)
    		{
    			printf("录入成绩完成\n");
    			break;
    		}
    		printf("姓名:");
    		scanf("%s",p1->xm);
    		printf("高数成绩:");
    		scanf("%d",&p1->gs);
    		printf("英语成绩:");
    		scanf("%d",&p1->yy);
    		printf("物理成绩:");
    		scanf("%d",&p1->wl);
    	}
    	p2->next=NULL;
    	return (head);
    }
    struct xsonde *xgxm(struct xsonde *head)//修改学号和姓名函数
    {
    	int i,j,a;
    	char b[15];
    	struct xsonde *p;
    	p=head;
    	printf("请选择:\n1、修改学号\n2、修改姓名\n");
    	scanf("%d",&j);
    	printf("输入需要修改学生的原学号:");
    	scanf("%d",&i);
    	while(p->xh!=i)
    	{
    		p=p->next;
    		if(p==NULL)
    		{
    			printf("无此学号!\n");
    			return(head);
    		}
    	}
    	switch(j){
    				case(1):{
    							printf("输入修改后的新学号:");
    							scanf("%d",&a);
    							p->xh=a;break;
    						}
    				case(2):{
    							printf("输入修改后的姓名:");
    							scanf("%s",b);
    							strcpy(p->xm,b);break;
    						}
    				default:printf("请选择正确的选项!");
    		}	
    	printf("修改完成\n");
    	bc(head);
    	return (head);
    }
    struct xsonde *xgcj(struct xsonde *head)//修改成绩函数
    {
    	int i,j,a;
    	struct xsonde *p;
    	p=head;
    	printf("输入需要修改成绩学生的学号:");
    	scanf("%d",&i);
    	while(p->xh!=i)
    		{
    			p=p->next;
    			if(p==NULL)
    			{
    				printf("无此学号!\n");
    				return(head);
    			}
    		}
    	printf("输入需要修改成绩的科目:\n1、高数\n2、英语\n3、物理\n");
    	scanf("%d",&j);
    	printf("输入修改后的新成绩:");
    	scanf("%d",&a);
    	if(j==1) p->gs =a;
    	if(j==2) p->yy =a;
    	if(j==3) p->wl =a;
    	printf("修改完成\n");
    	bc(head);
    	return (head);			
    }
    struct xsonde *scsj(struct xsonde *head)//删除数据函数
    {
    	int i;	
    	struct xsonde *p,*q;
    	p=head;
    	printf("输入要删除学生的学号:");
    	scanf("%d",&i);
    	while(p->xh!=i)
    	{
    		p=p->next;
    		if(p==NULL)
    			{
    				printf("无此学号!\n");
    				return(head);
    			}
    	}
    	p=head;
    	if(head->xh==i)
    	{
    		head=head->next;
    		bc(head);
    		return(head);
    	}
    	else
    	{
    		p=head;
    		q=head;
    		while((p->xh!=i)&&(p->next!=NULL))
    			{
    				q=p;
    				p=p->next;
    			}
    		q->next=p->next;
    	}
    	free(p);
    	printf("删除成功!\n");
    	bc(head);
    	return(head);
    }
    struct xsonde *jspj(struct xsonde *head)//查询平均成绩函数
    {
    	int sum=0,i;
    	struct xsonde *p;
    	p=head;
    	printf("输入查询平均成绩学生的学号:");
    	scanf("%d",&i);
    	while(p->xh!=i)
    	{
    		p=p->next;
    		if(p==NULL)
    			{
    				printf("无此学号!\n");
    				return(head);
    			}
    	}
    	sum=(p->gs+p->yy+p->wl );
    	p->pj =sum/3.0;
    	printf("该生平均成绩为:%4.2f",p->pj );
    	printf("\n");
    	return (head);
    }
    struct xsonde *cxcj(struct xsonde *head)//查询成绩函数
    {
    	int i,sum;
    	struct xsonde *p;
    	p=head;
    	printf("输入查询成绩学生的学号:");
    	scanf("%d",&i);
    	while(p->xh!=i)
    	{
    		p=p->next;
    		if(p==NULL)
    			{
    				printf("无此学号!\n");
    				return(head);
    			}
    	}
    	sum=(p->gs+p->yy+p->wl );
    	p->pj =sum/3.0;
    	printf("高数:%d\t英语%d\t物理%d\t平均成绩%4.2f",p->gs,p->yy,p->wl,p->pj );
    	printf("\n");
    	return (head);
    }
    struct xsonde *xz(struct xsonde *head)//添加同学
    {
    	struct xsonde *p,*q;
    	p=head;
    	q=(struct xsonde *)malloc(sizeof(struct xsonde));
    	while(p->next!=NULL)
    	{
    		p=p->next;
    	}
    	printf("输入要新增学生的学号:");
    	scanf("%d",&q->xh);
    	printf("姓名:");
    	scanf("%s",q->xm);
    	printf("高数成绩:");
    	scanf("%d",&q->gs);
    	printf("英语成绩:");
    	scanf("%d",&q->yy);
    	printf("物理成绩:");
    	scanf("%d",&q->wl);
    	p->next=q;
    	q->next=NULL;
    	printf("添加成功!\n");
    	bc(head);
    	return(head);
    }
    
    int main ()//主函数
    {
    	struct xsonde *head;
    	int i=0,a;
    	printf("下面录入各学生成绩:(学号输入 0 时停止录入)\n");
    	head=lr();
    	bc(head);
    	while(i==0)
    	{
    		printf("选择下方功能:\n");
    		printf("1.修改或学号及姓名\n2.修改成绩\n3.删除学生数据\n4.计算平均成绩\n5.按学号查询成绩\n6.查看所有同学成绩\n7.新增同学\n8.退出\n");
    		printf("选择对应序号:");
    		scanf("%d",&a);	
    		switch(a)
    		{
    			case(1):xgxm(head);break;
    			case(2):xgcj(head);break;
    			case(3):scsj(head);break;
    			case(4):jspj(head);break;
    			case(5):cxcj(head);break;
    			case(6):ck(head);break;
    			case(7):xz(head);break;
    			case(8):i++;break;
    			default:printf("错误!\n");
    		}
    		if(i==0)printf("\n若退出,输入 1 ,若不退出,输入 0 :");
    		else break;
    		scanf("%d",&i);
    		printf("\n\n");
    	}
    	printf("\n");
    	return 0;
    }
    
    展开全文
  • 有没有C语言的大佬可以帮助我一个问题,就是C语言读取文件

    有没有C语言的大佬可以帮助我一个问题,就是C语言读取文件

    展开全文
  • 基于C语言的交通管理系统,图,文件的操作
  • c语言教务管理系统

    2016-06-03 15:30:13
    c语言 教务管理系统 用gcc编辑器编译 多个文件 使用c语言做的一个学生信息管理系统,里面有管理员和老师对学生信息的更改,使用双链表,存储在一个.dat文件
  • 本资源源码带注释、讲解(可读性强),功能包括(增、删、改、查、排序、统计人数、文件保存),管理系统界面简洁、友好,非常适用于学习c语言管理系统的人群。欢迎下载使用!
  • C语言图书管理系统

    万次阅读 多人点赞 2017-06-20 10:06:53
    学校的期大一末考试就是让设计个小项目,因为当时比较菜,感觉图书管理系统应该挺好写的,就选了这个。可能是最开始想的太简单了,在写的过程中还是遇到了各种各样的问题。最头疼的一次是我当我调用了保存文件的...

    该图书管理能实行基本的图书信息管理和借还管理。

       学校的期大一末考试就是让设计个小项目,因为当时比较菜,感觉图书管理系统应该挺好写的,就选了这个。可能是最开始想的太简单了,在写的过程中还是遇到了各种各样的问题。最头疼的一次是我当我调用了保存文件的函数后再用清屏函数后会输出一段乱码,然后就卡死了。最后通过各种调试和找学长讨论才发现原来是因为我保存文件用的是重定向,也就是freopen()函数。

    freopen是被包含于C标准库头文件<stdio.h>中的一个函数,用于重定向输入输出流。该函数可以在不改变代码原貌的情况下改变输入输出环境,但使用时应当保证流是可靠的。

    这个函数有个缺点就是不稳定,而且我用书上的fclose()函数居然关不掉它。后来在网上搜了一下可以用freopen(“CON”,“r”,stdin)来关闭,但是还是不能解决它本身不稳定的问题。只好用了fopen()函数来进行文件的存取操作,这才解决了乱码的问题。

    在最开始设计图书管理系统功能的时候想的比较简单,只是能够实现添加删除图书,排序,查找功能。这部分还是用结构体写的,代码只写了三四百行。后来老师说需要有借书的功能,只好再添加。从这开始,对于图书管理系统功能的添加开始变得一发不可收拾。

    在添加完借书功能后,感觉能借书不能还书,就像一个圆少了一块似的。所以就加了一个还书的功能。由于之前书籍的信息都是用结构体来存储的,所以在借还书功能实现的过程中也就继续用的结构体来对图书信息进行修改。

     

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<time.h>
    #include <windows.h>
    #include<algorithm>
    
    using namespace std;
    
    struct library{
    	int ID;
    	char name[30];
    	double price;
    	char author[30];
    	int quan;
    	char itd[2000];
    }stu[100];
    struct asccount{
        char AcName[30];
        char password[12];
        char nickname[30];
    }sta[100];
    struct Book{
    	char Name[30];
    	char time[40];
    };
    struct node{
    	char users[30];
    	int sexes;
    	struct Book book[30];
    	int r;
    	node *Next;
    };
    typedef struct node *L;
    L pre, hnj=NULL, kl = new node;
    L HEAD = new node;
    char strr[30];
    int num=42,LLL,jj=2,logo=0,h=0,F=1,k=2,huan,oo;
    
    void display(void);//显示图书信息管理菜单*
    void load(void);//把图书信息加载到内存*
    void save(void);//将数据保存到磁盘*
    void Sort(void);//排序*
    void SortByScore(void);//按书名首字母排序*
    void AscendVyPick(void);//按单价升序排序*
    void DesendByPick(void);//按单价降序排序*
    int cmp1(library a, library b);//按书名首字母排序判断*
    int cmp2(library a, library b);//按单价升序排序判断*
    int cmp3(library a, library b);//按单价降序排序判断*
    void IdArrange(void);//重新整理书号*
    void Find(void);//查找*
    void add(void);//添加*
    void edit(void);//修改*
    void DeleteAll(void);//删除所有信息*
    void PrintRecord(void);//输出一条记录*
    void FindByName(void);//按书名查找*
    void FindByNum(void);//按书号查找*
    void FindByAuthor(void);//按作者查找*
    void output(void);//输出所有图书信息*
    void over(void);//结束程序*
    void Huifu(void);//恢复出厂设置*
    void PrinEdit(void);//输出修改菜单*
    void FindEdit(void);//输出查找菜单*
    void PrintSort(void);//输出排序菜单*
    void CheckUser(void);//检验账号的合法性*
    void addUser(void);//新建账号*
    void findPassword(void);//找回密码*
    void EditPassword(void);//修改密码*
    void loadUser(void);//将账号读入内存*
    void saveUser(void);//将账号存入磁盘*
    void printuser(void);//输出账号菜单*
    int ling(void);//账号登录*
    void PrintBorrow(void);//打印借书管理系统菜单*
    void Menu(void);//图书信息管理*
    void Borrow(void);//图书借还系统*
    void BorrowRecord(L q);//借书记录*
    void BorrowBook(L q, L y);//借书*
    void SendBook(L q, L y);//还书*
    L LookUser(L head);//用户搜索*
    void loadBorrow(L head);//将借书记录加载到内存*
    void saveBorrow(L head);//将用户借书记录加载到磁盘*
    void FuactionIntrod(void);//系统功能介绍*
    void Intropeople(void);//开发人员介绍*
    void Mainmenu(void);//打印主菜单*
    void hhk(void);//打印操作错误 *
    void loaduu(void);//数据数加载到内存*
    void saveuu(void);//数据数加载到磁盘*
    void Cpy(void);//备份图书信息*
    void HideCursor(void);//隐藏光标*
    void inwrong(void);//判断输入是否正确*
    void shan(void);
    void beifen(void);
    
    int main()
    {
    	int i,selt;
    	HideCursor();
    	LLL = 1;
    	loaduu();
    	if(!ling())
            return 0;
        system("cls");
        load();
        while(1){
            Mainmenu();
            oo = scanf("%d",&selt);
            if(!oo){
                	inwrong();
                	continue;
            }
            switch(selt){
                case 1:
                    Menu(); saveuu(); break;
                case 2:
                    Borrow(); break;
                case 3:
                    FuactionIntrod(); break;
                case 4:
                    system("cls"); Intropeople(); break;
                case 5:
                    system("cls"); if(ling() == 0){return 0;}  system("cls"); break;
                case 6:
                    saveuu(); system("cls"); over(); return 0;
                default :
                	system("cls"); hhk(); system("cls"); break;
            }
        }
        return 0;
    }
    
    //判断输入是否正确
    void inwrong(void)
    {
    	char s[50];
    	gets(s);
        system("cls");
        printf("\t\t\t输入错误!!\n");
        system("PAUSE");system("cls");
    }
    //隐藏光标
    void HideCursor()
    {
    	CONSOLE_CURSOR_INFO cursor_info = {1, 0};
    	SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
    }
    //数据数加载到内存
    void loaduu(void)
    {
        FILE *fp;
        fp = fopen("数据个数.txt", "r");
        fscanf(fp, "%d", &num);
        fscanf(fp, "%d", &jj);
        fclose(fp);
        k = jj;
    }
    //数据数加载到磁盘
    void saveuu(void)
    {
        FILE *fp;
        fp = fopen("数据个数.txt", "w");
        fprintf(fp, "%d\n", num);
        fprintf(fp, "%d\n", jj);
        fclose(fp);
    }
    //备份图书信息
    void Cpy(void)
    {
        FILE *fp;
        int i;
        shan();
        fp = fopen("图书信息库.txt", "w");
        for(i = 0; i < num; i++){
            fprintf(fp, "%d\n",stu[i].ID);
            fprintf(fp, "%s\n",stu[i].name);
            fprintf(fp, "%.2lf\n",stu[i].price);
            fprintf(fp, "%s\n",stu[i].author);
            fprintf(fp, "%d\n",stu[i].quan);
            fprintf(fp, "%s\n",stu[i].itd);
        }
        fclose(fp);
        saveuu();
        printf("\n\n\t\t\t备份成功!!\n");
        system("PAUSE");
        system("cls");
    }
    //打印主菜单
    void Mainmenu(void)
    {
        printf("\t   ************************************************************\n");
        if(LLL){
        printf("\t   *                欢迎使用29组的图书管理系统                *\n");
        LLL = 0;
        }
        else{
        printf("\t   *                                                          *\n");
        printf("\t   *      您可以进行以下操作:                                 *\n");
        }
        printf("\t   *                                                          *\n");
        printf("\t   *      图书信息管理 请按 1                                 *\n");
        printf("\t   *                                                          *\n");
        printf("\t   *      图书借还管理 请按 2                                 *\n");
        printf("\t   *                                                          *\n");
        printf("\t   *      系统功能介绍 请按 3                                 *\n");
        printf("\t   *                                                          *\n");
        printf("\t   *      开发人员介绍 请按 4                                 *\n");
        printf("\t   *                                                          *\n");
        printf("\t   *      切换账号 请按 5                                     *\n");
        printf("\t   *                                                          *\n");
        printf("\t   *      退出系统 请按 6                                     *\n");
        printf("\t   *                                                          *\n");
        printf("\t   ************************************************************\n\n");
    }
    //系统功能介绍
    void FuactionIntrod(void)
    {
    	system("cls");
    	printf("本系统能执行以下操作:\n\n");
    	printf("一、登录界面功能介绍\n\n");
    	printf("1.登录账号\n\n2.注册新账号\n\n3.密码找回\n\n4.修改密码\n\n\t\t\t   ");
    	system("PAUSE");
    	system("cls");
        printf("二、图书信息管理系统功能介绍\n\n");
        printf("1. 查找功能\n\n");
        printf("1)按书号查找\n2)按书名查找\n3)按作者查找\n4)输出所有图书信息\n\n");
        printf("2. 排序功能\n\n");
        printf("1)按书名首字母排序\n2)按单价升序排序\n3)按单价降序排序\n\n");
        printf("3. 修改功能\n\n");
        printf("1)添加\n\n  可添加任意本书\n\n2)删除一本图书\n3)删除全部图书\n\n");
        printf("4. 恢复图书信息\n\n  如错误删除图书信息,可恢复上一次备份的图书信息\n\n");
        printf("5.备份图书信息\n\n\t\t\t   ");
        system("PAUSE");
    	system("cls");
        printf("三、图书借还系统功能介绍\n\n");
        printf("1.借阅图书功能\n\n");
        printf("此功能可使用户借阅本系统中现存的图书\n\n");
    	printf("2.还书功能\n\n");
    	printf("此功能可方便用户还书\n\n");
        printf("3. 用户借书还书记录查询功能\n\n");
        printf("此功能可查询个人借书和还书记录\n\n");
        printf("4. 用户借书还书信誉查询功能\n\n");
        printf("此功能可查询借书者的个人信誉值,若信誉值低于60将不能再通过本系统借书,同时,每一年年末都会对信誉值进行统计,\n");
        printf("并将所有用户信誉值恢复为100。\n\n");
        printf("信誉值扣除标准:\n\n");
        printf("1)借的书需在两个工作日内归还,逾期还书  每次扣除信誉值 5。\n");
        printf("2)对图书造成损坏或丢失的  每次扣除信誉值 10 , 并原价赔偿。\n");
        printf("3)超过还书时间一个工作日的,信誉值将被直接清零,并不能在本系统进行任何操作。\n\n");
        printf("四、切换账号功能\n\n 可以切换账号\n\n\t\t\t   ");
        system("PAUSE");
        system("cls");
    }
    
    //检验账号的合法性
    void CheckUser(void)
    {
        int i,flag = 0,K,KK;
        char ss[30],sf[10];
        printf("\t\t\t\t请输入登录账号:\n\n\t\t\t\t ");
        scanf("%s",ss);
        for(i = 0; i < jj; i++){
            if(strcmp(sta[i].AcName, ss) == 0){
                strcpy(strr, ss);
                flag = 1;
                break;
            }
        }
        if(!flag){
            printf("\n\t\t\t\t此账号还未注册!!\n\n\t\t\t   ");
            system("PAUSE");
            system("cls");
            return;
        }
        printf("\t\t\t\t请输入密码:\n\n\t\t\t\t ");
        scanf("%s",sf);
        if(strcmp(sta[i].password, sf) == 0){
            h = 0;
            flag = 2;
        }
        if(flag == 1){
            system("cls");
            printf("\t\t\t\t密码错误!!\n\n\t\t\t   ");
            system("PAUSE");
            system("cls");
            h++;
            return ;
        }
        else if(flag == 2){
        	printf("\t\t\t   请输入下面的验证码:\n");
            srand((unsigned)time(NULL));
            K = rand();
            printf("\n\t\t\t\t  %d\n\t\t\t\t  ",K);
            oo = scanf("%d",&KK);
            if(!oo){
                inwrong();
                return ;
            }
            if(KK != K){
                printf("\n\t\t\t验证码错误!!\n");
                system("PAUSE");
                system("cls");
                return ;
            }
    		logo = 1;
    	}   
    }
    //将账号存入磁盘
    void saveUser(void)
    {
        int i;
        FILE *fp;
        fp = fopen("账号.txt", "w");
        for(i = 0; i <= jj; i++){
            fprintf(fp, "%s\n", sta[i].AcName);
            fprintf(fp, "%s\n", sta[i].password);
            fprintf(fp, "%s\n", sta[i].nickname);
        }
        fclose(fp);
    }
    //新建账号
    void addUser(void)
    {
        FILE *fp;
        int j=0,i;
        char c[12],str[30];
        printf("\t\t\t请输入账号:\n\n\t\t\t  ");
        scanf("%s",str);
        for(i = 0; i < jj; i++){
            if(strcmp(sta[i].AcName, str) == 0){
                printf("\t\t\t该账号已被注册,请重新申请!!\n\n\t\t\t   ");
                system("PAUSE");
                return ;
            }
        }
        strcpy(sta[jj].AcName, str);
        printf("\t\t\t请输入密码(密码长度不超过十个字符):\n\n\t\t\t  ");
        scanf("%s", sta[jj].password);
        printf("\t\t\t请再输入一次密码:\n\n\t\t\t  ");
        scanf("%s",c);
        if(strcmp(sta[jj].password, c) != 0){
            printf("\t\t\t两次密码不一致请从新申请\n\n\t\t\t");
            system("PAUSE");
            system("cls");
            printf("\n");
            addUser();
    		j = 1;
        }
        if(j)
            return ;
        printf("\n\t\t\t请输入昵称\n\n\t\t\t  ");
        scanf("%s",sta[jj].nickname);
        saveUser();
        printf("\t\t\t\t账号申请成功!!\n\n\t\t\t");
        jj++;
        strcpy(kl->users, sta[jj-1].AcName);
        kl->sexes = 0;
        strcpy(kl->book[0].Name, "0");
        strcpy(kl->book[0].time, "0");
        kl->r = 100;
        kl->Next = NULL;
        hnj = kl;
        saveuu();
        loadBorrow(HEAD);
        saveBorrow(HEAD);
        system("PAUSE");
    }
    //找回密码
    void findPassword(void)
    {
        int i;
        char a[30];
        printf("\t\t\t请输入要找回的账号:\n\t\t\t\t");
        scanf("%s",a);
        for(i = 0; i < jj; i++)
            if(strcmp(sta[i].AcName, a) == 0){
                printf("\t\t\t密码:%s\n",sta[i].password);
                system("PAUSE");
                return ;
            }
        printf("\t\t\t\t查无此账号!!\n\n\t\t\t");
        system("PAUSE");
    }
    //修改密码
    void EditPassword(void)
    {
        int i,K=0,KK=0;
        char a[30];
        printf("\t\t\t  请输入要修改密码的账号:\n\t\t\t  ");
        scanf("%s",a);
        for(i = 0; i < jj; i++)
            if(strcmp(sta[i].AcName, a) == 0){
                printf("\n\t\t\t   请输入原密码:\n\t\t\t   ");
                scanf("%s",a);
                if(strcmp(sta[i].password, a) != 0){
                    printf("\n\t\t\t\t密码错误!!\n\n\t\t\t   ");
                    system("PAUSE");
                    system("cls");
                    return ;
                }
                printf("\n\t\t\t   请输入新密码:\n\t\t\t   ");
                scanf("%s",a);
                if(strcmp(sta[i].password, a) == 0){
                    printf("\n\t\t\t新密码与原密码重复,请从新修改!!\n\n\t\t\t   ");
                    system("PAUSE");
                    system("cls");
                    return ;
                }
                strcpy(sta[i].password, a);
                printf("\t\t\t   请输入下面的验证码:\n");
                srand((unsigned)time(NULL));
                K = rand();
                printf("\n\t\t\t\t  %d\n\t\t\t\t  ",K);
                oo = scanf("%d",&KK);
                if(!oo){
                	inwrong();
                	return ;
            	}
                if(KK != K){
                    printf("\n\t\t\t验证码错误!!\n");
                    system("PAUSE");
                    system("cls");
                    return ;
                }
                printf("\n\t\t\t\t修改密码成功!!\n");
                saveUser();
                system("PAUSE");
                system("cls");
                return ;
            }
        printf("\n\t\t\t\t查无此账号!!\n\n\t\t\t");
        system("PAUSE");
    
    }
    //将账号读入内存
    void loadUser(void)
    {
        int i;
        freopen("账号.txt", "r", stdin);
        for(i = 0; i < jj; i++){
            scanf("%s",sta[i].AcName);
            scanf("%s",sta[i].password);
            scanf("%s",sta[i].nickname);
        }
        freopen("CON", "r", stdin);
    }
    //输出账号菜单
    void printuser(void)
    {
        printf("\t\t\t************************************\n");
        printf("\t\t\t*    登录 请按 1                   *\n");
        printf("\t\t\t*    注册新账号 请按 2             *\n");
        printf("\t\t\t*    找回密码 请按 3               *\n");
        printf("\t\t\t*    修改密码 请按 4               *\n");
        printf("\t\t\t*    退出程序 请按 5               *\n");
        printf("\t\t\t************************************\n");
    }
    //账号登录
    int ling(void)
    {
        int sh,i;
        hnj=NULL, kl = new node;
        h = logo = 0;
        while(1){
                printuser();
                loadUser();
                loaduu();
                oo = scanf("%d",&sh);
                if(!oo){
                	inwrong();
                	continue;
                }
                switch(sh){
                case 1:
                    CheckUser(); break;
                case 2:
                    addUser(); saveuu(); system("cls"); break;
                case 3:
                    findPassword(); system("cls"); break;
                case 4:
                    EditPassword(); break;
                case 5:
                    system("cls");
                    printf("\n");
                    printf("\t\t\t欢迎下次使用小哥哥的图书管理系统\n"); return 0;
                default :
                	system("cls"); hhk();system("cls"); break;
            }
            if(logo)
                return 1;
            if(h == 3){
                printf("\t\t\t密码错误三次,系统将自动关闭!!\n\n");
                printf("\t\t\t欢迎下次使用小哥哥的图书管理系统\n");
                return 0;
            }
        }
    }
    
    //恢复出厂设置
    void Huifu(void)
    {
        beifen();
        saveuu();
        int i = num;
        freopen("图书信息库.txt", "r",stdin);
        for(i = 0; i < num; i++){
            scanf("%d",&stu[i].ID);
            scanf("%s",stu[i].name);
            scanf("%lf",&stu[i].price);
            scanf("%s",stu[i].author);
            scanf("%d",&stu[i].quan);
            scanf("%s",stu[i].itd);
        }
        freopen("CON", "r", stdin);
        save();
        printf("\n\n\t\t\t恢复成功!!\n");
        system("PAUSE");
        system("cls");
    }
    void PrintRecord(int i)//输出一条记录
    {
        printf("\t\t\t书号:%04d\n",stu[i].ID);
        printf("\t\t\t书名:%s\n",stu[i].name);
        printf("\t\t\t价格:%.2lf\n",stu[i].price);
        printf("\t\t\t作者:%s\n",stu[i].author);
        printf("\t\t\t库存:%d\n",stu[i].quan);
        printf("\n简介:%s\n\n",stu[i].itd);
    }
    
    //图书信息管理
    void Menu(void)
    {
        int select;
        system("cls");
        load();
        while(1){
            display();
            oo = scanf("%d",&select);
            if(!oo){
                inwrong();
                continue;
            }
            switch(select){
                case 1:
                    Find(); break;
                case 2:
                    Sort(); break;
                case 3:
                    edit(); break;
                case 4:
                    Huifu(); break;
                case 5:
                    Cpy(); break;
                case 6:
                    system("cls"); return ;
                default :
                	hhk(); system("cls"); break;
            }
        }
    }
    //显示图书信息管理菜单
    void display(void)
    {
        char str[3][20] = {"查找 请按 1","排序 请按 2","修改 请按 3"};
        int i,j;
        printf("\t   ************************************************************\n");
        printf("\t   *                                                          *\n");
        printf("\t   *      您可以进行以下操作:                                 *\n");
        printf("\t   *                                                          *\n");
        printf("\t   *      查找 请按 1                                         *\n");
        printf("\t   *                                                          *\n");
        printf("\t   *      排序 请按 2                                         *\n");
        printf("\t   *                                                          *\n");
        printf("\t   *      修改 请按 3                                         *\n");
        printf("\t   *                                                          *\n");
        printf("\t   *      恢复图书信息 请按 4                                 *\n");
        printf("\t   *                                                          *\n");
        printf("\t   *      备份图书信息 请按 5                                 *\n");
        printf("\t   *                                                          *\n");
        printf("\t   *      返回上一级菜单 请按 6                               *\n");
        printf("\t   *                                                          *\n");
        printf("\t   ************************************************************\n\n");
    }
    //打印开发人员信息
    void Intropeople(void)
    {
        printf("\t   ************************************************************\n");
        printf("\t   *                                                          *\n");
        printf("\t   *                      开发人员信息                        *\n");
        printf("\t   *                                                          *\n");
        printf("\t   *         计科二班 XXX                                    *\n");
        printf("\t   *                                                          *\n");
        printf("\t   *         计科二班 XXX                                   *\n");
        printf("\t   *                                                          *\n");
        printf("\t   *         计科二班 XXX                                   *\n");
        printf("\t   ************************************************************\n\n");
        system("PAUSE");
        system("cls");
    }
    
    void hhk(void)//打印操作错误
    {
    	printf("\n");
    	printf("\t\t\t  操作错误,请从新选择操作选项!!\n\n");
    	system("PAUSE");
    }
    
    //结束程序
    void over()
    {
        printf("\n\t\t\t29组图书管理系统祝您阅读愉快!!!\n");
    }
    
    //把图书信息加载到内存
    void load()
    {
        int i;
        freopen("缓存区.txt", "r", stdin);
        for(i = 0; i < num; i++){
            scanf("%d",&stu[i].ID);
            scanf("%s",stu[i].name);
            scanf("%lf",&stu[i].price);
            scanf("%s",stu[i].author);
            scanf("%d",&stu[i].quan);
            scanf("%s",stu[i].itd);
        }
    	freopen("CON", "r", stdin);
    }
    //将数据保存到磁盘
    void save()
    {
        int i;
        FILE *fp;
        fp = fopen("缓存区.txt", "w");
        for(i = 0; i < num; i++){
            fprintf(fp, "%d\n",stu[i].ID);
            fprintf(fp, "%s\n",stu[i].name);
            fprintf(fp, "%.2lf\n",stu[i].price);
            fprintf(fp, "%s\n",stu[i].author);
            fprintf(fp, "%d\n",stu[i].quan);
            fprintf(fp, "%s\n",stu[i].itd);
        }
        fclose(fp);
    }
    
    //输出修改菜单
    void PrinEdit()
    {
        printf("\t   ************************************************************\n");
        printf("\t   *                                                          *\n");
        printf("\t   *      您可以进行以下操作:                                 *\n");
        printf("\t   *                                                          *\n");
        printf("\t   *      添加 请按 1                                         *\n");
        printf("\t   *                                                          *\n");
        printf("\t   *      删除一本图书 请按 2                                 *\n");
        printf("\t   *                                                          *\n");
        printf("\t   *      删除全部图书 请按 3                                 *\n");
        printf("\t   *                                                          *\n");
        printf("\t   *      返回上一级菜单 请按 4                               *\n");
        printf("\t   *                                                          *\n");
        printf("\t   ************************************************************\n\n");
    }
    void add()//添加
    {
        FILE *fp;
        fp = fopen("缓存区.txt","a");
        int n,p,i;
        double q;
        char str[30],st[1000];
        printf("\t\t\t   亲,请输入你需要添加几项\n\n\t\t\t    ");
        oo = scanf("%d",&n);
        if(!oo){
            inwrong();
            return ;
        }
        for(i = num+1; i <= num+n; i++){
            fprintf(fp, "%d\n",i);
            stu[i-1].ID = i;
            printf("\t\t\t   请输入书名\n\n\t\t\t    ");
            scanf("%s",str);
            strcpy(stu[i-1].name, str);
            fprintf(fp, "%s\n",str);
            printf("\t\t\t   请输入价格\n\n\t\t\t    ");
            scanf("%lf",&q);
            stu[i-1].price = q;
            fprintf(fp, "%.2lf\n",q);
            printf("\t\t\t   请输入作者\n\n\t\t\t    ");
            scanf("%s",str);
            strcpy(stu[i-1].author, str);
            fprintf(fp, "%s\n",str);
            printf("\t\t\t   请输入该书的数量\n\n\t\t\t    ");
            scanf("%d",&p);
            stu[i-1].quan = p;
            fprintf(fp, "%d\n",p);
            printf("\t\t\t   请输入该书的简介\n\n\t\t\t    ");
            scanf("%s",st);
            strcpy(stu[i-1].itd, st);
    
            fprintf(fp, "%s\n",st);
        }
        num += n;
        fclose(fp);
        save();
        saveuu();
        system("PAUSE");
    	system("cls");
    }
    void beifen(void)
    {
        FILE *fp;
        if((fp = fopen("删除.txt", "r")) == NULL){
            printf("数据库加载失败,请重启本系统!\n");
            return ;
        }
        fscanf(fp, "%d",&num);
        fclose(fp);
    }
    void shan(void)
    {
        FILE *fp;
        if((fp = fopen("删除.txt", "w")) == NULL){
            printf("数据库加载失败,请重启本系统!\n");
            return ;
        }
        fprintf(fp, "%d\n", num);
        fclose(fp);
    }
    //删除所有信息
    void DeleteAll()
    {
        FILE *fp;
        if((fp = fopen("缓存区.txt", "w")) == NULL){
            printf("数据库加载失败,请重启本系统!\n");
            return ;
        }
        fprintf(fp, "0");
        printf("\t\t\t删除成功,若想恢复请恢复备份!!\n\t\t\t");
        fclose(fp);
        num = 0;
        saveuu();
        system("PAUSE");
        system("cls");
    }
    void DeleteRecord()//删除一条信息
    {
        int j,i,flag = 0;
        printf("\t\t\t   请输入书号\n\t\t\t    ");
        oo = scanf("%d",&j);
        if(!oo){
            inwrong();
            return ;
        }
        if(j == num){
        	num--;
        	save();
        	printf("\t\t\t   删除成功!\n\t\t\t   ");
        	system("PAUSE");
        	system("cls");
        	return ;
    	}
        for(i = 0 ; i < num-1; i++){
            if(stu[i].ID == j)
                flag = 1;
            if(flag){
                strcpy(stu[i].name, stu[i+1].name);
                stu[i].price = stu[i+1].price;
                strcpy(stu[i].name, stu[i+1].name);
                stu[i].quan = stu[i+1].quan;
                strcpy(stu[i].itd, stu[i+1].itd);
            }
        }
    	num--;
    	save();
    	saveuu();
    	printf("\t\t\t删除成功!\n");
    	system("PAUSE");
    	system("cls");
    }
    //修改
    void edit()
    {
        system("cls");
        load();
        int i,sele;
        while(1){
            PrinEdit();
            oo = scanf("%d",&sele);
            if(!oo){
            	inwrong();
            	continue;
        	}
            switch(sele){
                case 1:
                    add(); break;
                case 2:
                    DeleteRecord(); break;
                case 3:
                    DeleteAll(); break;
                case 4:
                    system("cls"); return ;
                default :
                	system("cls"); hhk(); break;
            }
        }
    }
    
    //输出查找菜单
    void FindEdit()
    {
        printf("\t   ************************************************************\n");
        printf("\t   *                                                          *\n");
        printf("\t   *      您可以进行以下操作:                                 *\n");
        printf("\t   *                                                          *\n");
        printf("\t   *      按书号查找 请按 1                                   *\n");
        printf("\t   *                                                          *\n");
        printf("\t   *      按书名查找 请按 2                                   *\n");
        printf("\t   *                                                          *\n");
        printf("\t   *      按作者查找 请按 3                                   *\n");
        printf("\t   *                                                          *\n");
        printf("\t   *      输出所有图书信息 请按 4                             *\n");
        printf("\t   *                                                          *\n");
        printf("\t   *      返回上一级菜单 请按 5                               *\n");
        printf("\t   *                                                          *\n");
        printf("\t   ************************************************************\n\n");
    }
    //按书号查找
    void FindByNum(void)
    {
        system("cls");
        if(num == 0){
            printf("\n\n\t\t\t数据库中暂没有图书信息,请添加图书信息\n\n\t\t\t   ");
            system("PAUSE");
            return ;
        }
        int i,sex;
        printf("\t\t\t   请输入要查找的书号:\n\n\t\t\t\t");
        oo = scanf("%d",&sex);
        if(!oo){
            inwrong();
            return ;
        }
        if(sex > num){
            printf("\t\t\t\t未找到该书!!\n\n\t\t\t   ");
            system("PAUSE");
            return ;
        }
        for(i = 0; i < num; i++){
            if(stu[i].ID == sex){
                PrintRecord(i);
                printf("\t\t\t   ");
                system("PAUSE");
                return;
            }
        }
    }
    //按书名查找
    void FindByName()
    {
        system("cls");
        if(num == 0){
            printf("\n\n\t\t\t数据库中暂没有图书信息,请添加图书信息\n\n\t\t\t   ");
            system("PAUSE");
            return ;
        }
        int i;
        char s[30];
        printf("\t\t\t   请输入要查找的书名:\n\n\t\t\t    ");
        scanf("%s",s);
        for(i = 0; i < num; i++){
            if(strcmp(stu[i].name, s) == 0){
                if(F == 1)
                    PrintRecord(i);
                else if(!F){
                    if(stu[i].quan == 0 && huan == 1)
                        F = 99998;
                    else if(stu[i].quan != 0 || huan == 0){
                        PrintRecord(i);
                        F = i;
                    }
                }
                printf("\t\t\t   ");
                system("PAUSE");
                return ;
            }
        }
        F = 99999;
        printf("\n\t\t\t   未找到该书!!\n");
        printf("\n\t\t\t   ");
        system("PAUSE");
    }
    //按作者查找
    void FindByAuthor()
    {
        system("cls");
        if(num == 0){
            printf("\n\n\t\t\t数据库中暂没有图书信息,请添加图书信息\n\n\t\t\t   ");
            system("PAUSE");
            return ;
        }
        int i;
        char s[30];
        printf("\t\t\t  请输入要查找的作者\n\n\t\t\t   ");
        scanf("%s",s);
        for(i = 0; i < num; i++){
            if(strcmp(stu[i].author, s) == 0){
                PrintRecord(i);
                printf("\t\t\t   ");
                system("PAUSE");
                return ;
            }
        }
        printf("\n\t\t\t\t未找到有关该作者的书!!\n\n\t\t\t   ");
        system("PAUSE");
    }
    //输出所有图书信息
    void output()
    {
        int i;
        if(num == 0){
            printf("\n\n\t\t\t数据库中暂没有图书信息,请添加图书信息\n\n\t\t\t   ");
            system("PAUSE");
            system("cls");
            return ;
        }
        for(i = 0; i < num; i++){
            PrintRecord(i);
        }
        printf("\t\t\t   ");
        system("PAUSE");
    }
    //查找
    void Find()
    {
        system("cls");
        int i,sclele;
        F = 1;
        while(1){
            FindEdit();
            oo = scanf("%d",&sclele);
            if(!oo){
            	inwrong();
            	continue;
        	}
            switch(sclele){
                case 1:
                    FindByNum(); break;
                case 2:
                    FindByName(); break;
                case 3:
                    FindByAuthor(); break;
                case 4:
                    output(); break;
                case 5:
                    system("cls"); return ;
                default :
                	system("cls"); hhk(); break;
            }
            system("cls");
        }
    }
    
    //排序
    void Sort()
    {
        system("cls");
        int sexh;
        while(1){
            system("cls");
            PrintSort();
            oo = scanf("%d",&sexh);
            if(!oo){
            	inwrong();
            	continue;
        	}
            switch(sexh){
                case 1:
                    SortByScore(); break;
                case 2:
                    AscendVyPick(); break;
                case 3:
                    DesendByPick(); break;
                case 4:
                     system("cls"); return ;
                default :
                	system("cls"); hhk(); break;
            }
        }
    }
    //输出排序菜单
    void PrintSort()
    {
        printf("\t   ************************************************************\n");
        printf("\t   *                                                          *\n");
        printf("\t   *      您可以进行以下操作:                                 *\n");
        printf("\t   *                                                          *\n");
        printf("\t   *      按书名首字母排序 请按 1                             *\n");
        printf("\t   *                                                          *\n");
        printf("\t   *      按单价升序排序 请按 2                               *\n");
        printf("\t   *                                                          *\n");
        printf("\t   *      按单价降序排序 请按 3                               *\n");
        printf("\t   *                                                          *\n");
        printf("\t   *      返回上一级菜单 请按 4                               *\n");
        printf("\t   *                                                          *\n");
        printf("\t   ************************************************************\n\n");
    }
    //按书名首字母排序判断
    int cmp1(library a, library b)
    {
        if(strcmp(a.name, b.name) == -1)
            return 1;
        else
            return 0;
    }
    //按单价升序排序判断
    int cmp2(library a, library b)
    {
        return a.price < b.price;
    }
    //按单价降序排序判断
    int cmp3(library a, library b)
    {
        return a.price > b.price;
    }
    //重新整理书号
    void IdArrange()
    {
        int i;
        for(i = 0; i < num; i++)
            stu[i].ID = i+1;
    }
    //按书名首字母排序
    void SortByScore()
    {
        int i;
        sort(stu, stu+num, cmp1);
        IdArrange();
        save();
        printf("\n\t\t\t\t排序完成!!\n\n\t\t\t   ");
        system("PAUSE");
    }
    //按单价升序排序
    void AscendVyPick()
    {
        int i;
        sort(stu, stu+num, cmp2);
        IdArrange();
        save();
        printf("\n\t\t\t\t排序完成!!\n\n\t\t\t   ");
        system("PAUSE");
    }
    //按单价降序排序
    void DesendByPick()
    {
        int i;
        sort(stu, stu+num, cmp3);
        IdArrange();
        save();
        printf("\n\t\t\t\t排序完成!!\n\n\t\t\t   ");
        system("PAUSE");
    }
    
    //打印借书菜单
    void PrintBorrow(void)
    {
        printf("\t   ************************************************************\n");
        printf("\t   *                                                          *\n");
        printf("\t   *      您可以进行以下操作:                                 *\n");
        printf("\t   *                                                          *\n");
        printf("\t   *      借书记录查询 请按 1                                 *\n");
        printf("\t   *                                                          *\n");
        printf("\t   *      图书借阅 请按 2                                     *\n");
        printf("\t   *                                                          *\n");
        printf("\t   *      图书归还 请按 3                                     *\n");
        printf("\t   *                                                          *\n");
        printf("\t   *      返回上一级菜单 请按 4                               *\n");
        printf("\t   *                                                          *\n");
        printf("\t   ************************************************************\n\n");
    }
    //将用户借书记录加载到磁盘
    void saveBorrow(L head)
    {
        int i;
        L p = head->Next;
    	FILE *fp;
    	fp = fopen("借书记录.txt", "w");
    	while(p){
            fprintf(fp, "%s\n", p->users);
            fprintf(fp, "%d\n", p->sexes);
            for(i = 0; i < p->sexes; i++){
                fprintf(fp, "%s\n", p->book[i].Name);
                fprintf(fp, "%s\n", p->book[i].time);
            }
            fprintf(fp, "%d\n", p->r);
            p = p->Next;
    	}
    	fclose(fp);
    }
    //将借书记录加载到内存
    void loadBorrow(L head)
    {
    	int i,j;
    	L p, rear = head;
    	freopen("借书记录.txt", "r", stdin);
    	for(i = 0; i < k; i++){
    		p = new node;
    		scanf("%s",p->users);
    		scanf("%d",&p->sexes);
    		for(j = 0; j < p->sexes; j++){
    			scanf("%s",p->book[j].Name);
    			scanf("%s",p->book[j].time);
    		}
    		scanf("%d\n",&p->r);
    		rear->Next = p;
    		rear = p;
    	}
    	rear->Next = NULL;
    	freopen("CON", "r", stdin);
    	if(hnj != NULL){
    		rear->Next = kl;
            rear = kl;
    	}
    	rear->Next = NULL;
    	saveBorrow(head);
    }
    //用户搜索
    L LookUser(L head)
    {
        L p = head;
        while(p){
            p = p->Next;
            if(strcmp(p->users, strr) == 0)
                break;
        }
        return p;
    }
    //借书记录
    void BorrowRecord(L q)
    {
    	int i;
    	system("cls");
    	printf("\t\t借书的数量:%d\n\n",q->sexes);
    	for(i = 0; i < q->sexes; i++){
    		printf("\t\t%d.%s\n",i+1, q->book[i].Name);
    		printf("\t\t  借书时间:%s\n\n",q->book[i].time);
    	}
    	printf("\t\t信誉值:%d\n\n",q->r);
    	printf("\t\t\t   ");
    	system("PAUSE");
    	system("cls");
    }
    
    //借书
    void BorrowBook(L q, L y)
    {
        int o,i;
        char str[30];
        huan = 1;
        system("cls");
        if(q->r < 60){
            printf("\n\n");
            printf("\t\t\t信誉值低于60,不能进行借书操作!!\n\n\t\t\t   ");
            system("PAUSE");
            system("cls");
            return ;
        }
        F = 0;
        FindByName();
        if(F == 99998){
            printf("\n");
            printf("\t\t\tSORRY,该书已没有库存!!\n\n\t\t\t   ");
            system("PAUSE");
            system("cls");
            F = 1;
            return ;
        }
        else if(F == 99999){
            system("cls");
            return ;
        }
        strcpy(q->book[q->sexes].Name, stu[F].name);
        stu[F].quan--;
        printf("\n\t\t请输入借书时间(格式为year/month/day):\n\n\t\t\t ");
        scanf("%s",str);
        strcpy(q->book[q->sexes].time, str);
        q->sexes++;
        F = 1;
        save();
        saveBorrow(y);
        printf("\n\t\t\t\t借书成功!!\n\n\t\t\t   ");
        system("PAUSE");
        system("cls");
    }
    //还书
    void SendBook(L q, L y)
    {
        system("cls");
        int i,kk=0,flag = 1;
        char st[30];
        F = huan = 0;
        if(q->sexes == 0){
            printf("\n\t\t\t  您还没有借书哦!!\n\n\t\t\t   ");
            system("PAUSE");
            system("cls");
            return ;
        }
        FindByName();
        if(F == 99999){
            system("cls");
            return ;
        }
        for(i = 0; i < q->sexes; i++)
            if(strcmp(q->book[i].Name, stu[F].name) == 0)
                flag = 0;
        if(flag){
            system("cls");
            printf("\n\t\t\t  您还没有借该书哦!!\n\n\t\t\t   ");
            system("PAUSE");
            system("cls");
            return ;
        }
        for(i = 0; i < q->sexes; i++){
            if(strcmp(q->book[i].Name, stu[F].name) == 0 && kk == 0){
            	strcpy(st, q->book[i].time);
                if(i == q->sexes-1)
                    break;
                kk = 1;
            }
            if(kk){
                strcpy(q->book[i].Name, q->book[i+1].Name);
                strcpy(q->book[i].time, q->book[i+1].time);
            }
        }
        q->sexes--;
        stu[F].quan++;
        save();
        for(i = 1; i <= 16; i++)
        	printf(" ");
        printf("\t\t\t借书时间:%s\n\n",st);
        printf("\t\t   请管理员判断是否逾期还书或图书有破损\n\n\t\t\t     ");
        system("PAUSE");
        printf("\n\t\t   按时还书 请按 1\n\n");
        printf("\t\t   逾期还书但不超过一个工作日 请按 2\n\n");
        printf("\t\t   还书时间超过一个工作日 请按 3\n\n");
        printf("\t\t   图书有破损 请按 4\n\n\t\t    ");
        scanf("%d",&kk);
    	if(kk == 1)
            printf("\n\t\t\t\t感谢您的使用!!\n\n");
    	else if(kk == 2){
    		q->r -= 5;
    		if(q->r < 60)
    			printf("由于您的不良行为较多,信誉值已不足60,本年度将不能在本系统借书!!\n\n");
    		else
    			printf("请保持良好的借书行为,信誉不足将无法在本系统借书!!\n\n");
    	}
    	else if(kk == 3){
    		q->r = 0;
    		printf("由于您的还书时间超过规定时间一个工作日,所以本年度将不能在本系统借书!!\n\n");
    	}
    	else if(kk == 4){
    		q->r -= 10;
    		printf("\t\t\t由于图书有破损,请原价赔偿!!\n\n");
    		for(i = 0; i < num; i++)
    		    if(strcmp(stu[i].name, stu[F].name) == 0){
    		    	printf("\t\t\t\t原价:%.2lf\n\n",stu[i].price);
    		    	break;
    			}
            if(q->r < 60)
    			printf("由于您的不良行为较多,信誉值已不足60,本年度将不能在本系统借书!!\n\n");
    		else
    			printf("请保持良好的借书行为,信誉不足将无法在本系统借书!!\n\n");
    	}
    	saveBorrow(y);
    	printf("\t\t\t   ");
        system("PAUSE");
    	system("cls");
    }
    //图书借还系统
    void Borrow(void)
    {
    	system("cls");
    	int shl,i;
    	L head = new node;
    	loadBorrow(head);
    	pre = LookUser(head);
    	while(1){
    		PrintBorrow();
    		oo = scanf("%d", &shl);
    		if(!oo){
            	inwrong();
            	continue;
        	}
    		switch(shl){
    			case 1:
    				BorrowRecord(pre); break;
    			case 2:
    				BorrowBook(pre, head); break;
    			case 3:
    				SendBook(pre, head); break;
    			case 4:
    				system("cls"); return ;
    			default :
    				system("cls"); hhk(); break;
    		}
    	}
    }
    
    

     

     

     

     

     

    展开全文
  • 运行成功,比较基础,登录后,对文件进行创建,删除,打开,关闭,读取,写入,保存,打印当前文件功能
  • C语言学生管理系统

    2018-09-07 13:19:20
    系统C语言实现,使用了文件操作,适合C语言课程设计
  • c语言成绩管理系统

    2015-04-19 17:41:12
    初学者学生c语言成绩管理系统,适合初学者,文件较小,功能比较的全面还可以适当的扩展。纯手动制作。
  • C语言超市管理系统

    2015-04-16 09:44:14
    C语言课程设计 超市管理系统 涉及文件操作
  • C语言学生管理系统可存入文件 printf("1----------学生录入\n"); printf("2----------学生浏览\n"); printf("3----------学生查询\n"); printf("4----------学生删除\n"); printf("5----------成绩统计\n"); ...
  • c语言图书管理系统

    2014-01-07 15:33:57
    c语言实现图书管理系统 并实现文件的存储到相应的文件
  • C语言成绩管理系统

    2014-03-03 10:20:47
    C语言 成绩管理 文件存储功能 有界面 文件为txt格式
  • C语言员工管理系统

    2018-11-13 19:44:02
    使用C语言文件进行操作,实现管理员和员工的登录、员工添加、删除、修改、查询,以及员工签到的功能。
  • 代码实现了建议的文件系统管理,创建文件,编写文件,阅读文件,删除文件…… 供大家参考,最好能留下评论或意见
  • C语言文件流的饭卡管理系统

    千次阅读 2020-12-05 18:01:04
    C语言文件流的饭卡管理系统饭卡管理系统的结构大致流程图具体代码 饭卡管理系统的结构 饭卡管理系统是由管理页面,学生饭卡信息,基本操作这几个功能模块组成。 (1)管理页面模块显示主界面选项,可以实现对基本操作...

    C语言文件流的饭卡管理系统

    饭卡管理系统的结构

    饭卡管理系统是由管理页面,学生饭卡信息,基本操作这几个功能模块组成。
    (1)管理页面模块显示主界面选项,可以实现对基本操作的查看和对基本操作的选择的功能。
    (2)学生饭卡信息模块包括卡号,姓名,状态,余额的查看,可以实现对饭卡信息查看的功能。
    (3)基本操作模块包括办卡,买饭,充钱,注销饭卡,挂失饭卡,退出程序等选项,可以对学生饭卡进行基本的操作,保证正常的运行。

    大致流程图

    在这里插入图片描述

    具体代码

    运行时要在同目录下创建xxx.txt文件,根据以下代码中txt名字创建
    if((fp=fopen(“xxx.txt”,“r”))==NULL)// 打开文件并且让fp指向 文件
    .

    // An highlighted block
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    # define max 2000
    struct fanka	
    {
        char number[100];//学号定义为字符串
        char name[100];//名字定义为字符串
        char zhuangtai;//饭卡状态0  为正常  1为挂失饭卡
        float yuan;//饭卡余额为浮点类型
    } fanka [max];//定义结构体最大2000人
    int biaoji=0;//标记建立饭卡的数量
    
    
    void baocun()//函数
    {
        FILE *fp;//打开文件保存信息所用的指针
    
        int i;
        fp= fopen("xxx.txt", "w");//建立一个名字为:xxx.txt的文件
        for(i=0; i<biaoji; i++)//for循环进行储存信息
        {
            fprintf(fp,"%d  %s  %s  %d   %.2f\n",biaoji,fanka[i].number,fanka[i].name,fanka[i].zhuangtai,fanka[i].yuan);//储存标记 学号 姓名 饭卡状态 饭卡余额  
        }
        fclose(fp);//关闭文件
    }
    
    void banka()//函数
    {
        char a;
        do
        {
            fflush(stdin); //使输入内容不影响以后的程序
            printf("\n请输入卡号:");
            gets( fanka[biaoji].number);//获取卡号
            fflush(stdin); 
            printf("\n请输入姓名:");
            gets(fanka[biaoji].name);//获得名字
            fflush(stdin);
            fanka[biaoji].zhuangtai=0;//建立饭卡初状态为0表示可以使用
            fflush(stdin);
            printf("\n请输入饭卡余额:");
            scanf("%f",&fanka[biaoji].yuan);//获得饭卡费
            fflush(stdin);
            printf("  建立完成  ");
            printf("是否继续建立新饭卡?(y/n)?");
            a=getchar();
            biaoji++;
        }
        while((a=='y')&&(biaoji<=max));//do  while循环
    }
    void xianshi()//函数
    {
        int j;
        char x;
        do
        {
            printf("\t卡号\t姓名\t状态\t余额\n");
            for(j=0; j<biaoji; j++)//循环,显示出所建立饭卡的各个信息
                printf("\t %s\t %s\t %d\t %6.2f\n", fanka[j].number, fanka[j].name, fanka[j].zhuangtai, fanka[j].yuan);
            fflush(stdin);
            printf("请输入回车以返回:");
            x=getchar();
        }
        while(x=='n');
    }
    
    void maifan()//函数
    {
        int i;
        float m;
        char a;
        char num[20];
        do
        {
            system("cls");
            fflush(stdin);
            printf("\n请输入饭卡号:");
            gets(num);
            fflush(stdin);
            printf("\n请输入饭费:");
            scanf("%f",&m);
            if(m>20)
                printf("\n学校没这么贵的饭!");//若一次性消费大于20则会提醒,防止多扣多刷
            else if(m<=0)
                printf("\n请正确输入饭费!\n");
            else
            {
                for(i=0; i<biaoji; i++)
                    if(strcmp(num,fanka[i].number)==0)//字符串比较寻找饭卡
                        break;
                if(i==biaoji)
                    printf("没有找到该用户\n");
                else if(fanka[i].zhuangtai==1)
                    printf("本卡已冻结\n");
                else if(fanka[i].yuan<3)//小于3元则提醒充卡费
                    printf("金额不够,请续钱\n");
                else
                {
                    printf("\n消费前:%5.2f\n",fanka[i].yuan);
                    fanka[i].yuan=fanka[i].yuan-m;//实现饭卡费的扣除
                    printf("\n消费后:%5.2f\n",fanka[i].yuan);
                }
            }
            printf("\n是否继续买饭?\n请输入y或n:");
            fflush(stdin);
            a=getchar();
        }
        while(a=='y');//do  while循环
        return 0;
    }
    
    void chongqian()
    {
        int i;
        float m;
        char num[10];
        char a;
        do
        {
            system("cls");
            fflush(stdin);
            printf("\n请输入饭卡号:");
            gets(num);
            fflush(stdin);
            printf("\n您想冲多少钱?");
            scanf("%f",&m);
            if(m<=0)
                printf("\n你家钱有负数???");
            else
            {
                for(i=0; i<biaoji; i++)
                    if(strcmp(num,fanka[i].number)==0)//字符串比较寻找饭卡
                        break;
                if(i==biaoji)
                    printf("没这个人");
                else
                {
                    printf("\n原卡钱:%5.2f\n",fanka[i].yuan);
                    fanka[i].yuan=fanka[i].yuan+m; //实现饭卡的充钱
                    printf("\n现卡钱:%5.2f\n",fanka[i].yuan);
    
                }
            }
            printf("\n是否继续冲钱?\n请输入y或n");
            fflush(stdin);
            a=getchar();
        }
        while (a=='y');
    
    }
    void zhuxiao()
    {
        char number[20],c;
        int a,b,i;
        do
        {
            fflush(stdin);
            printf("请输入要删除的卡号!");
            gets(number);
            for(a=0; a<biaoji; a++)
            {
                if(strcmp(number,fanka[a].number)==0)
                    break;
            }
            for(b=a; b<biaoji; b++)
                fanka[b]=fanka[b+1];
            if(a>biaoji)
                printf("没这个人");
            else
            {
                biaoji--;
                printf("剩余这几个人:\n");
                for(i=0; i<biaoji; i++)
                    printf("%s  %s\n",fanka[i].number,fanka[i].name);
            }
            fflush(stdin);
            printf("接着删?(y/n)");
            c=getchar();
        }
        while(c=='y');
    }//实现饭卡的删除(注销)
    void guashi()
    {
        char temp[20];
        int b,c;
        fflush(stdin);
        printf("请输入卡号:");
        gets(temp);
        for(c=0; c<biaoji; c++)
        {
            if(strcmp(temp,fanka[c].number)==0)//比较数组中的学号字符串信息是否有一致的
                break;
        }
        fflush(stdin);
        printf("\n请选择功能:1.挂失  2.解挂(1 or 2)?");
        scanf("%d",&b);
        if(b==1)
        {
            fanka[c].zhuangtai=1;
            printf("挂失成功!\n");
        }
        if(b==2)
        {
            fanka[c].zhuangtai=0;//通过改变状态0或爱着1 来实现饭卡挂失与解挂
            printf("解挂成功!");
    
        }
        xianshi();//调用显示函数来显示还剩余的饭卡数量
    }
    
    
    int main()
    {
        int xuanze;
    
    
            int i=0;
    
    	FILE *fp;
    	if((fp=fopen("xxx.txt","r"))==NULL)// 打开文件并且让fp指向 文件
    	{
    		printf("Can not open file\n");
    		exit(1);
    	}
    
    
    	while(!feof(fp))  //读取一组数据后指针指向下一组数据,并且判断是否指向最后一行
    	{
    		fscanf(fp,"%d %s %s %d %f\n",&biaoji,&fanka[i].number,&fanka[i].name,&fanka[i].zhuangtai,&fanka[i].yuan);//分别读取txt文档中的 标记,学号,姓名,状态,余额信息并存入数组
    		i++;
    	}
    fclose(fp);//关闭文件
    do
        { system("cls");
            printf("\t\t***********饭卡管理系统************\n");
            printf("\t\t*     0.显示学生饭卡信息..........*\n");
            printf("\t\t*     1.办卡......................*\n");
            printf("\t\t*     2.买饭......................*\n");
            printf("\t\t*     3.充钱......................*\n");
            printf("\t\t*     4.注销饭卡..................*\n");
            printf("\t\t*     5.挂失饭卡..................*\n");
            printf("\t\t*     6.退出程序..................*\n");
            printf("\t\t***********************************\n");//显示主菜单,供用户选择
            fflush(stdin);
            printf("\t\t  请输入选项:");
            scanf("%d",&xuanze);
            switch(xuanze)
            {
    
            case 0:
                xianshi();
                break;
            case 1:
                banka();
                break;
            case 2:
                maifan();
                break;
            case 3:
                chongqian();
                break;
            case 4:
                zhuxiao();
                break;
            case 5:
                guashi();
                break;
            case 6:
                baocun();
                break;
    
            }//通过switch函数来选择需要调用的函数
        }
        while (xuanze!=6);
    
        return 0;
    }
    
    
    
    展开全文
  • C语言 学生管理系统

    2015-11-20 17:28:36
    自己当时学C语言时编写学生管理系统,系统环境为linux,主要由两个链表组成(学生链表和老师链表),信息可以保存至文件,并且可以从文件加载上次保存的信息。
  • 【版权声明:尊重原创,...这一节我们来看一下在后台如何使用C语言实现文件上传这一功能。首先创建一个html文档来上传文件,然后使用wireshark抓取数据包来分析一下上传文件文件内容如何解析。html文档如下:/p>...
  • C语言员工管理系统

    2019-06-23 18:29:48
    文件是假技术po主闲暇用纯C语言编写的一款员工管理系统,希望可以帮助到大家!
  • c语言编写的学生管理系统,有代码和对应的数据,以及可执行文件,适合作为c语言小型练习的参考,设计c语言中的各类知识。
  • C语言 图书管理系统

    2013-06-24 20:33:09
    C语言 图书管理系统 1) 实现查询和显示功能:①按书名查询 ②按作者名查询 ③显示全部。将满足查询条件的整条记录显示在屏幕上。 2) 实现排序功能:①按种类排序 ②按出版社排序。将排序后的结果显示在屏幕上。...
  • #c语言学生管理系统 C语言学生管理系统 开发环境 VS2012 (vs2012 dev测试 vc++6.0都可以运行) 1.使用链表移动来完成, 2.数据可以进行存盘保存到本地, 3.从本地文件里读出学生的成绩 4.该程序完成增删改查,...
  • c语言车票管理系统

    2019-03-22 19:22:12
    (1) 只能使用C语言,源程序要有适当的注释,使程序容易阅读 (2) 至少采用文本菜单界面(如果能采用图形菜单界面更好) (3) 写出课程设计报告,具体要求见相关说明文档 功能要求: 一车站每天有n个发车班次,每...
  • C语言学员管理系统

    2011-12-01 17:54:19
    文件是关于C语言学员管理系统的制作程序,其中包括了验证登陆,循环录入学生信息,同时还包括显示所有学员信息并可对信息进行删除,查找,插入,修改,按各种要求排序等功能;并对各种输入进行了条件判断。
  • c语言 成绩管理系统

    2010-09-13 12:10:58
    c语言 成绩管理系统程序,源代码,报告 功能需求: 学生成绩管理系统是对学生基本信息及成绩的管理。该系统主要用于对学生的学号,姓名等自然信息以及各项学科成绩进行增加,删除,修改,查询及保存到文件等操作。...
  • c语言管理系统

    2018-03-08 20:26:08
    通过设计一个停车场管理系统,进一步消化和巩固已学过的C 语言程序设 计基础理论,学习和实践程序设计的各种技能,利用C 语言来设计各种应用程序和管理系统,为社会提供各种现代化的管理工具,同时也掌握与数组有关...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,677
精华内容 1,470
关键字:

c语言文件管理系统

c语言 订阅