人事管理系统(C语言实现)
来源:互联网 发布:广工数据库试卷 编辑:程序博客网 时间:2024/04/20 15:49
#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct { char score; /*编号*/ char name[10]; /*姓名*/ char num[15]; /*号码*/ char email[20]; /*邮箱*/ char age[8]; /*年龄*/ char adds[20]; /*住址*/ }Person;Person pe[80];int menu_select() { char c; do{ system("cls"); printf("\t\t *****通讯录***** \n"); printf("\t\t┌───────┐\n"); printf("\t\t│ 1. 添加记录 │\n"); printf("\t\t│ 2. 显示记录 │\n"); printf("\t\t│ 3. 删除记录 │\n"); printf("\t\t│ 4. 查询记录 │\n"); printf("\t\t│ 5. 修改记录 │\n"); printf("\t\t│ 6. 保存记录 │\n"); printf("\t\t│ 0. 退出程序 │\n"); printf("\t\t└───────┘\n"); printf("\t\t请您选择(0-6):"); c=getchar(); }while(c<'0'||c>'6'); return(c-'0'); }int Input(Person per[],int n){int i=0;char sign,x[10]; while(sign!='n'&&sign!='N') { printf("\t编号:"); scanf("\t%d",&per[n+i].score); printf("\t姓名:"); scanf("\t%s",per[n+i].name); printf("\t年龄:"); scanf("\t%s",per[n+i].age); printf("\t电话号码:"); scanf("\t%s",per[n+i].num); printf("\t通讯住址:"); scanf("\t%s",per[n+i].adds); printf("\t电子邮箱:"); scanf("\t%s",per[n+i].email); gets(x); printf("\n\t是否继续添加?(Y/N)"); scanf("\t%c",&sign); i++; } return(n+i);}void Display(Person per[],int n){ int i; printf("----------------------------------------------------------------------\n");/*格式*/ printf("编号 姓名 年龄 电话号码 通讯地址 电子邮箱\n"); printf("----------------------------------------------------------------------\n"); for(i=1;i<n+1;i++) { printf("%-5d%-8s%-6s%-13s%-15s%-15s\n",per[i-1].score,per[i-1].name,per[i-1].age,per[i-1].num,per[i-1].adds,per[i-1].email); if(i>1&&i%10==0) { printf("\t-----------------------------------\n"); printf("\t"); system("pause"); printf("\t-----------------------------------\n"); } }printf("----------------------------------------------------------------------\n"); system("pause");}int Delete_a_record(Person per[],int n){ char s[20]; int i=0,j; printf("\t请输入想删除记录中的名字:"); scanf("%s",s); while(strcmp(per[i].name,s)!=0&&i<n) i++; if(i==n) { printf("\t通讯录中没有此人!\n"); return(n); } for(j=i;j<n-1;j++) { strcpy(per[j].num,per[j+1].num); strcpy(per[j].name,per[j+1].name); strcpy(per[j].age,per[j+1].age); strcpy(per[j].adds,per[j+1].adds); strcpy(per[j].email,per[j+1].email); per[j].score=per[j+1].score; } printf("\t\t\t已经成功删除!\n"); return(n-1);}void Query_a_record(Person per[],int n){ int m;printf("\t\n请选择查询方式:\n"); printf("\t┌──────┐\n"); printf("\t│1------姓名 │\n"); printf("\t│2------电话 │\n"); printf("\t│3------地址 │\n"); printf("\t│4------返回 │\n"); printf("\t└──────┘\n"); printf("请选择:"); scanf("%d",&m); while(m!=1&&m!=2&&m!=3&&m!=4) { printf("输入错误,请重新选择:"); scanf("%d",&m); } if(m==1) { char s[20]; int i=0; printf("\t请输入想查询的姓名:"); scanf("\t%s",s); while(strcmp(per[i].name,s)!=0&&i<n) i++; if(i==n) { printf("\t通讯录中没有此人!\n"); return; } printf("\t此人编号: %d\n",per[i].score); printf("\t此人年龄: %s\n",per[i].age); printf("\t电话号码: %s\n",per[i].num); printf("\t通讯地址: %s\n",per[i].adds); printf("\t电子邮箱: %s\n",per[i].email); }if(m==2) { char s[20]; int i=0;printf("\t请输入想查询的电话:"); scanf("\t%s",s);while(strcmp(per[i].num,s)!=0&&i<n) i++;if(i==n) { printf("\t通讯录中没有此人!\n"); return; } printf("\t此人编号: %d\n",per[i].score); printf("\t此人姓名: %s\n",per[i].name); printf("\t此人年龄: %s\n",per[i].age); printf("\t通讯地址: %s\n",per[i].adds); printf("\t电子邮箱: %s\n",per[i].email); } if(m==3) { char s[20]; int i=0; printf("\t请输入想查询的地址:"); scanf("\t%s",s); while(strcmp(per[i].adds,s)!=0&&i<n) i++; if(i==n) { printf("\t通讯录中没有此人!\n"); return; } printf("\t此人编号: %d\n",per[i].score); printf("\t此人姓名: %s\n",per[i].name); printf("\t此人年龄: %s\n",per[i].age); printf("\t电话号码: %s\n",per[i].num); printf("\t电子邮箱: %s\n",per[i].email); }}void Change(Person per[],int n){ char s[20]; int i=0; printf("\t请输入想修改的记录中的名字:"); scanf("%s",s); while(strcmp(per[i].name,s)!=0&&i<n) i++; if(i==n) { printf("\t通讯录中没有此人!\n"); return; } printf("\t编号:"); scanf("\t%d",&per[i].score); printf("\t姓名:"); scanf("\t%s",per[i].name); printf("\t年龄:"); scanf("\t%s",per[i].age); printf("\t电话号码:"); scanf("\t%s",per[i].num); printf("\t通讯住址:"); scanf("\t%s",per[i].adds); printf("\t电子邮箱:"); scanf("\t%s",per[i].email); printf("\t修改成功!");}void WritetoText(Person per[],int n){ int i=0; FILE *fp; /*定义文件指针*/ char filename[20]; /*定义文件名*/ printf("\t保存到文件\n"); /*输入文件名*/ printf("\t请输入所保存的文件名:"); scanf("\t%s",filename); if((fp=fopen(filename,"w"))==NULL) { printf("\t无法打开文件\n"); system("pause"); return; } fprintf(fp,"****************************************** 通 讯 录 ******************************************\n"); fprintf(fp,"编号 姓名 年龄 电话 号码 通讯地址电子邮箱\n"); fprintf(fp,"------------------------------------------------------------------------------------------\n"); while(i<n) { fprintf(fp,"%-3d\t%-6s\t%-3s\t%-13s\t%-20s\t%-20s\n",per[i].score,per[i].name,per[i].age,per[i].num,per[i].adds,per[i].email); i++; } fprintf(fp,"------------------------------------------------------------------------------------------\n"); fprintf(fp,"***************************************共有%d条记录****************************************\n",n); fclose(fp); /*关闭文件*/ printf("保存成功!\n");}void main() /*主函数*/{ int n=0; for(;;) { switch(menu_select()) { case 1: printf("\n\t添加记录到通讯录\n"); /*添加记录*/ n=Input(pe,n); break; case 2: printf("\n\t\t\t 通讯录记录表\n"); /*显示记录*/ Display(pe,n); break; case 3: printf("\n\t从通讯录中删除记录\n"); n=Delete_a_record(pe,n); /*删除记录*/ printf("\t"); system("pause"); break; case 4: printf("\n\t在通讯录中查找记录\n"); Query_a_record(pe,n); /*查找记录*/ printf("\t"); system("pause"); break; case 5: printf("\n\t修改通讯录中的记录\n"); Change(pe,n); /*修改数据*/ printf("\t"); system("pause"); break; case 6: printf("\n\t保存功能\n"); WritetoText(pe,n); /*保存数据*/ printf("\t"); system("pause"); break; case 0: printf("\n\t\t谢谢使用,再见!\n"); /*结束程序*/ printf("\n\t\t"); system("pause"); exit(0); } }}
0 0
- 人事管理系统(C语言实现)
- 人事管理系统实现(一)
- 人事管理系统实现(二)
- 人事管理系统实现(三)
- 人事管理系统实现(四)
- 人事管理系统实现(五)
- 人事管理系统实现(六)
- 人事管理系统实现(八)
- 人事管理系统实现(七)
- 人事管理系统 c语言版
- SpringMvc+Mybatis实现一个简单人事管理系统(一)
- SpringMvc+Mybatis实现一个简单人事管理系统(二)
- SpringMvc+Mybatis实现一个简单人事管理系统(三)
- 人事管理系统(数据库课程设计)
- 人事管理系统
- 人事管理系统
- 人事管理系统
- 人事管理系统
- vbs调试方法
- linux上传测试脚本
- android stdio好用的插件
- TF-IDF与余弦相似性的应用(一):自动提取关键词
- 总结使用Unity 3D优化游戏运行性能的经验
- 人事管理系统(C语言实现)
- Xcode升级到7.1后的上线使用总结
- 那些年…一个文科男对理工男的逆袭,震惊了!
- 转自http://www.cnblogs.com/jscode/archive/2012/07/10/2583856.html
- Codeforces 545E Paths and Trees
- cocos2d 更换皮肤
- TF-IDF与余弦相似性的应用(二):找出相似文章
- pat 1080 Graduate Admission
- 传感器