4你怎麼看待軟體工程這個專業?學習這個專業你對自己有什麼期望?
答:雖然不是自己感興趣的專業,但是既來之則安之,自己通過課本外的教材來充實自己,希望學有所成而不是傻傻的連個最基本的代碼都不會敲。
5你是怎麼學習C語言的?(作業,實驗,教材,其他),目前為止估算自己寫過多少行代碼?
答:通過課本和課本以外的教材來學習。沒有估算過。
6C語言的學習有什麼經驗和教訓?
答: 熟能生巧 勤能補拙。 代碼反覆推敲,知其然並知其所以然。
7.除了應付考試和實驗,編程在什麼地方幫到過你?
答: 嗯...整蠱的小程式算嗎!
8.學了C語言,你分的清數組指標,指標數組;函數指標,指標函數這些概念嗎?
答:概念上比較模糊 還有待深入學習。
9.學了C語言,你明白檔案和流的區別和聯絡嗎?如何區分文字檔和二進位檔案?如何編程操作這兩種檔案?
答:目前的知識還不足以回答。
10.學了C語言,你知道什麼叫面向過程嗎?它解決問題的方法是什嗎?
答:過程就是按順序執行。
11.在C語言裡面,什麼是模組?你寫過多個源檔案的程式嗎?
答:函數,大多都是書上的代碼。
12.學了C語言,你知道什麼是“高內聚,低耦合”嗎?這個原則如何應用到高品質程式設計中?
答:目前的知識不足以回答。//definition.h檔案
#ifndef DEFINITION_H_
#define DEFINITION_H_
#include <stdio.h>
#include <stdlib.h>
typedef char DataType;
typedef struct node{
DataType data;
struct node *next;
}stack,*LinkStack;
#endif
//function函數
#include "definition.h" LinkStack Init_LinkStack(stack *top);//置空棧 int Empty_Stack(stack *top);//判斷棧空 LinkStack Push_LinkStack(stack *top,DataType x);//壓棧 DataType Pop_LinkStack(stack *top);//出棧 DataType Top_LinkStack(stack *top);//棧首元素 int BracketsCheck(stack *top, DataType a[]);//括弧配對
LinkStack Init_LinkStack(stack *top){ top = NULL; return top; } int Empty_Stack(stack *top){ if (top == NULL) return 1; else return 0; } LinkStack Push_LinkStack(stack *top,DataType x){ stack *s; s = (stack *)malloc(sizeof(stack)); s->data = x; s->next = top; top = s; return top; } DataType Pop_LinkStack(stack *top){ stack *s; if (Empty_Stack(top)) return NULL; else{ DataType x; x = top->data; s = top; top = top->next; free(s); return x; }
} DataType Top_LinkStack(stack *top){ if (Empty_Stack(top)) return NULL; else return top->data; } int BracketsCheck(stack *top,DataType a[]){ int i = 0;//從0開始依次掃描整個字串 while (a[i]){ DataType ch = a[i++];//將掃描到的字元變數給ch switch (ch){ //switch 的作用對字串裡面的括弧分情況處理 case ‘{‘: case ‘[‘: case ‘(‘: Push_LinkStack(top, ch); //任意一種左括弧入棧 break; case ‘}‘: if (!Empty_Stack(top) && (Top_LinkStack(top) == ‘}‘))//將棧頂的括弧和掃描到的右括弧做比較 Pop_LinkStack(top);//將棧頂左括弧出棧 else return 0; break; case ‘]‘: if (!Empty_Stack(top) && (Top_LinkStack(top) == ‘}‘)) Pop_LinkStack(top); else return 0; break; case ‘)‘: if (!Empty_Stack(top) && (Top_LinkStack(top) == ‘}‘)) Pop_LinkStack(top); else return 0; break; }//end swithch
}//end while if (Empty_Stack(top)) return 3; else return 0; }//end BracketsCheck
//主調函數main
#define _CRT_SECURE_NO_WARNINGS//行首加vs2013版本以上解決宏禁止不安全函數
#include "definition.h"
#include "function.h"
int main(){
stack *s;
int x;
s = (stack *)malloc(sizeof(stack));
s = Init_LinkStack(s);
printf("初始化成功\n");
DataType a[80];
printf("請輸入一個字串:"); scanf("%s", a);
x=BracketsCheck(s,a);
if (x==1)
printf("匹配失敗");
else if (x == 0)
printf("匹配成功");
else
printf("沒有輸入括弧");
system("pause");
}