C语言课设——通讯录操作系统

  该微型系统实现了联系人的增删改查,以及排序清空等操作。

  一个联系人有3 个以下的号码,本来想用邻接表实现对号码的创建及其他操作,但我没法对链表的邻接表进行文件的读取操作,只有对号码数目固定。

  下面是源代码

 1 #pragma once
 2 #ifndef  _LIST_H
 3 #define  _LIST_H
 4
 5 typedef struct
 6 {
 7     char num1[20];
 8     char num2[20];
 9     char num3[20];
10     int n;
11     char name[20];
12 }DATATYPE_T;
13
14 typedef struct Node
15 {
16     DATATYPE_T  data;
17     struct Node *next;
18 }ListType;
19
20 /* 添加节点到链表末尾 */
21 ListType *list_add_end(ListType *,DATATYPE_T);
22
23 /* 添加节点到链表首部 */
24 ListType *list_add_first(ListType *,DATATYPE_T);
25
26 /*添加节点到链表中间*/
27 ListType *list_insert(ListType *,char *,DATATYPE_T);
28
29 /* 按关键字在链表中查找内容 */
30 ListType *list_find_name(ListType *,char *);
31
32 /* 按关键字在链表中查找内容 */
33 ListType *list_find(ListType *,char *);
34
35 /* 删除指定关键字的节点 */
36 ListType *list_delete(ListType *,char *);
37
38 /*获取链表的节点数量 */
39 int list_length(ListType *);
40
41 /* 显示链表所有信息*/
42 void list_all(ListType *);
43
44 /*添加联系人*/
45 ListType *add_contact(ListType *);
46
47 /*按照关键字查找联系人*/
48 int find_contact(ListType *);
49
50 /*按照关键字删除联系人*/
51 ListType *delete_contact(ListType *);
52
53 /*插入联系人信息*/
54 ListType *insert_contact(ListType *);
55
56 /*显示所有联系人信息*/
57 int show_contact(ListType *);
58
59 /*读取文件*/
60 ListType *readfile(ListType *);
61
62 /*修改链表*/
63 void change_contact(ListType *);
64
65 /*保存文件*/
66 void save_contact(ListType *);
67
68 /*排序*/
69 void sort_contact(ListType *);
70
71 /*清空*/
72 ListType *free_contact(ListType *);
73
74 /*界面*/
75 int menu();
76
77 #endif

list.h

  1 #include <stdio.h>
  2 #include <stdlib.h>
  3 #include <string.h>
  4 #include "list.h"
  5
  6 ListType *list_add_end(ListType *head,DATATYPE_T data)
  7 {
  8     ListType *node,*phead;
  9
 10     node = (ListType *)malloc(sizeof(ListType));
 11     if(NULL == node)
 12     {
 13         printf("malloc failed\n");
 14         return NULL;
 15     }
 16     node->data.n = data.n;
 17     strcpy(node->data.name,data.name);
 18     strcpy(node->data.num1,data.num1);
 19     strcpy(node->data.num2,data.num2);
 20     strcpy(node->data.num3,data.num3);
 21     node->next = NULL;
 22     if(head ==NULL)
 23     {
 24         head = node;
 25         return head;
 26     }
 27     phead = head;
 28
 29     while(phead->next != NULL)
 30     {
 31         phead = phead->next;
 32     }
 33     phead->next = node;
 34
 35     return head;
 36 }
 37
 38 ListType *list_add_first(ListType *head,DATATYPE_T data)
 39 {
 40     ListType *node;
 41
 42     node = (ListType *)malloc(sizeof(ListType));
 43     if(NULL == node)
 44     {
 45         printf("malloc failed\n");
 46         return NULL;
 47     }
 48     node->data = data;
 49     node->next = head;
 50     head = node;
 51
 52     return head;
 53 }
 54
 55 ListType *list_find(ListType *head,char *key)
 56 {
 57     ListType *phead;
 58     phead = head;
 59
 60     while(phead)
 61     {
 62         if(strcmp(phead->data.name,key)==0 || strcmp(phead->data.num1,key)==0 || strcmp(phead->data.num2,key)==0 || strcmp(phead->data.num3,key)==0)
 63         {
 64             return phead;
 65         }
 66         phead = phead->next;
 67     }
 68     return NULL;
 69 }
 70
 71 ListType *list_insert(ListType *head,char *findkey,DATATYPE_T data)
 72 {
 73     ListType *node,*node1;
 74
 75     node = (ListType *)malloc(sizeof(ListType));
 76     if(NULL == node)
 77     {
 78         printf("malloc failed\n");
 79         system("pause");
 80         return NULL;
 81     }
 82
 83     node->data.n = data.n;
 84     strcpy(node->data.name,data.name);
 85     strcpy(node->data.num1,data.num1);
 86     strcpy(node->data.num2,data.num2);
 87     strcpy(node->data.num3,data.num3);
 88     node1 = list_find(head,findkey);
 89     if(node1)
 90     {
 91         node->next = node1->next;
 92         node1->next = node;
 93     }
 94     else
 95     {
 96         free(node);
 97         printf("can‘t find key\n");
 98         system("pause");
 99     }
100     return head;
101 }
102
103 ListType *list_delete(ListType *head,char *key)
104 {
105     ListType *node,*phead;
106     node = head;
107     phead = head;
108
109     while(phead)
110     {
111         if(strcmp(phead->data.name,key)==0 || strcmp(phead->data.num1,key)==0 || strcmp(phead->data.num2,key)==0 || strcmp(phead->data.num3,key)==0)
112         {
113             node = head->next;
114             free(head);
115             head = NULL;
116             head = node;
117             if(head!=NULL)
118             {
119                 return head;
120             }
121             else
122             {
123                 return NULL;
124             }
125         }
126         if(strcmp(phead->data.name,key)==0 || strcmp(phead->data.num1,key)==0 || strcmp(phead->data.num2,key)==0 || strcmp(phead->data.num3,key)==0)
127         {
128             node->next = phead->next;
129             free(phead);
130             phead = NULL;
131             return head;
132         }
133         else
134         {
135             node = phead;
136             phead = phead->next;
137         }
138     }
139     return NULL;
140 }
141
142 ListType *free_contact(ListType *head)
143 {
144     ListType *p;
145     p = head;
146     while(head)
147     {
148         p = head->next;
149         free(head);
150         head = p;
151     }
152     return head;
153 }
154
155 int list_length(ListType *head)
156 {
157     int length = 0;
158     ListType *phead;
159
160     phead = head;
161     while(phead)
162     {
163         phead = phead->next;
164         length++;
165     }
166
167     return length;
168 }

list.cpp

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include "list.h"
 4
 5 int main()
 6 {
 7     int opt = 0;
 8     ListType *head=NULL;
 9     head = readfile(head);
10     do
11     {
12         menu();
13         scanf("%d",&opt);
14         printf("you select for %d\n",opt);
15         system("pause");
16         switch(opt)
17         {
18             case 1:
19                 head = add_contact(head);        // 添加
20                 break;
21             case 2:
22                 find_contact(head);                // 查找
23                 break;
24             case 3:
25                 head = delete_contact(head);    // 删除
26                 break;
27             case 4:
28                 head = insert_contact(head);    // 插入
29                 break;
30             case 5:
31                 show_contact(head);                // 输出
32                 break;
33             case 6:
34                 change_contact(head);
35                 break;                            // 修改
36             case 7:
37                    save_contact(head);                // 保存
38                    break;
39             case 8:
40                 sort_contact(head);                // 排序
41                 break;
42             case 9:
43                 head = free_contact(head);        // 清空
44                 break;
45             case 0:
46                 return 0;
47             default:
48                 printf("unknow select\n");
49                 break;
50         }
51     }while(opt!=0);
52
53     return 0;
54 }

main.cpp

  1 #include <stdio.h>
  2 #include <stdlib.h>
  3 #include <string.h>
  4 #include "list.h"
  5
  6 /* 显示链表所有信息*/
  7 void list_all(ListType *head)
  8 {
  9     ListType *phead;
 10     DATATYPE_T data;
 11     phead = head;
 12
 13     while(phead)
 14     {
 15         data = phead->data;
 16         printf("\t\t***************************\n");
 17         printf("\t\tname: %s\n\t\ttelephone number: %d\n",data.name,data.n);
 18         if(data.n >= 1)
 19           {
 20               printf("\t\ttelephone 1: %s\n", data.num1);
 21           }
 22           if(data.n >= 2)
 23           {
 24               printf("\t\ttelephone 2: %s\n", data.num2);
 25           }
 26           if(data.n >= 3)
 27           {
 28               printf("\t\ttelephone 3: %s\n", data.num3);
 29           }
 30             phead = phead->next;
 31             printf("\n");
 32     }
 33     system("pause");
 34 }
 35
 36 /*添加联系人*/
 37 ListType *add_contact(ListType *head)
 38 {
 39     DATATYPE_T  contactInfo;
 40     int n,flag;
 41     printf("\t\t***************************\n");
 42     printf("\t\tplease input contact number:");
 43     scanf("%d", &n);
 44
 45     while(n--)
 46     {
 47     printf("\t\t***************************\n");
 48     printf("\t\tplease input contact information\n");
 49       printf("\t\tname:");
 50       scanf("%s", contactInfo.name);
 51       printf("\t\tHow many telephone:");
 52       scanf("%d", &contactInfo.n);
 53       if(contactInfo.n >= 1)
 54       {
 55           printf("\t\ttelephone 1:");
 56           scanf("%s", contactInfo.num1);
 57       }
 58       if(contactInfo.n >= 2)
 59       {
 60           printf("\t\ttelephone 2:");
 61           scanf("%s", contactInfo.num2);
 62       }
 63       if(contactInfo.n >= 3)
 64       {
 65           printf("\t\ttelephone 3:");
 66           scanf("%s", contactInfo.num3);
 67       }
 68     head = list_add_end(head,contactInfo);
 69  //     sort_contact(head);
 70    }
 71
 72     return head;
 73 }
 74
 75 /*按照关键字查找联系人*/
 76 int find_contact(ListType *head)
 77 {
 78     char key[20];
 79     ListType *node = NULL;
 80
 81     if(head == NULL)
 82     {
 83         printf("the list is NULL!!!\n");
 84         system("pause");
 85         return 0;
 86     }
 87
 88        printf("\t\tplease input find key: ");
 89        scanf("%s",key);
 90     node = list_find(head,key);
 91
 92     if(node!=NULL)
 93     {
 94         printf("\t\t***************************\n");
 95            printf("\t\tname:%s\n\t\ttelephone number:%d\n",node->data.name,node->data.n);
 96         if(node->data.n >= 1)
 97           {
 98               printf("\t\ttelephone 1:%s\n", node->data.num1);
 99           }
100           if(node->data.n >= 2)
101           {
102               printf("\t\ttelephone 2:%s\n", node->data.num2);
103           }
104           if(node->data.n >= 3)
105           {
106               printf("\t\ttelephone 3:%s\n", node->data.num3);
107           }
108           system("pause");
109     }
110     else
111     {
112         printf("\t\tthe key can‘t find!!!\n");
113     }
114     return 0;
115 }
116
117 /*按照关键字删除联系人*/
118 ListType *delete_contact(ListType *head)
119 {
120     char key[15];
121     ListType *phead = NULL;
122     if(head == NULL)
123     {
124         printf("the list is NULL!!!\n");
125         system("pause");
126         return head;
127     }
128     printf("\t\tplease input delete key:  ");
129     scanf("%s",key);
130     phead = list_delete(head,key);
131     if(phead == NULL)
132     {
133         printf("delete after the list is NULL!!!\n");
134         return NULL;
135     }
136     return phead;
137 }
138
139 /*插入联系人信息*/
140 ListType *insert_contact(ListType *head)
141 {
142     char key[20];
143     DATATYPE_T insertData;
144     ListType *phead = NULL;
145     if(head == NULL)
146     {
147         printf("the list is NULL!!!\n");
148         system("pause");
149         return head;
150     }
151     printf("\t\tplease input insert key\n");
152     scanf("%s",key);
153     printf("\t\tplease input insert contact information\n");
154     printf("\t\tname:");
155       scanf("%s", insertData.name);
156       printf("\t\tHow many telephone: ");
157       scanf("%d", &insertData.n);
158       if(insertData.n >= 1)
159       {
160           printf("\t\ttelephone 1: ");
161           scanf("%s", insertData.num1);
162       }
163       if(insertData.n >= 2)
164       {
165           printf("\t\ttelephone 2: ");
166           scanf("%s", insertData.num2);
167       }
168       if(insertData.n >= 3)
169       {
170           printf("\t\ttelephone 3: ");
171           scanf("%s", insertData.num3);
172       }
173
174     phead = list_insert(head,key,insertData);
175 //    sort_contact(phead);
176     return phead;
177 }
178
179 /*显示所有联系人信息*/
180 int show_contact(ListType *head)
181 {
182
183     if(head==NULL)
184     {
185         printf("the list is NULL\n");
186            system("pause");
187         return -1;
188     }
189
190     sort_contact(head);
191     return 0;
192 }
193
194 /*读取文件*/
195 ListType * readfile(ListType *head)
196 {
197     FILE *fp;
198     ListType *p;
199     fp=fopen("通讯录.txt","rb");
200     if(fp == NULL)
201     {
202         printf("通讯录不存在");
203         if ((fp=fopen("通讯录.txt","wb"))==NULL)
204
205         {
206             printf("\n\t\t建立失败");
207             exit(0);
208         }
209         else
210         {
211             printf("\n\t-----------------欢迎使用通讯录管理系统------------------");
212             printf("\n\t 通讯录文件已建立 ");
213             printf("\n\t 按任意键进入主菜单 ");
214             printf("\n\t---------------------------------------------------------");
215             getchar();
216         }
217     }
218
219     fseek(fp, 0, SEEK_END);
220     if (ftell(fp) != 0)
221     {
222 /*
223         float nLen = ftell(fp);
224         nLen = nLen/sizeof(ListType);
225         printf("%f\n", nLen);
226         while(nLen--)
227 */
228         rewind(fp);
229         while (!feof(fp))
230         {
231                 ListType *p;
232                 p = (ListType *)malloc(sizeof(ListType));
233         //        fread(p,sizeof(ListType),1,fp);
234                 if(fread(p,sizeof(ListType),1,fp)!=1)//读到末尾或者出错,跳出循环
235                 {
236                     free(p);
237                     break;
238                 }
239                 p->next = head;
240                 head = p;
241
242 /*                printf("name:%s\ntelephone number:%d\n",p->data.name,p->data.n);
243                 if(head->data.n >= 1)
244                   {
245                       printf("telephone 1:%s\n", head->data.num1);
246                   }
247                   if(head->data.n >= 2)
248                   {
249                       printf("telephone 2:%s\n", head->data.num2);
250                   }
251                   if(head->data.n >= 3)
252                   {
253                       printf("telephone 3:%s\n", head->data.num3);
254                   }
255                   system("pause");
256 */
257         }
258
259
260         printf("\n\t-------------欢迎使用通讯录管理系统-----------------------");
261         printf("\n\t 文件导入成功 ");
262         printf("\n\t 按任意键返回主菜单 ");
263         printf("\n\t---------------------------------------------------------");
264         getchar();
265
266     }
267     else
268     {
269         printf("\n\t--------------欢迎使用通讯录管理系统----------------------");
270         printf("\n\t 文件导入成功 ");
271         printf("\n\t 通讯录文件中无任何纪录 ");
272         printf("\n\t 按任意键返回主菜单 ");
273         printf("\n\t----------------------------------------------------------");
274         getchar();
275     }
276
277     return head;
278 }
279
280 void save_contact(ListType *head)
281 {
282     FILE *fp;
283     ListType *p;
284     if(head == NULL)
285     {
286         printf("the list is NULL!!!\n");
287         system("pause");
288     }
289     else
290     {
291         fp=fopen("通讯录.txt","wb");
292         p = head;
293         while(p)
294         {
295             fwrite(p,sizeof(ListType),1,fp);
296             p = p->next;
297         }
298 //    fwrite(head,sizeof(ListType),list_length(head),fp);
299         printf("save success\n");
300         system("pause");
301     }
302
303 }
304
305 void change_contact(ListType *head)
306 {
307     char key[20];
308     ListType *node = NULL;
309
310     if(head == NULL)
311     {
312         printf("the list is NULL!!!\n");
313         system("pause");
314     }
315     else
316     {
317            printf("\t\tplease input find key: ");
318            scanf("%s",key);
319         node = list_find(head,key);
320
321         if(node!=NULL)
322           {
323                printf("\t\t***************************\n");
324                printf("\t\tname:%s\n\t\ttelephone number:%d\n",node->data.name,node->data.n);
325             if(node->data.n >= 1)
326               {
327                   printf("\t\ttelephone 1:%s\n", node->data.num1);
328               }
329               if(node->data.n >= 2)
330               {
331                   printf("\t\ttelephone 2:%s\n", node->data.num2);
332               }
333               if(node->data.n >= 3)
334               {
335                   printf("\t\ttelephone 3:%s\n", node->data.num3);
336               }
337               system("pause");
338         }
339           else
340         {
341             printf("\t\tthe key can‘t find!!!\n");
342           }
343         DATATYPE_T  contactInfo;
344
345         printf("\t\tplease input contact information\n");
346           printf("\t\tname:");
347           scanf("%s", contactInfo.name);
348           printf("\t\tHow many telephone:");
349           scanf("%d", &contactInfo.n);
350           if(contactInfo.n >= 1)
351           {
352             printf("\t\ttelephone 1:");
353               scanf("%s", contactInfo.num1);
354           }
355           if(contactInfo.n >= 2)
356           {
357               printf("\t\ttelephone 2:");
358               scanf("%s", contactInfo.num2);
359           }
360           if(contactInfo.n >= 3)
361           {
362               printf("\t\ttelephone 3:");
363               scanf("%s", contactInfo.num3);
364           }
365           node->data.n = contactInfo.n;
366          strcpy(node->data.name,contactInfo.name);
367        strcpy(node->data.num1,contactInfo.num1);
368          strcpy(node->data.num2,contactInfo.num2);
369           strcpy(node->data.num3,contactInfo.num3);
370     }
371
372 }
373
374 void sort_contact(ListType *head)
375 {
376     ListType *p, *t, *p1, *t1, *r;
377     DATATYPE_T q;
378     for(p = head; p!=NULL; p = p->next)
379     {
380         for(t = p->next; t!=NULL;t = t->next)
381         {
382             if(strcmp(p->data.name,t->data.name)>0)
383             {
384                 q.n = t->data.n;
385                 strcpy(q.name,t->data.name);
386                 strcpy(q.num1,t->data.num1);
387                 strcpy(q.num2,t->data.num2);
388                 strcpy(q.num3,t->data.num3);
389                 t->data.n = p->data.n;
390                 strcpy(t->data.name,p->data.name);
391                 strcpy(t->data.num1,p->data.num1);
392                 strcpy(t->data.num2,p->data.num2);
393                 strcpy(t->data.num3,p->data.num3);
394                 p->data.n = q.n;
395                 strcpy(p->data.name,q.name);
396                 strcpy(p->data.num1,q.num1);
397                 strcpy(p->data.num2,q.num2);
398                 strcpy(p->data.num3,q.num3);
399
400             }
401         }
402     }
403     if(head == NULL)
404     {
405         printf("the list is NULL!!!\n");
406         system("pause");
407     }
408     else
409     {
410         list_all(head);
411     }
412
413 }
414
415 int menu()
416 {
417     printf("\n");
418     system("cls");
419     system("color 17");
420     printf("\t\t\t****Address Book****");
421     printf("\n\t\t\t** author:******* **\n");
422     printf("\t\t\t**  ID:14045227  **\n");
423     printf("\t\t\t********************\n");
424     printf("\t\t\t 1.add contact\n");
425     printf("\t\t\t 2.find a contact\n");
426     printf("\t\t\t 3.delete a contact\n");
427     printf("\t\t\t 4.insert a contact\n");
428     printf("\t\t\t 5.show a contact\n");
429     printf("\t\t\t 6.change a contact\n");
430     printf("\t\t\t 7.save contact\n");
431     printf("\t\t\t 8.sort contact\n");
432     printf("\t\t\t 9.free all contact\n");
433     printf("\t\t\t 0.quit ");
434     printf("\n");
435     printf("\t\t\t********************\n");
436     printf("please select: ");
437 }

Address.cpp

时间: 2024-10-06 23:10:37

C语言课设——通讯录操作系统的相关文章

C语言课设心得分享(一)

今儿上完课设,老师果然讲的比较少,周四还不用去,看来还是学生自己折腾.我在做课设的过程中,攒了一些心得/体会,希望能和大家分享分享,也希望能一起探讨探讨.如果是我能回答的问题,我很乐意能够提供帮助. 课设这东西是要写出一个大的整体,和咱们上学期写的那些习题不太一样.那些题都是明确给出了具体的目的.而这个课设给出了一系列较为宏观的需求,要咱们自己去设计一些综合的方法,开始时可能觉得迷茫,无从下手,不知道该干什么.我的感受是在做课设之前,心里要有几个数,或者说对几样东西有谱,这样就能有效地开始着手我

DS课设【坦克大战最短路】(MummyDing)

DS课设[坦克大战最短路] 还是决定写点东西简单记录下这次编码. 一.想法 还没放假的时候只想着用C#实现,算法图论方面觉得图论方向会靠谱些,但一直没有什么好点子.C#以前也没学过,自信来源于MFC的学习经历(以前也是用它做了C语言课设).C#应该是没有MFC那么复杂的,心想看几天应该就可以上手一些小东西了,事实证明也如此. 寒假时间相对以前更长,也并不着急做课设.开始一段是刷题+学习Kinect+顺带了解Kinect,后来在刷题过程中遇到这题,还蛮有意思的,当即就写了个"坦克大战最短路简单设计

编译原理课设参考

期末到了,忙课设好久了,在编译原理的课设上面走了好多的弯路,也好久没有碰前端的东西了,心感惭愧,那我就把我最近忙的一些东西贡献出来,希望可以帮助到那些感觉这门科目很难的同学,祝大家可以学好每一门学科~ 下面是我们学校的学习要求,我全部已经完成,时间仓促,大家仅供参考.转载请注明出处. 基本内容(成绩范围:“中”.“及格”或“不及格”) (1)扩充赋值运算:+=,-=, *= 和 /= (2)扩充语句(Pascal的FOR语句): FOR <变量>:=<表达式>STEP<表达式

难忘课设

随着走出实验室机房的那一刻起,我们的第一个课程设计--初级课程设计就这样结束了.回顾这将近两周的历程,真的是感慨万分,收获颇多,为自己大学第一年的生活,添加上了最为亮彩的一页,也为今后的大学生活,增添了前进的动力. 还记得课设开始的第一天,看着发下来的设计方案与模块,大部分同学都惊呆了,惊奇着我们居然要做这么难的东西,但我还是比较淡定的,因为可以检验自己,锻炼自己.如果你看看身边的大神们,你会发现,他们的眼中只有自信和期待. 随着老师的简单介绍,我们的课设真的开始了,然而很多同学都不知道从何下手

C语课设心得分享(二)

咱们今儿说说IDE的事儿. IDE是「集成开发环境」的意思,比如咱们常用的VC6.0,就是开发C语言所用的IDE的一种.对于IDE的认识,可能有些朋友有点儿模糊,咱们捋一捋,我也会给出一些IDE方面的建议.下面内容都是靠印象撸的,懒得一一考证了,如有错误还请指出. VC的全称是Visual C++,是「微软」公司的一款产品,对于咱们来说,最常用的功能就是写C语言用.在VC6.0中写好程序后,咱们需要先点「编译」,再点「链接」,这是什 么意思呢?大家可能多多少少听说过,C语言用记事本也能写,确实如

C语课设心得分享(三)

调试. 以前咱们写课后习题,一般也不需要使用调试,如果程序编译error,根据错误信息就可以改好:如果是结果错误,那么在稿纸上过几遍基本也可以得出结果. 但咱们这个课设比较大,就需要很多调试的过程,尤其是在链表/开关变量的调试上.其实我对调试也不是很了解,但我跟大家分享一些我所接触到的调试方式. F10和F11是非常常用的,两者的区别是F11是单步调试,但是会进入到子函数中.F10的话也是单步,但是会跳过模块.感觉平时用F10更多一些.在 用单步调试时,监测变量的窗口可以智能显示出你可能要看的变

由课设和面向对象想到的一些东西 2015-05-29

前些天草草的把Java课本(学校老师自编课本)浏览了一遍,最近正在看<Java核心技术>,感觉书有点儿难度.正在努力理解接口和异常. 我 刚接触编程时,就已经听说了“面向对象编程”这个概念,但完全不能理解.百度相关信息,只能得到一些“哲学答案”,比如“万物皆对象”等等.我问学长学 姐,他们给我的答案也都模棱两可.现在学完C语言后,终于能初步感受到面向对象的思想了.所以我的感受是,有些不懂的东西不需要太着急,可能是自己还没有 学会基础的东西,学着学着慢慢就懂了.同时我也觉得C语言入门虽然难且艰辛

将C语课设传到了Github和Code上 2015-91-18

一直听说Git好使,以前捣鼓过没弄成,现在考完试了终于可以静下心来研究研究. 哎,我要是当时做课设的时候就用Git,也能省下不少事呢. 使用的Git教程,刚看个开头: 廖雪峰的Git教程 http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 CODE帮助文档 https://code.csdn.net/help/CSDN_Code/CODE_Support/Index ========

排序算法及其比较--数据结构课设

 排序算法及其比较 课程设计报告 一. 设计内容 编程实现希尔.快速.堆排序.归并排序算法,并利用程序统计每种算法的执行时间.要求随机产生10000(或50000. 100000. 200000,由用户选择)个数据存入数据文件,然后读数据文件,分别采用不同排序方法进行排序,将结果存入另一个文件中. 二. 设计思想描述 1.  总思想 本程序采用模块化设计思想,分为产生随机数模块,计时模块,写入磁盘模块,读出磁盘模块,希尔排序模块,快速排序模块,堆排序模块,归并排序模块,计时模块.对常见的4 种经