⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 programe.c

📁 这是我2005年寒假开学时的C语言程序实践项目,其中包括学生管理系统,员工管理系统,通讯录,图书馆管理系统,机场售票系统五个C程序合成在一起.
💻 C
📖 第 1 页 / 共 4 页
字号:
            {
                printf("thank you !!!\n");
                outbilla();
            }
            else printf("%s",c);
    }
}


/*段伟*/
struct person
{   char name[8];
    char tel[15];
    char addr[50];
};
char filename[20];
FILE *fp;
void creat1();
void output();
void search1();
void append();
void modify();
void delete();

Duanwei()
{
    int m;
    textcolor(6);
    cprintf("*******************************************************************************");
    printf("\n");
    textcolor(10);
    cprintf("***********************欢迎进入此通讯簿管理系统********************************");
    printf("\n");
    textcolor(6);
    cprintf("*******************************************************************************");
    printf("\n");
    printf("\n");
    creat1();
    while(1)
    {
        clrscr();
        textcolor(6);
        cprintf("*******************************************************************************");
        printf("\n");
        textcolor(10);
        cprintf("***********************欢迎进入此通讯簿管理系统********************************");
        printf("\n");
        textcolor(6);
        cprintf("*******************************************************************************");
        printf("\n");
        printf("\n");
        cprintf("\n添加,请按1");
        printf("\n");
        textcolor(1);
        cprintf("\n查找,请按2");
        printf("\n");
        textcolor(2);
        cprintf("\n修改,请按3");
        printf("\n");
        textcolor(3);
        cprintf("\n删除,请按4");
        printf("\n");
        textcolor(4);
        cprintf("\n输出,请按5");
        printf("\n");
        textcolor(5);
        cprintf("\n退出,请按0\n");
        printf("\n");
        scanf("%d",&m);
        if(m>=0&&m<=5)
        {
            switch(m)
            {
                case 1: append(); break;
                case 2: search1(); break;
                case 3: modify(); break;
                case 4: delete(); break;
                case 5: output(); break;
                case 0: main();
            }
            cprintf("\n\n操作完毕,请再次选择!");
            printf("\n");
            getch();
            clrscr();
        }
        else cprintf("\n\n选择错误,请再次选择!");
        printf("\n");
    }
}

void creat1()
{
    struct person one;
    long s1;
    textcolor(12);
    cprintf("\n  请输入通讯簿名:");
    scanf("%s",filename);
    if((fp=fopen(filename,"w"))==NULL)
    {
        cprintf("\n不能建立通讯簿!");
        main();
    }
    fprintf(fp,"   %-10s%-20s%-50s\n","姓名","电话号码","住址");
    textcolor(13);
    cprintf("\n请输入姓名、电话号码及住址(以0结束)");
    printf("\n");
    scanf("%s",one.name);
    while(strcmp(one.name,"0"))
    {
        scanf("%s%s",one.tel,one.addr);
        fprintf(fp,"%-10s%-20s%-50s\n",one.name,one.tel,one.addr);
        scanf("%s",one.name);
    }
    fclose(fp);
}

void output()
{
    struct person one;
    if((fp=fopen(filename,"r"))==NULL)
    {
        printf("\n不能打开通讯簿!");
        main();
    }
    clrscr();
    textcolor(5);
    cprintf("******************************************************************************");
    printf("\n") ;
    textcolor(4);
    cprintf("*******************************通讯簿*****************************************");
    printf("\n");
    textcolor(5);
    cprintf("******************************************************************************");
    printf("\n") ;
    while(!feof(fp))
    {
        fscanf(fp,"%s%s%s\n",one.name,one.tel,one.addr);
        cprintf("%-10s%-20s%-50s",one.name,one.tel,one.addr);
    }
    fclose(fp);
}

void append()
{
    struct person one;
    if((fp=fopen(filename,"a"))==NULL)
    {
        printf("\n不能打开通讯簿!");
        main();
    }
    printf("\n请输入添加的姓名、电话号码及住址\n");
    scanf("%s%s%s",one.name,one.tel,one.addr);
    fprintf(fp,"%-10s%-20s%-50s\n",one.name,one.tel,one.addr);
    fclose(fp);
}

void search1()
{
    int k=0;
    char namekey[8];
    struct person one;
    printf("\n请输入姓名:");
    scanf("%s",namekey);
    if((fp=fopen(filename,"rb"))==NULL)
    {
        printf("\n不能打开通讯簿!");
        main();
    }
    while(!feof(fp))
    {
        fscanf(fp,"%s%s%s\n",one.name,one.tel,one.addr);
        if(!strcmp(namekey,one.name))
        {
            textcolor(6);
            cprintf("\n\n已查到,记录为:");
            cprintf("%10s%10s%10s\n",one.name,one.tel,one.addr);
            k=1;
        }
    }
    if(!k)cprintf("\n\n对不起,通讯簿中没有此人的记录。");
    fclose(fp);
}

void modify()
{
    int m,k=0;
    long offset;
    char namekey[8];
    struct person one;
    cprintf("\n请输入姓名:");
    scanf("%s",namekey);
    if((fp=fopen(filename,"r+"))==NULL)
    {
        cprintf("\n不能打开通讯簿!");
        main();
    }
    while(!feof(fp))
    {
        offset=ftell(fp);
        fscanf(fp,"%s%s%s\n",one.name,one.tel,one.addr);
        if(!strcmp(namekey,one.name))
        {
            k=1;
            break;
        }
    }
    if(k)
    {
        cprintf("\n已查到,记录为:");
        cprintf("\n%-10s%-18s%-50s",one.name,one.tel,one.addr);
        printf("\n");
        textcolor(5);
        cprintf("\n请输入新姓名、电话号码及住址:");
        printf("\n");
        scanf("%s%s%s",one.name,one.tel,one.addr);
        fseek(fp,offset,SEEK_SET);
        printf("%ld",ftell(fp));
        fprintf(fp,"%-10s%-20s%-50s\n",one.name,one.tel,one.addr);
    }
    else printf("\n对不起,通讯簿中没有此人的记录。");
    fclose(fp);
}

void delete()
{
    int m,k=0,flag;
    long offset1,offset2;
    char namekey[8], valid[4];
    struct person one;
    printf("\n请输入姓名:");
    scanf("%s",namekey);
    if((fp=fopen(filename,"r+"))==NULL)
    {
        printf("\n不能打开通讯簿!");
        main();
    }
    while(!feof(fp))
    {
        offset1=ftell(fp);
        fscanf(fp,"%s%s%s\n",one.name,one.tel,one.addr);
        if(!strcmp(namekey,one.name))
        {
            k=1;
            break;
        }
    }
    if(k)
    {
        cprintf("\n已查到,记录为");
        cprintf("\n%-10s%-18s%-50s",one.name,one.tel,one.addr);
        textcolor(1);
        cprintf("\n确实要删除,按1;不删除,按0:");
        scanf("%d",&m);
        if(m)
        {
            fseek(fp,offset1,SEEK_SET);
            fprintf(fp,"%-10s%-20s%-50s\n","","","");
        }
    }
    else cprintf("\n对不起,通讯簿中没有此人的记录。");
    fclose(fp);
}


/*侯树超*/
struct date1
{   int year;
    int month;
    int day;
};
struct address
{   char province[10];
    char city[10];
    char street[20]; 
};
struct WORKER 
{   int num;
    char name[20];
    char sex[10];
    char status[10];
    char position[20];
    char rofs[10];
    struct address addr;
    long tel;
    struct date1 birthday;
    struct date1 workday;
    struct WORKER *next;
};

void in(struct WORKER *q)
{
    printf("input the worker's message:\n");
    printf("num:");
    scanf("%d",&q->num);
    if(q->num==0)
    goto end;
    printf("name:");
    scanf("%s",q->name);
    printf("sex:");
    scanf("%s",q->sex);
    printf("position:");
    scanf("%s",q->position);
    printf("status:");
    scanf("%s",q->status);
    printf("rofs:");
    scanf("%s",q->rofs);
    printf("province:");
    scanf("%s",q->addr.province);
    printf("city:");
    scanf("%s",q->addr.city);
    printf("street:");
    scanf("%s",q->addr.street);
    printf("tel:");
    scanf("%ld",&q->tel);
    printf("birthday_year,birthday_month,birthday_day,workday_year,workday_month,workday_day\n");
    scanf("%d,%d,%d,%d,%d,%d",&q->birthday.year,&q->birthday.month,&q->birthday.day,&q->workday.year,&q->workday.month,&q->workday.day);
    end:printf(":\n");
}

struct WORKER *creat(void)
{
    struct WORKER *head;
    struct WORKER *p1,*p2;
    int n=0;
    p1=p2=(struct WORKER *)malloc(LEN);
    in(p1);   
    head=NULL;
    do
    {
        n=n+1;
        if(n==1) head=p1;
        else p2->next=p1;
        p2=p1;
        if(p1->num!=0)
          {
              p1=(struct WORKER *)malloc(LEN);
              in(p1);
          }
        else break;
    }while(p1->num!=0);
    p2->next=NULL;
    return(head);
}

void insert(struct WORKER *head)
{
    struct WORKER *p0,*p1,*p2;
    p1=head;
    p2=head->next;
    p0=(struct WORKER *)malloc(LEN);
    in(p0);
    if(head==NULL)
        {
            head=p0;
            p0->next=NULL;
        }
    else
    {
         p1->next=p0;
         p0->next=p2;
    }
}

void list(struct WORKER  *head)
{
    struct WORKER *p3;
    p3=head;
    if(p3==NULL)
    {
        printf("There is no profile in the list!\nPress any key to return\n");
        getch();
        return;
    }
    if(head!=NULL)
    {   do
        {
            printf("NO.%d workers' profile=>\n",p3->num);
            printf("Name:%s\n",p3->name);
            printf("Sex:%s\n",p3->sex);
            printf("Status:%s\n",p3->status);
            printf("Birthday:%d,%d,%d\n",p3->birthday.year,p3->birthday.month,p3->birthday.day);
            printf("Rofs:%s\n",p3->rofs);
            printf("Workday:%d,%d,%d\n",p3->workday.year,p3->workday.month,p3->workday.day);
            printf("Position:%s\n",p3->position);
            printf("Address:%s,%s,%s\n",p3->addr.province,p3->addr.city,p3->addr.street);
            printf("Tel:%ld\n",p3->tel);
            p3=p3->next;
            getch();
        }while(p3!=NULL);
    }
}

void print(struct WORKER *p4)
{
    if(p4==NULL)
    {
        printf("no this message!");
        return;
    }
    printf("NO.%d workers' profile=>\n",p4->num);
    printf("Name:%s\n",p4->name);
    printf("Sex:%s\n",p4->sex);
    printf("Status:%s\n",p4->status);
    printf("Birthday:%d,%d,%d\n",p4->birthday.year,p4->birthday.month,p4->birthday.day);
    printf("Rofs:%s\n",p4->rofs);
    printf("Workday:%d,%d,%d\n",p4->workday.year,p4->workday.month,p4->workday.day);
    printf("Position:%s\n",p4->position);
    printf("Address:%s,%s,%s\n",p4->addr.province,p4->addr.city,p4->addr.street);
    printf("Tel:%ld\n",p4->tel);
}

void search(struct WORKER *head1)
{
    char temp[20];
    struct WORKER *p;
    p=head1;
    printf("input the name of the worker\n");
    scanf("%s",temp);
    do
    {
        if(strcmp(temp,p->name)==0)
            {
                print(p);
                break;
            }
        else p=p->next;
    }while(p!=NULL);
}

void change(struct WORKER * head2)
{
    char temp[20];
    int k;
    struct WORKER *p;
    p=head2;
    printf("input the name of the worker:");
    scanf("%s",temp);
    do
    {
        if(strcmp(temp,p->name)==0) break;
        else p=p->next;
    }while(p!=NULL);
    do
    {
        printf("1.num-2.mame-3.sex-4.birthday-5.rofs-6.workday-7.position-8.addr-9.tel-10.status-0.end\n");
        scanf("%d",&k);
        switch(k)
        {
            case 1:
                printf("Enter the num to change:\n");
                scanf("%d",&p->num);
                break;
            case 2:
                printf("Enter the name to change:\n");
                scanf("%s",p->name);
                break;
            case 3:
                printf("Enter the sex to change:\n");
                scanf("%s",&p->sex);
                break;
            case 4:
                printf("Enter the birthday(year,month,day) to change:\n");
                scanf("%d,%d,%d",&p->birthday.year,&p->birthday.month,&p->birthday.day);
                break;
            case 5:
                printf("Enter the rofs to change:\n");
                scanf("%s",&p->rofs);
                break;
            case 6:
                printf("Enter the workerday(year,month,day) to change:\n");
                scanf("%d,%d,%d",&p->workday.year,&p->workday.month,&p->workday.day);
                break;
            case 7:
                printf("Enter the position to change:\n");
                scanf("%s",p->position);
                break;
            case 8:
                printf("Enter the province to change:\n");
                scanf("%s",p->addr.province);
                printf("Enter the city to change:\n");
                scanf("%s",p->addr.city);
                printf("Enter the street to change:\n");
                scanf("%s",p->addr.street);
                break;
            case 9:
                printf("Enter the tel to change:\n");
                scanf("%ld",&p->tel);
                break;
            case 10:
                printf("Enter the status to change:\n");
                scanf("%s",&p->status);
                break;
        }
 
    }while(k!=0);
}

void del(struct WORKER *head3)
{
    int i;
    struct  WORKER *d1,*d2;
    printf("input the num of the worker:");
    scanf("%d",&i);
    if(head3==NULL)
        {
            printf("no list!");
            goto end;
        }
    d1=head3;
    while(i!=d1->num&&d1->next!=NULL)
    {
        d2=d1;
        d1=d1->next;
    }
    if(i==d1->num)
    {
        if(d1==head3) head3=d1->next;
        else d2->next=d1->next;
        printf("delete num:%d\n",i);
    }
    else printf("not found:\n");
    end: printf("end:");
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -