当前位置:首页 > 数据结构课程设计报告 城市链表 学生通讯录管理系统
数据结构课程设计报告
图2-8查询通讯记录 4. 删除通讯录记录
在主菜单下,用户输入4并回车,进行通讯录记录的删除。可以按三种方式进行删除操作:按序号、按学号和按姓名。图2-9是按学号删除的运行结果。
图2-9删除通讯记录 5. 显示通讯录信息
在主菜单下,用户输入5并回车,可以查看通讯录中的所有成员信息。运行结果如图2-10所示。
9
数据结构课程设计报告
图2-10 显示通讯录信息 六、用户手册
(1)本程序执行文件为“学生通讯录管理系统.exe”。
(2)进入本系统之后,随即显示系统主菜单界面,用户可在该界面下输入各子菜单前对应的数字并按回车键,执行相应子菜单命令。
(3)本系统没有提供直接修改通讯录信息的功能,可通过删除和插入操作完成修改功能。 七、调试报告
调试过程中insertYouXu createIncreLink 未声明变量。后来把对函数定义提到程序初始定义。发现直接将数值在调用的函数里定义、输入、输出,避免在主函数里传输数据,其这样就不易出现错误。查找算法,运行结果由于字母出错出现死循环。 通过这次课程设计使自己深刻认识到自身的不足。对线性表的插入、删除、查找等算法的实现有了更深一步的理解,受益多多。 八、程序清单 #include
#define LEN sizeof(LNode)
int seat; //通讯录成员的序号 typedef struct LNode {//用于通讯录结点
int number; double telenum; char name[20];
10
数据结构课程设计报告
struct LNode *next;
}LNode,*LinkList; //1.创建链表
void insertYouXu(LNode*pn,LinkList p); LinkList createIncreLink()
{//创建一个存放通讯录成员的非递减有序表,返回头结点地址
LinkList L=(LinkList)malloc(LEN); //头结点 L->next=NULL; LinkList p; int num=1,number; double telenum; char name[20];
printf(\请输入学生学号、姓名和电话号码,建立通讯录,以'-1'为输入结束标志\\n\
printf(\请输入学号 %d: \
scanf(\
printf(\请输入姓名 %d: \
char temp=getchar();
gets(name);
printf(\请输入电话号码 %d: \scanf(\while(number>=0) {
p=(LinkList)malloc(LEN); //新结点 p->number=number;
p->telenum=telenum;
strcpy(p->name,name);
insertYouXu(L,p); //有序地插入新结点 num++;
printf(\请输入学号 %d: \
scanf(\
printf(\请输入姓名 %d: \
11
数据结构课程设计报告
temp=getchar(); gets(name);
printf(\请输入电话号码 %d: \ }
//2.从通讯录中删除第i个元素 void deleteElem(LinkList L,int i){ LinkList p=L;
int j=0;
while (p->next && j if(!(p->next)) //判断i是否合法,i不能大于元素的个数,也不能小于等于0 { } printf(\第%d个元素删除失败\\n\p=p->next;j++; scanf(\} return(L); LinkList q=p->next; } //3. 按姓名删除通讯者 int delName(LinkList L,char n[]) { 配 LinkList p=L->next; seat=1; if(L->next==NULL) printf(\该链表中没有元素,查找失败\\n\ 12 p->next=q->next; free(q); //释放删除的结点 int flag=0; //判断要删除的通讯者和通讯录中的姓名是否匹
共分享92篇相关文档