想寫個個人記帳軟體,各位大蝦給點意見吧

來源:互聯網
上載者:User

        引言:暑假到了,學校裡的食堂基本上都關門了,剩下的視窗做的菜又實在難吃,於是發揚自己動手、豐衣足食的精神,偶決定和GF一起在寢室做飯(還不能被樓管發現,否則會被通報批評,鬱悶)。然後GF就提出,將每天的花費記下來,看最後會比在食堂吃省多少。既然要記帳,就要有個記帳軟體,網上搜了一下,有個叫翔龍家庭記帳本(還是免費版哦,贊一個)的軟體做的還不錯,基本上可以滿足我們的需要(可以按日記錄收入與支出,制定分類,算出統計,檢索合格帳目,另外還有使用者管理、Database Backup這些功能)。不過偶一直有個習慣,就是自己開發一些日常軟體,把自己的想法用軟體表現出來,剛好現在正在學C#,就決定用C#開發一個了。(七彎八繞終於繞的主題了)

           基本的功能與上面的軟體差不多,大致說說我的想法吧:
    1、用樹形控制項查看每天的帳目,分年、月、日三級。點日結點的時候,可以看到每天的詳細帳目(買了什麼東西,花了多少錢),點月結點的時候就只看到這個月每天的花費,不詳細顯示,點年的時候效果差不多。用Datagrid顯示記錄。
    2、資料的儲存我想了兩種方式,一個是用access儲存,這樣可以用ADO.NET,操作起來比較簡單一些(問個問題,SqlHelper支不支援Access啊?),資料庫的建模偶是這樣想的:
       就建一個表,account,分這麼幾個欄位 
 

類型

支出項目

支出金額

       這麼設計主要還是因為自己水平太菜,所以選了個最不動腦子的建模方式。雖然這種方式有冗餘,年月日存在多值依賴,而且沒有把統計值給單列出來(這樣就不用每次查看帳目時都做SUM運算)。但我覺得在記錄比較少的時候對效能影響不大,就這樣偷個懶了。就說把統計值單列出來吧,那年、月、日都要有自己的統計值,每次修改帳目都涉及四個表的修改,挺麻煩的。
       另外就是用XML,我認為這也是最好的方式,因為本來要表達的就是一個樹形對象,用它儲存可以減少很多冗餘,用DOM可以一次性裝入整個記憶體(我覺得就算有個幾千條記錄也不會超過100K的),不過統計的計算就比較麻煩了,得用XPath一個個的找去求吧。
        現在的想法是先用ACCESS做,然後有時間了再用XML實現一個,兩個方式實現一個介面,用一個原廠模式。(再問個問題,用Datagrid載入資料庫、XML都可以吧)
     3、加入帳目的時候調用日曆控制項,獲得使用者選擇的日期。對使用者的輸入進行驗證時,我就只對金額輸入進行限制(用Regex),分類由使用者建立之後再選擇。
     4、用個ini檔案記錄使用者上次選擇的帳目結點還有其他的喜好設定。

     由於是第一個C#項目,所以不敢做太複雜了(按條件搜尋、Database Backup、使用者管理)以後再說,先把最早的版本做出來再說。現在正在準備考研,沒時間搞,等月底回家了再開始著手,爭取一兩個星期之內把第一個版本做出來,對以後可能進行開發的部分,預留個介面。

     偶的水平絕對是初學,想法很菜,大家不要笑哦。歡迎多交流。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.