学生通讯录管理系统.docx
- 文档编号:3879173
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:30
- 大小:461.55KB
学生通讯录管理系统.docx
《学生通讯录管理系统.docx》由会员分享,可在线阅读,更多相关《学生通讯录管理系统.docx(30页珍藏版)》请在冰豆网上搜索。
学生通讯录管理系统
《C语言程序设计》
题目学生通讯录管理系统
1、本系统主要实现了学生通讯录的管理。
2、系统功能:
显示学生信息,添加学生信息,修改学生信息,删除学生信息,查询学生信息,统计学生信息,对学生信息进行排序。
一、上机环境:
操作系统:
windowsxp系统
开发工具:
VC6.0
三、函数调用关系图:
四、各函数功能说明:
1、intmain()功能选择
2、voiddisp()显示学生信息
3、voidappe()添加学生信息
4、voiddelete()删除学生信息
5、voidmodi()修改学生信息
6、voidquery()查询学生信息
7、voidtotal()统计学生信息
8、voidsort()进行排序工作
9、voidquit()退出程序
五、算法描述或流程图:
主函数:
voidmain()
以上为Voiddisp()显示学生信息函数
以下为函数voidAppe()添加学生信息
Voidmodi()以下为修改学生信息
以上为voiddele()删除学生信息函数
以上为voidquery()查询学生信息
以上为voidtotal()学生信息统计
以上为voidsort()信息排序函数
六、程序运行效果图:
菜单界面:
六,程序清单
#include
#include
#include
#include
#include
intmain();
intabc=0;/*全局变量*/
structstu/*结构体定义*/
{intbh;/*输入学生编号*/
charname[10];/*输入学生姓名*/
charxb[4];/*输入学生性别*/
intnl;/*输入学生年龄*/
longintzip;/*输入学生邮编*/
charphone[15];/*输入电话号码*/
charaddress[30];/*输入学生地址*/
chare_mail[20];/*输入学生邮箱*/
charqqh[19];/*输入学生qq*/
}s[40];
intRe_file()/*从文件中读取数据ok*/
{
FILE*fp;
inti=0;
fp=fopen("C:
\\X86\\abc.in","r");/*确定路径*/
if(fp==NULL)
{
printf("不能打开该文件:
");
exit(0);
}
do{
fread(&s[i],sizeof(structstu),1,fp);
i++;
}while(feof(fp)==0);
return(i-1);
fclose(fp);
}
voidWr_file(intm)/*向文件中写数据ok*/
{
inti;
FILE*fp;
fp=fopen("C:
\\X86\\abc.in","w");
for(i=0;i {fwrite(&s[i],sizeof(structstu),1,fp); } fclose(fp); } voidDisp()/*显示学生信息ok*/ { intN=Re_file(); if(N<=0) { printf("空信息\n"); printf("按任意键返回"); getch(); main(); } printf("==========================================================================="); printf("\nnumber\tname\tsex\tage\tzipcode\ttel\taddress\t\temail\tQQ\n"); printf("===========================================================================\n"); inti; for(i=0;i printf("%d\t%s\t%s\t%d\t%ld\t%s\t%s\t\t%s\t%s\n",s[i].bh,s[i].name,s[i].xb,s[i].nl,s[i].zip,s[i].phone,s[i].address,s[i].e_mail,s[i].qqh); printf("按任意键返回"); getch(); main(); } voidAppe()/*添加学生信息ok*/ { intnumber_entities,i; intN=Re_file(),m=0; printf("输入你想添加的学生数: ");/*输入添加学生的个数*/ scanf("%d",&number_entities); if((N+number_entities)>40)/*最多可以读40个人的数据*/ { printf("Spacefull.\n"); return; } else { for(i=0;i { printf("请输入这个新成员的编号: "); l: scanf("%d",&s[N+i].bh); getchar(); m=0; while(m { m++; if(s[N+i].bh==s[m-1].bh) { printf("该编号已存在,请重新输入\n"); gotol; } } printf("请输入这个成员的姓名: \n"); scanf("%s",s[N+i].name); printf("请输入这个成员的性别: \n"); scanf("%s",s[N+i].xb); printf("请输入这个成员的年龄: \n"); scanf("%d",&s[N+i].nl); printf("请输入这个成员的邮编: \n"); scanf("%ld",&s[N+i].zip); printf("请输入这个成员的电话号码: \n"); scanf("%s",s[N+i].phone); printf("请输入这个成员的地址: \n"); scanf("%s",s[N+i].address); printf("请输入这个成员的邮箱: \n"); scanf("%s",s[N+i].e_mail); printf("请输入这个成员的qq号: \n"); scanf("%s",s[N+i].qqh); } }Wr_file(N+number_entities); printf("添加成功! "); printf("按任意键返回"); getch(); main(); } voidModi()/*修改学生信息ok*/ { intc,flag=0,i,N=Re_file(); while (1) { if(flag) break; printf("找到该学生的方式: \n1.name\n2.indexnumber\n");/*找到该学生,通过姓名或编号*/ scanf("%d",&c); switch(c){ case1: { charname[50]; printf("name: "); scanf("%s",name); for(i=0;i if(strcmp(s[i].name,name)==0)/*输入的名字在文件中存在,则可以找到该学生的相关信息*/ break; if(strcmp(s[i].name,name)! =0) { printf("没有找到该学生\n"); return; } flag=1; break; } case2: { intidxnr; printf("学生编号: ");/*通过学生编号来寻找要修改学生的信息*/ scanf("%d",&idxnr); for(i=0;i if(s[i].bh==idxnr) break; if(s[i].bh! =idxnr){ printf("没有找到该学生\n"); return; } flag=1; break; } default: printf("未知的命令.\n"); } } while (1) { printf("你想修改哪样信息: \n1.sex\n2.age\n3.zipcode\n4.tel\n5.address\n6.email\n7.QQ\n"); scanf("%d",&c); switch(c) { case1: { charsex[4]; printf("sex: "); scanf("%s",sex); strcpy(s[i].xb,sex);/*修改性别*/ Wr_file(N); return; } case2: { intage;/*修改年龄*/ printf("age: "); scanf("%d",&age); s[i].nl=age; Wr_file(N); return; } case3: {/*修改邮编*/ longintzipcode; printf("邮编: "); scanf("%ld",&zipcode); s[i].zip=zipcode; Wr_file(N); return; } case4: {/*修改电话号码*/ charphone[15]; printf("电话号码: "); scanf("%s",phone); strcpy(s[i].phone,phone); Wr_file(N); return; } case5: { charaddress[30]; printf("地址: ");/*修改地址*/ scanf("%s",address); strcpy(s[i].address,address); Wr_file(N); return; } case6: { charemail[20]; printf("邮箱: ");/*修改邮箱*/ scanf("%s",email); strcpy(s[i].e_mail,email); Wr_file(N); return; } case7: { charqq[10]; printf("QQ号码: ");/*修改qq号码*/ scanf("%s",qq); strcpy(s[i].qqh,qq); Wr_file(N); return; } default: printf("未知的命令\n"); } } } voidDele()/*删除学生信息ok*/ { inti,j,N=Re_file(); chara[10]; printf("请选择: \n"); printf("1-deletebyindexnumber,2-deletebyname\n");/*确定要删除哪个人信息,进行查找*/ while (1){ scanf("%d",&i);/*通过编号查找*/ if(i==1){ printf("indexnumber: "); scanf("%d",&j); for(i=0;i if(j==s[i].bh) break; if(s[i].bh! =j){ printf("不存在\n"); return; } break; } elseif(i==2){/*通过姓名查找*/ printf("name: "); scanf("%s",a); for(i=0;i if(strcmp(a,s[i].name)==0)/*如果输入的姓名在文件里存在的话*/ break; if(strcmp(a,s[i].name)! =0) { printf("不存在\n"); return; } break; } else{ printf("未知的命令\n"); } } for(j=i+1;j s[j-1].bh=s[j].bh; strcpy(s[j-1].name,s[j].name); strcpy(s[j-1].xb,s[j].xb); s[j-1].nl=s[j].nl; s[j-1].zip=s[j].zip; strcpy(s[j-1].phone,s[j].phone); strcpy(s[j-1].address,s[j].address); strcpy(s[j-1].e_mail,s[j].e_mail); strcpy(s[j-1].qqh,s[j].qqh); } N--; Wr_file(N); printf("Done.\n"); } voidQuery()/*学生信息查询ok*/ { inti,N=Re_file(); chara[10]; longintb; printf("请选择: \n"); printf("1-Checkbyname,2-Checkbyzipcode\n");/*输入该学生的姓名*/ scanf("%d",&i); if(i==1){ printf("name: "); scanf("%s",a); printf("==========================================================================="); printf("\nnumber\tname\tsex\tage\tzipcode\ttel\taddress\t\temail\tQQ\n"); printf("===========================================================================\n"); for(i=0;i if(strcmp(a,s[i].name)==0) printf("%d\t%s\t%s\t%d\t%ld\t%s\t%s\t\t%s\t%s\n",s[i].bh,s[i].name,s[i].xb,s[i].nl,s[i].zip,s[i].phone,s[i].address,s[i].e_mail,s[i].qqh); } elseif(i==2){ printf("zipcode: ");/*输入该学生的邮编*/ scanf("%ld",&b); printf("==========================================================================="); printf("\nnumber\tname\tsex\tage\tzipcode\ttel\taddress\t\temail\tQQ\n"); printf("===========================================================================\n"); for(i=0;i if(b==s[i].zip) printf("%d\t%s\t%s\t%d\t%ld\t%s\t%s\t\t%s\t%s\n",s[i].bh,s[i].name,s[i].xb,s[i].nl,s[i].zip,s[i].phone,s[i].address,s[i].e_mail,s[i].qqh); } else printf("错误的命令! "); printf("按任意键返回"); getch(); main(); } voidTotal()/*学生信息统计*/ { inti,j,N=Re_file(); chara[4]; //fp=fopen("txl.txt","r"); printf("Pleaseselect: \n"); printf("1-bysex,2-byage\n"); scanf("%d",&i); if(i==1) { printf("Pleaseinputsex: \n"); scanf("%s",a); printf("==========================================================================="); printf("\nnumber\tname\tsex\tage\tzipcode\ttel\taddress\t\temail\tQQ\n"); printf("===========================================================================\n"); for(i=0;i if(strcmp(s[i].xb,a)==0) printf("%d\t%s\t%s\t%d\t%ld\t%s\t%s\t\t%s\t%s\n",s[i].bh,s[i].name,s[i].xb,s[i].nl,s[i].zip,s[i].phone,s[i].address,s[i].e_mail,s[i].qqh); } elseif(i==2) { printf("请输出年龄: \n"); scanf("%d",&j); printf("==========================================================================="); printf("\nnumber\tname\tsex\tage\tzipcode\ttel\taddress\t\temail\tQQ\n"); printf("===========================================================================\n"); for(i=0;i if(s[i].nl==j) printf("%d\t%s\t%s\t%d\t%ld\t%s\t%s\t\t%s\t%s\n",s[i].bh,s[i].name,s[i].xb,s[i].nl,s[i].zip,s[i].phone,s[i].address,s[i].e_mail,s[i].qqh); } else printf("错误的命令! "); printf("按任意键返回"); getch(); main(); } voidSort()/*排序ok*/ { inti,j,temp,N=Re_file(); longintb; chara[30]; printf("Pleaseselect: \n"); printf("1-byage,2-byzipcode\n"); scanf("%d",&i); if(i==1) { for(i=0;i for(j=i+1;j if(s[i].nl>s[j].nl)/*冒泡排序*/ { temp=s[j].nl; s[j].nl=s[i].nl; s[i].nl=temp; temp=s[j].bh; s[j].bh=s[i].bh; s[i].bh=temp; b=s[j].zip; s[j].zip=s[i].zip; s[i].zip=b; strcpy(a,s[j].address); strcpy(s[j].address,s[i].address); strcpy(s[i].address,a); strcpy(a,s[j].qqh); strcpy(s[j].qqh,s[i].qqh); strcpy(s[i].qqh,a); strcpy(a,s[j].e_mail); strcpy(s[j].e_mail,s[i].e_mail); strcpy(s[i].e_mail,a); strcpy(a,s[j].phone); strcpy(s[j].phone,s[i].phone); strcpy(s[i].phone,a); strcpy(a,s[j].xb); strcpy(s[j].xb,s[i].xb); strcpy(s[i].xb,a); strcpy(a,s[j].name); strcpy(s[j].name,s[i].name); strcpy(s[i].name,a); } abc=1; } elseif(i==2) { for(i=0;i for(j=i+1;j if(s[i].zip>s[j].zip) { temp=s[j].nl; s[j].nl=s[i].nl; s[i].nl=temp; temp=s[j].bh; s[j].bh=s[i].bh; s[i].bh=temp; b=s[j].zip; s[j].zip=s[i].zip; s[i].zip=b; strcpy(a,s[j].address); strcpy(s[j].address,s[i].address); strcpy(s[i].address,a); strcpy(a,s[j].qqh); strcpy(s[j].qqh,s[i].qqh); strcpy(s[i].qqh,a); strcpy(a,s[j].e_mail); strcpy(s[j].e_mail,s[i].e_mail); strcpy(s[i].e_mail,a); strcpy(a,s[j].phone); strcpy(s[j].phone,s[i].phone); strcpy(s[i].phone,a); strcpy(a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 通讯录 管理 系统