简单的成绩系统以及通讯录系统

成绩系统:

#include <stdio.h>
#include <stdlib.h>
struct student
{
 char name[10];
 int id;
 int math;
 int china;
};
typedef struct student STU;
void show()
{
 system("clear");
 printf("************************************\n\n");
 printf("*****WELCOME TO TEACHER SYSTEM******\n\n");
 printf("************************************\n\n");
 sleep(2);
 system("clear");
}
void PrintInfo()
{
 printf("*************************************\n\n");
 printf("**1.InserInfo          2.SearchInfo**\n");
 printf("**3.SortInfo           4.ChangeInfo**\n");
 printf("**5.quit               6.ShowInfo  **\n");
 printf("*************************************\n\n");
 printf("Please input your choice :\n");
}
void InsertInfo(STU *s[])
{
 int i = 0;
 printf("Please Input Information :\n");
 while(1)
 {
  s[i] = (STU *)malloc(sizeof(STU));
  if (NULL == s[i])
  {
   return;
  }
  scanf("%s", s[i]->name);
  if (strcmp(s[i]->name, "end") == 0)
  {
   break;
  }
  scanf("%d%d%d", &s[i]->id, &s[i]->math, &s[i]->china);
  i++;
 }
}

void SearchInfo(STU *s[])
{ 
 int i = 0;
 char target[10] = {0};
 printf("Please input name you will find :\n");
 scanf("%s", target);
 while(s[i] != NULL)
 {
  if(strcmp(s[i]->name, target) == 0)
  {
   printf("**************\n");
   printf("name : %s\n", s[i]->name);
   printf("id   : %d\n", s[i]->id);
   printf("math : %d\n", s[i]->math);
   printf("china: %d\n", s[i]->china);
   printf("**************\n");
   return;
  }
  i++;
 }
 printf("**************\n");
 printf("Not Fount!!\n");
 printf("**************\n");

}
void SortInfo()
{

}
void ChangeInfo(STU *s[])
{
 char target[10] = {0};
 int i= 0;
 printf("Please Input The Name You Want Change :\n");
 scanf("%s", target);
 printf("Input New Infor :\n");

 while(s[i] != NULL)
 {
  if(strcmp(s[i]->name, target) == 0)
  {
   scanf("%s", s[i]->name);
   scanf("%d", &s[i]->id);
   scanf("%d", &s[i]->math);
   scanf("%d", &s[i]->china);
   printf("Change Success!\n");
   return;
  }
  i++;
 }

}
int main()
{
 STU *stu[100] = {0};
 char choice[10] = {0};
 show();
 while (1)
 {
  PrintInfo();
  scanf("%s", choice);
  switch (atoi(&choice[0]))
  {
   case 1:
    InsertInfo(stu);
    break;
   case 2:
    SearchInfo(stu);
    break;
   case 3:
    SortInfo();
    break;
   case 4:
    ChangeInfo(stu);
    break;
   case 5:
    exit(1);
    break;
   default:
    printf("Unkown Input!\n");
    break;
  }
 } 
 return 0;
}

通讯录系统头文件:

#ifndef _NODE_H_
#define _NODE_H_


struct node 
{
    char id[100] ;
    char name[10];
    char address[10];
    char tel[100];
    char mob[100];
    struct node *next;
};
typedef struct node Node;
typedef Node *STU;

#endif

子函数:

#include <stdio.h>
#include "student.h"
#include <stdlib.h>
#include <string.h>





void ListInit(STU *L)
{
    (*L) = (STU)malloc(sizeof(Node));
    (*L)->next = NULL;
}

int AddInfo(STU *L)
{   
    STU p = *L;
    STU s;

    printf("Please input name,id,mob,tel,address:\n");

    s = (STU)malloc(sizeof(Node));
    scanf("%s%s%s%s%s",s->name,s->id,s->mob,s->tel,s->address);

    if(strlen(s->mob) != 11)
    {
        printf("无效手机号码!\n");
        return 0;
    }
    if(strlen(s->tel) != 8)
    {
        printf("无效家庭电话号码!\n");
        return 0;
    }
    while(p->next)
    {
        if(strcmp((p->next)->mob,s->mob) == 0 || strcmp((p->next)->tel,s->tel) == 0)
        {
            printf("已存在相同号码!\n");
            return 0;
        }
        p = p->next;
    }

    p=*L;
    if(p->next ==NULL)
    {
        s->next = p->next;
        p->next = s;
    }
    else
    {
        while(p->next)
        {
            if(strcmp((p->next)->name,s->name)>0)
            {           
                s->next = p->next;
                p->next = s;
                break;
            }   
            p = p->next;
        }
        if(p->next ==NULL)
        {
            s->next = p->next;
            p->next = s;
        }
    }
}


int ShowInfo(STU l)
{
    if(l->next == NULL)
    {
        printf("It is NULL!\n");
    }
    else
    {
        STU p = l->next;

        while(p)
        {
            printf("Name: %s  Id: %s  Mobile: %s  Tele: %s  Address: %s\n",p->name,p->id,p->mob,p->tel,p->address);
            p=p->next;
        }
    }
}



int ChangeInfo(STU *l)
{
    STU p = (*l)->next;
    STU t = *l;
    STU s ;
    char n[10];
    printf("Please input the name you want to change:\n");
    scanf("%s",n);

    while(p)
    {
        s = (STU)malloc(sizeof(Node));
        if(strcmp(p->name,n) == 0)
        {
            printf("Please input the new information:\n");
            scanf("%s%s%s%s%s",s->name,s->id,s->mob,s->tel,s->address);

            if(strlen(s->mob) != 11)
            {
                printf("无效手机号码!\n");
                return 0;
            }
            if(strlen(s->tel) != 8)
            {
                printf("无效家庭电话号码!\n");
                return 0;
            }
            while(t->next)
            {
                if(strcmp((t->next)->mob,s->mob) == 0|| strcmp((t->next)->tel,s->tel) == 0)
                {
                    printf("已存在相同号码!\n");
                    return 0;
                }
                t = t->next;
            }
            strcpy(p->name , s->name);
            strcpy(p->id , s->id);
            strcpy(p->mob , s->mob);
            strcpy(p->tel, s->tel);
            strcpy(p->address , s->address);
            free(s);

            printf("Change Success!\n");
            break;
        }
        else
        {
            p = p->next;
        }
    }
    if(p == NULL)
    {
        printf("Unknown person!\n");
    }
}



int DeleteInfo(STU l)
{
    STU p = l;
    STU tmp;
    char n[10];
    printf("Please input the name you want to delete:\n");
    scanf("%s",n);

    while(p->next)
    {
        if(strcmp((p->next)->name,n) == 0)
        {
            tmp = p->next;
            p->next = tmp->next;
            free(tmp);
            printf("Delete Success!\n");
            break;
        }
        else
        {
            p = p->next;
        }
    }
}




int SearchInfo(STU l)
{
    STU p = l->next;
    char n[10];
    printf("Please input the name you want to search:\n");
    scanf("%s",n);

    while(p)
    {
        if(strcmp(p->name,n) == 0)
        {
            printf("ID: %s Tel: %s Mob: %s Address: %s\n",p->id,p->tel,p->mob,p->address);
            break;
        }
        else
        {
            p =p->next;
        }

    }
    if(p == NULL)
    {
        printf("Unknown name!\n");
    }
}

主函数:

#include <stdio.h>
#include "student.h"
#include <stdlib.h>

void show()
{
    printf("***********************************\n\n");
    printf("*******1.Add         2.Show********\n\n");
    printf("*******3.Change      4.Delete******\n\n");
    printf("*******5.Search      6.Quit********\n\n");
    printf("***********************************\n\n");
    printf("*******Please input your choice****\n\n");
}


int main()
{

    int choice;
    STU stu;

    ListInit(&stu);

    while(1)
    {
        show();
        scanf("%d",&choice);
        switch (choice)
        {
            case 1:
                 AddInfo(&stu);
                 break;
            case 2:
                 ShowInfo(stu);
                 break;
            case 3:     
                 ChangeInfo(&stu);
                 break;
            case 4:
                 DeleteInfo(stu);
                 break;
            case 5:
                 SearchInfo(stu);  
                 break;
            case 6:
                 exit(0);   
                 break; 
            default:          
                 printf("Unknown Input!\n");                

        }
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值