成绩系统:
#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;
}