C语言程序的设计实验报告课程设计 联系客服

发布时间 : 星期四 文章C语言程序的设计实验报告课程设计更新完毕开始阅读4f2a5ad191c69ec3d5bbfd0a79563c1ec4dad73d

三、详细设计

1.算法分析

以上所给的课程设计的题目,每一个对象都包括多个属性。所以要考虑数据的存储形式要用结构体类型来实现。首先,应该考虑定义一个结构,其次,我们应该考虑数据的存储形式:是定义一个数组来存储,还是定义一个链表呢?在这里假如我们以数组的方式来存储,当然可以,但是我们知道,假如我们定义一个数组的话,我们首先必须知道学生人数大概是多少,以便我们确定数组的大小,但是题目中没有给出,而且题目要求中有大量的删除、插入操作,所以用链表的方式比较方便。

对于菜单的实现,首先我们用printf函数把程序的功能列出来,然后等待用户选择而执行不同的函数,执行完了一个功能后又回到菜单。保存数据要通过文件来实现。

2.设计流程图

主页面 创建联系人按照名字排序综合操作保存打开删除退出 在简单的分工之后,我的任务是完成通讯录的排序,因为主题是用链表来实现通讯录之间的连接,而链表是不好直接进行排序的,所以我想到了数组。即把链表中指针指向的内容赋给一个数组,利用我们学到的冒泡排序法对其进行排序,排序结束之后重新赋回去。

查找显示增加修改退出 3.我的任务

思路虽然听起来很简单,但是在实际操作起来总存在这样那样的错误,比如说变量名不统一等合作性问题,而由于链表不是授课内容,不能很好的掌握,在写的过程中总是出现考虑不周全的情况。但是在百度的帮助下和不懈的努力下,在预期时间完成了我的任务并且还参与了最终程序的合并调试。 struct address_list *paixu(struct address_list *head)

{

struct address_list *p1,*p2; int i,j;

struct address_list1 {

char name[30]; //名字 char work[50]; //单位 char handset[30]; //手机

char phone[30]; //固定电话 char email[30]; //电子邮件 char address[30]; //通讯地址 char QQ[20]; //QQ

int t; //类别标记 char fenlei[30]; //分类 };

struct address_list1 px[200]; struct address_list1 temp; if(head==NULL) {

printf(\通讯录为空,无法排序!\\n\ return(head); }

p1=head;

for(i=0;i

strcpy(px[i].name,p1->name); strcpy(px[i].work,p1->work); strcpy(px[i].handset,p1->handset); strcpy(px[i].phone,p1->phone); strcpy(px[i].email,p1->email); strcpy(px[i].address,p1->address); strcpy(px[i].QQ,p1->QQ); px[i].t=p1->t;

strcpy(px[i].fenlei,p1->fenlei); p2=p1;

p1=p1->next; }

head=shifang(head); for(j=0;j

for(i=j+1;i

{

if(strcmp(px[i].name,px[j].name)<0) {

temp=px[i]; px[i]=px[j]; px[j]=temp; } } }

p1=(struct address_list *)malloc(LEN); p2=p1;

strcpy(p1->name,px[0].name); strcpy(p1->work,px[0].work); strcpy(p1->handset,px[0].handset); strcpy(p1->phone,px[0].phone); strcpy(p1->email,px[0].email); strcpy(p1->address,px[0].address); strcpy(p1->QQ,px[0].QQ); p1->t=px[0].t;

strcpy(p1->fenlei,px[0].fenlei); head=p1;

for(i=1;i

p1=(struct address_list *)malloc(LEN); strcpy(p1->name,px[i].name); strcpy(p1->name,px[i].name); strcpy(p1->work,px[i].work); strcpy(p1->handset,px[i].handset); strcpy(p1->phone,px[i].phone); strcpy(p1->email,px[i].email); strcpy(p1->address,px[i].address); strcpy(p1->QQ,px[i].QQ); p1->t=px[i].t;

strcpy(p1->fenlei,px[i].fenlei); p2->next=p1; p2=p1; }

p2->next=NULL;

printf(\按姓名排序后为:\\n\ print(head); return(head); }

四、调试与测试

一、主页面

二、创建通讯录

1、输入信息

2、创建成功后自动输出所有信息