电脑择友系统.DOC

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
电脑择友系统

簡易電腦擇友系統【王讚彬】 系統功能,輸入及輸出資料   在大學「電腦擇友」是一項很有趣的事,透過電腦擇友不僅可以廣交志趣相近的男女朋友,增廣見聞以外,更可以促進校際交流。這裡所謂的「簡易電腦擇友系統」是將電腦擇友問題予以簡化並撰寫程式來找出志趣相近的朋友;基本上,我們要輸入個人的基本資料,例如姓名(name)、性別(gender)、興趣(habit)…等,而系統的輸出則是每位參加者志趣相近的朋友候選人(candidate)。   為了簡化程式設計的複雜度且滿足問題描述的要求,我們做了以下的限制與基本假設: 輸入的資料 參加者基本資料(男女人數各以最多100名為限,可修改程式增加容量): 姓名(name)。 性別(gender):男(Male)或女(Female)。 註:為了簡化我們省略年齡、身高、聯絡電話及地址。 參加者興趣(habit):細項如電腦擇友表單所示。 註:當參加者填完表單後,必須有讀卡機或人工輸入成1跟0的字串,(1代表對該項有興趣;0代表對該項沒興趣)。 輸出的資料 每個人志趣相近的朋友候選人(candidate)姓名會直接輸出到螢幕上 基本假設與說明 每位參加者至少擁有MIN個候選人(candidate)且最多不得超過我們的設定值(MAX)。 每一項興趣同等重要,程式將找出與自己的興趣相同最多者。 電腦擇友程式將依據個人填寫之興趣,找出志趣相合的朋友,表單設計如下: 應用層面說明   除了電腦擇友以外,這個程式可修改以用來做為「人求事、事求人」的求職性向篩選等等應用。   這裡的「簡易電腦擇友系統」做了若干條件限制,讀者可以試著將一些條件放寬,修改程式以符合需求。例如現行程式為了滿足所有人的條件避免有人擇不到朋友,我們是先讓每個人至少擁有幾個候選人(candidate)且最多不得超過我們的設定值,因而擇到的朋友未必是與你志趣最接近者,另外,為了簡化我們在表單上也僅設計了自己的興趣,程式直接將雙方興趣比對找出接近者,並未將自己的興趣與自己的期望分開,例如,自己喜歡籃球未必也喜歡打籃球的女生,另外,每項興趣只提供「喜歡」與「不喜歡」兩種選項,並未提供如「非常喜歡」、「喜歡」、「不喜歡」、「非常不喜歡」較詳細的喜歡程度。最後雖說「年齡不是問題,身高不是距離」,但是很多人仍然十分在意,凡此種種為了簡化程式我們都未考慮,讀者可以自行修改程式以符合個人需求並達到學習的效果。 資料結構說明 在程式當中,我們建構並使用了兩個一維陣列(array)以及一個二維陣列(2D array)。 第一個一維陣列(male[])是用來記錄所有男性參加者的個人資料;第二個一維陣列(female[])是用來記錄所有女性參加者的個人資料。在這兩個陣列中我們加上了結構(structure)的概念,用來紀錄姓名、興趣及候選人等資料;第三個陣列(score[][])則是二維的,用這個二維陣列來儲存每對男性參加者與女性參加者的「速配」程度(興趣相似度),所以興趣相似度只要計算一次即可,避免每次都得重新計算的困擾,可以說是以空間換取時間。 第一個一維陣列(male[])的每一筆資料都是用來紀錄一名男性參加者的個人資料,每一筆資料都包含下列欄位: 姓名(char name[]) 每項興趣的喜好與否(char habit[]) 速配的候選人數(int candidate_no) 各個速配的候選人的索引(int candidate[]) 圖示概念如下: 男性參加者 欄位意義 欄位名稱 姓名 char name[] 每項興趣的喜好與否 char habit[] 速配的候選人數 int candidate_no 各個速配的候選人的索引 int candidate[] 再將所有的男性參加者集合成為一個一維陣列(male[])。 圖示概念如下: 陣列索引 姓名 每項興趣的喜好與否 速配的候選人數 各個速配的候選人的索引 [0] 第一位男性參加者的姓名 第一位男性參加者的每項興趣的喜好與否 第一位男性參加者的速配的候選人數 第一位男性參加者的各個速配的候選人的索引 [1] 第二位男性參加者的姓名 第二位男性參加者的每項興趣的喜好與否 第二位男性參加者的速配的候選人數 第二位男性參加者的各個速配的候選人的索引 [2] 第三位男性參加者的姓名 第三位男性參加者的每項興趣的喜好與否 第三位男性參加者的速配的候選人數 第三位男性參加者的各個速配的候選人的索引 ... ... ... ... ... 第二個一維陣列(female[])的每一筆資料都是用來紀錄一名女性參加者的個人資料,每一筆資料都包含下列欄位: 姓名(char name[]) 每項興趣的喜好與否(char habit[]) 速配的候選人數(int candidate_no) 各個速配的

文档评论(0)

fengruiling + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档