学生通讯录管理系统的设计与实现.docx
- 文档编号:8077138
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:7
- 大小:16.16KB
学生通讯录管理系统的设计与实现.docx
《学生通讯录管理系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《学生通讯录管理系统的设计与实现.docx(7页珍藏版)》请在冰豆网上搜索。
学生通讯录管理系统的设计与实现
学生通讯录管理系统的设计与实现
问题描述:
纸质的通讯录已经不能满足实际需求,容易丢失,查找困难等问题是纸质通讯录所不能克服的缺点。
“学生通讯录管理系统”是为了帮助老师、同学,或者其他一些需要使用的通讯录的人员进行管理和应用的一种应用程序。
需求分析:
1)输入数据建立通讯录。
2)查询通讯录中满足要求的信息。
3)插入新的通讯录信息。
4)删除不需要的通讯录信息。
5)查看所有的通讯录信息。
主界面设计要求:
1)通讯录的建立
2)插入通讯录记录
3)查询通讯录记录
4)删除通讯录记录
5)显示通讯录记录
6)退出系统
设计要求:
A.建立通讯录时,每个学生的信息包括:
学号,姓名,电话。
B.查找时,学号、姓名、电话均可以作为查询字段。
C.查看所有的通讯录信息时,所有记录需要时有序的(按学号排序,按姓名排序(字典序),按电话号码排序)。
D.存储结构:
要求使用顺序存储结构。
E.数据使用:
使用本班级的具体信息。
需求分析:
本次设计目的是学生信息管理系统,可存入每个学生的基本信息,所有学生信息都可根据名字、学号、电话、邮箱进行查询,也都可以根据这四个基本信息检索到一个学生并删除其数据。
输入形式:
student.txt,以文件形式进行输入。
输出形式:
根据不同的输入进行不同的操作。
达到功能:
能插入一个学生的信息,能删除一个学生的信息,能查询一个学生的信息。
测试数据:
班上70个同学的基本数据。
概要设计:
数据类型:
顺序链表ArrayList类
学生数据结构:
StuData类包含name、id、phone、email四个String基本类型。
所有操作写在Structure中,包含insert、remove、query、printAll。
Main函数用Java标准输入,循环输入,用switch判断输入进行各种操作,1进行建立信息系统从文件中读入操作,2进行插入一个学生数据的功能,3进行查询信息的操作,4进行删除通讯记录的操作,5进行打印所有学生信息的功能,6代表退出系统。
详细设计:
本程序是学生信息管理系统,构造了一种StuData数据结构,里面包含姓名、学号、电话、邮箱四个String类型的字段,具有的功能是,从文件中读入班级70个人的信息,用循环构造70个StuData对象,依次存入ArrayList
#include
#include
#include
#include
#include
#include
#include
usingnamespacestd;
structStudent{
charnumber[20];
charname[20];
chartel[20];
charQQ[100];
};
StudentS[1000];
intcnt;
voidinit()
{
cnt=0;
FILE*T;
T=freopen("a.txt","r",stdin);
while(scanf("%s%s%s%s",S[cnt].number,S[cnt].name,S[cnt].tel,S[cnt].QQ)!
=EOF){
//printf("%s%s%sjiji\n",S[cnt].number,S[cnt].name,S[cnt].tel,S[cnt].QQ);
cnt++;
}
freopen("CON","r",stdin);
printf("建立成功\n");
}
voidshowscreem()
{
printf("*******************************************************************************\n");
printf("1通讯录的建立\n");
printf("2.插入通讯记录\n");
printf("3.查询通讯记录\n");
printf("4.删除通讯记录\n");
printf("5.显示通讯记录\n");
printf("0.退出系统\n");
printf("*******************************************************************************\n");
}
voidInsert()
{
Studentt;
scanf("%s%s%s%s",t.number,t.name,t.tel,t.QQ);
S[cnt++]=t;
printf("插入成功\n");
}
voidFind()
{
charstr[100];
printf("请输入有关信息\n");
scanf("%s",str);
intflag1=0;
for(inti=0;i intflag=0; flag|=! strcmp(str,S[i].number); flag|=! strcmp(str,S[i].name); flag|=! strcmp(str,S[i].tel); flag|=! strcmp(str,S[i].QQ); if(flag){ printf("学号%s姓名%s电话%s邮箱%s\n",S[i].number,S[i].name,S[i].tel,S[i].QQ); flag1=1; } } if(! flag1)printf("没找到\n"); } voidDelete() { charstr[100]; printf("请输入有关信息\n"); scanf("%s",str); intflag=0;intpos; for(inti=0;i flag|=! strcmp(str,S[i].number); flag|=! strcmp(str,S[i].name); flag|=! strcmp(str,S[i].tel); flag|=! strcmp(str,S[i].QQ); if(flag){ pos=i;break; } } if(! flag)printf("没找到\n"); else{ printf("删除成功\n"); for(inti=pos;i cnt--; } } intcmp(constStudent&a,constStudent&b) { returnstrcmp(a.number,b.number)<0; } intcmp1(constStudent&a,constStudent&b) { returnstrcmp(a.name,b.name)<0; } intcmp2(constStudent&a,constStudent&b) { returnstrcmp(a.tel,b.tel)<0; } voidshow() { printf("按照学号排序\n"); sort(S,S+cnt,cmp); for(inti=0;i printf("姓名%s学号%s电话%s邮箱%s\n",S[i].name,S[i].number,S[i].tel,S[i].QQ); } printf("按照姓名排序\n"); sort(S,S+cnt,cmp1); for(inti=0;i printf("姓名%s学号%s电话%s邮箱%s\n",S[i].name,S[i].number,S[i].tel,S[i].QQ); } printf("按照电话排序\n"); sort(S,S+cnt,cmp2); for(inti=0;i printf("姓名%s学号%s电话%s邮箱%s\n",S[i].name,S[i].number,S[i].tel,S[i].QQ); } } intmain() { intn; showscreem(); while(scanf("%d",&n)! =EOF){ if(n==0)break; if(n==1)init(); elseif(n==2){ printf("请按顺序输入学号,姓名,邮箱\n"); Insert(); } elseif(n==3){ Find(); } elseif(n==4){ Delete(); } elseif(n==5){ show(); } showscreem(); } return0; } 总结: 本系统可以通过删除和插入的操作方式完成数据的修改;但没有直接修改数据的功能。 进入系统后,随即显示系统主菜单界面,用户可以在该界面下输入各子菜单前对应的数字并按回车键,执行相应的子菜单命令。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 通讯录 管理 系统 设计 实现
![提示](https://static.bdocx.com/images/bang_tan.gif)