c语言通讯录实验报告
C语言课程设计通讯录实验报告
太原学院计算机工程系课程设计报告课程名称:数据结构课程设计姓名:苏建花专业班级:计算机工程系网络三班指导教师:翟婷婷2015年12 月30日计算机工程系课程设计报告课程名称:C语言课程设计课程设计题目:通讯录管理系统班级:网络14-3班姓名:苏建花学号:目录(参考)1.设计目的与要求 (X)1.1题目与设计要求 (X)1.2本程序涉及的知识点 (X)2.功能设计 (X)2.1总体设计 (X)2.2详细设计 (X)3.程序实现 (X)3.1程序实现时应考虑的问题 (X)3.2 XX模块核心代码 (X)4.测试分析 (X)4.1 测试结果及分析 (X)4.总结 (X)参考文献 (X)1、设计目的与要求这次课程设计的目的在于:1.熟练的掌握C语言课程中所学的理论知识,并对其进行应用;2.通过综合C语言的基本知识来解决实际问题;3.加强分析和解决问题的能力;4.提高实践动手能力,将知识化为实际成果1.1 题目与设计要求(1)题目:通讯录(2)设计要求a、建立通讯录信息,信息至少包含姓、名、电话号码、住址、分类(如同事、朋友、同学、家人等)等。
b、该系统提供添加、删除、修改和查找功能,其中按姓名方式删除、修改,按姓名、姓氏方式查找。
c、将通讯录保存在文件中。
d、能够输出通讯录中的信息。
1.2 本程序设计的知识点(1)采用结构体数组。
struct Person{char a[16];char s[16];char d[16];char f[24];struct Person *next;}stu;(2)运用函数之间的调用主函数可以调用子函数,子函数之间可以相互调用,子函数不能调用主函数,主函数可以多次调用一个子函数,也可以一次调用多个子函数。
(3)利用指针变量struct Person *head;struct Person *p1,*p22 、功能设计添加:添加通讯录记录修改:修改通讯录记录删除:删除通讯录记录查找:查询通讯录记录显示:显示通讯录记录统计:统计通讯录数目2.1需求分析信息记录要存放到文件中去,因而要实现文件的输入输出操作;要实现数据的插入、删除、修改和显示功能,因而要实现插入、删除、修改和显示操作;要实现按人名或姓氏进行查询的功能,因而要提供查找操作;另外还应该提供键盘式选择菜单以实现功能选择。
C语言课程设计通讯录实验报告
太原学院计算机工程系课程设计报告课程名称:数据结构课程设计姓名:苏建花学号: 20140903336专业班级:计算机工程系网络三班指导教师:翟婷婷2015年12 月30日计算机工程系课程设计报告课程名称:C语言课程设计成绩:课程设计题目:通讯录管理系统指导教师:(签名):班级:网络14-3班姓名:苏建花学号:20140903328目录(参考)1. 设计目的与要求 (X)1.1 题目与设计要求 (X)1.2 本程序涉及的知识点 (X)2. 功能设计 (X)2.1总体设计 (X)2.2详细设计 (X)3. 程序实现 (X)3.1程序实现时应考虑的问题 (X)3.2 XX模块核心代码 (X)4.测试分析 (X)4.1 测试结果及分析 (X)4. 总结 (X)参考文献 (X)1、设计目的与要求这次课程设计的目的在于:1.熟练的掌握C语言课程中所学的理论知识,并对其进行应用;2.通过综合C语言的基本知识来解决实际问题;3.加强分析和解决问题的能力;4.提高实践动手能力,将知识化为实际成果1.1 题目与设计要求(1)题目:通讯录(2)设计要求a、建立通讯录信息,信息至少包含姓、名、电话号码、住址、分类(如同事、朋友、同学、家人等)等。
b、该系统提供添加、删除、修改和查找功能,其中按姓名方式删除、修改,按姓名、姓氏方式查找。
c、将通讯录保存在文件中。
d、能够输出通讯录中的信息。
1.2 本程序设计的知识点(1)采用结构体数组。
struct Person{char a[16];char s[16];char d[16];char f[24];struct Person *next;}stu;(2)运用函数之间的调用主函数可以调用子函数,子函数之间可以相互调用,子函数不能调用主函数,主函数可以多次调用一个子函数,也可以一次调用多个子函数。
(3)利用指针变量struct Person *head;struct Person *p1,*p22 、功能设计添加:添加通讯录记录修改:修改通讯录记录删除:删除通讯录记录查找:查询通讯录记录显示:显示通讯录记录统计:统计通讯录数目2.1需求分析信息记录要存放到文件中去,因而要实现文件的输入输出操作;要实现数据的插入、删除、修改和显示功能,因而要实现插入、删除、修改和显示操作;要实现按人名或姓氏进行查询的功能,因而要提供查找操作;另外还应该提供键盘式选择菜单以实现功能选择。
C语言课程设计通讯录实验报告
C语言课程设计通讯录实验报告实验目的:本实验旨在通过设计一个通讯录程序,加深理解和掌握结构体、函数和文件操作等C语言知识,并培养学生的实践能力和解决问题的能力。
实验要求:设计一个通讯录程序,能够实现添加联系人、删除联系人、查找联系人、修改联系人信息等基本功能,并能够将联系人信息保存到文件中,实现数据的持久化存储。
实验原理:通讯录程序的数据结构可以设计为一个结构体数组,每个元素表示一个联系人,结构体包含姓名、电话号码、地址等信息。
通过使用不同的函数实现不同的功能,如添加联系人函数addContact()、删除联系人函数deleteContact()、查找联系人函数searchContact()等。
实验步骤:1. 定义一个结构体类型,包含姓名、电话号码和地址等信息。
2. 声明并实现各个功能函数,如添加联系人函数addContact()、删除联系人函数deleteContact()、查找联系人函数searchContact()等。
3. 在主函数中使用循环菜单来实现用户的各种操作选择。
4. 将联系人信息保存到文件中,实现数据的持久化存储。
5. 编译并运行程序,验证程序的正确性和功能完整性。
实验结果:通过实验,成功设计并实现了一个通讯录程序,能够实现添加联系人、删除联系人、查找联系人、修改联系人信息等基本功能,并能够将联系人信息保存到文件中,实现数据的持久化存储。
实验总结:本实验通过设计一个通讯录程序,加深了对结构体、函数和文件操作等C语言知识的理解和掌握,同时也培养了解决问题的能力和实践能力。
通过实验,我进一步理解了结构体的定义和使用、函数的声明和调用、文件的打开和关闭等操作。
在实验过程中,我也遇到了一些问题,如如何优化查找联系人的算法、如何处理文件打开失败的情况等,通过思考和调试逐步解决了这些问题。
实验过程中的问题和解决方法不仅加深了对C 语言的理解,也提高了解决问题的能力。
C语言实验报告材料 通讯录
六
源程序:
#include <stdio.h>
#include <malloc.h>
#include <string.h>
#define LEN sizeof(struct people)
void show();
void delete(char *);
void query(char *);
int main(int argc, char const *argv[])
{
struct people * peo;
char nam[10];
int i, choose = 0;
for (i = 0; i < 60; ++i)
C语言集中上机报告
院系:班级:
姓名:
合作者:
指导教师:
2015年6月1日
一
课程设计的目的
实现个人通讯录管理,录入包括姓名、地址、邮政编码、电话号码的信息。其中:
1、对n名学生包括姓名、地址、邮政编码、电话号码等信息进行输入;
2、显示所有记录的信息,若无记录,则给出提示信息;
3、可以按姓名进行查询;
4、可以按姓名进行删除;
show();
break;
case 3:
printf("\n请输入要删除联系人的姓名:");
scanf("%s", nam);
delete(nam);
break;
case 4:
printf("\n请输入要查询联系人的姓名:");
通讯录管理系统--C语言程序设计实习报告
C 语言课程设计题目:通讯录管理系统设计者:院系:数理学院专业:信息与计算科学班号:123111学号:***********指导教师:***2012年6月29日1.题目要求通讯录管理系统是具有数据插入、更新、删除、显示和查询功能的电话簿管理程序。
(1)数据包括姓名、工作单位、电话号码和E-MAIL地址等。
(2)可对记录中的姓名和电话号码进行更新。
(3)可增加和删除记录。
(4)可显示所有的保存的记录。
(5)可按姓名或电话号码进行查询。
2.需求分析1.信息记录要存放到文件中,要实现文件的输入、输出功能;2.实现数据的添加、删除、更新和显示,要提供输入、删除、更新和显示功能;3.要实现按人名或电话号码进行查询,因而要提供查找功能;4.应该提供键盘式选择菜单以实现功能选择。
5.采用模块化,由上到下的设计方法,通过数字选择菜单功能,上级菜单可进入下级菜单,下级菜单可返回上级菜单。
3.总体设计根据上面得需求分析,系统有菜单选择、数据输入、数据查找、数据更新、数据的存储等功能。
可以将系统设计分为四大模块,即显示、查找、更新(包括增加和删除)和退出,如图1所示。
其中,主要功能是显示、查询和更新三个模块。
4.详细设计4.1主函数主函数设计比较简洁,只提供输入、功能处理和输出部分得函数调用。
其中各功能模块采用菜单方式选择。
另外,菜单部分也可以写出函数。
具体流程图如图2所示。
【程序】main(){int n,w;do{puts("***************通讯录管理系统***************\n");puts("********************菜单********************\n");puts("1.显示通讯录\n");puts("2.查找\n");puts("3.更新\n");puts("4.退出\n");puts("********************************************\n");printf("选择功能(1-4):");scanf("%d",&n);if(n<1||n>4){w=1;getchar();}else {w=0;}}while(w==1);switch(n) /*选择功能*/{case 1:list();break; /*列出通讯录*/ case 2:find();break; /*查找*/case 3:choose();break; /*更新通讯录*/ case 4:printf("谢谢使用!\n\n"); /*退出*/ }}4.2各功能模块设计★数据结构通讯录的数据信息:姓名、工作单位、电话号码、E-MAIL均采用字符型数组,用结构体的形式,把各信息作为结构的成员。
c语言简易通讯录报告
实习报告①需求分析建立一个通讯系统,系统中保存着人员的姓名,电话,住址,邮编等信息,通过该系统的界面可以浏览这些信息,也可以插入,添加及删除某个人的信息1)录入人员信息,创建通讯录文件2)进行相应的插入,添加,删除操作,并输出相应的结果(1)确定设计程序接收的输入数据和输出数据的形式、取值范围;每条通讯录包含姓名,街道,城市,邮编,电话号码。
都以字符型数组存储,分别定义为15、30、20、20、20字节长。
输入同输出。
(2)初步列出测试数据以及测试目的;②程序设计说明程序中用到的所有数据类型的定义。
绘制主程序的流程图,以及各子程序模块间的调用关系流程图:③调式分析(1)列出调式过程中遇到的主要问题,并说明解决方法;链表和结构体在实习刚开始时理解不透彻,只知道大概需要用到程序中,翻阅了一些资料后基本学会使用了。
开始用if,else语句轮寻菜单中用户输入的数字对应功能,后来发现用swith,case更方便灵活。
(2)分析算法的时间和空间复杂度,如果有给出算法改进思想;作为一个完整可用的通讯录还缺少保存信息到硬盘功能。
但本人基础较薄,有限的实习时间内无法完成。
希望今后有机会继续完善。
④使用说明说明编写程序的使用方法,详细列出每一操作步骤;⑤测试结果列出若干输入的测试数据、测试目的、产生的结果;简易通讯录系统:Designed by Irene=================================输入纪录-----------------0显示所有纪录-------------1查询纪录-----------------2删除纪录-----------------3退出---------------------4=================================请输入数字(0~4)选择,enter确定并输入:姓名街道城市邮编------------------------------------- Irenedfbj100034110------------------------------------- 继续输入吗?(Y/N)y姓名街道城市邮编------------------------------------- ericfdbj100076119------------------------------------- 继续输入吗?(Y/N)y姓名街道城市邮编------------------------------------- rareijbj100056120------------------------------------- 继续输入吗?(Y/N)n简易通讯录系统:Designed by Irene================================= 输入纪录-----------------0显示所有纪录-------------1查询纪录-----------------2删除纪录-----------------3退出---------------------4=================================请输入数字(0~4)选择,enter确定并输入: 1显示所有记录如下:-------------------------------------姓名街道城市邮编------------------------------------- Irene df bj 100034-------------------------------------eric fd bj 100076-------------------------------------rare ij bj 100056-------------------------------------简易通讯录系统:Designed by Irene================================= 输入纪录-----------------0显示所有纪录-------------1查询纪录-----------------2删除纪录-----------------3退出---------------------4=================================请输入数字(0~4)选择,enter确定并输入:2请输入姓名进行查询:Irene------------------------------------- 姓名街道城市邮编------------------------------------- Irene df bj 100034------------------------------------- 查询成功!继续查询?(Y/N)n简易通讯录系统:Designed by Irene================================= 输入纪录-----------------0显示所有纪录-------------1查询纪录-----------------2删除纪录-----------------3退出---------------------4=================================请输入数字(0~4)选择,enter确定并输入: 3请输入姓名删除纪录:eric确定要删除吗?(Y/N)ySuccess to delete!简易通讯录系统:Designed by Irene=================================输入纪录-----------------0显示所有纪录-------------1查询纪录-----------------2删除纪录-----------------3退出---------------------4=================================请输入数字(0~4)选择,enter确定并输入: ⑥其他(1)注释源程序代码;#include <stdio.h>#include <string.h>#include <malloc.h>typedef struct txl{char name[15];char street[30];char city[20];char eip[20];char phone[20];}dtxl; /*建立通讯录信息结构体;*/ typedef struct dlnode{dtxl data;struct dlnode *prior;struct dlnode *next;}dnode; /*建立双向链表结构体;*/ dnode *head;void enter(void){dnode *p,*rear;char flag='Y';head=(dnode *)malloc(sizeof(dnode));rear=head;head->next=head;head->prior=head; /*建立双链表空头节点;*/while(flag=='Y'||flag=='y'){p=(dnode *)malloc(sizeof(dnode));printf(" 姓名街道城市邮编电话\n");printf("-----------------------------------------------\ n");scanf("%s %s %s %s %s",&p->,&p->data.street,&p->data.city,&p->data.eip,&p->data.phone);rear->next=p;p->prior=rear;rear=p;p->next=head; /*向双链表中动态增加节点数据;*/printf("-----------------------------------------------\ n");printf("继续输入吗?(Y/N)\n");scanf("%s",&flag);}printf("\n");}//显示子程序void display(dnode *head){dnode *p;p=head->next;printf("显示所有记录如下:\n");printf("-----------------------------------------------\n");printf(" 姓名街道城市邮编电话\n");printf("-----------------------------------------------\n");while(p!=head){printf("%s %8s %8s %8s %8s",p->,p->data.street, p->data.city,p->data.eip,p->data.phone);printf("\n");printf("-----------------------------------------------\ n\n");p=p->next;}}dnode *search(dnode *head){dnode *p;char name[9];p=head->next;scanf("%s",name);while(p!=head&&p&&strcmp(p->,name)!=0){p=p->next;}return p;}//删除子程序void delete(dnode *head){char f;dnode *p;p=search(head);if(p==head){printf("没有找到要删除的数据!!!\n\n");return;}else{printf("确定要删除吗?(Y/N)\n");scanf("%s",&f);if(f=='Y'||f=='y'){p->prior->next=p->next;p->next->prior=p->prior;free(p);printf("Success to delete!\n");}}}//退出子程序void quit(void){exit(0);}//主程序void main(){ char flag='Y';for(;;){dnode *q;int ch;printf("简易通讯录系统:\n");printf(" Designed by Irene\n\n");printf("=================================\n");printf(" 输入纪录-----------------0\n");printf(" 显示所有纪录-------------1\n");printf(" 查询纪录-----------------2\n");printf(" 删除纪录-----------------3\n");printf(" 退出---------------------4\n"); /*通讯录提示信息;*/printf("=================================\n");printf("请输入数字(0~4)选择,enter确定并输入:\n");scanf("%d",&ch);//菜单分支选择switch(ch){case 0:enter();break;case 1:display(head);break;case 2:jmp: printf("请输入姓名进行查询:\n");q=search(head);if(q!=head){printf("-----------------------------------------------\ n");printf(" 姓名街道城市邮编电话\n");printf("-----------------------------------------------\ n");printf("%s %8s %8s %8s %8s",q->,q->data.street, q->data.city,q->data.eip,q->data.phone);printf("\n-----------------------------------------------\n");printf("查询成功!\n");printf("\n继续查询?(Y/N)\n");scanf("%s",&flag);if(flag=='Y'||flag=='y')goto jmp;}elseprintf("对不起,没有此数据相关的纪录!!!\n\n");break;case 3:printf("请输入姓名删除纪录:\n");delete(head);break;case 4:quit();break;default:printf("\n\n按错键了吧?请输入数字0-6!\n\n\n");} /*用SWITCH函数选择菜单;*/}}(2)如果结果中有多个文件,列出文件名清单,注明每个程序的作用。
通讯录C实验报告
C#实验报告——我的通讯录学校:西安工程大学学院:计算机科学学院专业:姓名:学号:一,实验题目:我的通讯录二:实验设计所用语言:C#,平台visualstudio 数据库:SQL sever2005三:实验目的:实现查询我的好友信息,实现增,删,改功能四:实验内容及步骤:(1)创建数据库(2)登录界面:登录成功登录按钮单击代码:private void button1_Click(object sender, EventArgs e){if (textBox1.Text == string.Empty || textBox2.Text == string.Empty) {MessageBox.Show("信息不完整!!", "登录");return;}if (textBox1.Text.Equals("admin") || textBox2.Text.Equals("admin")) {MessageBox.Show("登录成功!!", "登录");this.Hide();new Form2().Show();}else{MessageBox.Show("用户名或密码错误!!", "登录"); }}退出按钮单击代码:private void button2_Click(object sender, EventArgs e){this.Close();}(3)浏览/查找界面:private void Form2_Load(object sender, EventArgs e){string connStr = "Data Source=.;Initial Catalog=通讯录;Persist Security Info=True;User ID=ftf;Password=935285641;";string _sql = "select XM as '姓名',XB as '性别',DH as '电话',DZ as '地址',QQ as 'QQ'from TongXun";SqlConnection conn = new SqlConnection(connStr);SqlDataAdapter sda = new SqlDataAdapter(_sql, conn);DataSet ds = new DataSet();sda.Fill(ds);dataGrid.DataSource = ds.Tables[0].DefaultView;}产生SQL语句代码:private void MakeSqlStr(){sql = "";if (name.Text.Trim() != string.Empty){sql = " and XM like '%" + name.Text.Trim() + "%'";}if (xingbie.Text.Trim() != string.Empty){sql += "and XB like '%" + xingbie.Text.Trim() + "%'";}}查询按钮单击代码:private void button1_Click(object sender, EventArgs e){MakeSqlStr();string connStr = "Data Source=.;Initial Catalog=通讯录;Persist Security Info=True;User ID=ftf;Password=935285641;";string _sql = "select XM as '姓名',XB as '性别',DH as '电话',DZ as '地址',QQ as 'QQ'from TongXun where 1=1"+sql;SqlConnection conn = new SqlConnection(connStr);SqlDataAdapter sda = new SqlDataAdapter(_sql, conn);DataSet ds = new DataSet();sda.Fill(ds);dataGrid.DataSource = ds.Tables[0].DefaultView;}添加删除按钮单击代码:private void button3_Click(object sender, EventArgs e){this.Hide();new Form6().Show();}退出按钮单击代码:private void button3_Click(object sender, EventArgs e){this.Close();// Form1.Close();}(3)浏览界面:界面更改联系人删除联系人添加联系人private void Form3_Load(object sender, EventArgs e){string connStr = "Data Source=.;Initial Catalog=通讯录;Persist Security Info=True;User ID=ftf;Password=935285641;";string _sql = "select XM as '姓名',XB as '性别',DH as '电话',DZ as '地址',QQ as 'QQ'from TongXun";SqlConnection conn = new SqlConnection(connStr);SqlDataAdapter sda = new SqlDataAdapter(_sql, conn);DataSet ds = new DataSet();sda.Fill(ds);dataGridView1.DataSource = ds.Tables[0].DefaultView;}单击GridView1表格代码:private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e){DataGridViewRow dgvRow = dataGridView1.Rows[e.RowIndex];DataGridViewCellCollection dgvCC = dgvRow.Cells;xingming.Text = dgvCC[0].Value.ToString();if (dgvCC[1].Value.ToString().Contains("男")){nan.Checked = true;}else{nv.Checked = true;}dianhua.Text = dgvCC[2].Value.ToString();dizhi.Text = dgvCC[3].Value.ToString();qq.Text = dgvCC[4].Value.ToString();}更新按键单击代码:private void button1_Click(object sender, EventArgs e){string connStr = "Data Source=.;Initial Catalog=通讯录;Persist Security Info=True;User ID=ftf;Password=935285641;";string _sql = "select count(*) from TongXun where XM='" + xingming.Text + "'" ;SqlConnection conn = new SqlConnection(connStr);SqlCommand cmd = new SqlCommand(_sql, conn);try{conn.Open();int cnt = (int)cmd.ExecuteScalar();string sex = nan.Checked ? "男" : "女";if (cnt == 1){cmd = new SqlCommand(_sql, conn);_sql = "update TongXun set XM='" + xingming.Text + "',XB='" + sex + "',DH='" + dianhua.Text + "',DZ='"+ dizhi.Text + "',QQ='"+ qq.Text + "' where XM='" + xingming.Text + "'";}else{_sql = "insert into TongXun values('" + xingming.Text + "','" + sex + "','" + dianhua.Text + "','" + dizhi.Text + "','" + qq.Text + "')";}cmd = new SqlCommand(_sql, conn);cmd.ExecuteNonQuery();Form3_Load(null, null);if (cnt == 1){MessageBox.Show(xingming.Text.Trim()+"更新成功!!", "更新提示");}else{MessageBox.Show(xingming.Text.Trim() + "添加成功!!", "添加提示");}}finally{conn.Close();}}备注:单击可选择可内容,单击‘更新’若姓名相同更改内容,否者增加联系人。
通讯录实验报告c
通讯录实验报告c篇一:C语言实验报告通讯录C语言集中上机报告院系:班级:姓名:合作者:指导教师:XX年6月1日通信录目录一概述 ................................................ ................................................... (3)课程设计的目的 ................................................ ................................................... . (3)二总体方案 ................................................ ................................................... . (4)三程序的调试与运行结果说明 ................................................................................................... .. 4四课程设计总结 ................................................ ................................................... .. (6)五后记 ................................................ ................................................... (7)六附录 ................................................ ................................................... (7)参考文献 ................................................ ................................................... .. (11)一概述课程设计的目的实现个人通讯录管理,录入包括姓名、地址、邮政编码、电话号码的信息。
C语言实训报告范文(手机通讯录)
C语言实训报告范文(手机通讯录)根据需求,该系统所应实现的功能有以下一些:各种基本数据的录入。
如:通讯录基本信息录入。
显示全部记录功能。
可以查看通讯录中的全部记录。
模糊查找功能。
例如输入“张”,则分条显示全部姓“张”的信息,直到用户确认显示信息为用户所要找的信息,或者提示:通讯录中没有该信息。
模糊删除功能:与模糊查找类似,可以只知道信息的某部分,进而查找所要删除的信息,并由用户确认是否删除。
模糊修改功能:与其他模糊功能类似,可以只知道信息的某部分,进而查找所要修改的信息,并由用户确认是否修改图1.1通讯录功能需求2、系统设计2.1总体设计采用模块化的程序设计方法,即将较大的任务按照一定的原则分为一个个较小的任务,然后分别设计各个小任务。
需要注意的是划分出来的模块应该相对独立但又相关,且容易理解。
可以用模块化层次结构图(即模块图)来分析其任务的划分,一般从上到下进行,最上面一层是主模块,下面各层是其上一层模块的逐步细化描述。
若选择1,则调用voidadd()函数,执行增加记录操作;若选择2,则调用voidmodify()函数,执行修改记录操作;若选择3,则调用tel某earch()函数,执行查询记录操作;若选择4,则调用voiddel()函数,执行删除记录操作;若选择5,则调用voidhow()函数,执行显示全部记录操作;若选择6,则调用tel某dimearch()函数,执行模糊查找操作;若选择0,则调用voidave()、voidfre(),函数,执行保存记录,并释放链表空间操作;若输入为0~6之外的值,给出选择错误的提示。
2.2.3添加记录模块程序一开始就从默认文件调用fanf()函数读入记录(若文件存在且有记录)到结构体中。
在添加每条信息时均在提示框显示有相关提示,当用户选择0退出添加记录时,系统会清屏并返回到主菜单供用户再次选择其他操作。
2.2.4查询记录模块此模块包括精确查询和模糊查询两大功能。
C语言课程设计通讯录实验报告
C语言课程设计通讯录实验报告Revised as of 23 November 2020太原学院计算机工程系课程设计报告课程名称:数据结构课程设计姓名:苏建花学号专业班级:计算机工程系网络三班指导教师:翟婷婷2015年12 月30日计算机工程系课程设计报告课程名称:C语言课程设计课程设计题目:通讯录管理系统班级:网络14-3班姓名:苏建花学号:目录(参考)1.设计目的与要求 (X)1.1题目与设计要求 (X)1.2本程序涉及的知识点 (X)2.功能设计 (X)总体设计 (X)详细设计 (X)3.程序实现 (X)程序实现时应考虑的问题 (X)XX模块核心代码 (X)4.测试分析 (X)测试结果及分析 (X)4.总结 (X)参考文献 (X)1、设计目的与要求这次课程设计的目的在于:1.熟练的掌握C语言课程中所学的理论知识,并对其进行应用;2.通过综合C语言的基本知识来解决实际问题;3.加强分析和解决问题的能力;4.提高实践动手能力,将知识化为实际成果题目与设计要求(1)题目:通讯录(2)设计要求a、建立通讯录信息,信息至少包含姓、名、电话号码、住址、分类(如同事、朋友、同学、家人等)等。
b、该系统提供添加、删除、修改和查找功能,其中按姓名方式删除、修改,按姓名、姓氏方式查找。
c、将通讯录保存在文件中。
d、能够输出通讯录中的信息。
本程序设计的知识点(1)采用结构体数组。
struct Person{char a[16];char s[16];char d[16];char f[24];struct Person *next;}stu;(2)运用函数之间的调用主函数可以调用子函数,子函数之间可以相互调用,子函数不能调用主函数,主函数可以多次调用一个子函数,也可以一次调用多个子函数。
(3)利用指针变量struct Person *head;struct Person *p1,*p22 、功能设计添加:添加通讯录记录修改:修改通讯录记录删除:删除通讯录记录查找:查询通讯录记录显示:显示通讯录记录统计:统计通讯录数目需求分析信息记录要存放到文件中去,因而要实现文件的输入输出操作;要实现数据的插入、删除、修改和显示功能,因而要实现插入、删除、修改和显示操作;要实现按人名或姓氏进行查询的功能,因而要提供查找操作;另外还应该提供键盘式选择菜单以实现功能选择。
C语言课程设计报告 通讯录
《C语言课程设计》目录摘要 (3)一、课程设计目的 (4)二、课程设计内容 (4)三、总体设计 (5)四、详细设计 (6)(1)数据结构设计 (6)(2)模块接口设计 (7)(3)流程图 (7)五、调试与测试 (10)(1)调试过程中的主要问题 (10)(2)测试结果的分析与讨论 (10)六. 实习总结 (12)注: 13摘要日益繁多的人际交往使得我们很难搞清楚与每个人之间的联系方式, 特别是对于做经常出差的人来说更是难, 所以通讯录能够便捷的给我们带来所需要的相关信息。
而随着计算机的普及, 人们的生活摆脱了传统式的记事本、电话簿, 越来越多的靠计算机来帮助人们记住这些事情, 极其简便。
这就需要有一个使用的通讯录管理系统, 用户可以方便的通过自己电脑的通讯录管理系统, 来随时查阅自己所需要的信息, 而不必再大费周折去翻开那繁琐的记事本。
通讯录管理系统是一个专门针对储存用户联系方式以及一些简单个人信息的实用管理系统, 它方便了用户对众多客户、朋友、同事等个人信息的储存和快速查阅的功能, 大大减少了查找过程的时间。
一、课程设计目的1、通过课程设计, 加深对结构化设计思想的理解, 能对系统功能进行分析, 并设计合理的模块化结构。
2、通过课程设计, 学会设计数据结构。
其中包括对结构数组、链表和数据结构等知识的运用。
3、通过课程设计, 提高程序开发功能, 能运用合理的控制流程编写清晰高效的程序。
4、通过课程设计, 训练C程序调试能力, 能将一个中小型各级组织系统联调通过。
通过课程设计, 开发一个中小型系统, 掌握系统研发全过程。
通话课程设计, 培养分析问题、解决实际问题的能力。
二、课程设计内容(1)设计一个实用的通讯录管理系统, 能以简便高效的方式对通讯录进行管理和检索, 具体要示:(2)录入:通讯录信息包括:编号, 姓名, 单位, 电话, 地址, QQ, 邮编。
以结构通讯录信息。
(3)更新: 能插入、删除通讯录信息。
C语言通讯录管理系统实验报告
《程序设计与算法综合实习I》通讯录题目:班级:学生学号:学生姓名:指导老师:提交时间:成绩:软件学院课程设计报告评分表1、对问题的描述:通讯录1.1、简要描述:设计一个通讯录程序,并简单实现通讯人的添加、删除、修改、查找、统计、存入文件等功能1.2、系统功能分析:添加功能修改功能删除功能查找功能统计功能存入文件功能1.3、开发平台及工具介绍:基于c语言设计该程序,是用codeblocks实现功能。
2、系统设计1.1系统总体结构设计:系统各个功能的总体关系3、功能实现struct Contact//结构体{char Name[20];char Tel[15];char Address[100];char Mail[50];char Birth[10];char Type[15];struct Contact *next;通讯录数据读取修改删除创建联系人查找统计};struct classfy{//统计模块使用结构体char leixing[20];int Numcount;};3.1、主函数开始显示一系列功能选项否输入n,判断n是否是0~6?否根据n的值调用各功能模块函数判断flag是否等于0?是结束具体设计如下:int main(){ //主函数struct Contact *pHead;int n;int flag=1;pHead=(struct Contact*)malloc(sizeof(struct Contact));pHead=create();while(flag==1){menu();printf("请输入要执行的操作:");scanf("%d",&n);switch(n){case 1:insert(pHead);break;case 2:Change(pHead);break;case 3:delete(pHead);break;case 4:Search(pHead);break;case 5:tongji(pHead);break;case 6:shuchu(pHead);break;case 0:flag=0;exit(0);break;default:printf("输入错误,重新输入");scanf("%d",&n);break;}}}3.2、界面设计void menu(){system("cls");printf("\n\n\n\n");printf("\t\tR-----------------通讯录----------------2\n");printf("\t\tR\t\t\t\t\t2\n");printf("\t\tR\t\t\t\t\t2\n");printf("\t\tR\t \t1.增加联系人\t \t2\n");printf("\t\tR\t \t2.修改联系人\t \t2\n");printf("\t\tR\t \t3.删除联系人\t \t2\n");printf("\t\tR\t \t4.查找联系人\t \t2\n");printf("\t\tR\t \t5.统计联系人\t \t2\n");printf("\t\tR\t \t6.列出全部联系人\t2\n");printf("\t\tR\t \t0.退出\t\t\t2\n");printf("\t\tR\t\t\t\t\t2\n");printf("\t\tR\t\t\t\t\t2\n");printf("\t\tR--------Designd By Zheng Weipeng-------2\n"); }3.3、创建函数具体设计如下:struct Contact *create(){ //创建链表 struct Contact *pHead=NULL,*p,*p1; FILE *fp; int n=0;if((fp=fopen("TXL.txt","r"))==NULL){printf("文件创建失败,回车键返回."); getch(); } else{p=p1=(struct Contact*)malloc(sizeof(struct Contact)); fscanf(fp,"%s",p ->Name); fscanf(fp,"%s",p ->Tel);fscanf(fp,"%s",p ->Address); fscanf(fp,"%s",p ->Mail);读取文件内容Fp==NULL ?文件内容赋给链表结束开始否feof (fp )?是否fscanf(fp,"%s",p->Birth);fscanf(fp,"%s",p->Type);while(!feof(fp)){n++;if(n==1) pHead=p;elsep1->next=p;p1=p;p=(struct Contact*)malloc(sizeof(struct Contact));fscanf(fp,"%s",p->Name);fscanf(fp,"%s",p->Tel);fscanf(fp,"%s",p->Address);fscanf(fp,"%s",p->Mail);fscanf(fp,"%s",p->Birth);fscanf(fp,"%s",p->Type);}p1->next=NULL;fclose(fp);return pHead;}}3.4、插入函数struct Contact *insert(struct Contact *pHead){ //插入函数FILE *fp;struct Contact *p,*p1;if((fp=fopen("TXL.txt","a+"))==NULL){printf("文件打开失败");}p=p1=(struct Contact*)malloc(sizeof(struct Contact));p=pHead;while((p->next)!=NULL){p=p->next;}printf("请输入姓名: ");scanf("%s",p1->Name);fprintf(fp,"%s\n",p1->Name);printf("请输入电话: ");scanf("%s",p1->Tel);fprintf(fp,"%s\n",p1->Tel);printf("请输入地址: ");scanf("%s",p1->Address);fprintf(fp,"%s\n",p1->Address);printf("请输入邮箱: ");scanf("%s",p1->Mail);fprintf(fp,"%s\n",p1->Mail);printf("请输入生日: ");scanf("%s",p1->Birth);fprintf(fp,"%s\n",p1->Birth);printf("请输入类型(同学、家人、老师、工作): ");scanf("%s",p1->Type);fprintf(fp,"%s\n\n",p1->Type);p->next=p1;p1->next=NULL;fclose(fp);printf("数据保存成功,任意键返回主菜单.\n");getch();return(pHead);}3.5、修改函数(实现对联系人单项修改)struct Contact Change(struct Contact *pHead){ //修改函数FILE *fp;struct Contact *p1;char flag=0,saveflag=0;int i=0;int n;char a[10],b[20];fp=(fopen("TXL.txt","w"));p1=pHead;printf("\n修改联系人姓名:");scanf("%s",a);while(p1!=NULL){if(strcmp(p1->Name,a)==0){printf("\n找到要修改联系人:\n");printf("姓名:%s\n",p1->Name);printf("电话:%s\n",p1->Tel);printf("地址:%s\n",p1->Address);printf("邮箱:%s\n",p1->Mail);printf("生日:%s\n",p1->Birth);printf("类型:%s\n\n",p1->Type);flag=1;break;}else{p1=p1->next;}}if(flag==0){fclose(fp);printf("没有该条通讯录,回车键返回");getch();}if(flag==1&&p1!=NULL){printf("修改类型:1.姓名2.电话3.地址4.邮箱5.生日6.类型\n");printf("输入数字选择修改类型: ");scanf("%d",&n);printf("输入修改内容: ");scanf("%s",b);switch(n){case 1:p1->Name[0]='\0';strcpy(p1->Name,b);break;case 2:p1->Tel[0]='\0';strcpy(p1->Tel,b);break;case 3:p1->Address[0]='\0';strcpy(p1->Address,b);break;case 4:p1->Mail[0]='\0';strcpy(p1->Mail,b);break;case 5:p1->Birth[0]='\0';strcpy(p1->Birth,b);break;case 6:p1->Type[0]='\0';strcpy(p1->Type,b);break;}}p1=pHead;while(p1!=NULL){fprintf(fp,"%s\n",p1->Name);fprintf(fp,"%s\n",p1->Tel);fprintf(fp,"%s\n",p1->Address);fprintf(fp,"%s\n",p1->Mail);fprintf(fp,"%s\n",p1->Birth);fprintf(fp,"%s\n",p1->Type);p1=p1->next;saveflag=1;}if(flag==1&&saveflag==1){printf("修改成功,任意键返回主菜单");getch();}fclose(fp);return (*pHead);}}3.6、删除函数struct Contact delete(struct Contact *pHead){ //删除函数FILE *fp;struct Contact *p,*p1;int saveflag=0,flag=1;char a[10];fp=fopen("TXL.txt","w");p=pHead;p1=p;printf("请输入要删除联系人的姓名:");scanf("%s",a);while(p!=NULL){if(strcmp(p->Name,a)==0){printf("找到该联系人。
C语言程序设计实训报告之通讯录管理
青岛大学软件技术学院C语言程序设计实训报告姓名任XX专业软件技术班级软件技术班指导教师白伟青2011 年 7月14日目录1问题定义与描述 ................................................................................................................................ - 1 -1. 1问题定义 ............................................................................................................................................ - 1 -1. 2问题描述 ................................................................................................................................................ - 1 - 2总体设计 .................................................................................................................................................. - 1 -2.1主要功能模块 ......................................................................................................................................... - 1 -2.2数据类型定义 ......................................................................................................................................... - 2 -2.3函数定义 .............................................................................................................................................. - 2 - 3详细设计 .................................................................................................................................................. - 2 -3.1每个模块的功能 ..................................................................................................................................... - 2 -3.2流程图 ..................................................................................................................................................... - 3 - 4程序测试 .................................................................................................................................................. - 7 -4.1测试主菜单界面 ..................................................................................................................................... - 7 -4.2测试添加界面 ......................................................................................................................................... - 7 -4.3测试显示界面 ......................................................................................................................................... - 7 -4.4测试删除界面 ......................................................................................................................................... - 8 -4.5测试查询界面 ......................................................................................................................................... - 8 -4.6测试修改界面 ......................................................................................................................................... - 9 -4.7测试保存界面 ......................................................................................................................................... - 9 - 5心得体会 ................................................................................................................................................ - 10 - 6参考文献 ................................................................................................................................................ - 11 - 7附录 ............................................................................................................................................................ - 11 -1问题定义与描述1.1问题定义通讯录管理系统1. 2问题描述✧该程序应该能够提供添加、删除和修改通讯录信息的功能;✧基本信息包含编号、姓名、年龄、电话、通讯地址、电子邮箱等;✧能够提供安不同方式查询的功能;如按姓名、年龄或电话等查询;✧能将通讯录保存在文件中;✧能够输出通讯录信息;✧并且界面友好,易于操作。
c通讯录管理系统实验报告
c通讯录管理系统实验报告C通讯录管理系统实验报告一、引言现代社会的快速发展,人们的生活节奏越来越快,人际交往也变得越来越频繁。
在这样的背景下,通讯录管理系统成为了人们生活中必不可少的工具。
本次实验旨在设计和实现一个简单而实用的C通讯录管理系统,以便更好地满足人们的通讯录管理需求。
二、系统功能设计1. 用户管理功能通讯录管理系统需要提供用户注册和登录功能,以保证用户的信息安全和数据隐私。
2. 联系人管理功能用户可以添加、修改、删除和查询联系人信息。
系统应该提供用户友好的界面,方便用户进行操作。
3. 分组管理功能为了更好地管理联系人,系统需要提供分组管理功能。
用户可以创建、修改和删除分组,将联系人进行分类管理。
4. 通讯录导入导出功能用户可以将通讯录数据导出为文件,以备份或者在其他设备上使用。
同时,用户也可以从文件中导入通讯录数据,方便快速恢复或者在不同设备间同步数据。
三、系统实现本次实验采用C语言编写通讯录管理系统。
系统使用了链表数据结构来存储联系人信息,以实现高效的增删改查操作。
1. 用户管理功能的实现系统使用文件存储用户信息,包括用户名和密码。
用户注册时,系统将用户名和密码写入文件中。
用户登录时,系统读取文件中的信息进行验证。
2. 联系人管理功能的实现系统使用链表来存储联系人信息。
每个节点包含姓名、电话号码、邮箱等信息。
用户可以通过添加、修改、删除和查询功能来对联系人进行管理。
3. 分组管理功能的实现系统使用链表来存储分组信息。
每个节点包含分组名称和包含的联系人列表。
用户可以通过创建、修改和删除分组来实现对联系人的分类管理。
4. 通讯录导入导出功能的实现系统提供了将通讯录数据导出为文件的功能。
用户可以选择导出的文件格式,如文本文件或者Excel文件。
同时,系统也支持从文件中导入通讯录数据,以便快速恢复或者在不同设备间同步数据。
四、系统测试与评估在系统开发完成后,我们进行了一系列的测试和评估,以验证系统的功能和性能。
c语言程序设计简单的通讯录系统实验报告
C语言课程设计报告书实验题目通讯录管理系统一、实验目的通过进行计算机实践,更加系统地理解和掌握C语言的基本概念、语言特点和编程技巧。
利用系统提供的标准函数和自定义函数进行程序设计,培养利用C语言设计综合程序的能力。
二、实验内容在熟练掌握C语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。
进一步掌握各种函数的应用。
三、需求分析本学通讯录管理系统包含输入信息,显示信息,查询信息, 修改信息,追加信息,删除信息,修改密码,七大功能.其中查询模块又分为按姓名查找,按号码查找.输入信息(Input)显示信息(Output)查询信息(Look)修改信息(Change)追加信息(Add)删除信息(Delete)修改密码(Key)四.概要设计1.系统分析功能模块图:总目录以及下属的各个模块,这样可以使得程序的书写脉络清晰流畅。
程序结构图2、模块功能说明输入信息模块: 调用input()录入用户的通讯信息。
输出信息模块: 调用output()建立循环,输出全部通讯录信息。
查询信息模块:调用look()函数按照姓名、号码等通讯信息进行查找追加信息模块:调用Add()追加通讯录信息修改信息模块:调用change()函数按照姓名、号码、地址等通讯信息进行选择性的修改删除信息模块: 调用delete()函数删除一条通讯录信息修改密码模块:调用save_key()函数核对两次输入的新密码若相同保存新密码于key.txt。
保存模块:调用 save()函数对最终所保留的信息进行保存,保存于friend.txt。
五.详细设计及运行结果主程序流程图查询模块流程图信息查询功能选择选择1 选择2 选择3 选择4 按姓名查询按电话号码查询按手机号码查询返回主界面否否否否否是是是是结束密码修改模块流程图密码修改是否修改输入a输入b是否一致密码为a结束六、调试情况,设计技巧及体会个人总结经两周的程序设计就要走向尾声了,这两周的实践让我获益匪浅,不但复习了以前学习过的知识,还学会了很多新东西新内容,最重要的是提升了自己从历小做起,把握全局的能力。
学生通讯录管理系统(C语言课程设计实验报告)
C语言课程设计姓名:刘显学号:09041131班级:090411专业:计算机科学与技术学院:信息工程学院设计题目:学生通讯录管理系统指导教师:宋文琳提交时间:2010年9月4日课程题目:学生通讯录管理系统要求:学生通讯录信息包括:学号、姓名、班机、联系电话、E-mail、宿舍等主要功能:1、通讯录信息录入功能2、通讯录信息删除功能3、通讯录信息浏览功能4、通讯录信息查询功能5、按学号排序功能一、总体设计首先,整个系统必须有一个主函数,为了尽量提高程序的易修改性,且不至于相互干扰,将每一个功能分成不同的模块,用不同的函数来实现,例如在我写的这个程序中,一共用了11个函数,分别是:主菜单函数menu()、关于函数gaunyu ()、帮助函数help()、输出单个学生信息函数shuchu()、输入函数shuru()、输出所有学生信息函数findall()、按姓名查找函数findname()、按学号查找函数findnum ()、删除函数shanchu()、排序函数paixu ()、主函数main(),这样在整个程序的设计过程中也就一目了然,写起来也相对轻松了不少。
这个程序我只是总体上参考了一下网上程序的架构,具体的各个函数是参照课本上《链表》那一章的内容的,比如结构体的建立、查找和排序等功能,这些书上都有类似的,其中排序功能虽没有原版的,但是在第六章中有一个用冒泡法排序的例题,我就是仿照这个模式来对结构体进行排序的,总之整个程序中蕴含了我很多的汗水。
二、具体设计关于这个程序的具体设计,也不是一两句话就能说完的,所以我也不想再在这里赘述了,因为程序里都可以看的到,几乎每个函数都倾注了我的大量汗水,我在这上面花了不少的时间,不过从中也收获了很多,因为不停地修改不停的调试,总之还是直接看源程序吧,因为也没必要在这里重复地说废话。
三、源代码以下是整个程序的源代码,其中我的主菜单函数是很美观的,但由于这里字体和板式的限制,不能很好的显现,可以看我下面程序运行的截图就知道了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
c语言通讯录实验报告
C语言通讯录实验报告
一、实验目的
通讯录是我们日常生活中常用的工具,可以帮助我们管理联系人信息。
本次实
验旨在通过使用C语言编写一个简单的通讯录程序,加深对C语言的理解和运用。
二、实验环境
本次实验使用的开发环境是Visual Studio Code,编程语言为C语言。
三、实验过程
1. 通讯录数据结构设计
在开始编写程序之前,我们需要先设计好通讯录的数据结构。
通讯录的基本信
息包括姓名、电话号码和电子邮件地址。
我们可以使用结构体来表示一个联系
人的信息,然后使用数组来存储多个联系人的信息。
2. 程序主体框架设计
接下来,我们需要设计程序的主体框架。
首先,我们可以定义一个数组来存储
通讯录中的联系人信息。
然后,我们可以使用一个循环来提供用户操作的选项,比如添加联系人、查找联系人、删除联系人等。
用户可以通过输入相应的数字
来选择不同的操作。
3. 添加联系人功能
在程序中添加联系人的功能可以通过用户输入联系人的姓名、电话号码和电子
邮件地址来实现。
我们可以通过循环遍历通讯录数组,找到第一个空闲的位置,将新的联系人信息存储到该位置。
4. 查找联系人功能
查找联系人的功能可以通过用户输入联系人的姓名来实现。
我们可以通过遍历
通讯录数组,逐个比较联系人的姓名,找到匹配的联系人并输出其详细信息。
5. 删除联系人功能
删除联系人的功能可以通过用户输入联系人的姓名来实现。
我们可以通过遍历
通讯录数组,找到匹配的联系人并将其从数组中删除。
6. 修改联系人功能
修改联系人的功能可以通过用户输入联系人的姓名来实现。
我们可以通过遍历
通讯录数组,找到匹配的联系人,并允许用户修改其电话号码和电子邮件地址。
7. 显示通讯录功能
显示通讯录的功能可以通过遍历通讯录数组,逐个输出联系人的详细信息来实现。
四、实验结果
经过编写和调试,我们成功实现了一个简单的C语言通讯录程序。
用户可以通
过输入相应的数字来选择不同的操作,包括添加联系人、查找联系人、删除联
系人、修改联系人和显示通讯录。
五、实验总结
通过本次实验,我对C语言的应用有了更深入的理解。
通过设计通讯录的数据
结构和程序的主体框架,我学会了如何使用C语言来处理和管理数据。
在实现
各种功能的过程中,我锻炼了编程的逻辑思维和问题解决能力。
这次实验不仅
加深了我对C语言的理解,而且提高了我的编程能力。
六、改进方向
虽然我们已经成功实现了一个简单的通讯录程序,但还有一些改进的空间。
例如,我们可以增加对联系人信息的校验,确保输入的电话号码和电子邮件地址符合规范。
此外,我们还可以增加更多的功能,比如按照姓名的字母顺序排序联系人,或者导出通讯录为文本文件等。
通过这次实验,我不仅学会了如何使用C语言编写通讯录程序,还提高了自己的编程能力和问题解决能力。
我相信这些经验和技巧将对我今后的学习和工作有很大的帮助。