版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度新能源汽車批量訂購合同4篇
- 2025年度體育賽事代理運(yùn)營(yíng)管理合同樣本4篇
- 2025年度生態(tài)停車場(chǎng)車位購置協(xié)議4篇
- 生物活性營(yíng)養(yǎng)土項(xiàng)目可行性研究報(bào)告模板范文(立項(xiàng)備案項(xiàng)目申請(qǐng))
- 2025年新生入學(xué)教育法律協(xié)議書(綜合服務(wù))3篇
- 2025年度個(gè)人信用評(píng)分服務(wù)協(xié)議3篇
- 2025年度個(gè)人股權(quán)交易合同范本:股權(quán)轉(zhuǎn)讓流程與稅務(wù)籌劃4篇
- 2025年度企業(yè)項(xiàng)目合作協(xié)議范本4篇
- 2025年浙江澤興環(huán)保工程有限公司招聘筆試參考題庫含答案解析
- 二零二五年度林業(yè)生態(tài)恢復(fù)苗木采購合同文本4篇
- 安徽省合肥市包河區(qū)2023-2024學(xué)年九年級(jí)上學(xué)期期末化學(xué)試題
- 《酸堿罐區(qū)設(shè)計(jì)規(guī)范》編制說明
- PMC主管年終總結(jié)報(bào)告
- 售樓部保安管理培訓(xùn)
- 倉儲(chǔ)培訓(xùn)課件模板
- 2025屆高考地理一輪復(fù)習(xí)第七講水循環(huán)與洋流自主練含解析
- GB/T 44914-2024和田玉分級(jí)
- 2024年度企業(yè)入駐跨境電商孵化基地合作協(xié)議3篇
- 《形勢(shì)與政策》課程標(biāo)準(zhǔn)
- 2023年海南省公務(wù)員錄用考試《行測(cè)》真題卷及答案解析
- 橋梁監(jiān)測(cè)監(jiān)控實(shí)施方案
評(píng)論
0/150
提交評(píng)論