班级通讯录管理系统 课程设计报告

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

高级语言程序设计(1)课程设计

专业班级学号

姓名完成日期指导教师:

1. 程序设计说明书

【设计题目】班级通讯录管理系统

【问题描述】

信息1002班上学生的通讯基本信息包含姓名、电话号码、QQ号和宿舍号。对信息1002班学生的基本通讯信息进行统一整理,并可以按电话号码或姓名等查到学生个人基本通讯信息。可以显示所有的通讯记录,并对现有的通讯记录进行修改和增删等处理。

【基本要求】

1. 通过此软件可以直接录入各个学生的基本通讯信息,并且会将所有信

息自动保存到磁盘上。

2. 通过此软件可以直接对已录入的各个学生的通讯基本信息进行修改,

并且修改完成后会将更改后的信息情况自动保存到原磁盘文件中。

3. 通过此软件可以直接对信息1002班每个同学的基本信息情况进行查

询。

【算法思想】

1.根据要求,通讯录数据以文本文件存放在文件中:

2.需要提供文件的输入输出的等操作:

3. 还需要保存记录已进行修改,删除,查找的操作:

4. 另外还需提供键盘式选择菜单实现功能的选择。

【总体设计】

图1 系统功能模块图

【详细设计】

主函数

主函数设计要求简洁,只提供部分提示语和函数的调用

【程序】

图2. 主函数流程图

Void menu() /*主界面*/

{

int n, w1;

void enter(); void add(); void modify(); void browse(); void delete(); void search();

do

{

puts("\t*******菜单**************\t\n\n");

puts("\t\t\t\t1.新建联系人");

puts("\t\t\t\t2.添加联系人");

puts("\t\t\t\t3.修改");

puts("\t\t\t\t4.删除");

puts("\t\t\t\t5.浏览");

puts("\t\t\t\t6.查找");

puts("\t\t\t\t7.退出");

puts("\n\n\t*****信息1002班通讯录*************\t\n");

printf("请选择服务种类(1-7) : [ ]\b\b");

scanf("%d",&n);

if(n<1||n>7)

{w1=1;getchar();} else w1=0; }while(w1==1); switch(n) {

case 1: enter(); break; /*输入模块*/ case 2: add(); break; /*添加模块*/ 【模块流程图】

main 函数

enter

browse

delete函数

【程序使用方法】

1. 执行程序,按照界面提示进行选择。输入“1”,进入新建联系人。

2. 按照程序提示,分别输入信息1002班所有同学的通讯基本信息。(注:

这里默认为信息1002班有30名同学,可以通过宏定义进行修改。)

3. 输入成功后,自动返回主界面。输入“5”,进入通讯录预览,程序自

动将各个已录入同学的基本通讯信息输出到屏幕上。

4. 输入“2”返回主界面。输入“3”,进入基本通讯信息修改,按照提示

进行输入。

5. 输入成功后,输入“1”浏览输入信息,输入“2”返回主界面。输入

“4”,进行删除根据提示操作。

6. 输入“6”进行查找,根据提示“1”按姓名查找,“2”按电话号码查

找。

7. 输入“1”浏览所查找信息,“2”返回主界面。输入“7”退出程序。

2. 程序上机调试报告

【语法错误及其排除】

1、单词拼写错误,导致出现没有定义的变量。

2、宏定义时在末尾处加上了分号,应该不加分号。

3、菜单输出时不整齐。

【算法错误及其排除】

1、逐个检查,用查找替换等。

2、在修改个人通讯信息时,不小心将姓名删除。

3.程序测试结果

1. 新建联系人;图一

2. 添加联系人;图二

3. 修改,删除联系人信息;图三

4. 浏览,查找。图四

图一

图二

图三

图四

【收获及体会】

通过为期十多天的课程设计,我对《C语言》这门课程有了更深一步的了解。它是计算机程序设计的重要理论技术基础,在我们信息与计算科学专业的学习中占据着十分重要的地位。同时也使我们知道,要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。因为我们学习知识就是为了实践。而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西。

运用《C语言》中的算法思想作数据结构,结合C语言基本知识,编写一个通讯录管理系统。通过完成本课题,进一步熟悉C语言的基本知识,并掌握数据结构的一些基本算法思想,掌握C语言的文件操作(包括从磁盘读入和向磁盘写入内容),进一步熟悉指针的用法,数组的建立运用和函数的调用等。

4. 源程序代码

#define N 30 //(宏定义)学生人数

#include //预编译命令

#include //预编译命令

struct student //定义学生基本通讯信息的结构体

{char name[20]; char phone[50]; char QQnum[15]; char dorm[20];}stu[N];

void printf_face()

{ printf("\n\t姓名\t电话号码\tQQ号\t宿舍号\n"); }

void printf_one(int i)

{ printf("\t%s\t%s\t%s\t%s\n",stu[i].name,stu[i].phone,stu[i].QQnum,s tu[i].dorm); }

void printf_n(int n)

{ int j;

for(j=0;j

{ if((j!=0)&&(j%10==0)) {printf("\n\nPress any key to continue...:"); getchar(); puts("\n\n");}

printf_one(j);

} getchar();

}

int load()

{ FILE *fp;

int i;

if((fp=fopen("file","rb"))==NULL)

{ printf("\nCan not open file\n");

exit(0);

}

for(i=0;!feof(fp);i++)

fread(&stu[i],sizeof(struct student),1,fp);

fclose(fp);

return(i-1);

}

int modify_data(int i,int n)

{ int c,w1; void input(int i); void menu();

do

{ puts("\n修改选项=>\n\n 1).姓名 2).电话号码 3).QQ号 4).宿舍号5).所有数据 6).取消并返回");

printf("请选择?: [ ]\b\b");

scanf("%d",&c);

相关文档
最新文档