学生通讯录管理系统由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“同学电话簿管理系统”。
“学生通讯信息记录系统”的设计与实现
一、设计要求
1.问题的描述
“学生通讯信息记录系统”是为了实现快速的对学生信息进行录入、删除、查找、显示。各个功能靠函数实现。2.需求分析
(1)应该包括以下功能:输入信息、显示信息、查找以姓名作为关键字、删除信息(2)作为一个完整的系统,应具有友好的界面和较强的容错能力
二、概要设计
1.主界面设计
2.储存结构设计
本系统主要采用链表类型来表示储存“学生信息记录系统”中的信息。程序中定义了addre结构。其中,包括学生的姓名、宿舍信息和学号。3.系统功能的设计
1)输入信息——enter();2)显示信息———display();3)查找以姓名作为关键字 ———search();4)删除信息———delete();
三、模块设计
1.模块设计
本成绩包含两个模块:主程序模块和链表操作模块。2.系统的程序及功能设计
(1)插入学生信息
void enter()
/*输入函数,本函数循环输入资料,当输入姓名为空时退出*/ {
struct addre *info;
/*定义当前结点*/
for(;;){
info=(struct addre *)malloc(sizeof(struct addre));
/*为当前结点分配空间*/
if(!info)
{
printf(“n Out of memory”);
exit(0);
/*如果分配空间失败,退出程序*/
}
printf(“输入空姓名结束:n”);
inputs(“请输入 姓名:”,info->name,10);
if(!info->name[0])
break;
/*如果输入姓名为空,结束循环*/
inputs(“请输入
院系:”,info->street,50);
inputs(“请输入宿舍楼:”,info->city,15);
inputs(“请输入宿舍号:”,info->state,15);
inputs(“请输入
学号:”,info->eip,7);
insert(info,&start,&last);
/*调用结点插入函数*/ } }
五、测试分析
1.输入学生信息
4.删除信息
5.退出
struct addre *start;
/*首结点*/ struct addre *last;
/*尾结点*/ struct addre *find(char *);
/*声明查找函数*/
void enter();
/*函数声明*/ void search();void save();
void load();void list();void ddelete(struct addre **start,struct addre **last);void insert(struct addre *i,struct addre **start,struct addre **last);void inputs(char *,char *,int);void display(struct addre *);int menu_select(void);
void main(){
int c;
printf(“n
欢迎使用学生通讯录系统”);
printf(“nn”);
printf(“t┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);
printf(“t┃************************************************************┃n”);
printf(“t┃*
*
*┃n”);
printf(“t┃*
1.输入信息
*
2.删除信息
*┃n”);
printf(“t┃*
*
*┃n”);
printf(“t┃************************************************************┃n”);
printf(“t┃*
*
*┃n”);
printf(“t┃*
3.显示信息
*
4.查找
*┃n”);
printf(“t┃*
*
*┃n”);
printf(“t┃************************************************************┃n”);
printf(“t┃
5.退出
┃ n”);
printf(“t┃************************************************************┃n”);
exit(0);
/*如果分配空间失败,退出程序*/ }
printf(“输入空姓名结束:n”);
inputs(“请输入 姓名:”,info->name,10);
if(!info->name[0])break;
/*如果输入姓名为空,结束循环*/
inputs(“请输入
院系:”,info->street,50);
inputs(“请输入宿舍楼:”,info->city,15);
inputs(“请输入宿舍号:”,info->state,15);
inputs(“请输入
学号:”,info->eip,7);
insert(info,&start,&last);
/*调用结点插入函数*/ }
void inputs(char *prompt,char *s,int count)
/*输入函数,有越界检测功能*/ {
char p[255];
do }
i->next=NULL;
i->prior=NULL;
*last=i;
*start=i;
return;
}
else {
(*last)->next=i;
i->prior=*last;i->next=NULL;
*last=(*last)->next;
}
}
void ddelete(struct addre **start,struct addre **last)
/*删除函数*/
{ struct addre *info;
char s[80];
inputs(“请输入 姓名:”,s,10);
/*输入欲删除结点的name域内容*/
info=find(s);
if(info)
{
printf(“Deleting......n”);if(*start==info)
点的下驱作为新的首结点(入口)*/
{ *start=info->next;
if(*start)(*start)->prior=NULL;
else *last=NULL;
}
else
结点*/
{
info->prior->next=info->next;
info=info->next;
}
printf(“未找到相关信息.n”);
return NULL;}
/*输出整个链表*/ void list(void){ struct addre *info;
info=start;
if(info==NULL)printf(“当前记录为空!”);else printf(“姓名t院系t宿舍楼t宿舍号t学号tn”);
while(info)
{
};display(info);if(info->next==NULL){break;} info=info->next;
printf(“nn”);}
/*查找函数*/
/*输入欲查找的姓名*/ /*如果没找到,显示Not found*/
/*如果找到,显示该结点资料*/
七、用户使用手册
(1)本程序的执行文件为“学生通讯录管理系统.exe”。
(2)进入本系统之后,随即显示系统住菜单界面。用户可以在该界面下根据提示输入并按回车键确定,执行相应的菜单命令。
(3)本系统可以对学生信息进行录入和删除。
数据结构课程设计
课题:学生成绩管理系统
姓名:孙轩宇
学号:E01014316
专业:计算机科技
院系:计科院
2010.10.8
班级:10