学生通讯录管理

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言数据结构

学院:信心工程学院

专业:技术计科学与技术题目:班级通讯录管理系统班级:

姓名:

时间:

一:程序设计目标:

为某个班级建立一个学生通讯录管理系统,功能包括通讯录链表的建立、学生通讯信息的查询、修改、插入与删除、以及整个通讯录表的输出。

二:问题描述:

为某个班级建立一个学生通讯录管理系统,可以方便查询每一个学生的宿舍电话、手机号、及电子邮箱。其功能包括通讯录链表的建立、学生通讯信息的查询、修改、插入与删除、以及整个通讯录表的输出。三:需求分析:

1.创建单链表;

2.向链表中插入数据;

3.删除链表中的数据;

4.查找链表中的内容;

5.销毁单链表,释放内存空间;

6.打印内容。

四:概要设计:为了实现上述程序功能,需要定义一个简化的线性表抽象数据类型:

ADT LinearList {

数据对象:D={a

i |a

i

∈IntegerSet,i=0,1,2,…,n,n≥0}

结构关系:R={

i ,a

i+1

>|a

i

,a

i+1

∈D}

基本操作:

Initlist (L)

操作前提:L是一个未初始化的线性表

操作结果:将L初始化为一个空的线性表CrtLinkList(L)

操作前提:L是一个已初始化的空表

操作结果:建立一个非空的线性表L Insertlist (L,pos,e)

操作前提:线性表L已存在

操作结果:将元素e插入到线性表L的pos位置

deleteList (L,pos,e)

操作前提:线性表L已存在

操作结果:将线性表L中pos位置的元素删除,

删除的元素值通过e返回

LocLinkList(L,e)

操作前提:线性表L已存在

操作结果:在线性表L中查找元素e,

若存在,返回元素在表中的序号位置;

若不存在,返回-1

五:详细设计:(给出算法的伪码描述和流程图)

输出提示信息

void menu(void){ /*主菜单函数*/

system("cls");

printf("***************************************************

\n");

printf(" ^_^学生通讯录管理系统^_^\n");

printf("*************************************************** \n");

printf(" 1=录入学生通讯录信息\n");

printf(" 2=列出所有学生通讯录 \n"); printf(" 3=按姓名查询信息 \n"); printf(" 4=按学号查询信息 \n"); printf(" 5=删除学生信息 \n"); printf(" 6=排序 \n"); printf(" 0=退出 \n"); printf("*************************************************** ***\n");

}

存入学生信息

struct student *shuru(void) /*输入函数*/

{

system("cls");

struct student *s1,*s2;

n=1;

intnum;

printf("请输入学生个数(提示:个数不能输入0!):");

scanf("%d",&num);

s1=s2=(struct student *)malloc(sizeof(struct student)); printf("*************************************************") ;

printf("请输入学号:");

scanf("%ld",&s1->num);

printf("请输入学生姓名:");

scanf("%s",s1->name);

printf("请输入班级:");

scanf("%d",&s1->banji);

printf("请输入电话号码:");

scanf("%s",s1->shoujihaoma);

printf("请输入电子邮件:");

scanf("%s",s1->Email);

printf("请输入学生宿舍电话号:");

scanf("%d",&s1->sushedianhua);

stu=s1;

while(n

{

s2->next=s1;

s2=s1;

s1=(struct student *)malloc(sizeof(struct student));

printf("*************************************************") ;

printf("请输入学号:");

scanf("%ld",&s1->num);

printf("请输入学生姓名:");

scanf("%s",s1->name);

printf("请输入班级:");

scanf("%d",&s1->banji);

printf("请输入电话号码:");

scanf("%s",s1->shoujihaoma);

printf("请输入电子邮件:");

scanf("%s",s1->Email);

printf("请输入学生宿舍号:");

scanf("%d",&s1->sushedianhua);

n=n+1;

}

printf("*************************************************")

相关文档
最新文档