基于文本界面的客户信息管理软件

it2024-01-02  80

1.项目展示

2.项目代码

#include <stdio.h> #include <string.h> //定义结构体数据类型 struct Customer{ int id;//编号 int age;//年龄 char name[10]; //名字 char gender; //'f'女 'm'男 char phone[16]; //电话号码 char email[20];//邮箱 }; int loop=1;//控制是否退出主菜单的变量 char key; int customerNum=1;//表示当前有多少个客户 char choice=' ';//表示用户选择的是y/n //客户结构体数组 struct Customer customers[100];//最多有100个客户,超过一百个可以扩展 //显示一个Customer变量的信息 //接受结构体指针,提高效率 void getCustomerInfo(struct Customer *customer){ printf("\n%d\t%s\t%c\t%d\t%s\t%s",(*customer).id,(*customer).name,(*customer).gender, (*customer).age,(*customer).phone,(*customer).email); } //根据输入的id,返回index,如果没有,就返回-1 int findIndex(int id){ int index=-1; int i; for(i=0;i<customerNum;i++){ if(customers[i].id==id){//找到Id index=i; } } return index; } //返回int,如果是1就说明删除成功 //返回是0,表示删除失败 int del(int id){//接收的是要删除的客户id int i; int index=findIndex(id); if(index==-1){//说明不存在该ID客户 return 0;//表示删除失败 } else{//说明存在,就要删除,删除的本质就是将编号为id的客户移除 //1、customers从index+1这个位置开始整体前移 for(i=index+1;i<customerNum;i++){ customers[i-1]=customers[i]; } //2、customerNum-1 customerNum--; return 1; } } //显示客户删除界面,然后调用 /* ---------------------删除客户--------------------- 请选择待删除客户编号(-1退出):1 确认是否删除(Y/N):y ---------------------删除完成--------------------- */ void delView(){ int id=0; char choice=' '; printf("\n ---------------------删除客户---------------------"); printf("\n请选择待删除客户编号(-1退出):"); scanf("%d",&id); getchar(); if(id==-1){ printf("\n您放弃了删除~~"); return; }else{ printf("\n您确定要删除吗?(Y/N):"); scanf("%c",&choice); getchar(); if(choice=='Y'||choice=='y'){ if(del(id)==0){ printf("\n删除失败该id不存在"); }else{ printf("\n---------------------删除完成---------------------"); } } } } //添加客户 void add(){ customers[customerNum].id= customerNum+1; printf("\n\n---------------------添加客户---------------------"); printf("\n姓名:"); scanf("%s",customers[customerNum].name); getchar(); printf("\n性别:"); scanf("%c",&(customers[customerNum].gender)); getchar(); printf("\n年龄:"); scanf("%d",&(customers[customerNum].age)); getchar(); printf("\n电话:"); scanf("%s",customers[customerNum].phone); getchar(); printf("\n邮箱:"); scanf("%s",customers[customerNum].email); getchar(); printf("\n---------------------添加完成---------------------"); customerNum++;//自增 } //显示客户信息 void lisrCustomers(){ int i=0; printf("\n---------------------------客户列表---------------------------"); printf("\n编号\t姓名\t性别\t年龄\t电话\t邮箱"); for(i=0;i<customerNum;i++){//表示客户的编号 getCustomerInfo(&customers[i]); } } //显示主菜单 void mainMenu() { do{ printf("\n\n-----------------客户信息管理软件-----------------"); printf("\n 1 添 加 客 户"); printf("\n 2 修 改 客 户"); printf("\n 3 删 除 客 户"); printf("\n 4 客 户 列 表"); printf("\n 5 退 出"); printf("\n 请选择(1-5):"); scanf("%c",&key); getchar();//过滤回车 switch(key){ case '1': add(); break; case '2': printf("修 改 客 户"); break; case '3': delView(); break; case '4': lisrCustomers(); break; case '5': do{ printf("\n确认是否退出(Y/N):"); scanf("%c",&choice); getchar(); } while((choice!='y'||choice!='Y')&&(choice!='n'||choice!='N'));//如果输入的不是Y也不N if(choice!='y'||choice!='Y'){ loop=0; }//如果输入的是n,则不做处理 break; default : printf("\n您的输入有误"); } }while(loop); printf("\n您退出了客户管理系统"); getchar(); } void main(){ //为了测试显示信息,我们可以先初始化一个客户,后面我们是通过界面添加 customers[0].id=1; customers[0].age=10; strcpy(customers[0].email,"yy@dijia.com"); customers[0].gender='f'; strcpy(customers[0].name,"小星星"); strcpy(customers[0].phone,"123545"); mainMenu();//调用菜单,显示界面 }

 

最新回复(0)