• 当前位置:首页>>C语言>>C语言编程实例>>通过键盘操作的,想进行c图形化编程的可能有参考价值
  • 通过键盘操作的,想进行c图形化编程的可能有参考价值
  • /*通过键盘操作的,想进行c图形化编程的可能有参考价值*/
    #include<stdio.h>
    #include<string.h>
    #include<conio.h>
    #include<stdlib.h>
    #include<ctype.h>
    #define back textbackground
    struct student           /*定义学生类型,用于存放借出的书籍*/
    {
    int carnum;
    char lendbook[10];
    }student[1000];
    struct employ            /*定义职工类型*/
    {
    int employnum;
    char employname[15];
    int employage;
    char employsex[2];
    char employleve[10];
    long int employtage;
    }employ[50];
    struct book              /*定义书的类型*/
    {
    int booknum;
    char bookname[10];
    char bookcreat[10];
    int turefalse;           /*用于借书和还书模块判断一本书是否借出的条件*/
    }book[1000];
    struct car               /*借书卡的数据类型*/
    {
    int carnum;
    char studentname[10];
    int studentclass;
    }car[100];
    winset(int txtcolor,int backcolor,int choice)
    {
    char a1[]="查询图书",a2[]="借阅图书",a3[]="管理员",a4[]="还书",a5[]="退出";
    window(33,5+choice,53,5+choice);
    back(backcolor);
    textcolor(txtcolor);
    clrscr();
    switch(choice)
    {
    case 1: cprintf("%s",a1); break;
    case 2: cprintf("%s",a2); break;
    case 3: cprintf("%s",a3); break;
    case 4: cprintf("%s",a4); break;
    case 5: cprintf("%s",a5); break;
    }
    }
    winset3(int txtcolor,int backcolor,int choice)
    {
    char d1[]="增加卡号",d2[]="删除卡号",d3[]="卡号统计",d4[]="借书统计",d5[]="返回";
    window(33,5+choice,53,5+choice);
    back(backcolor);
    textcolor(txtcolor);
    clrscr();
    switch(choice)
    {
    case 1: cprintf("%s",d1); break;
    case 2: cprintf("%s",d2); break;
    case 3: cprintf("%s",d3); break;
    case 4: cprintf("%s",d4); break;
    case 5: cprintf("%s",d5); break;
    }
    }
    winset2(int txtcolor,int backcolor,int choice)
    {

    char c1[]="增加职工",c2[]="修改职工资料",c3[]="删除职工",c4[]="职工统计",c5[]="返回";
    window(33,5+choice,53,5+choice);
    back(backcolor);
    textcolor(txtcolor);
    clrscr();
    switch(choice)
    {
    case 1: cprintf("%s",c1); break;
    case 2: cprintf("%s",c2); break;
    case 3: cprintf("%s",c3); break;
    case 4: cprintf("%s",c4); break;
    case 5: cprintf("%s",c5); break;
    }
    }
    winset1(int txtcolor,int backcolor,int choice)
    {
    char b1[]="增加图书",b2[]="修改图书",b3[]="删除图书",b4[]="书籍统计",b5[]="职工管理系统",b6[]="学生管理系统",b7[]="返回";
    window(33,5+choice,53,5+choice);
    back(backcolor);
    textcolor(txtcolor);
    clrscr();
    switch(choice)
    {
    case 1: cprintf("%s",b1); break;
    case 2: cprintf("%s",b2); break;
    case 3: cprintf("%s",b3); break;
    case 4: cprintf("%s",b4); break;
    case 5: cprintf("%s",b5); break;
    case 6: cprintf("%s",b6); break;
    case 7: cprintf("%s",b7); break;
    }
    }
    lendcount()             /*其他的自己看就懂了,不行也可以qq联系:258032791,人妖也!愿意交爱好编程的交友,毕业没时间了,找工作忙,有其他的模块没写,发现什么问题自己改,*/
    {
    FILE *fp;
    int i,n=0;
    fp=fopen("record.txt","r");
    clrview();
    for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++)
    {
    window(1,15+i,79,15+i);
    back(9);
    textcolor(3);
    printf("卡号:%d 借出的书籍:%s ",student[i].carnum,student[i].lendbook);
    n=n+1;
    }
    fclose(fp);
    printf("目前共有%d本书借出\n",n);
    printf("按任意键\n");
    getch();
    stuview();
    }
    huanbook()               /*还书函数*/
    {
    FILE *fp,*fp2;           /*定义两个文件指针,fp2用于修改数据时设立临时文件用,防止数据遭破坏*/
    int i,n;
    int carnum;
    char lendbook[10];
    clrview();
    window(1,15,79,15);
    back(9);
    textcolor(3);
    printf("请你输入你的卡号\n");
    scanf("%d",&carnum);
    fp=fopen("car.txt","r");       /*读取卡号记录*/
    for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++)   /*for循环判断卡号是否存在*/
    {
    if(car[i].carnum==carnum)      /*卡号存在,进入下一循环*/
    {
    n=i;
    fclose(fp);
    printf("请输入你要还的书的名字\n");
    scanf("%s",lendbook);
    fp=fopen("record.txt","r");
    for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++)   /*判断是否借阅了输入的书*/
    {
    if(strcmp(student[i].lendbook,lendbook)==0)      /*借阅了该书,进入下一循环,否则出错显示*/
    {
    fclose(fp);
    fp=fopen("record.txt","r");
    fp2=fopen("bookl.txt","w");
    for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++)
    {
    if(strcmp(student[i].lendbook,lendbook)==0)
    {
    continue;                                       /*删除还掉的书的借书记录*/
    }
    fwrite(&student[i],sizeof(struct student),1,fp2);  /*写入原来没还的书的记录*/
    }
    fclose(fp);
    fclose(fp2);
    fp=fopen("record.txt","w");
    fp2=fopen("bookl.txt","r");
    for(i=0;fread(&student[i],sizeof(struct student),1,fp2)!=0;i++)
    {
    fwrite(&student[i],sizeof(struct student),1,fp);     /*将借书记录信息写回*/
    }
    fclose(fp);
    fclose(fp2);
    fopen("bookl.txt","w");                    /*清临时文件的记录*/
    fclose(fp2);
    fp=fopen("book.txt","r");
    fp2=fopen("bookl.txt","w");
    for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++)    /*将书的记录写入临时文件,防止因为修改信息破坏以前的记录*/
    {
    if(i==n)
    {
    book[i].turefalse=1;
    fwrite(&book[i],sizeof(struct book),1,fp2);          /*将还的书的原来状态设为无人借阅的*/                     
    continue;
    }
    fwrite(&book[i],sizeof(struct book),1,fp2);
    }
    fclose(fp);
    fclose(fp2);
    fp=fopen("book.txt","w");
    fp2=fopen("bookl.txt","r");
    for(i=0;fread(&book[i],sizeof(struct book),1,fp2)!=0;i++)
    {
    fwrite(&book[i],sizeof(struct book),1,fp);            /*将临时文件写回*/
    }
    fclose(fp);
    fclose(fp2);
    fopen("bookl.txt","w");              /*清临时文件*/
    fclose(fp2);
    printf("还书完毕,按任意键返回\n");
    getch();
    firstview();
    }
    }
    printf("你没有借这样的书,不要耍我,任意键返回\n");    /*出错提示*/
    fclose(fp);
    getch();
    firstview();
    }
    }
    printf("系统没这样的卡,和管理员联系,按任意键返回\n");   /*出错提示*/
    fclose(fp);
    getch();
    firstview();
    }
    lendbook()
    {
    FILE *fp,*fp2;
    int i,n;
    int carnum;
    clrview();
    window(1,15,79,15);
    back(9);
    textcolor(3);
    printf("请你输入你的卡号\n");
    scanf("%d",&carnum);
    fp=fopen("car.txt","r");
    for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++)
    {
    if(car[i].carnum==carnum)
    {
    n=i;
    fclose(fp);
    printf("请输入你要借阅的书的名字\n");
    scanf("%s",student[n].lendbook);
    fp=fopen("book.txt","r");
    for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++)
    {
    if(strcmp(book[i].bookname,student[n].lendbook)==0)
    {
    if(book[i].turefalse==0) {printf("对不起,此书有人借出,请借其他书\n");fclose(fp);getch();firstview();}
    else
    fclose(fp);
    fp