通讯录程序设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学生通讯录系统
学校:中北大学
姓名:***
学号:**********
班级:A02
学院:软件学院
指导教师:***
题目:学生通讯录
实训目的:
掌握C语言的基本语法规则,以及深入理解函数
的调用,指针,结构体和链表的相关知识点。做
好项目的具体分析。
实训内容:
完成对学生通讯录程序调试以及运行
实训内容:
设计一个实用的小型通讯录程序,具有添加,查询和删除功能。由姓名,电话号码1,电话号
码2,QQ号组成,姓名可以由字符和数字混合
编码。电话号码可由字符和数字组成。实现功能:实训要求:
(1)系统应显示这样的菜单,请选择系统功能项:a 信息录入功能
b信息浏览功能
c信息查询功能((按姓名查询)
d信息修改功能
e系统退出功能
(2)执行一个具体的功能之后,程序将重新显示菜单。
(3)将通讯录基本信息保存到文件中。
*总体设计模块和程序规划结构图如图1.0,其中包含各个函数的调用
程序详细结构图以及涉及到的核心代码:录入信息结构图1.1
void input_record1()//输入函数总,包含了创建学生还有指针移动
{
//void print_menu_main();//输入菜单
char continue_input = 'N';//判断是否继续输入
stu *pLastStu = NULL;//最后学生的指针
stu *pNewStu = (stu *)malloc(sizeof(stu));//创建学生节点返回其地址,这是链表
pNewStu->next = NULL;//节点的指针指向空
create_stu_by_input(pNewStu);//创建一个学生
if(head == NULL)
{
head = pNewStu;
} else{
pLastStu = get_last_student(head);//移动指针
pLastStu->next = pNewStu;// 连接节点
}
printf("继续输入学生成绩?(Y 继续,N 返回菜单)");
getchar();
continue_input = getchar();
if (continue_input == 'n' || continue_input == 'N'){
print_menu_main();
}
else{
input_record1();
}
}
输出函数结构图以及核心代码
void show_record1(){//输出函数总:包含了三部分表格头,表格尾巴,含有学生信息
void print_menu_main();//
stu *p = head;
print_table_head();
while(p != NULL) {
print_table_row(p);
p = p->next;
}
print_table_buttom();
printf("按任意键返回菜单...\n");
getch();
print_menu_main();
}
保存文件结构图以及核心代码
void save_to_file1(){//保存文件总
void print_menu_main();//所调用的函数的声明
void save_to_file();
FILE *fp;
char file[100];
stu *p= head;
printf("请输入文件名:");
scanf("%s", file);
save_to_file();
fp=fopen(file, "w");
while(p != NULL){
fprintf(fp, "%d %s %s %s %s %s\n",
p->xuhao, p->num, p->name, p->sex, p->QQ, p->phone);
p = p->next;
}
fclose(fp);
printf("保存成功!\n按任意键返回菜单..\n");
getchar();
getchar();
print_menu_main();
}
加载信息结构图以及核心代码
void load_from_file1(){//重新加载函数总
void print_menu_main();
void clear_record(stu *p);//所调用的函数声明
FILE *fp;
char file[100];
clear_record(head); /*释放整个链表*/
stu *p= head, *q;
printf("请输入文件名:");
scanf("%s", file);
fp=fopen(file, "r");
stu *pLastStu = NULL;
while(!feof(fp)){//如果未遇到输入文件的结束标志stu *pNewStu = (stu *)malloc(sizeof(stu));
pNewStu->next = NULL;
fscanf(fp, "%d %s %s %s %s %s",
&(pNewStu->xuhao),pNewStu->num, pNewStu->name, pNewStu->sex,
pNewStu->QQ, pNewStu->phone);