C語言程序設(shè)計(jì)課程大作業(yè)_第1頁
C語言程序設(shè)計(jì)課程大作業(yè)_第2頁
C語言程序設(shè)計(jì)課程大作業(yè)_第3頁
C語言程序設(shè)計(jì)課程大作業(yè)_第4頁
C語言程序設(shè)計(jì)課程大作業(yè)_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

陽光漆誠(chéng)布學(xué)優(yōu)

CilyUniversity

北京城市學(xué)院信息學(xué)部

2015-2016-1學(xué)期

C語言程序設(shè)計(jì)課程大作業(yè)

專業(yè):

班級(jí):

學(xué)生姓名:

學(xué)號(hào):

2015年12月

C語言程序設(shè)計(jì)課程大作業(yè)分組報(bào)名表

項(xiàng)目名稱通訊錄管理系統(tǒng)

1、輸入每一位聯(lián)系人記錄,將其信息存入文件中。

2、查詢所有聯(lián)系人的信息,并按可選的自定義規(guī)則

進(jìn)行排序。

3、記錄修改,將修改的記錄信息保存于文件中。

項(xiàng)目功能

4、信息刪除,將不必要的信息從文件中刪除,再更

新文件內(nèi)存。

5、按姓名排序,根據(jù)姓名首字母的ASCII碼值按照

從、到大的順序排序。

姓名性別年級(jí)專業(yè)方向?qū)W號(hào)備注

聯(lián)系人

團(tuán)隊(duì)聯(lián)系電話

姓名

聯(lián)系

郵件

方式郵編

地址

以上團(tuán)隊(duì)的所有成員都是本校具有正式學(xué)籍的在校學(xué)生,所提交的作品均為

原創(chuàng),特此證明。

簽名:

年月日

目錄

第一章團(tuán)隊(duì)介紹和人員分工..........................................1

1.1團(tuán)隊(duì)介紹....................................................1

1.2人員分工....................................................1

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

2.1添加聯(lián)系人..................................................2

2.2查詢聯(lián)系人..................................................2

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

2.4信息刪除....................................................2

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

第三章函數(shù)實(shí)現(xiàn)說明................................................3

3.1添加聯(lián)系人..................................................3

3.2查看聯(lián)系人..................................................3

3.3查找聯(lián)系人..................................................3

3.4修改聯(lián)系人..................................................3

3.5刪除聯(lián)系人..................................................3

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

第四章調(diào)試分析.....................................................4

4.1問題一......................................................4

4.2問題二......................................................4

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

5.1進(jìn)入管理界面................................................5

5.2選擇跳轉(zhuǎn)程序................................................5

5.3添加聯(lián)系人..................................................5

5.4查看聯(lián)系人..................................................5

5.5搜索聯(lián)系人..................................................5

5.6修改聯(lián)系人..................................................6

5.7刪除聯(lián)系人..................................................6

5.8聯(lián)系人姓名排序..............................................6

5.9退出系統(tǒng)....................................................6

附錄:...............................................................8

第一章團(tuán)隊(duì)介紹和人員分工

1.1團(tuán)隊(duì)介紹

1.2人員分工

我們的課題是手機(jī)通訊錄系統(tǒng),主要實(shí)現(xiàn)的功能是:聯(lián)系人的添加、

查看、查詢、刪除、修改以及按姓名排序。

組長(zhǎng):

小組成員:

小組成員:

第二章程序主要功能

2.1添加聯(lián)系人

輸入每一位聯(lián)系人記錄,將其信息存入文件中。

2.2查詢聯(lián)系人

查詢所有聯(lián)系人的信息,并按可選的自定義規(guī)則進(jìn)行排序。

2.3信息修改

修改聯(lián)系人信息并將修改的記錄信息保存于文件中。

2.4信息刪除

將不必要的信息從文件中刪除,再更新文件內(nèi)存。

2.5按姓名排序

按照姓名首字母的ASCII碼值從小到大的順序排序。

2

第三章函數(shù)實(shí)現(xiàn)說明

3.1添加聯(lián)系人

3.2查看聯(lián)系人

3.3查找聯(lián)系人

3.4修改聯(lián)系人

3.5刪除聯(lián)系人

3.6按姓名排序

3

第四章調(diào)試分析

4.1問題一

4.2問題二

4

第五章作品原型

5.1進(jìn)入管理界面

運(yùn)行程序,出現(xiàn)管理界面。

界面由歡迎字幕,六個(gè)選項(xiàng)以及一個(gè)scanf輸入函數(shù)組成,用戶通過輸

入數(shù)字0-6來調(diào)用不同的函數(shù),使用手機(jī)通訊錄的不同功能。

本手機(jī)通訊錄功能包括:

1、添加聯(lián)系人。

2、查看聯(lián)系人。

3、搜索聯(lián)系人。

4、修改聯(lián)系人。

5、刪除聯(lián)系人。

6、聯(lián)系人姓名排序。

7、退出本系統(tǒng)。

5.2選擇跳轉(zhuǎn)程序

5.3添加聯(lián)系人

5.4查看聯(lián)系人

5.5搜索聯(lián)系人

5

5.6修改聯(lián)系人

5.7刪除聯(lián)系人

5.8聯(lián)系人姓名排序

5.9退出系統(tǒng)

選擇退出系統(tǒng),出現(xiàn)謝謝您使用手機(jī)通訊錄管理系統(tǒng)。系統(tǒng)關(guān)閉。

6

^^"::\通訊錄管理系統(tǒng)(1)\口61)11名\.前11.exe-口X

*??歡迎進(jìn)入手機(jī)通訊錄管理系統(tǒng)*??

L-二

-系

二_

-螫

-系

X*M3輯

-人

-除

-人

-一

系人

--系:

聯(lián)

XXXXXXXXX]一

XMXMXXXXX0----

********請(qǐng)選擇(0-6)

▼」

7

附錄:

源代碼。。。

#include<stdio.h>

#include<string.h>

/******宏定義*******/

#defineNAME_LEN21

#defineTEL_LEN12

#defineN1000

/******函數(shù)的聲明*******/

voiddoAdd();

voiddoDelete();

voiddoUpdate();

voiddoList();

voidsearchPersonByName();

voidinit();

voidwriteFileQ;

/******變量定義*******/

typedefstructLinker{

〃聯(lián)系人的姓名

charname[NAME_LEN];

〃聯(lián)系人電話

charmobileNum[TEL_LEN];

(Person;

〃定義聯(lián)系人數(shù)組

PersoncontactslNJ;

〃定義一個(gè)變量,用于存放當(dāng)前聯(lián)系人的個(gè)數(shù)

inttotalCount=0;

〃文件路徑的變量

char*filePath=ntelbook.datan;

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

35.

36.intflag=1;

37.intnum=-l;

38.

39.〃進(jìn)行初始化

40.init();

41.printf("數(shù)據(jù)初始化成功!…\n”);

42.

43.while(flag){

44.

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

8

46.printf("******歡迎使用通訊錄******\n");

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

48.printf("******2、刪除聯(lián)系人******\n");

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

50.printff******4、查看所有聯(lián)系人****\n");

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

52.printf("******6、退出系統(tǒng)******\n");

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

54.

55.printf("請(qǐng)選擇1?6之間的一個(gè)操作\n”);

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

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

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

59.}else{

60.

61.〃判斷用戶選擇了哪個(gè)功能

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("正在退出系統(tǒng)…\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.*添加聯(lián)系人

104.思路:

105.1)提示用戶輸入姓名和電話號(hào)碼

106.2)接收用戶輸入的內(nèi)容

107.3)保存到聯(lián)系人數(shù)組

108.4)寫入到文件中

109.*/

110.voiddoAdd(){

111.

112.printf("您選擇的是添加聯(lián)系,請(qǐng)按提示操作\11");

113.//I)提示用戶輸入姓名和電話號(hào)碼

114.printf("請(qǐng)輸入聯(lián)系人姓名:*聯(lián)系人姓名不能有空格\n");

115.//2)接收用戶輸入的內(nèi)容

116.//00

117.//11contacts[l]

118.//3)保存到聯(lián)系人數(shù)組

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

120.printf(”請(qǐng)輸入聯(lián)系人電話:*聯(lián)系人電話不能有空格\n");

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

122.

123.〃聯(lián)系人的總數(shù)要+1

124.totalCount++;

125.

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

127.writeFile();

128.

129.}

130./**

131.*刪除聯(lián)系人的函數(shù)

132.思路:

133.1)讓用戶輸入要?jiǎng)h除的數(shù)據(jù)的編號(hào)

134.2)判斷編號(hào)是否合法

135.3)讓用戶再次確認(rèn)刪除

136.4)開始刪除數(shù)組元素

137.5)刪除文件內(nèi)容

138.*/

139.voiddoDelete(){

140.

141.printf("您選擇的是刪除聯(lián)系,請(qǐng)按提示操作\n");

142.doList();

143.//I)讓用戶輸入要?jiǎng)h除的數(shù)據(jù)的編號(hào)

144.intno;

145.printf("請(qǐng)輸入要?jiǎng)h除的聯(lián)系人的編號(hào):\n)

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

147.//2)判斷編號(hào)是否合法

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

149.printf("編號(hào)不存在!\n");

150.return;

151.)

10

152.〃3)讓用戶再次確認(rèn)刪除

153.intnol;

154.printf("請(qǐng)?jiān)俅未_認(rèn)要?jiǎng)h除的信息:0.取消1.確定\n)

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

156.

157.if(nol){

158.//4)開始刪除數(shù)組元素

159.//1)刪除的元素是數(shù)組的最后一個(gè)元素

160.if(no==totalCount){

161.totalCount—;

162.}else{

163.//2)刪除的不是最后一個(gè)元素

164.

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

166.//后一個(gè)元素覆蓋前一個(gè)元素

167.contactslno-1]=contactslnoj;

168.

169.)

170.

171.totalCount—;

172.//5)刪除文件內(nèi)容

173.writeFile();

174.)

175.)

176.

177.

178.

179.}

180./**

181.*更新聯(lián)系人信息

182.思路:

183.1)提示輸入要修改的聯(lián)系人編號(hào)

184.2)判斷編號(hào)是否合法

185.3)讓用戶輸入新的姓名、電話

186.4)讓用戶再次確認(rèn)修改

187.5)開始修改用戶信息

188.6)更新到文件中

189.

190.*/

191.voiddoUpdate(){

192.

193.printf("您選擇的是修改聯(lián)系人,請(qǐng)按提示操作\n");

194.

195.doList();

196.//I)讓用戶輸入要修改的數(shù)據(jù)的編號(hào)

197.intno;

198.printf("請(qǐng)輸入要修改的聯(lián)系人的編號(hào):\nH);

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

200.//2)判斷編號(hào)是否合法

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

202.printf("編號(hào)不存在!\n");

203.return;

204.)

11

205.//3)讓用戶輸入新的姓名和電話號(hào)碼

206.charnameINAME_LEN];

207.chartel[TEL_LEN];

n

208.printf(”請(qǐng)輸入新的用戶名:\n);

209.scanf(n%su,name);

210.printf(”請(qǐng)輸入新的電話號(hào)碼:\nH);

211.scanf(n%s\tel);

212.

213.//4)讓用戶再次確認(rèn)修改

214.intnol;

215.printf("請(qǐng)?jiān)俅未_認(rèn)要修改的信息: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.*查看所有的聯(lián)系人

233.思路:

234.1)先判斷聯(lián)系人是否為空

235.2)如果不為空,遍歷數(shù)組,顯示所有的聯(lián)系人

236.*/

237.voiddoList(){

238.

239.if(totalCount==0){

240.

241.printf("您的通訊錄還空無?人!\n");

242.

243.}else{

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

245.printf("編號(hào)\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.*根據(jù)聯(lián)系人的姓名查找聯(lián)系人

257.思路:

12

258.1)提示用戶輸入要查找的人的姓名

259.2)遍歷聯(lián)系人數(shù)組,查找有沒有這個(gè)人

260.3)查找到了,把電話號(hào)碼顯示出來

261.4)沒有查找到,提示沒有這個(gè)聯(lián)系人

262.*/

263.voidsearchPersonByName(){

264.

265.printf("您選擇的是搜索聯(lián)系人,請(qǐng)按提示操作:\n");

266.charname[NAME_LENJ;

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

268.

269.printf("請(qǐng)輸入要查找的用戶名:\n”);

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

271.inti;

272.//2)遍歷聯(lián)系人數(shù)組,查找有沒有這個(gè)人

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

274.

275.//3)查找到了,把電話號(hào)碼顯示出來

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

277.printf("您查找的%s的電話號(hào)碼

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

278.〃停止循環(huán)

279.break;

280.}

281.}

282.

283.//4)沒有查找到,提示沒有這個(gè)聯(lián)系人

284.if(i==totalCount){

285.printf(“你的通訊錄沒有這個(gè)人!\n");

286.}

287.

288.printf("\nH);

289.

290.}

291.

292./**

293.初始化方法,用于初始化數(shù)據(jù)

294.思路:

295.1)嘗試性的讀取文件

296.2)如果成功了,說明文件存在,則讀取文件內(nèi)容

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

298.1)創(chuàng)建文件

299.2)寫入聯(lián)系人數(shù)量

300.

301.

302.*/

303.voidinit(){

304.

305.〃讀取數(shù)據(jù)文件

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

307.

308.if(fp!=NULL){

309.

13

310.〃讀取到,fread讀文件到數(shù)組中

311.//printf("通訊錄文件已經(jīng)存在!\n");

312.

313.〃先讀取聯(lián)系人的個(gè)數(shù)

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

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

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

317.〃循環(huán)讀取每一塊數(shù)據(jù)

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

319.}

320.

321.}e

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論