//清屏 螢屏居中 功能板塊 姓氏
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<windows.h>
#define N 10
int T=0,a=0,q=1,m;//t為洗掉的人數 ,a為序號
int flag=0;
struct Person{
char number[20];//學號
char name[20];//姓名
char mail[20];//電子郵件
char address[20];//地址
char tel[15];//聯系電話
}student[N];
int main()
{
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
void first(void);
void input(int );
void show(int );
void del(int );
void search(int );
void update(int );
void add(int );
void screen(int );
int i;
if(q==1)
{
q=q-1;
first();
}
SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY |COMMON_LVB_GRID_HORIZONTAL| FOREGROUND_RED|FOREGROUND_BLUE);
printf("\t\t\t******************************************************************\n");
printf("\t\t\t*********************歡迎使用通訊錄管理系統***********************\n");
printf("\t\t\t*******Welcome to use the student status management system********\n");
printf("\t\t\t******************************************************************\n");
do
{
SetConsoleTextAttribute(handle, COMMON_LVB_GRID_HORIZONTAL|FOREGROUND_BLUE);
printf("\t\t\t\t*******************主選單*********************\t\t\t\t\t\t\t\n");
printf("\t\t\t\t**********************************************\t\t\t\t\t\t\t\n");
SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED);
printf("\t\t\t\t******\t\t");
SetConsoleTextAttribute(handle, FOREGROUND_GREEN);
printf("0. 輸入通信錄: ");
SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED);
printf("\t\t******\t\t\t\t\t\t\t\n");
printf("\t\t\t\t******\t\t");
SetConsoleTextAttribute(handle, FOREGROUND_GREEN);
printf("1. 顯示通信錄: ");
SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED);
printf("\t\t******\t\t\t\t\t\t\t\n");
printf("\t\t\t\t******\t\t");
SetConsoleTextAttribute(handle, FOREGROUND_GREEN);
printf("2. 洗掉通信錄: ");
SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED);
printf("\t\t******\t\t\t\t\t\t\t\n");
printf("\t\t\t\t******\t\t");
SetConsoleTextAttribute(handle, FOREGROUND_GREEN);
printf("3. 查找通信錄: ");
SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED);
printf("\t\t******\t\t\t\t\t\t\t\n");
printf("\t\t\t\t******\t\t");
SetConsoleTextAttribute(handle, FOREGROUND_GREEN);
printf("4. 修改通信錄: ");
SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED);
printf("\t\t******\t\t\t\t\t\t\t\n");
printf("\t\t\t\t******\t\t");
SetConsoleTextAttribute(handle, FOREGROUND_GREEN);
printf("5. 添加通信錄:");
SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED);
printf("\t\t******\t\t\t\t\t\t\t\n");
printf("\t\t\t\t******\t\t");
SetConsoleTextAttribute(handle, FOREGROUND_GREEN);
printf("6. 篩選通信錄: ");
SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED);
printf("\t\t******\t\t\t\t\t\t\t\n");
printf("\t\t\t\t******\t\t");
SetConsoleTextAttribute(handle, FOREGROUND_GREEN);
printf("7. 退出通信錄: ");
SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED);
printf("\t\t******\t\t\t\t\t\t\t\n");
SetConsoleTextAttribute(handle,COMMON_LVB_UNDERSCORE| FOREGROUND_INTENSITY | FOREGROUND_RED);
printf("\t\t\t\t******\t\t");
SetConsoleTextAttribute(handle, FOREGROUND_GREEN);
printf("請輸入選項0-7 ");
SetConsoleTextAttribute(handle, COMMON_LVB_UNDERSCORE|FOREGROUND_INTENSITY | FOREGROUND_RED);
printf("\t\t******\t\t\t\t\t\t\t\n");
SetConsoleTextAttribute(handle, COMMON_LVB_UNDERSCORE|FOREGROUND_INTENSITY | FOREGROUND_BLUE);
printf("\t\t\t\t***********************************************\n");
SetConsoleTextAttribute(handle,FOREGROUND_GREEN| FOREGROUND_RED );
scanf("%d",&i);//接受用戶選擇
switch(i)
{
case 0: input(a);a++;
break;
case 1: show(a);
break;
case 2: del(a);
break;
case 3: search(a);
break;
case 4: update(a);
break;
case 5: add(a);a++;
break;
case 6: screen(a);
break;
case 7: {
printf("感謝使用!!!");exit (0);}
default :printf("錯誤選擇!請重選\n");break;
}
}
while(i!=7);
return 0;
}
//0.撰寫一個函式錄入學生學號、姓名、個人郵箱、地址、聯系電話,
void input(int a)
{
int i;
printf("輸入學號:\n");
scanf("%s",student[a].number);//錄入學號查詢
for(i=0;i<a-T;i++)
{
if(strcmp(student[i].number,student[a].number)==0)
{
printf("此學號以存在通信錄中,請勿重復輸入!\n");
main();
}
}
printf("輸入姓名:\n");
scanf("%s",student[a].name);
printf("輸入個人郵箱:\n");
scanf("%s",student[a].mail);
printf("輸入地址:\n");
scanf("%s",student[a].address);
printf("輸入聯系電話:\n");
scanf("%s",student[a].tel);
printf("錄入成功!!!\n");
printf("系統3秒后回傳主選單......\n");
sleep(3);
system("cls");
}
//1.撰寫一個函式顯示所有人員的資訊,
void show(int a)
{
system("cls");
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
int i;
if(a-T == 0)
{SetConsoleTextAttribute(handle, FOREGROUND_GREEN);
printf("\t\t\t\t通信錄中無顯示物件\n");
printf("10秒后將自動跳轉回主選單......\n");
sleep(5);
system("cls");
main();
}
else
{
SetConsoleTextAttribute(handle, FOREGROUND_RED| FOREGROUND_GREEN);
printf("\t學號\t\t姓名\t\t個人郵箱\t\t地址\t\t聯系電話\t\n");
SetConsoleTextAttribute(handle,FOREGROUND_GREEN);
for(i=0;i<a-T;i++)
printf("%13s %13s %13s %26s %13s\n",student[i].number,student[i].name,student[i].mail,student[i].address,student[i].tel);
}
}
//2. 撰寫一個函式通過輸入姓名或學號查找到要洗掉的人員資訊,然后可以進行洗掉,
//回顯當前通訊錄資訊,
void del(int a)
{
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
int i,j,o,u;
char s[20],x[20],c[20];
if(a-T==0)
{
printf("通信錄無人,無法操作!\n");
printf("系統10秒后默認回傳主選單......\n");
sleep(5);
system("cls");
main();
}
else
{
printf("按*選擇一鍵洗掉全部,按任意鍵洗掉選定學生:\n");
scanf("%s",s);
if(strcmp(s,"*") == 0 )
{
printf("按*繼續一鍵洗掉全部,按任意鍵回傳主選單:\a\n");
scanf("%s",c);
if(strcmp(c,"*") == 0 )
{
for(u=0,o=a;u<a-T,o<2*(a-T);u++,o++)
{
SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN);
strcpy(student[u].name,student[o].name);
strcpy(student[u].number,student[o].number);
strcpy(student[u].mail,student[o].mail);
strcpy(student[u].address,student[o].address);
strcpy(student[u].tel,student[o].tel);
}
T=a;
SetConsoleTextAttribute(handle,FOREGROUND_GREEN);
printf("操作成功!!!\n");
sleep(2);
}
else
main();
}
else
{
char x[20];
printf("請輸入要洗掉學生的姓名或學號:\n");
scanf("%s",x);
for(i=0;i<a;i++)
{
if((strcmp(x,student[i].name)==0)||(strcmp(x,student[i].number)==0))
{
for(j=i;j<a-T;j++)
{
SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN);
strcpy(student[j].name,student[j+1].name);
strcpy(student[j].number,student[j+1].number);
strcpy(student[j].mail,student[j+1].mail);
strcpy(student[j].address,student[j+1].address);
strcpy(student[j].tel,student[j+1].tel);
}
T++;
break;
}
}
system("cls");
printf("操作成功!!!\n");
}
}
}
//3. 撰寫一個函式通過輸入姓名或學號查找學生資訊,
void search(int a)
{
int i;
char x[20],s[20],b[20];
if(a-T== 0 )
{
printf("通訊錄無人,無法查詢\n");
printf("10秒后系統默認回傳主選單\n");
sleep(3);
system("cls");
main();
}
else
{
printf("請輸入要查詢的姓名或學號:\n");
scanf("%s",x);
for(i=0;i<a-T;i++)
{
if((strcmp(x,student[i].name)==0)||(strcmp(x,student[i].number)==0))
{
printf("學號:%s\n",student[i].number);
printf("姓名:%s\n",student[i].name);
printf("個人郵箱:%s\n",student[i].mail);
printf("地址:%s\n",student[i].address);
printf("聯系電話:%s\n",student[i].tel);
printf("按*鍵回傳主選單,按任意鍵繼續進行查詢:\n");
scanf("%s",s);
if((strcmp(s,"*")==0))
{system("cls");break;}
else
search(a);
}
else if(i == a-T-i)
{
printf("沒有查詢到此聯系人!!\n");
printf("按任意鍵重新查詢輸入,輸入*回傳主選單:\n");
scanf("%s",b);
if(strcmp(b,"*") == 0)
{
system("cls");
main();
}
else
search (a);
}
}
}
}
//4. 撰寫一個函式通過輸入姓名或學號查找到要修改的人員資訊,然后依次進行資訊
//修改,
void update(int a)
{
int i,j;
char x[20],s[20];
printf("請輸入要修改學生的姓名或學號:\n");
if(a== 0 )
{
printf("通信錄無人,無法操作!!!\n");
printf("系統將在1秒后自動回傳主選單......\n");
sleep(5);
system("cls");
main();
}
else
{
scanf("%s",x);
for(i=0;i<a-T;i++)
{
if((strcmp(x,student[i].name)==0)||(strcmp(x,student[i].number)==0))
{
for(j=i;j<a-T;j++)
{
printf("請輸入要修改人員的資訊:\n");
printf("請輸入名字:\n");
scanf("%s",student[j].name);
printf("請輸入郵箱:\n");
scanf("%s",student[j].mail);
printf("請輸入地址:\n");
scanf("%s",student[j].address);
printf("請輸入電話:\n");
scanf("%s",student[j].tel);
break;
}
printf("修改成功!\n");
printf("繼續修改按任意鍵,回傳主選單輸入*:\n");
scanf("%s",s);
if(strcmp(s,"*") == 0)
{
system("cls");
main();
}
else
{
system("cls");
update(a);
}
}
else
{
printf("該串列無此人\n");
printf("請重新輸入:\n");
update (a);
}
main();
}
}
}
//5. 撰寫一個函式添加人員資訊,
void add(int a)
{
int z,i;
char s[20];
printf("請輸入要添加的人員資訊:\n");
if(a-T==0)
{
printf("現無聯系人,請添加首位人員資訊\n");
printf("添加的學號為:\n");
scanf("%s",student[0].number);
printf("添加的姓名為:\n");
scanf("%s",student[0].name);
printf("添加的地址為:\n");
scanf("%s",student[0].address);
printf("添加的郵箱為:\n");
scanf("%s",student[0].mail);
printf("添加的電話為:\n");
scanf("%s",student[0].tel);
printf("按任意鍵繼續輸入,輸入*回傳主選單\n");
scanf("%s",s);
if(strcmp(s,"*") == 0)
{
printf("10秒后將回傳主選單......\n");
sleep(3);
system("cls");
}
else//
add(a);
}
else
{
printf("序數為0到%d,將該人員序數插至:\n",a);
scanf("%d",&z);
for(i=a-1;i>=z;i--)
{
strcpy(student[i+1].address,student[i].address);
strcpy(student[i+1].mail,student[i].mail);
strcpy(student[i+1].name,student[i].name);
strcpy(student[i+1].number,student[i].number);
strcpy(student[i+1].tel,student[i].tel);
}
printf("添加的學號為:\n");
scanf("%s",student[z].number);
printf("添加的姓名為:\n");
scanf("%s",student[z].name);
printf("添加的地址為:\n");
scanf("%s",student[z].address);
printf("添加的郵箱為:\n");
scanf("%s",student[z].mail);
printf("添加的電話為:\n");
scanf("%s",student[z].tel);
}
system("cls");
}
//篩選來自同一個地方或姓名的人
void screen(int a)
{
void screena(int a);
void screenb(int a);
int n,i;
char s[20];
if(a==0)
{
printf("通信錄中無資訊,無法篩選!\n");
printf("系統3秒后將自動回傳主選單......\n");
sleep(3);
system("cls");
main();
}
else
{
printf("請選擇根據地區還是姓名篩查\n");
printf("地區篩查為0,姓名篩查1\n");
scanf("%d",&n);
if(n==0)
screena (a);
else
screenb (a);
}
}
void screena(int a)//地區篩選
{
int n=0,i,flag=0;
char s[20],x[20];
printf("請輸入查詢的地址:\n");
scanf("%s",s);
for(i=0;i<a-T;i++)
{
if(strcmp(s,student[i].address) == 0)
{
printf("學號:%s\n",student[i].number);
printf("姓名:%s\n",student[i].name);
printf("個人郵箱:%s\n",student[i].mail);
printf("地址:%s\n",student[i].address);
printf("聯系電話:%s\n",student[i].tel);
printf("\n");
flag=1;n++;continue;
}
}
if(flag==1)
{
printf("在此地址下一共有%d人\n",n);
main();
}
else
{
printf("此地址無人\n");
printf("請按任意鍵重新輸入地址或按*鍵回傳回主選單:\n");
scanf("%s",x);
if(strcmp(x,"*") == 0)
{
sleep(1);system("cls");
main();
}
else
screena (a);
}
}
void screenb(int a)//姓名篩選
{
char s[20];
printf("您無此操作權限,請聯系管理員......\n");
printf("請選擇操作:任意鍵回傳上一步操作,輸入*鍵回傳主選單\n");
scanf("%s",s);
if(strcmp(s,"*")==0)
{
printf("3秒后回傳主選單......\n");
sleep(3);
system("cls");
main();
}
else
{
printf("\n");
screen (a);
}
}
void first(void)
{
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
int n=0;
printf("\n\n\n\n");
SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED);
printf("\t\t**********************************************************************************\n");
printf("\t\t**********************************************************************************\n");
printf("\t\t** **\n");
printf("\t\t** **\n");
printf("\t\t**");
SetConsoleTextAttribute(handle,FOREGROUND_RED|FOREGROUND_GREEN);
printf(" 歡迎使用通信錄管理系統 ");
SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED);
printf("**\n");
printf("\t\t** ");
SetConsoleTextAttribute(handle,FOREGROUND_RED|FOREGROUND_GREEN);
printf("\tWelcome to use the student status management system");
SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED);
printf(" **\n");
printf("\t\t** **\n");
printf("\t\t** ");
SetConsoleTextAttribute(handle,FOREGROUND_RED|FOREGROUND_GREEN);
printf("制作者:XXX XXX XX XXX XXX XXX XXX XXX");
SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED);
printf(" **\n");
printf("\t\t** **\n");
printf("\t\t** **\n");
printf("\t\t**********************************************************************************\n");
printf("\t\t**********************************************************************************\n");
sleep(5);
system("cls");
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/36269.html
標籤:C
上一篇:【網路編程01】socket的基礎知識-簡單網路通信程式
下一篇:【啟蒙】C筆記之初學階段(上篇)
