毕业设计的代码

1.	main

    func initEverydayString() {
//        取得系统时间
        dateFormatter.dateFormat = "yyyy-MM-dd"
        let dayStr = dateFormatter.stringFromDate(date)

//        发送GET请求,得到“每日一句”内容并增加到UI中
        let param: Dictionary = ["date" : dayStr]
        Alamofire.request(.GET, urlEverydayAPI, parameters: param).responseJSON {
            response in
            var tmp = response.result.value?.objectForKey("note")
            var cnString = String(tmp)
            tmp = response.result.value?.objectForKey("content")
            var enString = String(tmp)

            if (cnString != "nil"){
                cnString = cnString.substringFromIndex(cnString.startIndex.advancedBy(9))
                cnString = cnString.substringToIndex(cnString.endIndex.advancedBy(-1))
            }

            if (enString != "nil"){
                enString = enString.substringFromIndex(enString.startIndex.advancedBy(9))
                enString = enString.substringToIndex(enString.endIndex.advancedBy(-1))
            }
            self.cnEverydayString.lineBreakMode = NSLineBreakMode.ByWordWrapping
            self.cnEverydayString.numberOfLines = 0
            self.enEverydayString.lineBreakMode = NSLineBreakMode.ByWordWrapping
            self.enEverydayString.numberOfLines = 0
            self.cnEverydayString.text = cnString
            self.enEverydayString.text = enString

        }

    }
    func initDB() {
//      在系统沙盒中,将Voca.txt逐行读出,并存入数据库db.sqlite3
//          找到沙盒路径
        let file = "Voca.txt"
	if let dir : NSString = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.AllDomainsMask, true).first {
            let path = dir.stringByAppendingPathComponent(file);
            print(path)
            let dbPath = dir.stringByAppendingPathComponent("db.sqlite3")
            do {
//          将Voca.txt内容读出,逐行存入数组stringArr中,
//          数组元素为Voca.txt中每行的字符串
            let text2 = try NSString(contentsOfFile: path, encoding: NSUTF8StringEncoding)
                print(text2)
                let tmp: String = text2 as String
            let stringArr = tmp.componentsSeparatedByCharactersInSet(NSCharacterSet.newlineCharacterSet())
//          建立数据库,表名CET4
                let db = try Connection(dbPath)
                let cet4Table = Table("CET4")
                let wordID = Expression<Int64>("id")
                let word = Expression<String>("word")
                let translate = Expression<String>("translate")
                let proficiency = Expression<Int64>("proficiency")
//          声明表中元素,wordID为主键
                try db.run(
                    cet4Table.create{
                        t in
                        t.column(wordID, primaryKey: true)
                        t.column(word)
                        t.column(translate)
                        t.column(proficiency)
                    }
                )
//          将stringArr中的字符串在进行拆分后放入表中
                for (var i = 0; i<stringArr.count; i=i+1) {
                    var index = stringArr[i].characters.indexOf(".")!
                    var wordTmp = stringArr[i].substringToIndex(index)
                    var transTmp = stringArr[i].substringFromIndex(index)
                    var insert = cet4Table.insert(word <- wordTmp, translate <- transTmp, proficiency <- 0)
                    var rowid = try db.run(insert)
                }
            }
            catch {
                print("something has happened in selectView")}
        }
}


2.查单词
//  发送GET请求,接受单词释义
    @IBAction func searchButton(sender: AnyObject) {
        if (searchText.text != nil) {
            let param: Dictionary = ["word" : searchText.text]
            Alamofire.request(.GET, searchWordURL, parameters: param).responseJSON{ response in
                let tmp = response.result.value?.objectForKey("data")?.objectForKey("definition")
                var ret = String(tmp)
                if (ret != "nil") {
                    ret = ret.substringFromIndex(ret.startIndex.advancedBy(9))
                    ret = ret.substringToIndex(ret.endIndex.advancedBy(-1))
                    self.translateText.text = ret
                }
                else{
                    self.translateText.text = "没有释义"
                }
            }

        }

}



3.统计图
//  数据初始化,提供一些需要图表化得参数
    func initData() {

        do {
            if (try db.scalar(cet4Table.select(wordID.max)) == nil){
                wholeWord = 0
                recitedWord = 0
                irrecitedWord = 0
            }
            else {
                wholeWord = try db.scalar(cet4Table.select(wordID.max))!
                for row in try db.prepare("SELECT proficiency FROM CET4"){
                    if ((row[0]! as! Int64) == 3) {
                        recitedWord = recitedWord + 1
                    }

                }
                irrecitedWord = wholeWord - recitedWord
                print(wholeWord)
                print(recitedWord)
            }

        }
        catch {
            wholeWord = 0
            recitedWord = 0
            irrecitedWord = 0

        }
    }

//  初始化pie图
    func initPieChart() {
        pieChart.noDataText = "u may as well add data!"


        if (wholeWord != 0){
//            设置pie图参数,包括元素个数,值,图表颜色,元素意义等
            var chartDataEntries: [ChartDataEntry] = []

            var dataEntry = ChartDataEntry(value: Double(recitedWord), xIndex: 1)
            chartDataEntries.append(dataEntry)
            dataEntry = ChartDataEntry(value:Double(irrecitedWord) , xIndex: 2)
            chartDataEntries.append(dataEntry)


            var chartDataSet = PieChartDataSet(yVals: chartDataEntries, label: " ")


            chartDataSet.colors = ChartColorTemplates.colorful()

            let xVal: [String] = ["已背", "未背"]
            let chartData = PieChartData(xVals: xVal, dataSet: chartDataSet)
            pieChart.data = chartData
            pieChart.animate(xAxisDuration: 2.0, yAxisDuration: 2.0)
        }
    }




4.背单词
//      “知道”按钮的相应,显示下一个单词,并将当前单词的“proficiency”设为3
    @IBAction func knownButton(sender: AnyObject) {
//      找到数据库中单词对应的行,并将当前单词的“proficiency”设为3
        let tmp = cet4Table.filter(wordID == currentID)
        try! db.run(tmp.update(proficiency <- 3))
//      先判断是否已经背完单词,再显示下一个单词
        if (isMax() == false){
            for row in try! db.prepare("SELECT id, word, translate, proficiency FROM CET4 WHERE id>" + String(currentID)){
                if ((row[3]! as! Int64) < 3){
                    outputText.text = row[1]! as! String
                    currentID = row[0]! as! Int64
                    break
                }
            }
        }
        else{
            knownButton.hidden = true
            unknownButton.hidden = true
            outputText.text = "you have successfully recited whole deal!"
        }

    }


//      “不知道”按钮的相应,显示单词释义,显示“下一个”按钮,并将当前单词的“proficiency”的值+1
    @IBAction func unknownButton(sender: AnyObject) {
        let tmp = cet4Table.filter(wordID == currentID)
        try! db.run(tmp.update(proficiency <- proficiency+1))
        for row in try! db.prepare("SELECT translate FROM CET4 WHERE id = " + String(currentID)){
            outputText.text = outputText.text! + (row[0]! as! String)
        }
        knownButton.hidden = true
        unknownButton.hidden = true
        nextButton.hidden = false
    }

//      "下一个"按钮的相应,先判断是否背完单词,再显示下个单词
    @IBAction func nextButton(sender: AnyObject) {
        knownButton.hidden = false
        unknownButton.hidden = false
        nextButton.hidden = true
        if (isMax() == false){
            for row in try! db.prepare("SELECT id, word, translate, proficiency FROM CET4 WHERE id>" + String(currentID)){
                if ((row[3]! as! Int64) < 3){
                    outputText.text = row[1]! as! String
                    currentID = row[0]! as! Int64
                    break
                }
            }
        }
        else{
            nextButton.hidden = true
            outputText.text = "you have successfully recited whole deal!"
        }
    }

//  判断当前单词id是否已经达到数据库中最大id值
    func isMax() -> Bool {
        let max = try! db.scalar(cet4Table.select(wordID.max))
        if (max == currentID){
            return true
        }
        else{
            return false
        }
    }

    func initOutput() {
        for row in try! db.prepare("SELECT id, word, translate, proficiency FROM CET4"){
            if ((row[3]! as! Int64) < 3){
                outputText.text = row[1]! as! String
                currentID = row[0]! as! Int64
                break
            }
        }
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值