栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

数据结构与算法课程设计——电话簿管理类1

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据结构与算法课程设计——电话簿管理类1

数据结构与算法课程设计1——电话簿管理类 导读

本文介绍了数据结构与算法课程设计(或者说C语言课程设计)经典的课题——电话簿、通讯簿的管理系统的具体实现,与相关内容。

课程设计的目的

数据结构与算法课程设计是计算机科学与技术专业重要的实践性教学环节之一,设计结合实际应用的要求,使课程设计既覆盖C语言的知识点,又接近工程实际需要。目的是通过课程设计的综合训练,培养学生实际分析问题、解决问题的能力,以及编程和动手能力,最终目标是通过课程设计这种形式,帮助学生系统掌握C语言程序设计和数据结构与算法这两门课程的主要内容,养成良好的编程习惯,更好的完成教学任务。

课题样例
序号课题名称课题要求
1电话簿管理(1)具有加入、删除、显示和查询联系人电话号码的功能。
(2)电话号码簿按姓名排序存放,显示时每屏不超过20个记录,超过时分屏。
(3)增加记录修改功能,能选择修改用户的姓名、电话、在删除或修改之前需要用户进一步确认,确认无误后再进行操作。
(4)增加录入时间的显示及存储。
(5)增加默认的查询方式,及查询时只输入姓名的首字母,所有符合这一条件的电话资料均在屏幕的显示。
2通讯薄管理(1)依次输入通讯薄的编号,用户名和电话号码,并生成一个.txt文本文件。
(2)可添加和删除通讯薄中的内容。
(3)可以修改通讯薄中某个用户的用户名或电话号码。
3同学通讯录(1) 通讯录编辑(添加、删除);
(2) 按不同的项进行查找;
(3) 对已存在的通讯录按不同的项排序;
(4) 将通讯录写入文件;
(5) 从文件读入通讯录。
备注:通讯录至少应该有以下数据项:姓名,地址,电话,邮编,E-mail。
~~~

类似于上表中的题目在大家课程设计的选题的范围上,一定不可或缺,下面就列举出几个解决这类问题的课程设计的思路:
1.通讯通讯录
任务:
以本班同学的具体数据为背景,设计一个本班同学通讯录。
实现功能:
1) 通讯录编辑(添加、删除)。
2) 按不同的项进行查找。
3) 对已存在的通讯录按不同的项排序。
4) 将通讯录写入文件
5)从文件读入通讯录
备注:通讯录至少应该有以下数据项:
姓名,地址,电话,邮编,E-mail。

相关设计:


系统功能需求:
<1>记录功能:记录每位同学的姓名、电话号码、地址、邮编和E-mail
<2>查找功能:按不同方式查找信息
<3>添加功能:添加信息
<4>排序功能:将信息按照姓名排序
<5>删除功能:删除指定的信息
<6>保存在文件:将做完的信息保存在文件
<7>结束:结束程序
函数说明
选择功能函数

void next()
{
	void show();
	void seek();
	void add();
	void sort();
	void out();
	void keep();
	int end();
	int b;
	printf("t***********************NEXT**************************n");
	printf("t请选择接下来的操作:");
	scanf("%d",&b);
	printf("t*****************************************************n");
	switch(b)
	{
		case 1 :show();break;
		case 2 :seek();break;
		case 3 :add();break;
		case 4 :sort();break;
		case 5 :out();break;
		case 6 :keep();break;
		case 7 :end();break;
	}
}

输入函数

void write()
{
	void next();
	void write1();
	printf("t请输入信息(每次输入1时继续输入,输入2时停止输入)n");
	printf("t姓名t家庭电话t地址t邮编tE-mailn");
	write1();
}
void write1()
{
	void next();
	void write2();
	int a;
	printf("是否输入:");
	scanf("%d",&a);
	printf("n");
	switch(a)
	{
	    case 1 :write2();break;
		    case 2 :next();break;
	}
}
void write2()
{
	void write1();
j=i+1;
	printf("%dt",j);
	scanf("%s%d%s%d%s",stu[i].name,&stu[i].phone,stu[i].adress,&stu[i].postcode,stu[i].e_mail);
	i=i+1;
	write1();
}

输出函数

void show()
{
	void next();
	int s=0;
	printf("t下面将会显示输入的数据:n");
	printf("t姓名t家庭电话t地址t邮编tE-mailn");
	for(i=0;i 

查找函数

查找函数
void seek()
{
	int q;
	void numberseek();
	void nameseek();
	printf("t请选择搜索方式:1~按名字查找nt                2~按家庭电话号码查找n");
	printf("t请选择查找方式:");
	scanf("%d",&q);
	switch(q)
	{
	    case 1 :nameseek();break;
		case 2 :numberseek();break;
	}

}
void nameseek()
{
	void next();
	char d[5];
	printf("t请输入要查找学生的名字:");
	scanf("%s",d);
	for(i=0;i 

添加函数

void add()
{
	void next();
	void write1();
	i=j;
	printf("t请输入信息(每次输入1时继续输入,输入2时停止输入)n");
	printf("t姓名t家庭电话t地址t邮编tE-mailn");
	write1();
}

排序函数

void sort()
{
	void next();
	void show();
	int h,g,x;
	char temp;
	for(i=0;i<(j-1);i++)
	{
		h=i;
		for(g=i+1;g 

删除函数

void out()
{
	void next();
	int t,h,v;
	printf("t请输入要删除的学生编号:");
	scanf("%d",&t);
	h=i;
	for(v=t-1;v 

保存函数

void keep()
{
	void next();
	FILE *fp;
	int v=0;
	char filename[10];
	printf("请输入要保存的文件名:");
	scanf("%s",filename);
	if((fp=fopen(filename,"w"))==NULL)
	{
		printf("文件无法打开n");
		exit(0);
	}
	fprintf(fp,"t姓名t电话号t地址t邮编tE-mailn");
	for(i=0;i 

结束函数

int end()
{
	void next();
	int g;
	printf("t是否关闭程序:n1:是t2:否n");
	printf("t请输入你的选择:");
	scanf("%d",&g);
	switch(g)
	{
	    case 1 :return 0;
		case 2 :next();
	}
return 0;
}

程序源代码

#include
#include
#include
struct Student
{
	char name[20];
    int long phone;
	char adress[40];
	int postcode;
	char e_mail[30];
}stu[100];
int j=0,i=0;
void next()
{
	void show();
	void seek();
	void add();
	void sort();
	void out();
	void keep();
	int end();
	int b;
	printf("t***********************NEXT**************************n");
	printf("t请选择接下来的操作:");
	scanf("%d",&b);
	printf("t*****************************************************n");
	switch(b)
	{
		case 1 :show();break;
		case 2 :seek();break;
		case 3 :add();break;
		case 4 :sort();break;
		case 5 :out();break;
		case 6 :keep();break;
		case 7 :end();break;
	}
}
void write()
{
	void next();
	void write1();
	printf("t请输入信息(每次输入1时继续输入,输入2时停止输入)n");
	printf("t姓名t家庭电话t地址t邮编tE-mailn");
	write1();
}
void write1()
{
	void next();
	void write2();
	int a;
	printf("是否输入:");
	scanf("%d",&a);
	printf("n");
	switch(a)
	{
	    case 1 :write2();break;
		case 2 :next();break;
	}
}
void write2()
{
	void write1();
	j=i+1;
	printf("%dt",j);
	scanf("%s%d%s%d%s",stu[i].name,&stu[i].phone,stu[i].adress,&stu[i].postcode,stu[i].e_mail);
	i=i+1;
	write1();
}
void show()
{
	void next();
	int s=0;
	printf("t下面将会显示输入的数据:n");
	printf("t姓名t家庭电话t地址t邮编tE-mailn");
	for(i=0;i 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/698662.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号