C语言做学生通讯录
题目: 学生通讯录 1)基本要求: (1)设计一个菜单将在实现的功能显示出来,并有选择提示; (2)能够查询全部成员清单; (3)能够按号码或姓名查询某一个成员的信息; (4)能够增加、删除、修改某一个成员的信息; (5)要求有错误提示功能,例如性别只能输入F,M,输入错误提示重新输入。 2)创新要求: 信息的输入输出可以用文件的存取和显示的方式,建立文件,直接存取默认文件或指定文件。
/*同学通讯录*/ #include #include struct friends/*定义数据结构*/ { char name[20];/* 联系地址*/ char tel[12]; char e_mail[50];/*电子邮件*/ char address[40];/* 联系地址*/ }frd[40]; /*定义结构体数组*/ int r_cnt=0; int add_cnt=0 ; int add(); void cha_zhao(); void list(); void modify(); int del (); void exit_asd (); void save(); void list(); void load(); int find(struct friends frd[],char tel[]); main() { load(); clrscr(); for(;;) { switch(menu_book()) { case 1 : add() ; break; case 2 : cha_zhao() ; break; case 3 : modify() ; break; case 4 : del() ; break; case 5 : exit_asd(); break; case 6 : list () ; break; } } } int menu_book() { int c; printf("*******************MENU******************\n"); printf("* *\n"); printf("* *\n"); printf("* d *\n"); printf("* *\n"); printf("* a_zhao *\n"); printf("* *\n"); printf("* dify *\n"); printf("* *\n"); printf("* lete *\n"); printf("* *\n"); printf("* 5。
exit *\n"); printf("* *\n"); printf("* st *\n"); printf("* *\n"); printf("* *\n"); printf("*****************************************\n"); do {printf("\n\n enter you choice(0-6):"); scanf("%d",&c); } while(c6); return c; } void load()/*加载*/ { FILE *fp; int i=0; r_cnt=0; if((fp=fopen("FF。
txt","rb"))!=NULL) { while(!feof(fp)) { fread(&frd[i],sizeof(struct friends),1,fp); r_cnt++; printf("%s %s %s %s\n",frd[i]。
name,frd[i]。tel,frd[i]。e_mail,frd[i]。address); i++; } } else puts("open error!"); fclose(fp); } void save()/*保存*/ { FILE *fp; int i; if((fp=fopen("FF。
txt","a+"))==NULL) { puts("open file error!"); exit(0); } for(i=0;i-1) { printf("tel don't modify!\n"); printf("please new :name,e_mail,address:\n"); scanf("%s%s%s",frd[p]。
name,frd[p]。e_mail,frd[p]。address); } getch(); } void exit_asd() { int num; save(frd); printf("exit? ,contine__1 , exit__0\n"); scanf("%d",&num); if(num==0) { exit(0); } getch(); } int add()/*增加*/ { int i=0; char ch[20]; while(1) { if(strcmp(ch,"#")==0) break; printf("input name:\n"); scanf("%s",frd[i]。
name); printf("input tel:\n"); scanf("%s",frd[i]。tel); printf("input e_mail:\n"); scanf("%s",frd[i]。
e_mail); printf("inout address:\n"); scanf("%s",frd[i]。address); printf("if you want to stop,please enter '#' or enter other keys to contine:"); scanf("%s",ch); i++; } clrscr(); add_cnt=i; printf("%d\n",add_cnt); printf("name\t\ttel\t\te_mail\t\t\taddress\n"); printf("********************************************************************\n"); for(i=0;ir_cnt-1) printf("no found!\n"); else { printf("\n\n*******************delete******************************************\n"); printf("name tel e_mail address\n"); printf("------------------------------------------------\n"); printf("%s %s %s %s\n",frd[i]。
name,frd[i]。tel,frd[i]。e_mail,frd[i]。address); printf("************************************************************************\n\n"); printf("Are you sure delete it(1/0)?\n"); scanf("%d",&ch); if(ch==1) { for(j=i+1;jname,frd[j]。name); strcpy(frd[j-1]。tel,frd[j]。tel); strcpy(frd[j-1]。e_mail,frd[j]。e_mail); strcpy(frd[j-1]。
address,frd[j]。address); } r_cnt--; } } return r_cnt; } 。
这个跟我做的一个员工管理系统功能基本一样,能达到你所有的要求 可惜,我的是拿C++做的
答:小修改一下,如下:#include//通讯录#include#include#include#defineN100intM=0;structstudent{ch...详情>>
答:我建议你去--天下网吧联盟 这里面都是网吧业主和网管交流的论坛,你可以自己注册一个用户进去看看,你可以和他们交流也可以寻求他们的帮助,我想没有你解决不了的问题,...详情>>
答:格式化文本区域的段落标记,用于规定文本和层的属性和位置等。比如: 新浪网 用来规定 新浪网 这三个字居中显示。 文本中心(CENTER)、左(LEFT)或右(R...详情>>