毕业设计的代码

来源:互联网 发布:incites数据库 编辑:程序博客网 时间:2024/06/05 18:19
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