c语言源代码_你想要的源代码来啦!C语言实现通讯录管理系统!

说明:

本系统基于C语言实现班级通讯录管理系统,为小伙伴学习C语言刚入门所做的课程设计。功能包括增、删、查、改等,非常适合初学者练手。通讯录包括的个人信息有姓名、学号、性别、籍贯、政治面貌、手机号、QQ号、宿舍等。主要用到了指针、结构体、遍历链表、文件读取等知识点。

没有开发工具的小伙伴可以找我获取!

运行效果:

207504547adf5fd7cd26c094dca8451b.png

代码:

  1#include

  2#include 

  3#include

  4 #include<windows.h>

  5 typedef struct student    //定义结构体

  6 {

  7    char name[20];    //姓名

  8    char num[15];      //学号

  9    char sex[10];    //性别

10    char from[20];    //籍贯

11    char political[10];    //政治面貌

12    char phone[15];      //手机号

13    char QQ[15];        //QQ号

14    char dorm[10];    //宿舍

15    struct student *next;  //结构体指针

16 }stu;

17 stu *head;

18

19 void print()    //主菜单

20 {

21    system("cls");

22    printf("nnn");

23    printf("      ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆n");

24    printf("      ***********************************************************n");

25    printf("      ttt班级通讯录管理系统n");

26    printf("n");

27    printf("      tt1. 输入数据");

28    printf("tt2. 显示数据n");

29    printf("      tt3. 插入数据");

30    printf("tt4. 删除数据n");

31    printf("      tt5. 查看数据");

32    printf("tt6. 修改数据n");

33    printf("      tt7. 保存数据");

34    printf("tt8. 返回主菜单n");

35    printf("      ***********************************************************n");

36    printf("      ~~~~~退~~~~~~~~~~出~~~~~~~~~~请~~~~~~~~~~按~~~~~~~~~~9~~~~~n");

37    printf("      -----------------------------------------------------------nn");

38 }

39

40

41 void input(stu *p1)    //输入相关数据

42 {

43    printf("姓名:");

44    scanf("%s",&p1->name);

45    printf("学号:");

46    scanf("%s",&p1->num);

47    printf("性别:");

48    scanf("%s",&p1->sex);

49    printf("籍贯:");

50    scanf("%s",&p1->from);

51    printf("政治面貌:");

52    scanf("%s",&p1->political);

53    printf("手机号:");

54    scanf("%s",&p1->phone);

55    printf("QQ号:");

56    scanf("%s",&p1->QQ);

57    printf("宿舍:");

58    scanf("%s",&p1->dorm);

59 }

60

61

62 stu * inputdata()    //数据输入的函数

63 {

64    stu *p1,*p2;

65    int i=1;

66    p1=(stu *)malloc(sizeof(stu));

67    if(p1!=NULL)

68    {

69        head=p1;

70        printf("nttt☆☆☆输入数据☆☆☆n");

71        printf("------------------------------------------------------------------n");

72        printf("在姓名处输入“ok”代表输入数据结束n");

73        while(i)

74        {

75            printf("姓名:");

76            scanf("%s",&p1->name);

77            if(strcmp(p1->name,"ok")==0)

78            {

79                printf("n输入完毕!n");

80                printf("========================================================================n");

81                i=0;

82                p2->next=NULL;

83                free(p1);

84                p1=p2;

85            }

86            else

87            {

88                printf("学号:");

89                scanf("%s",&p1->num);

90                printf("性别:");

91                scanf("%s",&p1->sex);

92                printf("籍贯:");

93                  scanf("%s",&p1->from);

94                printf("政治面貌:");

95                scanf("%s",&p1->political);

96                printf("手机号:");

97                scanf("%s",&p1->phone);

98                printf("QQ号:");

99                scanf("%s",&p1->QQ);

100                printf("宿舍:");

101                scanf("%s",&p1->dorm);

102                printf("=====================================n");

103                p2=p1;

104                p1=(stu *)malloc(sizeof(stu));

105                if(p1!=NULL)

106                {

107                    p2->next=p1;

108                }

109            }

110        }

111        return(p1->next);

112    }

113 }

114

115

116 stu * lookdata(stu *p1)    //查看数据的函数

117 {

118    printf("nttt☆☆☆显示数据☆☆☆n");

119    printf("----------------------------------------------------------------------n");

120    while(p1!=NULL)

121    {

122        printf("姓名:%sn",p1->name);

123        printf("学号:%st",p1->num);

124        printf("性别:%st",p1->sex);

125        printf("籍贯:%st",p1->from);

126        printf("政治面貌:%st",p1->political);

127        printf("手机号:%st",p1->phone);

128        printf("QQ号:%st",p1->QQ);

129        printf("宿舍:%sn",p1->dorm);

130        printf("======================================================================n");

131        p1=p1->next;

132    }

133    return p1;

134 }

135

136

137 void insert()      //插入数据

138 {

139    int i;

140    char named[20];

141    stu *p1,*p2,*p3;

142    p1=head;

143    p3=(stu *)malloc(sizeof(stu));

144    p3->next=NULL;

145    printf("nttt☆☆☆插入数据☆☆☆n");

146    printf("----------------------------------------------------------------------n");

147    printf("请输入插入者的资料:n");

148    input(p3);

149    printf("n插入选项n");

150    printf("1.首位置插入t2.尾位置插入t3.前插n");

151    printf("请输入你的选择:");

152    scanf("%d",&i);

153    switch(i)

154    {

155    case 1:p3->next=p1;

156        head=p3;

157        break;

158    case 2:while(p1->next!=NULL)

159            {

160                p2=p1;

161                p1=p1->next;

162            }

163        p1->next=p3;

164        break;

165    case 3:printf("请输入姓名(前插):");

166        scanf("%s",named);

167        while(strcmp(named,p1->name)!=0)

168        {

169            p2=p1;

170            p1=p1->next;

171        }

172        p2->next=p3;

173        p3->next=p1;

174        break;

175    }

176    printf("插入成功!n");

177    printf("======================================================================n");

178    return;

179 }

180

181 void deleted()          //删除数据

182 {

183    stu *p1,*p2;

184    char Name[20];  //想要删除的人的姓名

185    printf("nttt☆☆☆删除数据☆☆☆n");

186    printf("----------------------------------------------------------------------n");

187    printf("请输入要删除的姓名:");

188    scanf("%s",Name);

189    p1=head;

190    if(head==NULL)

191    {

192    printf("内存空空神马都没有!n");

193    printf("======================================================================n");

194    return;

195    }

196    if(strcmp(Name,p1->name)==0)

197    {

198    head=p1->next;

199    printf("删除成功!n");

200    printf("======================================================================n");

201    return;

202    }

203    while(p1!=NULL&&(strcmp(Name,p1->name)!=0))

204    {

205    p2=p1;

206    p1=p1->next;

207    }

208    if(p1==NULL)

209    {

210    printf("此人不存在!n");

211    printf("======================================================================n");

212    return;

213    }

214    if(p1->next!=NULL)

215    {

216    p1=p1->next;

217    p2->next=p1;

218    printf("删除成功!n");

219    printf("======================================================================n");

220    return;

221    }

222    else

223    {

224    p2->next=NULL;

225    printf("删除成功!n");

226    printf("======================================================================n");

227    return;

228    }

229 }

230

231

232 find(stu *p2)        //通过姓名查找查看数据的函数

233 {

234    char name[20];

235    int b=0;

236    printf("nttt☆☆☆查看数据☆☆☆n");

237    printf("----------------------------------------------------------------------n");

238    printf("请输入您想查找人的姓名:");

239    scanf("%s",name);

240    while(p2!=NULL)

241    {

242        if(strcmp(name,p2->name)==0)

243        {

244            printf("你要找到的数据n");

245            printf("姓名:%sn",p2->name);

246            printf("学号:%st",p2->num);

247            printf("性别:%st",p2->sex);

248            printf("籍贯:%st",p2->from);

249            printf("政治面貌:%st",p2->political);

250            printf("手机号:%st",p2->phone);

251            printf("QQ号:%st",p2->QQ);

252            printf("宿舍:%sn",p2->dorm);

253            printf("======================================================================n");

254            b=1;

255        }

256        p2=p2->next;

257    }

258    if(b==0)

259    {

260        printf("n您要查找的人不存在!n");

261    }

262 }

263

264

265 update(stu *p2)  //通过姓名查找修改数据

266 {

267    char name[20];

268    int b=0,i;

269    printf("nttt☆☆☆修改数据☆☆☆n");

270    printf("----------------------------------------------------------------------n");

271    printf("请输入将要修改人的姓名:");

272    scanf("%s",name);

273    while(p2!=NULL)

274    {

275        if(strcmp(name,p2->name)==0)

276        {

277            printf("该同学的基本信息n");

278            printf("姓名:%sn",p2->name);

279            printf("学号:%st",p2->num);

280              printf("性别:%st",p2->sex);

281            printf("籍贯:%st",p2->from);

282            printf("政治面貌:%st",p2->political);

283            printf("手机号:%st",p2->phone);

284            printf("QQ号:%st",p2->QQ);

285            printf("宿舍:%sn",p2->dorm);

286            printf("n请选择要修改的信息n");

287            printf("t1.姓名t2.学号t3.性别t4.籍贯nt5.政治面貌t6.手机号t7.QQt8.宿舍n");

288            printf("n您的选择是(1~8):");

289            scanf("%d",&i);

290            printf("请输入修改之后的内容n");

291            switch(i)

292            {

293            case 1:printf("姓名:");

294                scanf("%s",&p2->name);

295                break;

296            case 2:printf("学号:");

297                scanf("%s",&p2->num);

298                break;

299            case 3:printf("性别:");

300                scanf("%s",&p2->sex);

301                break;

302            case 4:printf("籍贯:");

303                scanf("%s",&p2->from);

304                break;

305            case 5:printf("政治面貌:");

306                scanf("%s",&p2->political);

307                break;

308            case 6:printf("手机号:");

309                scanf("%s",&p2->phone);

310                break;

311            case 7:printf("QQ:");

312                scanf("%s",&p2->QQ);

313                break;

314            case 8:printf("宿舍:");

315                scanf("%d",&p2->dorm);

316                break;

317            }

318            printf("n修改成功!n");

319            printf("=========================================================================n");

320            b=1;

321        }

322        p2=p2->next;

323    }

324    if(b==0)

325    {

326        printf("没有找到该人的资料!n");

327    }

328 }

329

330

331 save(stu *p2)  //保存数据

332 {

333    FILE *fp;

334    char file[15];

335    printf("nttt☆☆☆保存数据☆☆☆n");

336    printf("----------------------------------------------------------------------n");

337    printf("输入文件名:");

338    scanf("%s",file);

339    if((fp=fopen(file,"w"))==NULL)

340    {

341        printf("cannot open this filen");

342        exit(0);

343    }

344    fprintf(fp,"姓名t学号t性别t籍贯t政治面貌t手机号tQQ号t宿舍n");

345    while(p2!=NULL)

346    {

347        fprintf(fp,"%st",p2->name);

348        fprintf(fp,"%st",p2->num);

349        fprintf(fp,"%st",p2->sex);

350        fprintf(fp,"%st",p2->from);

351        fprintf(fp,"%st",p2->political);

352        fprintf(fp,"%st",p2->phone);

353        fprintf(fp,"%st",p2->QQ);

354        fprintf(fp,"%sn",p2->dorm);

355        p2=p2->next;

356    }

357    printf("n保存成功!n");

358    printf("======================================================================n");

359    fclose(fp);

360 }

361

362

363 void screen() 

364 {

365    int i;

366    char s[251]={"欢迎使用由ZM制作班级通讯录管理系统,nnttt本系统用于通讯录管理----排序,打印nnnttWelcome to use produced by ZM class address booknntt management system,sorting,printing"};

367   

368    printf("n================================================================================n");

369    printf("nnnttt");

370    for(i=0;s[i]!=NULL;i++)

371    {

372        Sleep(30);

373        printf("%c",s[i]);

374    }

375    printf("nnnnnnnntt ~ Hi~ o(* ̄▽ ̄*)ブ~ ~ ~祝您旅途愉快~ ~n");

376    printf("================================================================================n");

377

378 }

379

380

381 void main()

382 {

383    int i;

384    system("color 4e");

385    screen();

386    Sleep(3000);

387    print();

388    while(1)

389    {

390        printf("请输入你的选择(1~9):");

391        loop:scanf("%d",&i);

392        if(i<1||i>9)

393        {

394            printf("输入有误,请在1~9中进行选择:");

395            goto loop;

396        }

397        switch(i)

398        {

399        case 1:

400            inputdata();

401            break;

402        case 2:

403            lookdata(head);

404            break;

405        case 3:

406            insert();

407            break;

408        case 4:

409              deleted();

410            break;

411        case 5:

412            find(head);

413            break;

414        case 6:

415            update(head);

416            break;

417        case 7:

418            save(head);

419            break;

420        case 8:

421            print();

422            break;

423        case 9:

424            exit(1);

425            break;

426        }

427    }

428 }

对于热爱编程的小伙伴来说,如果你需要更多编程知识分享或者有需求的话,笔者这里推荐一个编程入门学习交流聚集地→C语言/C++编程入门教学基地!还有完整的学习路线和学习文件视频以及源码,小白和大神们正在等着你一起探讨编程世界!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值