C语言程序设计课程大作业_第1页
C语言程序设计课程大作业_第2页
C语言程序设计课程大作业_第3页
C语言程序设计课程大作业_第4页
C语言程序设计课程大作业_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

阳光漆诚布学优

CilyUniversity

北京城市学院信息学部

2015-2016-1学期

C语言程序设计课程大作业

专业:

班级:

学生姓名:

学号:

2015年12月

C语言程序设计课程大作业分组报名表

项目名称通讯录管理系统

1、输入每一位联系人记录,将其信息存入文件中。

2、查询所有联系人的信息,并按可选的自定义规则

进行排序。

3、记录修改,将修改的记录信息保存于文件中。

项目功能

4、信息删除,将不必要的信息从文件中删除,再更

新文件内存。

5、按姓名排序,根据姓名首字母的ASCII码值按照

从、到大的顺序排序。

姓名性别年级专业方向学号备注

联系人

团队联系电话

姓名

联系

邮件

方式邮编

地址

以上团队的所有成员都是本校具有正式学籍的在校学生,所提交的作品均为

原创,特此证明。

签名:

年月日

目录

第一章团队介绍和人员分工..........................................1

1.1团队介绍....................................................1

1.2人员分工....................................................1

第二章程序主要功能................................................2

2.1添加联系人..................................................2

2.2查询联系人..................................................2

2.3信息修改....................................................2

2.4信息删除....................................................2

2.5按姓名排序..................................................2

第三章函数实现说明................................................3

3.1添加联系人..................................................3

3.2查看联系人..................................................3

3.3查找联系人..................................................3

3.4修改联系人..................................................3

3.5删除联系人..................................................3

3.6按姓名排序..................................................3

第四章调试分析.....................................................4

4.1问题一......................................................4

4.2问题二......................................................4

第五章作品原型.....................................................5

5.1进入管理界面................................................5

5.2选择跳转程序................................................5

5.3添加联系人..................................................5

5.4查看联系人..................................................5

5.5搜索联系人..................................................5

5.6修改联系人..................................................6

5.7删除联系人..................................................6

5.8联系人姓名排序..............................................6

5.9退出系统....................................................6

附录:...............................................................8

第一章团队介绍和人员分工

1.1团队介绍

1.2人员分工

我们的课题是手机通讯录系统,主要实现的功能是:联系人的添加、

查看、查询、删除、修改以及按姓名排序。

组长:

小组成员:

小组成员:

第二章程序主要功能

2.1添加联系人

输入每一位联系人记录,将其信息存入文件中。

2.2查询联系人

查询所有联系人的信息,并按可选的自定义规则进行排序。

2.3信息修改

修改联系人信息并将修改的记录信息保存于文件中。

2.4信息删除

将不必要的信息从文件中删除,再更新文件内存。

2.5按姓名排序

按照姓名首字母的ASCII码值从小到大的顺序排序。

2

第三章函数实现说明

3.1添加联系人

3.2查看联系人

3.3查找联系人

3.4修改联系人

3.5删除联系人

3.6按姓名排序

3

第四章调试分析

4.1问题一

4.2问题二

4

第五章作品原型

5.1进入管理界面

运行程序,出现管理界面。

界面由欢迎字幕,六个选项以及一个scanf输入函数组成,用户通过输

入数字0-6来调用不同的函数,使用手机通讯录的不同功能。

本手机通讯录功能包括:

1、添加联系人。

2、查看联系人。

3、搜索联系人。

4、修改联系人。

5、删除联系人。

6、联系人姓名排序。

7、退出本系统。

5.2选择跳转程序

5.3添加联系人

5.4查看联系人

5.5搜索联系人

5

5.6修改联系人

5.7删除联系人

5.8联系人姓名排序

5.9退出系统

选择退出系统,出现谢谢您使用手机通讯录管理系统。系统关闭。

6

^^"::\通讯录管理系统(1)\口61)11名\.前11.exe-口X

*™™欢迎进入手机通讯录管理系统*™™

L-二

-系

二_

-螫

-系

X*M3辑

-人

-除

-人

-一

系人

--系:

XXXXXXXXX]一

XMXMXXXXX0----

********请选择(0-6)

▼」

7

附录:

源代码。。。

#include<stdio.h>

#include<string.h>

/******宏定义*******/

#defineNAME_LEN21

#defineTEL_LEN12

#defineN1000

/******函数的声明*******/

voiddoAdd();

voiddoDelete();

voiddoUpdate();

voiddoList();

voidsearchPersonByName();

voidinit();

voidwriteFileQ;

/******变量定义*******/

typedefstructLinker{

〃联系人的姓名

charname[NAME_LEN];

〃联系人电话

charmobileNum[TEL_LEN];

(Person;

〃定义联系人数组

PersoncontactslNJ;

〃定义一个变量,用于存放当前联系人的个数

inttotalCount=0;

〃文件路径的变量

char*filePath=ntelbook.datan;

34.intmain(intargc,constchar*argv[]){

35.

36.intflag=1;

37.intnum=-l;

38.

39.〃进行初始化

40.init();

41.printf("数据初始化成功!…\n”);

42.

43.while(flag){

44.

45.printf(”**************************\n”);

8

46.printf("******欢迎使用通讯录******\n");

47.printf("******1>添加联系人******\n");

48.printf("******2、删除联系人******\n");

49.printf("******3、修改联系人******\n");

50.printff******4、查看所有联系人****\n");

51.printf("******5、搜索联系人******\n");

52.printf("******6、退出系统******\n");

53.printf(”**************************\n\n.

54.

55.printf("请选择1・6之间的一个操作\n”);

56.scanf("%d",&num);

57.if(num<=0IInum>6){

58.printf("非法输入\n)

59.}else{

60.

61.〃判断用户选择了哪个功能

62.switch(num){

63.

64.case1:

65.doAdd();

66.break;

67.case2:

68.doDelete();

69.break;

70.case3:

71.doUpdate();

72.break;

73.case4:

74.doList();

75.break;

76.case5:

77.searchPersonByName();

78.break;

79.case6:

80.primf("正在退出系统…\n");

81.printf("退出完成!\n");

82.flag=0;

83.break;

84.

85.default:

86.break;

87.)

88.

89.

90.

91.

92.

93.

94.

95.

96.

97.

98.return0;

99.)

9

100.

101.

102./**

103.*添加联系人

104.思路:

105.1)提示用户输入姓名和电话号码

106.2)接收用户输入的内容

107.3)保存到联系人数组

108.4)写入到文件中

109.*/

110.voiddoAdd(){

111.

112.printf("您选择的是添加联系,请按提示操作\11");

113.//I)提示用户输入姓名和电话号码

114.printf("请输入联系人姓名:*联系人姓名不能有空格\n");

115.//2)接收用户输入的内容

116.//00

117.//11contacts[l]

118.//3)保存到联系人数组

119.scanf(n%su,contacts[totalCountJ.name);

120.printf(”请输入联系人电话:*联系人电话不能有空格\n");

121.scanf("%su,contacts[totalCountl.mobileNum);

122.

123.〃联系人的总数要+1

124.totalCount++;

125.

126.//4)写入到文件中

127.writeFile();

128.

129.}

130./**

131.*删除联系人的函数

132.思路:

133.1)让用户输入要删除的数据的编号

134.2)判断编号是否合法

135.3)让用户再次确认删除

136.4)开始删除数组元素

137.5)删除文件内容

138.*/

139.voiddoDelete(){

140.

141.printf("您选择的是删除联系,请按提示操作\n");

142.doList();

143.//I)让用户输入要删除的数据的编号

144.intno;

145.printf("请输入要删除的联系人的编号:\n)

146.scanf(',%d,',&no);

147.//2)判断编号是否合法

148.if(no<=0IIno>totalCount){

149.printf("编号不存在!\n");

150.return;

151.)

10

152.〃3)让用户再次确认删除

153.intnol;

154.printf("请再次确认要删除的信息:0.取消1.确定\n)

155.scanf("%d",&nol);

156.

157.if(nol){

158.//4)开始删除数组元素

159.//1)删除的元素是数组的最后一个元素

160.if(no==totalCount){

161.totalCount—;

162.}else{

163.//2)删除的不是最后一个元素

164.

165.for(inti=no;i<totalCount;i++){

166.//后一个元素覆盖前一个元素

167.contactslno-1]=contactslnoj;

168.

169.)

170.

171.totalCount—;

172.//5)删除文件内容

173.writeFile();

174.)

175.)

176.

177.

178.

179.}

180./**

181.*更新联系人信息

182.思路:

183.1)提示输入要修改的联系人编号

184.2)判断编号是否合法

185.3)让用户输入新的姓名、电话

186.4)让用户再次确认修改

187.5)开始修改用户信息

188.6)更新到文件中

189.

190.*/

191.voiddoUpdate(){

192.

193.printf("您选择的是修改联系人,请按提示操作\n");

194.

195.doList();

196.//I)让用户输入要修改的数据的编号

197.intno;

198.printf("请输入要修改的联系人的编号:\nH);

199.scanf("%dn,&no);

200.//2)判断编号是否合法

201.if(no<=0IIno>totalCount){

202.printf("编号不存在!\n");

203.return;

204.)

11

205.//3)让用户输入新的姓名和电话号码

206.charnameINAME_LEN];

207.chartel[TEL_LEN];

n

208.printf(”请输入新的用户名:\n);

209.scanf(n%su,name);

210.printf(”请输入新的电话号码:\nH);

211.scanf(n%s\tel);

212.

213.//4)让用户再次确认修改

214.intnol;

215.printf("请再次确认要修改的信息:0.取消1.确定\n");

216.scanf("%d",&nol);

217.

218.if(nol){

219.//5)开始修改用户信息

220.

221.strcpy(contacts[no-1].name,name);

222.strcpy(contacts[no-1].mobileNum,tel);

223.

224.

225.//6)更新到文件中

226.writeFile();

227.

228.)

229.}

230.

231./**

232.*查看所有的联系人

233.思路:

234.1)先判断联系人是否为空

235.2)如果不为空,遍历数组,显示所有的联系人

236.*/

237.voiddoList(){

238.

239.if(totalCount==0){

240.

241.printf("您的通讯录还空无•人!\n");

242.

243.}else{

244.primf("所有的联系人信息如下:\n)

245.printf("编号\t姓名\t\t电话\n“);

246.for(inti=0;i<totalCount;i++){

247.printf(M%d\t%s\t\t%s\nH,i+l,contacts[i].name,contacts[i].mobileNum);

248.}

249.

250.)

251.

252.printf(n\nn);

253.}

254.

255./**

256.*根据联系人的姓名查找联系人

257.思路:

12

258.1)提示用户输入要查找的人的姓名

259.2)遍历联系人数组,查找有没有这个人

260.3)查找到了,把电话号码显示出来

261.4)没有查找到,提示没有这个联系人

262.*/

263.voidsearchPersonByName(){

264.

265.printf("您选择的是搜索联系人,请按提示操作:\n");

266.charname[NAME_LENJ;

267.//I)提示用户输入妻查找的人的姓名

268.

269.printf("请输入要查找的用户名:\n”);

270.scanf(M%s",name);

271.inti;

272.//2)遍历联系人数组,查找有没有这个人

273.for(i=0;i<totalCount;i++){

274.

275.//3)查找到了,把电话号码显示出来

276.if(strcmp(contacts[i].name,name)==0){

277.printf("您查找的%s的电话号码

是:%s\n",contactsli].name,contacts[i].mobileNum);

278.〃停止循环

279.break;

280.}

281.}

282.

283.//4)没有查找到,提示没有这个联系人

284.if(i==totalCount){

285.printf(“你的通讯录没有这个人!\n");

286.}

287.

288.printf("\nH);

289.

290.}

291.

292./**

293.初始化方法,用于初始化数据

294.思路:

295.1)尝试性的读取文件

296.2)如果成功了,说明文件存在,则读取文件内容

297.3)不成功,说明文件不存在,

298.1)创建文件

299.2)写入联系人数量

300.

301.

302.*/

303.voidinit(){

304.

305.〃读取数据文件

306.FILE*fp=fopen(filePath,Hrbu);

307.

308.if(fp!=NULL){

309.

13

310.〃读取到,fread读文件到数组中

311.//printf("通讯录文件已经存在!\n");

312.

313.〃先读取联系人的个数

314.fread(&totalCount,sizeof(int),1,fp);

315.//printf(HtotalCount=%d",totalCount);

316.for(inti=0;i<totalCount;i++){

317.〃循环读取每一块数据

318.fread(&contacts[i],sizeof(Person),1,fp);

319.}

320.

321.}e

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论