diff --git a/README.md b/README.md index 0280021..337a83f 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,19 @@ -# Student-Score-Logging-System -An Project Swift X Project Record Production +# SScore-Logging-System + +============================================= +SORRY FOR WAITING +DUE TO 2FA ISSUES I LOST MY ACCOUNT +UPDATE WILL BE COMING SOON ============================================= +Biege Update beta2.1 released. +Cyan Update Coming Soon. +--------------------------------------------- AMBER UPDATE(beta2.0)released +--------------------------------------------- for future planning, goto issues. --------------------------------------------- AMBER UPDATE IS COMING SOON ---------------------------------------------- + UPDATE-Sep.6 alphaα1.1 Released! Each student can have 5 English names now! diff --git a/beta-2.0/AmberNotes.txt b/beta-2.0/AmberNotes.txt index 6527e65..4455047 100644 --- a/beta-2.0/AmberNotes.txt +++ b/beta-2.0/AmberNotes.txt @@ -1,7 +1,7 @@ Fistful of changes-check them in issues for main changes in Amber update 大把的新特性-请在issues中查看2.0版AmberUpdate的新变化 Function:Log student's score by entering their fullname or nickname -主要功能:使用学生的全名/昵称快速等级学生分数 +主要功能:使用学生的全名/昵称快速登记学生分数 -using .csv list for student list and score output 使用.csv记录学生名单和保存学生分数 -Multiclass supported(require correct format) diff --git a/beta-2.1/BiegeNotes.txt b/beta-2.1/BiegeNotes.txt new file mode 100644 index 0000000..7fe0448 --- /dev/null +++ b/beta-2.1/BiegeNotes.txt @@ -0,0 +1,6 @@ +新的确认录入数量的方法 +修正读取非标准csv文件时的无响应问题 +修正因为没有清除内存残余信息导致的学生信息紊乱问题 +修正显示提示语的逻辑问题 +bool(0/1)值读入方法被getche替换 +修正启动时检查执行模式时模式重合的问题 \ No newline at end of file diff --git a/beta-2.1/SLS2.1.c b/beta-2.1/SLS2.1.c new file mode 100644 index 0000000..473c337 --- /dev/null +++ b/beta-2.1/SLS2.1.c @@ -0,0 +1,875 @@ +#include +#include +#include +#include +#include +#include + +#define MAXSTU 61 +#define MAXCHN 51 +#define MAXNNAMELEN 21 +#define MAXNNAMENUM 5 +//Class+Student Info +struct examResult { + int score; + int ranking; +}; +struct hwResult { + char grade[11]; +}; +struct studentInfo { + char CHN[MAXCHN],NICKNAME[MAXNNAMENUM][MAXNNAMELEN]; + short nameNum; + struct examResult exRes; + struct hwResult hwRes; +}; +struct classInfo { + int num,stuNum; +}; +struct studentInfo array[MAXSTU]; +struct classInfo cuClass; +//Program Properties +struct settingsGroup { + short ELAC; + short lang; + bool defaultC; + short defaultCNum; + bool defaultT; + short defaultTNum;//0=examResult,1=exercise/homeworkResult + bool debugMode; + short cuT; +}; +struct settingsGroup settings; +struct statementGroup { + //short cuType; + short cuLoggedStuNum; +}; +struct statementGroup states; +//List(*.csv)File Lines Processing +char cuProLine[201]; +char cuProComponent[21]; +int DEBUG_SWITCH=1; +//Function List + Declaration +void showDebugInfo(int phase); +void init(); +void showVersion(); +void loadSettings(); +void selectClass(); +void selectType(); +void changeCurrentSettings(); +void confirmation(); +void loadStudentInfo(); +void logging(); +void printCSV(); +void prepare(); +void goodbye(); +void clearStudentInfo(); +//Always a good friend. +void showDebugInfo(int phase) { + if(settings.debugMode==0)return; + if(phase==1) { + printf("[DEBUG]========================\n"); + printf("[DEBUG]The appearing of these info means you're in debug mode.\n"); + printf("[DEBUG]settings.debugMode=%d\n",settings.debugMode); + printf("[DEBUG]settings.lang=%d\n",settings.lang); + printf("[DEBUG]settings.defaultC=%d\n",settings.defaultC); + printf("[DEBUG]settings.defaultCNum=%d\n",settings.defaultCNum); + printf("[DEBUG]settings.defaultT=%d\n",settings.defaultT); + printf("[DEBUG]settings.defaultTNum=%d\n",settings.defaultTNum); + printf("[DEBUG]Phase 1 over.Smile!\n"); + printf("[DEBUG]========================\n"); + } + if(phase==2) { + printf("[DEBUG]========================\n"); + printf("[DEBUG]cuClass.num=%d\n",cuClass.num); + printf("[DEBUG]settings.cuT=%d\n",settings.cuT); + printf("[DEBUG]Phase 2 over.Why not encourage yourself?\n"); + printf("[DEBUG]========================\n"); + } + if(phase==3) { + printf("[DEBUG]========================\n"); + printf("[DEBUG]cuClass.stuNum=%d\n",cuClass.stuNum); + int i,j; + for(i=1; i<=cuClass.stuNum; i++) { + printf("[DEBUG]"); + puts(array[i].CHN); + printf("[DEBUG]"); + for(j=1; j<=array[i].nameNum; j++) { + printf("%d:%s;",j,array[i].NICKNAME[j-1]); + } + printf("\n[DEBUG]score=%d,grade=%s",array[i].exRes.score,array[i].hwRes.grade); + printf("\n"); + } + printf("[DEBUG]Phase 3 over.My task is over.Good night.Love you\n"); + printf("[DEBUG]========================\n"); + } +} +//Initalization begins here. +void init() { + showVersion();//show current running version info and copyrights + loadSettings();//load running properties + showDebugInfo(2); + clearStudentInfo(); + loadStudentInfo(); + showDebugInfo(3); + fclose(stdin); + switch(settings.lang) { + case 0: { + freopen("lang/en_us/initalizing.lang","r",stdin); + break; + } + case 1: { + freopen("lang/zh_cn/initalizing.lang","r",stdin); + break; + } + default: { + freopen("lang/zh_cn/initalizing.lang","r",stdin); + break; + } + } + int i; + for(i=0; i<=cuClass.stuNum; i++) { + array[i].exRes.score=0; + array[i].hwRes.grade[0]='*'; + } + while(1) { + gets(cuProLine); + if(cuProLine[0]=='&') + break; + printf("%s\n",cuProLine); + } + fclose(stdin); + freopen("CON","r",stdin); + if(settings.debugMode==true)printf("[init]My job was over.Good night\n"); + usleep(333000); +} +//Shows the title&version at the beginning. +void showVersion() { + fclose(stdin); + freopen("about.md","r",stdin); + char ver[101]; + while(1) { + gets(ver); + if(ver[0]=='&')break; + puts(ver); + } + fclose(stdin); + freopen("CON","r",stdin); + if(settings.debugMode==true) { + printf("[ShowVersion]Destiny finished.Have a good day\n"); + } + usleep(500000); +} +//Settings are loaded here."options.ini" +void loadSettings() { + settings.lang=1; + settings.defaultC=false; + settings.defaultCNum=0; + settings.defaultT=false; + settings.defaultTNum=0; + settings.debugMode=false; + settings.ELAC=0; + int value; + fclose(stdin); + freopen("options.ini","r",stdin); + while(1) { + //scanf("%s",cuProLine); + gets(cuProLine); + if(cuProLine[0]=='&')break; + if(cuProLine[0]=='#')continue; + scanf("%d",&value); + if(strcmp(cuProLine,"LA")==0) {//Language + switch(value) { + case 0: { + settings.lang=0; + break; + } + case 1: { + settings.lang=1; + break; + } + default: { + settings.lang=1; + break; + } + } + continue; + } + if(strcmp(cuProLine,"UDC")==0) {//useDefaultClass + switch(value) { + case 0: { + settings.defaultC=false; + break; + } + case 1: { + settings.defaultC=true; + break; + } + default: { + settings.defaultC=false; + break; + } + } + continue; + } + if(strcmp(cuProLine,"UDT")==0) {//useDefaultType + switch(value) { + case 0: { + settings.defaultT=false; + break; + } + case 1: { + settings.defaultT=true; + break; + } + default: { + settings.defaultT=false; + break; + } + } + continue; + } + if(strcmp(cuProLine,"DM")==0) {//DebugMode + switch(value) { + case 0: { + settings.debugMode=false; + break; + } + case 1: { + settings.debugMode=true; + break; + } + default: { + settings.debugMode=false; + break; + } + } + continue; + } + if(strcmp(cuProLine,"ELAC")==0) {//DebugMode + settings.ELAC=value; + continue; + } + if(strcmp(cuProLine,"DC")==0 && settings.defaultC==true) { //defaultClass + settings.defaultCNum=value; + cuClass.num=value; + continue; + } + if(strcmp(cuProLine,"DT")==0 && settings.defaultT==true) { //defaultType + settings.defaultTNum=value; + settings.cuT=value; + continue; + } + } + fclose(stdin); + freopen("CON","r",stdin); + showDebugInfo(1); + if(settings.defaultC==0)selectClass(); + if(settings.defaultT==0)selectType(); + if(settings.debugMode==true)printf("[loadSettings]My job was over.Good night\n"); +} +//Select options when default is not provided +void selectClass() { + fclose(stdin); + switch(settings.lang) { + case 0: { + freopen("lang/en_us/acquiringDefaultClass.lang","r",stdin); + break; + } + case 1: { + freopen("lang/zh_cn/acquiringDefaultClass.lang","r",stdin); + break; + } + default: { + freopen("lang/zh_cn/acquiringDefaultClass.lang","r",stdin); + break; + } + } + while(1) { + gets(cuProLine); + if(cuProLine[0]=='&') + break; + printf("%s\n",cuProLine); + } + fclose(stdin); + freopen("CON","r",stdin); + scanf("%d",&cuClass.num); + if(settings.debugMode==true)printf("[selectClass]Selected.Have a good day\n"); +} +void selectType() { + fclose(stdin); + switch(settings.lang) { + case 0: { + freopen("lang/en_us/acquiringDefaultType.lang","r",stdin); + break; + } + case 1: { + freopen("lang/zh_cn/acquiringDefaultType.lang","r",stdin); + break; + } + default: { + freopen("lang/zh_cn/acquiringDefaultType.lang","r",stdin); + break; + } + } + while(1) { + gets(cuProLine); + if(cuProLine[0]=='&') + break; + printf("%s\n",cuProLine); + } + fclose(stdin); + freopen("CON","r",stdin); + char res; +selTypeBegin: + res=getche(); + printf("\n"); + switch(res) { + case '0': { + settings.cuT=0; + break; + } + case '1': { + settings.cuT=1; + break; + } + default: { + switch(settings.lang) { + case 0: { + freopen("lang/en_us/illegalInput.lang","r",stdin); + break; + } + case 1: { + freopen("lang/zh_cn/illegalInput.lang","r",stdin); + break; + } + default: { + freopen("lang/zh_cn/illegalInput.lang","r",stdin); + break; + } + } + while(1) { + gets(cuProLine); + if(cuProLine[0]=='&') + break; + printf("%s\n",cuProLine); + } + fclose(stdin); + freopen("CON","r",stdin); + goto selTypeBegin; + break; + } + } + if(settings.debugMode==true)printf("[selectType]Selected.Have a good day\n"); +} +//Stand in lines.We're counting the students. +void loadStudentInfo() { + fclose(stdin); + freopen("list.csv","r",stdin); + int scClass=999,cuStuNum; + int i,j,k; + int nnamenum; + while(scClass!=cuClass.num) { + scanf("C%d,%d",&scClass,&cuStuNum); + scanf("%s",cuProLine); + if(scClass==cuClass.num)break; + else + for(i=1; i<=cuStuNum+1; i++) {//to clear the "," at the end of the lines + gets(cuProLine); + if(cuProLine[0]=='#')i--; + } + } + cuClass.stuNum=cuStuNum; + for(i=1; i<=cuStuNum; i++) { + scanf("%s",cuProLine); + for(j=0; j<=MAXCHN; j++) { + if(cuProLine[j]==',')break; + array[i].CHN[j]=cuProLine[j]; + } + j++; + k=j; + array[i].nameNum=1; + nnamenum=0; + if(settings.debugMode==1)printf("[DEBUG]%s:",array[i].CHN); + for(j=0; j<=MAXNNAMELEN*MAXNNAMENUM; j++) { + if(cuProLine[k]=='\0') { + if(settings.debugMode==1)printf("\n[DEBUG]brokebyEnter\n"); + break; + } + if(nnamenum>MAXNNAMENUM-1) { + if(settings.debugMode==1)printf("\n[DEBUG]brokebyMAXNNN\n"); + break; + } + if(cuProLine[k]==',') { + nnamenum++; + if(settings.debugMode==1)printf("\n[DEBUG]nnamenum++"); + j=-1; + k++; + array[i].nameNum++; + continue; + } + array[i].NICKNAME[nnamenum][j]=cuProLine[k]; + k++; + } + } + fclose(stdin); + freopen("CON","r",stdin); + switch(settings.lang) { + case 0: { + freopen("lang/en_us/studentsLoaded.lang","r",stdin); + break; + } + case 1: { + freopen("lang/zh_cn/studentsLoaded.lang","r",stdin); + break; + } + default: { + freopen("lang/zh_cn/studentsLoaded.lang","r",stdin); + break; + } + } + while(1) { + gets(cuProLine); + if(cuProLine[0]=='&') + break; + printf("%s\n",cuProLine); + } + fclose(stdin); + freopen("CON","r",stdin); + usleep(500000); +} +//What's your score/grade? +void logging() { + int i,j; + int score; + char level[11]; + int esc=0; + int nnamenum=0; + int flag; + i=1; + bool succeeded=false; + char maxoutExit; + states.cuLoggedStuNum=0; + while(esc==0) { + if(settings.debugMode==1)printf("[Logging]%d students logged\n",states.cuLoggedStuNum); + succeeded=false; + if(states.cuLoggedStuNum>=cuClass.stuNum) { + switch(settings.lang) { + case 0: { + freopen("lang/en_us/loggedStuNumReached.lang","r",stdin); + break; + } + case 1: { + freopen("lang/zh_cn/loggedStuNumReached.lang","r",stdin); + break; + } + default: { + freopen("lang/zh_cn/loggedStuNumReached.lang","r",stdin); + break; + } + } + while(1) { + gets(cuProLine); + if(cuProLine[0]=='&') + break; + printf("%s\n",cuProLine); + } + fclose(stdin); + freopen("CON","r",stdin); + maxoutExit=getche(); + if(maxoutExit!='a') { + goto loggingStopped; + } + printf("\n"); + } + printf("%d.",i); + scanf("%s",cuProLine); + if(cuProLine[0]=='&') { + esc=1; + break; + } + if(esc==1)break; + switch(settings.cuT) { + case 0: { + scanf("%d",&score); + if(settings.debugMode==1)printf("[Logging]score=%d\n",score); + break; + } + case 1: { + scanf("%s",level); + if(settings.debugMode==1)printf("[Logging]grade=%s\n",level); + break; + } + default: { + scanf("%d",&score); + if(settings.debugMode==1)printf("[Logging]score=%d\n",score); + break; + } + } + flag=0; + for(j=1; j<=cuClass.stuNum; j++) { + // if(settings.debugMode==1)printf("[Logging]j++,j=%d\n",j); + if(strcmp(array[j].CHN,cuProLine)==0) { //Compare CHN name input + if(settings.debugMode==1)printf("[Logging]%d-%s-ScoreLoggedInWithCHN\n",j,array[j].CHN); + succeeded=true; + switch(settings.cuT) { + case 0: { + if(settings.debugMode==1)printf("[Logging]originalscore=%d\n",array[j].exRes.score); + if(array[j].exRes.score==0)states.cuLoggedStuNum++; + array[j].exRes.score=score; + if(settings.debugMode==1)printf("[Logging]score=%d\n",array[j].exRes.score); + break; + } + case 1: { + if(array[j].hwRes.grade[0]=='*')states.cuLoggedStuNum++; + strcpy(array[j].hwRes.grade,level); + break; + } + default: { + if(settings.debugMode==1)printf("[Logging]originalscore=%d\n",array[j].exRes.score); + if(array[j].exRes.score==0)states.cuLoggedStuNum++; + array[j].exRes.score=score; + if(settings.debugMode==1)printf("[Logging]score=%d\n",array[j].exRes.score); + break; + } + } + break; + } + for(nnamenum=0; nnamenum<=MAXNNAMENUM; nnamenum++) { //Compare NICKNAME input + if(strcmp(array[j].NICKNAME[nnamenum],cuProLine)==0) { + if(settings.debugMode==1)printf("[Logging]%d-%s-ScoreLoggedInWithNickname%d\n",j,array[j].CHN,nnamenum); + succeeded=true; + switch(settings.cuT) { + case 0: { + if(settings.debugMode==1)printf("[Logging]originalscore=%d\n",array[j].exRes.score); + if(array[j].exRes.score==0)states.cuLoggedStuNum++; + array[j].exRes.score=score; + if(settings.debugMode==1)printf("[Logging]score=%d\n",array[j].exRes.score); + break; + } + case 1: { + if(array[j].hwRes.grade[0]=='*')states.cuLoggedStuNum++; + strcpy(array[j].hwRes.grade,level); + break; + } + default: { + if(settings.debugMode==1)printf("[Logging]originalscore=%d\n",array[j].exRes.score); + if(array[j].exRes.score==0)states.cuLoggedStuNum++; + array[j].exRes.score=score; + if(settings.debugMode==1)printf("[Logging]score=%d\n",array[j].exRes.score); + break; + } + } + flag=1; + break; + } + } + if(flag==1)break; + } + if(succeeded==false) { + switch(settings.lang) { + case 0: { + freopen("lang/en_us/noStudent.lang","r",stdin); + break; + } + case 1: { + freopen("lang/zh_cn/noStudent.lang","r",stdin); + break; + } + default: { + freopen("lang/zh_cn/noStudent.lang","r",stdin); + break; + } + } + while(1) { + gets(cuProLine); + if(cuProLine[0]=='&') + break; + printf("%s\n",cuProLine); + } + fclose(stdin); + freopen("CON","r",stdin); + continue; + } + if(settings.debugMode==1)printf("[Logging]%s,%d,%s\n",array[j].CHN,array[j].exRes.score,array[j].hwRes.grade); + i++; + } +loggingStopped: + printf("\n"); + i++; + i--; +} +//Who will need to draw a chart now? +void printCSV() { + int i; + freopen("score.csv","w",stdout); + for(i=settings.ELAC; i>=1; i--)printf(",\n"); + switch(settings.lang) { + case 0: { + freopen("lang/en_us/output-N+S.lang","r",stdin); + break; + } + case 1: { + freopen("lang/zh_cn/output-N+S.lang","r",stdin); + break; + } + default: { + freopen("lang/zh_cn/output-N+S.lang","r",stdin); + break; + } + } + while(1) { + gets(cuProLine); + if(cuProLine[0]=='&') + break; + printf("%s\n",cuProLine); + } + fclose(stdin); + freopen("CON","r",stdin); + switch(settings.cuT) { + case 0: { + for(i=1; i<=cuClass.stuNum; i++) + if(array[i].CHN[0]!=' ') + printf("%s,%d\n",array[i].CHN,array[i].exRes.score); + break; + } + case 1: { + for(i=1; i<=cuClass.stuNum; i++) + if(array[i].CHN[0]!=' ') + printf("%s,%s\n",array[i].CHN,array[i].hwRes.grade); + break; + } + default: { + for(i=1; i<=cuClass.stuNum; i++) + if(array[i].CHN[0]!=' ') + printf("%s,%d\n",array[i].CHN,array[i].exRes.score); + break; + } + } + + fclose(stdout); + freopen("CON","w",stdout); +} +//After Init is over, perpare program for use +void prepare() { + if(settings.debugMode==false) + system("cls"); + showVersion(); + switch(settings.lang) { + case 0: { + freopen("lang/en_us/startLogging.lang","r",stdin); + break; + } + case 1: { + freopen("lang/zh_cn/startLogging.lang","r",stdin); + break; + } + default: { + freopen("lang/zh_cn/startLogging.lang","r",stdin); + break; + } + } + while(1) { + gets(cuProLine); + if(cuProLine[0]=='&') + break; + printf("%s\n",cuProLine); + } + fclose(stdin); + freopen("CON","r",stdin); +} +void confirmation() { + fclose(stdin); + switch(settings.lang) { + case 0: { + freopen("lang/en_us/confirmation.lang","r",stdin); + break; + } + case 1: { + freopen("lang/zh_cn/confirmation.lang","r",stdin); + break; + } + default: { + freopen("lang/zh_cn/confirmation.lang","r",stdin); + break; + } + } + int i=0; + char changeSettings; + while(1) { + gets(cuProLine); + if(cuProLine[0]=='&') + break; + printf("%s\n",cuProLine); + if(i==1)printf("%d\n",cuClass.num); + if(i==2) { + switch(settings.cuT) { + case(0): { + gets(cuProLine); + printf("%s\n",cuProLine); + gets(cuProLine); + break; + } + case(1): { + gets(cuProLine); + gets(cuProLine); + printf("%s\n",cuProLine); + break; + } + } + } + i++; + } + fclose(stdin); + freopen("CON","r",stdin); + changeSettings=getche(); + if(changeSettings=='a') { + printf("\n"); + if(settings.debugMode==false) + system("cls"); + showVersion(); + clearStudentInfo(); + changeCurrentSettings(); + loadStudentInfo(); + showDebugInfo(3); + } +} +void changeCurrentSettings() { + fclose(stdin); + switch(settings.lang) { + case 0: { + freopen("lang/en_us/acquiringClass.lang","r",stdin); + break; + } + case 1: { + freopen("lang/zh_cn/acquiringClass.lang","r",stdin); + break; + } + default: { + freopen("lang/zh_cn/acquiringClass.lang","r",stdin); + break; + } + } + while(1) { + gets(cuProLine); + if(cuProLine[0]=='&') + break; + printf("%s\n",cuProLine); + } + fclose(stdin); + freopen("CON","r",stdin); + scanf("%d",&cuClass.num); + fclose(stdin); + switch(settings.lang) { + case 0: { + freopen("lang/en_us/acquiringType.lang","r",stdin); + break; + } + case 1: { + freopen("lang/zh_cn/acquiringType.lang","r",stdin); + break; + } + default: { + freopen("lang/zh_cn/acquiringType.lang","r",stdin); + break; + } + } + while(1) { + gets(cuProLine); + if(cuProLine[0]=='&') + break; + printf("%s\n",cuProLine); + } + fclose(stdin); + freopen("CON","r",stdin); + char res; +reSelTypeBegin: + res=getche(); + printf("\n"); + switch(res) { + case '0': { + settings.cuT=0; + break; + } + case '1': { + settings.cuT=1; + break; + } + default: { + switch(settings.lang) { + case 0: { + freopen("lang/en_us/illegalInput.lang","r",stdin); + break; + } + case 1: { + freopen("lang/zh_cn/illegalInput.lang","r",stdin); + break; + } + default: { + freopen("lang/zh_cn/illegalInput.lang","r",stdin); + break; + } + } + while(1) { + gets(cuProLine); + if(cuProLine[0]=='&') + break; + printf("%s\n",cuProLine); + } + fclose(stdin); + freopen("CON","r",stdin); + goto reSelTypeBegin; + break; + } + } +} +void goodbye() { + fclose(stdin); + switch(settings.lang) { + case 0: { + freopen("lang/en_us/finished.lang","r",stdin); + break; + } + case 1: { + freopen("lang/zh_cn/finished.lang","r",stdin); + break; + } + default: { + freopen("lang/zh_cn/finished.lang","r",stdin); + break; + } + } + while(1) { + gets(cuProLine); + if(cuProLine[0]=='&') + break; + printf("%s\n",cuProLine); + } + fclose(stdin); + freopen("CON","r",stdin); +} +void clearStudentInfo() { + int i,j,k; + for(i=0; i<=MAXSTU-1; i++) { + for(j=0; j<=MAXCHN; j++) + array[i].CHN[j]='\0'; + for(j=0; j<=MAXNNAMENUM-1; j++) { + for(k=0; k<=MAXNNAMELEN-1; k++) + array[i].NICKNAME[j][k]='\0'; + } + array[i].nameNum=0; + array[i].exRes.score=0; + array[i].exRes.ranking=0; + array[i].hwRes.grade[0]='\0'; + } +} +int main() { + init(); + confirmation(); + prepare(); + logging(); + printCSV(); + goodbye(); + system("pause"); + return 0; +} diff --git a/beta-2.1/about.md b/beta-2.1/about.md new file mode 100644 index 0000000..7abb6e3 --- /dev/null +++ b/beta-2.1/about.md @@ -0,0 +1,6 @@ +Score-Logging-System 2.1 +Biege Update:RTM2 +By Beacon1096 +copyright. 2017 Beacon1096 +[Evaluation copy] +& \ No newline at end of file diff --git a/beta-2.1/lang/en_us/acquiringClass.lang b/beta-2.1/lang/en_us/acquiringClass.lang new file mode 100644 index 0000000..ca2283d --- /dev/null +++ b/beta-2.1/lang/en_us/acquiringClass.lang @@ -0,0 +1,2 @@ +You're logging into class +& \ No newline at end of file diff --git a/beta-2.1/lang/en_us/acquiringDefaultClass.lang b/beta-2.1/lang/en_us/acquiringDefaultClass.lang new file mode 100644 index 0000000..a3be9ab --- /dev/null +++ b/beta-2.1/lang/en_us/acquiringDefaultClass.lang @@ -0,0 +1,2 @@ +No default class selected.You're logging into class: +& \ No newline at end of file diff --git a/beta-2.1/lang/en_us/acquiringDefaultType.lang b/beta-2.1/lang/en_us/acquiringDefaultType.lang new file mode 100644 index 0000000..797c750 --- /dev/null +++ b/beta-2.1/lang/en_us/acquiringDefaultType.lang @@ -0,0 +1,2 @@ +No default grade type selected.You're logging(0=numbers/exam,1=letters/homework): +& \ No newline at end of file diff --git a/beta-2.1/lang/en_us/acquiringType.lang b/beta-2.1/lang/en_us/acquiringType.lang new file mode 100644 index 0000000..34bb8d2 --- /dev/null +++ b/beta-2.1/lang/en_us/acquiringType.lang @@ -0,0 +1,2 @@ +You're logging(0=numbers/exam,1=letters/homework): +& \ No newline at end of file diff --git a/beta-2.1/lang/en_us/confirmation.lang b/beta-2.1/lang/en_us/confirmation.lang new file mode 100644 index 0000000..617c40c --- /dev/null +++ b/beta-2.1/lang/en_us/confirmation.lang @@ -0,0 +1,7 @@ +Here's your current settings +Current class +Current logging type +scores +grades +Do you wish to use these settings?hit "a" to change +& \ No newline at end of file diff --git a/beta-2.1/lang/en_us/finished.lang b/beta-2.1/lang/en_us/finished.lang new file mode 100644 index 0000000..69cf784 --- /dev/null +++ b/beta-2.1/lang/en_us/finished.lang @@ -0,0 +1,3 @@ +Please rename the "score.csv" or copy the chart into another chart using Excel or you'll lose the new chart. +Thank you for using SLS.This is a beta version app.Please contact the author/contributor if you have any suggestions. +& \ No newline at end of file diff --git a/beta-2.1/lang/en_us/illegalInput.lang b/beta-2.1/lang/en_us/illegalInput.lang new file mode 100644 index 0000000..1c74f21 --- /dev/null +++ b/beta-2.1/lang/en_us/illegalInput.lang @@ -0,0 +1,2 @@ +Illegal input.Try again. +& \ No newline at end of file diff --git a/beta-2.1/lang/en_us/initalizing.lang b/beta-2.1/lang/en_us/initalizing.lang new file mode 100644 index 0000000..9a9ba27 --- /dev/null +++ b/beta-2.1/lang/en_us/initalizing.lang @@ -0,0 +1,2 @@ +Initialization finished. +& \ No newline at end of file diff --git a/beta-2.1/lang/en_us/loggedStuNumReached.lang b/beta-2.1/lang/en_us/loggedStuNumReached.lang new file mode 100644 index 0000000..8f34836 --- /dev/null +++ b/beta-2.1/lang/en_us/loggedStuNumReached.lang @@ -0,0 +1,3 @@ +All the students have their results logged now. +If you wish to change some of them,hit key "a". +& \ No newline at end of file diff --git a/beta-2.1/lang/en_us/noStudent.lang b/beta-2.1/lang/en_us/noStudent.lang new file mode 100644 index 0000000..e0120dc --- /dev/null +++ b/beta-2.1/lang/en_us/noStudent.lang @@ -0,0 +1,2 @@ +Can't find the student.Did you type in the wrong name? +& \ No newline at end of file diff --git a/beta-2.1/lang/en_us/output-N+S.lang b/beta-2.1/lang/en_us/output-N+S.lang new file mode 100644 index 0000000..13c6af4 --- /dev/null +++ b/beta-2.1/lang/en_us/output-N+S.lang @@ -0,0 +1,2 @@ +Name,Result +& \ No newline at end of file diff --git a/beta-2.1/lang/en_us/startLogging.lang b/beta-2.1/lang/en_us/startLogging.lang new file mode 100644 index 0000000..9515f47 --- /dev/null +++ b/beta-2.1/lang/en_us/startLogging.lang @@ -0,0 +1,4 @@ +Please log the scores now.Format: +XXX(Name) +x(score/grade) +& \ No newline at end of file diff --git a/beta-2.1/lang/en_us/studentsLoaded.lang b/beta-2.1/lang/en_us/studentsLoaded.lang new file mode 100644 index 0000000..bc27c33 --- /dev/null +++ b/beta-2.1/lang/en_us/studentsLoaded.lang @@ -0,0 +1,2 @@ +Loading students' information... +& \ No newline at end of file diff --git a/beta-2.1/lang/zh_cn/acquiringClass.lang b/beta-2.1/lang/zh_cn/acquiringClass.lang new file mode 100644 index 0000000..4afd79a --- /dev/null +++ b/beta-2.1/lang/zh_cn/acquiringClass.lang @@ -0,0 +1,2 @@ +¼ɼİ༶Ϊ +& \ No newline at end of file diff --git a/beta-2.1/lang/zh_cn/acquiringDefaultClass.lang b/beta-2.1/lang/zh_cn/acquiringDefaultClass.lang new file mode 100644 index 0000000..eb1617d --- /dev/null +++ b/beta-2.1/lang/zh_cn/acquiringDefaultClass.lang @@ -0,0 +1,2 @@ +δָʹĬϰ༶¼ɼİ༶Ϊ +& \ No newline at end of file diff --git a/beta-2.1/lang/zh_cn/acquiringDefaultType.lang b/beta-2.1/lang/zh_cn/acquiringDefaultType.lang new file mode 100644 index 0000000..e7af098 --- /dev/null +++ b/beta-2.1/lang/zh_cn/acquiringDefaultType.lang @@ -0,0 +1,2 @@ +δָĬ¼ͣ¼ɼΪ(0=Գɼ(),1Ϊҵ(ĸȼ)) +& \ No newline at end of file diff --git a/beta-2.1/lang/zh_cn/acquiringType.lang b/beta-2.1/lang/zh_cn/acquiringType.lang new file mode 100644 index 0000000..272113e --- /dev/null +++ b/beta-2.1/lang/zh_cn/acquiringType.lang @@ -0,0 +1,2 @@ +¼ɼΪ(0=Գɼ(),1Ϊҵ(ĸȼ)) +& \ No newline at end of file diff --git a/beta-2.1/lang/zh_cn/confirmation.lang b/beta-2.1/lang/zh_cn/confirmation.lang new file mode 100644 index 0000000..d646794 --- /dev/null +++ b/beta-2.1/lang/zh_cn/confirmation.lang @@ -0,0 +1,7 @@ +ǰ£ +ǰ༶ +ǰ¼ɼͣ +Գɼ +ҵȼ +ʹ?ûaԸģ +& \ No newline at end of file diff --git a/beta-2.1/lang/zh_cn/finished.lang b/beta-2.1/lang/zh_cn/finished.lang new file mode 100644 index 0000000..83a942a --- /dev/null +++ b/beta-2.1/lang/zh_cn/finished.lang @@ -0,0 +1,3 @@ +Ϊscore.csvʹExcelеķһ񣬷´񽫱գ +лʹá԰н +& \ No newline at end of file diff --git a/beta-2.1/lang/zh_cn/illegalInput.lang b/beta-2.1/lang/zh_cn/illegalInput.lang new file mode 100644 index 0000000..2d2e157 --- /dev/null +++ b/beta-2.1/lang/zh_cn/illegalInput.lang @@ -0,0 +1,2 @@ +ȷ롣һΡ +& \ No newline at end of file diff --git a/beta-2.1/lang/zh_cn/initalizing.lang b/beta-2.1/lang/zh_cn/initalizing.lang new file mode 100644 index 0000000..ef6b69f --- /dev/null +++ b/beta-2.1/lang/zh_cn/initalizing.lang @@ -0,0 +1,2 @@ +ʼ... +& \ No newline at end of file diff --git a/beta-2.1/lang/zh_cn/loggedStuNumReached.lang b/beta-2.1/lang/zh_cn/loggedStuNumReached.lang new file mode 100644 index 0000000..88b961e --- /dev/null +++ b/beta-2.1/lang/zh_cn/loggedStuNumReached.lang @@ -0,0 +1,2 @@ +˰༶ѧijɼȫ¼ɡҪ޸ģûa +& \ No newline at end of file diff --git a/beta-2.1/lang/zh_cn/noStudent.lang b/beta-2.1/lang/zh_cn/noStudent.lang new file mode 100644 index 0000000..b402baf --- /dev/null +++ b/beta-2.1/lang/zh_cn/noStudent.lang @@ -0,0 +1,2 @@ +ѧڡDzִˣ +& \ No newline at end of file diff --git a/beta-2.1/lang/zh_cn/output-N+S.lang b/beta-2.1/lang/zh_cn/output-N+S.lang new file mode 100644 index 0000000..d5f48b1 --- /dev/null +++ b/beta-2.1/lang/zh_cn/output-N+S.lang @@ -0,0 +1,2 @@ +,ɼ +& \ No newline at end of file diff --git a/beta-2.1/lang/zh_cn/startLogging.lang b/beta-2.1/lang/zh_cn/startLogging.lang new file mode 100644 index 0000000..3a8566e --- /dev/null +++ b/beta-2.1/lang/zh_cn/startLogging.lang @@ -0,0 +1,4 @@ +뿪ʼ¼롣ʽ: +XXX(ƴд) x(ȼ) +ɼȫ¼ϵͳȴûʾѧȱ롰&˳ +& \ No newline at end of file diff --git a/beta-2.1/lang/zh_cn/studentsLoaded.lang b/beta-2.1/lang/zh_cn/studentsLoaded.lang new file mode 100644 index 0000000..c633da0 --- /dev/null +++ b/beta-2.1/lang/zh_cn/studentsLoaded.lang @@ -0,0 +1,2 @@ +ѧ... +& \ No newline at end of file diff --git a/beta-2.1/list.csv b/beta-2.1/list.csv new file mode 100644 index 0000000..1de30fe --- /dev/null +++ b/beta-2.1/list.csv @@ -0,0 +1,7 @@ +C1,3,,,, +,zs,three,3,zhangsan,zhang +,ls,four,4,lisi,li +,ww,five,5,wangwu,wang +C0,2,,,, +Ų,zbc,cat,zuozhe, +è,lmz,oldcat,,, diff --git a/beta-2.1/options.ini b/beta-2.1/options.ini new file mode 100644 index 0000000..678c579 --- /dev/null +++ b/beta-2.1/options.ini @@ -0,0 +1,29 @@ +#Configurationfile of SLS +#Language(0=English,1=Chinese) +#ԣ1Ϊģ0ΪӢ +LA +1 +#Use a spicifiec class(0=false,1=true) +#Ĭʹһضİ༶(1) +UDC +1 +#The number of the class +#Ĭϰ༶ +DC +1 +#Use a spicifiec result type(0=false,1=true) +#ʹĬ¼ģʽ +UDT +1 +#Ĭϵģʽ0ΪԳɼ1Ϊҵȼ +DT +0 +#DeveloperMode +#ģʽ +DM +1 +#Empty lines above the score chart(exclude the line writes"name"&"score") +#Ϸʾ롰У +ELAC +1 +& \ No newline at end of file diff --git a/beta-2.1/score.csv b/beta-2.1/score.csv new file mode 100644 index 0000000..78ff6c0 --- /dev/null +++ b/beta-2.1/score.csv @@ -0,0 +1,4 @@ +, +,ɼ +Ų,99 +è,98 diff --git a/beta-2.2/CyanNotes.txt b/beta-2.2/CyanNotes.txt new file mode 100644 index 0000000..7fe0448 --- /dev/null +++ b/beta-2.2/CyanNotes.txt @@ -0,0 +1,6 @@ +新的确认录入数量的方法 +修正读取非标准csv文件时的无响应问题 +修正因为没有清除内存残余信息导致的学生信息紊乱问题 +修正显示提示语的逻辑问题 +bool(0/1)值读入方法被getche替换 +修正启动时检查执行模式时模式重合的问题 \ No newline at end of file diff --git a/beta-2.2/SLS2.1.c b/beta-2.2/SLS2.1.c new file mode 100644 index 0000000..becd082 --- /dev/null +++ b/beta-2.2/SLS2.1.c @@ -0,0 +1,1012 @@ +#include +#include +#include +#include +#include +#include + +#define MAXSTU 61 +#define MAXCHN 51 +#define MAXNNAMELEN 21 +#define MAXNNAMENUM 5 +//Class+Student Info +struct examResult { + int score; + int ranking; +}; +struct hwResult { + char grade[11]; +}; +struct studentInfo { + char CHN[MAXCHN],NICKNAME[MAXNNAMENUM][MAXNNAMELEN]; + short nameNum; + struct examResult exRes; + struct hwResult hwRes; +}; +struct sortingInfo{ + bool enabled; + int algorithm;//1=bucket +}; +struct classInfo { + int num,stuNum; +}; +struct studentInfo array[MAXSTU]; +struct classInfo cuClass; +//Program Properties +struct settingsGroup { + short ELAC; + short lang; + bool defaultC; + short defaultCNum; + bool defaultT; + short defaultTNum;//0=examResult,1=exercise/homeworkResult + bool debugMode; + short cuT; + struct sortingInfo sort; +}; +struct node{ + int num; + struct node *next; +}; +struct bucket{ + int value; + struct node *head; +}; +struct bucket buckets[121]; +struct settingsGroup settings; +struct statementGroup { + //short cuType; + short cuLoggedStuNum; +}; +struct statementGroup states; +//List(*.csv)File Lines Processing +char cuProLine[201]; +char cuProComponent[21]; +int DEBUG_SWITCH=1; +//Function List + Declaration +void showDebugInfo(int phase); +void init(); +void showVersion(); +void loadSettings(); +void selectClass(); +void selectType(); +void changeCurrentSettings(); +void confirmation(); +void loadStudentInfo(); +void logging(); +void printCSV(); +void prepare(); +void goodbye(); +void sorting(); +void bucketSorting(); +void printBucketSorted(); +void clearStudentInfo(); +//Always a good friend. +void showDebugInfo(int phase) { + if(settings.debugMode==0)return; + if(phase==1) { + printf("[DEBUG]========================\n"); + printf("[DEBUG]The appearing of these info means you're in debug mode.\n"); + printf("[DEBUG]settings.debugMode=%d\n",settings.debugMode); + printf("[DEBUG]settings.lang=%d\n",settings.lang); + printf("[DEBUG]settings.defaultC=%d\n",settings.defaultC); + printf("[DEBUG]settings.defaultCNum=%d\n",settings.defaultCNum); + printf("[DEBUG]settings.defaultT=%d\n",settings.defaultT); + printf("[DEBUG]settings.defaultTNum=%d\n",settings.defaultTNum); + printf("[DEBUG]settings.sort.enabled=%d\n",settings.sort.enabled); + printf("[DEBUG]settings.sort.algorithm=%d\n",settings.sort.algorithm); + printf("[DEBUG]Phase 1 over.Smile!\n"); + printf("[DEBUG]========================\n"); + } + if(phase==2) { + printf("[DEBUG]========================\n"); + printf("[DEBUG]cuClass.num=%d\n",cuClass.num); + printf("[DEBUG]settings.cuT=%d\n",settings.cuT); + printf("[DEBUG]Phase 2 over.Why not encourage yourself?\n"); + printf("[DEBUG]========================\n"); + } + if(phase==3) { + printf("[DEBUG]========================\n"); + printf("[DEBUG]cuClass.stuNum=%d\n",cuClass.stuNum); + int i,j; + for(i=1; i<=cuClass.stuNum; i++) { + printf("[DEBUG]"); + puts(array[i].CHN); + printf("[DEBUG]"); + for(j=1; j<=array[i].nameNum; j++) { + printf("%d:%s;",j,array[i].NICKNAME[j-1]); + } + printf("\n[DEBUG]score=%d,grade=%s",array[i].exRes.score,array[i].hwRes.grade); + printf("\n"); + } + printf("[DEBUG]Phase 3 over.My task is over.Good night.Love you\n"); + printf("[DEBUG]========================\n"); + } +} +//Initalization begins here. +void init() { + showVersion();//show current running version info and copyrights + loadSettings();//load running properties + showDebugInfo(2); + clearStudentInfo(); + loadStudentInfo(); + showDebugInfo(3); + fclose(stdin); + switch(settings.lang) { + case 0: { + freopen("lang/en_us/initalizing.lang","r",stdin); + break; + } + case 1: { + freopen("lang/zh_cn/initalizing.lang","r",stdin); + break; + } + default: { + freopen("lang/zh_cn/initalizing.lang","r",stdin); + break; + } + } + int i; + for(i=0; i<=cuClass.stuNum; i++) { + array[i].exRes.score=0; + array[i].hwRes.grade[0]='*'; + } + while(1) { + gets(cuProLine); + if(cuProLine[0]=='&') + break; + printf("%s\n",cuProLine); + } + fclose(stdin); + freopen("CON","r",stdin); + if(settings.debugMode==true)printf("[init]My job was over.Good night\n"); + usleep(333000); +} +//Shows the title&version at the beginning. +void showVersion() { + fclose(stdin); + freopen("about.md","r",stdin); + char ver[101]; + while(1) { + gets(ver); + if(ver[0]=='&')break; + puts(ver); + } + fclose(stdin); + freopen("CON","r",stdin); + if(settings.debugMode==true) { + printf("[ShowVersion]Destiny finished.Have a good day\n"); + } + usleep(500000); +} +//Settings are loaded here."options.ini" +void loadSettings() { + settings.lang=1; + settings.defaultC=false; + settings.defaultCNum=0; + settings.defaultT=false; + settings.defaultTNum=0; + settings.debugMode=false; + settings.sort.enabled=false; + settings.sort.algorithm=0; + settings.ELAC=0; + int value; + fclose(stdin); + freopen("options.ini","r",stdin); + while(1) { + //scanf("%s",cuProLine); + gets(cuProLine); + if(cuProLine[0]=='&')break; + if(cuProLine[0]=='#')continue; + scanf("%d",&value); + if(strcmp(cuProLine,"LA")==0) {//Language + switch(value) { + case 0: { + settings.lang=0; + break; + } + case 1: { + settings.lang=1; + break; + } + default: { + settings.lang=1; + break; + } + } + continue; + } + if(strcmp(cuProLine,"UDC")==0) {//useDefaultClass + switch(value) { + case 0: { + settings.defaultC=false; + break; + } + case 1: { + settings.defaultC=true; + break; + } + default: { + settings.defaultC=false; + break; + } + } + continue; + } + if(strcmp(cuProLine,"UDT")==0) {//useDefaultType + switch(value) { + case 0: { + settings.defaultT=false; + break; + } + case 1: { + settings.defaultT=true; + break; + } + default: { + settings.defaultT=false; + break; + } + } + continue; + } + if(strcmp(cuProLine,"DM")==0) {//DebugMode + switch(value) { + case 0: { + settings.debugMode=false; + break; + } + case 1: { + settings.debugMode=true; + break; + } + default: { + settings.debugMode=false; + break; + } + } + continue; + } + if(strcmp(cuProLine,"SRT")==0) { //sorting is enabled + switch(value) { + case 0: { + settings.sort.enabled=false; + break; + } + case 1: { + settings.sort.enabled=true; + break; + } + default: { + settings.sort.enabled=false; + break; + } + } + continue; + } + if(strcmp(cuProLine,"ELAC")==0) {//DebugMode + settings.ELAC=value; + continue; + } + if(strcmp(cuProLine,"DC")==0 && settings.defaultC==true) { //defaultClass + settings.defaultCNum=value; + cuClass.num=value; + continue; + } + if(strcmp(cuProLine,"DT")==0 && settings.defaultT==true) { //defaultType + settings.defaultTNum=value; + settings.cuT=value; + continue; + } + + if(strcmp(cuProLine,"SRTA")==0 && settings.sort.enabled==true) { //defaultType + settings.sort.algorithm=value; + continue; + } + } + fclose(stdin); + freopen("CON","r",stdin); + showDebugInfo(1); + if(settings.defaultC==0)selectClass(); + if(settings.defaultT==0)selectType(); + if(settings.debugMode==true)printf("[loadSettings]My job was over.Good night\n"); +} +//Select options when default is not provided +void selectClass() { + fclose(stdin); + switch(settings.lang) { + case 0: { + freopen("lang/en_us/acquiringDefaultClass.lang","r",stdin); + break; + } + case 1: { + freopen("lang/zh_cn/acquiringDefaultClass.lang","r",stdin); + break; + } + default: { + freopen("lang/zh_cn/acquiringDefaultClass.lang","r",stdin); + break; + } + } + while(1) { + gets(cuProLine); + if(cuProLine[0]=='&') + break; + printf("%s\n",cuProLine); + } + fclose(stdin); + freopen("CON","r",stdin); + scanf("%d",&cuClass.num); + if(settings.debugMode==true)printf("[selectClass]Selected.Have a good day\n"); +} +void selectType() { + fclose(stdin); + switch(settings.lang) { + case 0: { + freopen("lang/en_us/acquiringDefaultType.lang","r",stdin); + break; + } + case 1: { + freopen("lang/zh_cn/acquiringDefaultType.lang","r",stdin); + break; + } + default: { + freopen("lang/zh_cn/acquiringDefaultType.lang","r",stdin); + break; + } + } + while(1) { + gets(cuProLine); + if(cuProLine[0]=='&') + break; + printf("%s\n",cuProLine); + } + fclose(stdin); + freopen("CON","r",stdin); + char res; +selTypeBegin: + res=getche(); + printf("\n"); + switch(res) { + case '0': { + settings.cuT=0; + break; + } + case '1': { + settings.cuT=1; + break; + } + default: { + switch(settings.lang) { + case 0: { + freopen("lang/en_us/illegalInput.lang","r",stdin); + break; + } + case 1: { + freopen("lang/zh_cn/illegalInput.lang","r",stdin); + break; + } + default: { + freopen("lang/zh_cn/illegalInput.lang","r",stdin); + break; + } + } + while(1) { + gets(cuProLine); + if(cuProLine[0]=='&') + break; + printf("%s\n",cuProLine); + } + fclose(stdin); + freopen("CON","r",stdin); + goto selTypeBegin; + break; + } + } + if(settings.debugMode==true)printf("[selectType]Selected.Have a good day\n"); +} +//Stand in lines.We're counting the students. +void loadStudentInfo() { + fclose(stdin); + freopen("list.csv","r",stdin); + int scClass=999,cuStuNum; + int i,j,k; + int nnamenum; + while(scClass!=cuClass.num) { + scanf("C%d,%d",&scClass,&cuStuNum); + scanf("%s",cuProLine); + if(scClass==cuClass.num)break; + else + for(i=1; i<=cuStuNum+1; i++) {//to clear the "," at the end of the lines + gets(cuProLine); + if(cuProLine[0]=='#')i--; + } + } + cuClass.stuNum=cuStuNum; + for(i=1; i<=cuStuNum; i++) { + scanf("%s",cuProLine); + for(j=0; j<=MAXCHN; j++) { + if(cuProLine[j]==',')break; + array[i].CHN[j]=cuProLine[j]; + } + j++; + k=j; + array[i].nameNum=1; + nnamenum=0; + if(settings.debugMode==1)printf("[DEBUG]%s:",array[i].CHN); + for(j=0; j<=MAXNNAMELEN*MAXNNAMENUM; j++) { + if(cuProLine[k]=='\0') { + if(settings.debugMode==1)printf("\n[DEBUG]brokebyEnter\n"); + break; + } + if(nnamenum>MAXNNAMENUM-1) { + if(settings.debugMode==1)printf("\n[DEBUG]brokebyMAXNNN\n"); + break; + } + if(cuProLine[k]==',') { + nnamenum++; + if(settings.debugMode==1)printf("\n[DEBUG]nnamenum++"); + j=-1; + k++; + array[i].nameNum++; + continue; + } + array[i].NICKNAME[nnamenum][j]=cuProLine[k]; + k++; + } + } + fclose(stdin); + freopen("CON","r",stdin); + switch(settings.lang) { + case 0: { + freopen("lang/en_us/studentsLoaded.lang","r",stdin); + break; + } + case 1: { + freopen("lang/zh_cn/studentsLoaded.lang","r",stdin); + break; + } + default: { + freopen("lang/zh_cn/studentsLoaded.lang","r",stdin); + break; + } + } + while(1) { + gets(cuProLine); + if(cuProLine[0]=='&') + break; + printf("%s\n",cuProLine); + } + fclose(stdin); + freopen("CON","r",stdin); + usleep(500000); +} +//What's your score/grade? +void logging() { + int i,j; + int score; + char level[11]; + int esc=0; + int nnamenum=0; + int flag; + i=1; + bool succeeded=false; + char maxoutExit; + states.cuLoggedStuNum=0; + while(esc==0) { + if(settings.debugMode==1)printf("[Logging]%d students logged\n",states.cuLoggedStuNum); + succeeded=false; + if(states.cuLoggedStuNum>=cuClass.stuNum) { + switch(settings.lang) { + case 0: { + freopen("lang/en_us/loggedStuNumReached.lang","r",stdin); + break; + } + case 1: { + freopen("lang/zh_cn/loggedStuNumReached.lang","r",stdin); + break; + } + default: { + freopen("lang/zh_cn/loggedStuNumReached.lang","r",stdin); + break; + } + } + while(1) { + gets(cuProLine); + if(cuProLine[0]=='&') + break; + printf("%s\n",cuProLine); + } + fclose(stdin); + freopen("CON","r",stdin); + maxoutExit=getche(); + if(maxoutExit!='a') { + goto loggingStopped; + } + printf("\n"); + } + printf("%d.",i); + scanf("%s",cuProLine); + if(cuProLine[0]=='&') { + esc=1; + break; + } + if(esc==1)break; + switch(settings.cuT) { + case 0: { + scanf("%d",&score); + if(settings.debugMode==1)printf("[Logging]score=%d\n",score); + break; + } + case 1: { + scanf("%s",level); + if(settings.debugMode==1)printf("[Logging]grade=%s\n",level); + break; + } + default: { + scanf("%d",&score); + if(settings.debugMode==1)printf("[Logging]score=%d\n",score); + break; + } + } + flag=0; + for(j=1; j<=cuClass.stuNum; j++) { + // if(settings.debugMode==1)printf("[Logging]j++,j=%d\n",j); + if(strcmp(array[j].CHN,cuProLine)==0) { //Compare CHN name input + if(settings.debugMode==1)printf("[Logging]%d-%s-ScoreLoggedInWithCHN\n",j,array[j].CHN); + succeeded=true; + switch(settings.cuT) { + case 0: { + if(settings.debugMode==1)printf("[Logging]originalscore=%d\n",array[j].exRes.score); + if(array[j].exRes.score==0)states.cuLoggedStuNum++; + array[j].exRes.score=score; + if(settings.debugMode==1)printf("[Logging]score=%d\n",array[j].exRes.score); + break; + } + case 1: { + if(array[j].hwRes.grade[0]=='*')states.cuLoggedStuNum++; + strcpy(array[j].hwRes.grade,level); + break; + } + default: { + if(settings.debugMode==1)printf("[Logging]originalscore=%d\n",array[j].exRes.score); + if(array[j].exRes.score==0)states.cuLoggedStuNum++; + array[j].exRes.score=score; + if(settings.debugMode==1)printf("[Logging]score=%d\n",array[j].exRes.score); + break; + } + } + break; + } + for(nnamenum=0; nnamenum<=MAXNNAMENUM; nnamenum++) { //Compare NICKNAME input + if(strcmp(array[j].NICKNAME[nnamenum],cuProLine)==0) { + if(settings.debugMode==1)printf("[Logging]%d-%s-ScoreLoggedInWithNickname%d\n",j,array[j].CHN,nnamenum); + succeeded=true; + switch(settings.cuT) { + case 0: { + if(settings.debugMode==1)printf("[Logging]originalscore=%d\n",array[j].exRes.score); + if(array[j].exRes.score==0)states.cuLoggedStuNum++; + array[j].exRes.score=score; + if(settings.debugMode==1)printf("[Logging]score=%d\n",array[j].exRes.score); + break; + } + case 1: { + if(array[j].hwRes.grade[0]=='*')states.cuLoggedStuNum++; + strcpy(array[j].hwRes.grade,level); + break; + } + default: { + if(settings.debugMode==1)printf("[Logging]originalscore=%d\n",array[j].exRes.score); + if(array[j].exRes.score==0)states.cuLoggedStuNum++; + array[j].exRes.score=score; + if(settings.debugMode==1)printf("[Logging]score=%d\n",array[j].exRes.score); + break; + } + } + flag=1; + break; + } + } + if(flag==1)break; + } + if(succeeded==false) { + switch(settings.lang) { + case 0: { + freopen("lang/en_us/noStudent.lang","r",stdin); + break; + } + case 1: { + freopen("lang/zh_cn/noStudent.lang","r",stdin); + break; + } + default: { + freopen("lang/zh_cn/noStudent.lang","r",stdin); + break; + } + } + while(1) { + gets(cuProLine); + if(cuProLine[0]=='&') + break; + printf("%s\n",cuProLine); + } + fclose(stdin); + freopen("CON","r",stdin); + continue; + } + if(settings.debugMode==1)printf("[Logging]%s,%d,%s\n",array[j].CHN,array[j].exRes.score,array[j].hwRes.grade); + i++; + } +loggingStopped: + printf("\n"); + i++; + i--; +} +//Who will need to draw a chart now? +void printCSV() { + int i; + fclose(stdout); + freopen("score.csv","w",stdout); + switch(settings.lang) { + case 0: { + freopen("lang/en_us/output-N+S.lang","r",stdin); + break; + } + case 1: { + freopen("lang/zh_cn/output-N+S.lang","r",stdin); + break; + } + default: { + freopen("lang/zh_cn/output-N+S.lang","r",stdin); + break; + } + } + while(1) { + gets(cuProLine); + if(cuProLine[0]=='&') + break; + printf("%s\n",cuProLine); + } + for(i=settings.ELAC; i>=1; i--)printf(",\n"); + switch(settings.cuT) { + case 0: { + for(i=1; i<=cuClass.stuNum; i++) + if(array[i].CHN[0]!=' ') + printf("%s,%d\n",array[i].CHN,array[i].exRes.score); + break; + } + case 1: { + for(i=1; i<=cuClass.stuNum; i++) + if(array[i].CHN[0]!=' ') + printf("%s,%s\n",array[i].CHN,array[i].hwRes.grade); + break; + } + default: { + for(i=1; i<=cuClass.stuNum; i++) + if(array[i].CHN[0]!=' ') + printf("%s,%d\n",array[i].CHN,array[i].exRes.score); + break; + } + } + fclose(stdout); + freopen("CON","w",stdout); +} +//After Init is over, perpare program for use +void prepare() { + if(settings.debugMode==false) + system("cls"); + showVersion(); + switch(settings.lang) { + case 0: { + freopen("lang/en_us/startLogging.lang","r",stdin); + break; + } + case 1: { + freopen("lang/zh_cn/startLogging.lang","r",stdin); + break; + } + default: { + freopen("lang/zh_cn/startLogging.lang","r",stdin); + break; + } + } + while(1) { + gets(cuProLine); + if(cuProLine[0]=='&') + break; + printf("%s\n",cuProLine); + } + fclose(stdin); + freopen("CON","r",stdin); +} +void confirmation() { + fclose(stdin); + switch(settings.lang) { + case 0: { + freopen("lang/en_us/confirmation.lang","r",stdin); + break; + } + case 1: { + freopen("lang/zh_cn/confirmation.lang","r",stdin); + break; + } + default: { + freopen("lang/zh_cn/confirmation.lang","r",stdin); + break; + } + } + int i=0; + char changeSettings; + while(1) { + gets(cuProLine); + if(cuProLine[0]=='&') + break; + printf("%s\n",cuProLine); + if(i==1)printf("%d\n",cuClass.num); + if(i==2) { + switch(settings.cuT) { + case(0): { + gets(cuProLine); + printf("%s\n",cuProLine); + gets(cuProLine); + break; + } + case(1): { + gets(cuProLine); + gets(cuProLine); + printf("%s\n",cuProLine); + break; + } + } + } + i++; + } + fclose(stdin); + freopen("CON","r",stdin); + changeSettings=getche(); + if(changeSettings=='a') { + printf("\n"); + if(settings.debugMode==false) + system("cls"); + showVersion(); + clearStudentInfo(); + changeCurrentSettings(); + loadStudentInfo(); + showDebugInfo(3); + } +} +void changeCurrentSettings() { + fclose(stdin); + switch(settings.lang) { + case 0: { + freopen("lang/en_us/acquiringClass.lang","r",stdin); + break; + } + case 1: { + freopen("lang/zh_cn/acquiringClass.lang","r",stdin); + break; + } + default: { + freopen("lang/zh_cn/acquiringClass.lang","r",stdin); + break; + } + } + while(1) { + gets(cuProLine); + if(cuProLine[0]=='&') + break; + printf("%s\n",cuProLine); + } + fclose(stdin); + freopen("CON","r",stdin); + scanf("%d",&cuClass.num); + fclose(stdin); + switch(settings.lang) { + case 0: { + freopen("lang/en_us/acquiringType.lang","r",stdin); + break; + } + case 1: { + freopen("lang/zh_cn/acquiringType.lang","r",stdin); + break; + } + default: { + freopen("lang/zh_cn/acquiringType.lang","r",stdin); + break; + } + } + while(1) { + gets(cuProLine); + if(cuProLine[0]=='&') + break; + printf("%s\n",cuProLine); + } + fclose(stdin); + freopen("CON","r",stdin); + char res; +reSelTypeBegin: + res=getche(); + printf("\n"); + switch(res) { + case '0': { + settings.cuT=0; + break; + } + case '1': { + settings.cuT=1; + break; + } + default: { + switch(settings.lang) { + case 0: { + freopen("lang/en_us/illegalInput.lang","r",stdin); + break; + } + case 1: { + freopen("lang/zh_cn/illegalInput.lang","r",stdin); + break; + } + default: { + freopen("lang/zh_cn/illegalInput.lang","r",stdin); + break; + } + } + while(1) { + gets(cuProLine); + if(cuProLine[0]=='&') + break; + printf("%s\n",cuProLine); + } + fclose(stdin); + freopen("CON","r",stdin); + goto reSelTypeBegin; + break; + } + } +} +void goodbye() { + fclose(stdin); + switch(settings.lang) { + case 0: { + freopen("lang/en_us/finished.lang","r",stdin); + break; + } + case 1: { + freopen("lang/zh_cn/finished.lang","r",stdin); + break; + } + default: { + freopen("lang/zh_cn/finished.lang","r",stdin); + break; + } + } + while(1) { + gets(cuProLine); + if(cuProLine[0]=='&') + break; + printf("%s\n",cuProLine); + } + fclose(stdin); + freopen("CON","r",stdin); +} +void clearStudentInfo() { + int i,j,k; + for(i=0; i<=MAXSTU-1; i++) { + for(j=0; j<=MAXCHN; j++) + array[i].CHN[j]='\0'; + for(j=0; j<=MAXNNAMENUM-1; j++) { + for(k=0; k<=MAXNNAMELEN-1; k++) + array[i].NICKNAME[j][k]='\0'; + } + array[i].nameNum=0; + array[i].exRes.score=0; + array[i].exRes.ranking=0; + array[i].hwRes.grade[0]='\0'; + } +} +void bucketSorting(){ + int i; + struct node *t; + for(i=1;i<=cuClass.stuNum;i++) + { + if(buckets[array[i].exRes.score].head==NULL){ + buckets[array[i].exRes.score].head=(struct node *)malloc(sizeof(struct node)); + buckets[array[i].exRes.score].head->num=i; + buckets[array[i].exRes.score].head->next=NULL; + } + else + { + t=(struct node *)malloc(sizeof(struct node)); + t->num=i; + t->next= buckets[array[i].exRes.score].head; + buckets[array[i].exRes.score].head=t; + } + } + if(settings.debugMode==true) + { + for(i=120;i>=0;i--) + { + if(buckets[i].head==NULL) + printf("[BucketSorting]%d-NULL\n",i); + else { + t=buckets[i].head; + printf("[BucketSorting]-%d",i); + while(1) + { + printf("-%s,%d",array[t->num].CHN,array[t->num].exRes.score); + if(t->next==NULL)break; + t=t->next; + } + printf("\n"); + } + if(i==0)break; + } + } +} +void sorting(){ + int i; + if(settings.sort.enabled==false) + printCSV(); + if(settings.sort.enabled==true){ + // if(settings.sort.algorithm==1) + // { + for(i=1;i<=120;i++) + { + buckets[i].value=i; + buckets[i].head=NULL; + } + bucketSorting(); + printBucketSorted(); + // } + } +} +void printBucketSorted(){ + int i,j;struct node *t=NULL; + fclose(stdout); + freopen("scoreS.csv","w",stdout); + switch(settings.lang) { + case 0: { + freopen("lang/en_us/output-N+S.lang","r",stdin); + break; + } + case 1: { + freopen("lang/zh_cn/output-N+S.lang","r",stdin); + break; + } + default: { + freopen("lang/zh_cn/output-N+S.lang","r",stdin); + break; + } + }/* + while(1) { + gets(cuProLine); + if(cuProLine[0]=='&') + break; + printf("%s\n",cuProLine); + }*/ + for(i=settings.ELAC; i>=1; i--)printf(",\n"); + for(i=120;i>=0;i--) + { + t=buckets[i].head; + if(t==NULL)continue; + else { + while(1) + { + printf("%s,%d\n",array[t->num].CHN,array[t->num].exRes.score); + if(t->next==NULL)break;t=t->next; + } + } + } + fclose(stdout); + freopen("CON","w",stdout); +} +int main() { + init(); + confirmation(); + prepare(); + logging(); + sorting(); + goodbye(); + system("pause"); + return 0; +} diff --git a/beta-2.2/about.md b/beta-2.2/about.md new file mode 100644 index 0000000..7abb6e3 --- /dev/null +++ b/beta-2.2/about.md @@ -0,0 +1,6 @@ +Score-Logging-System 2.1 +Biege Update:RTM2 +By Beacon1096 +copyright. 2017 Beacon1096 +[Evaluation copy] +& \ No newline at end of file diff --git a/beta-2.2/lang/en_us/acquiringClass.lang b/beta-2.2/lang/en_us/acquiringClass.lang new file mode 100644 index 0000000..ca2283d --- /dev/null +++ b/beta-2.2/lang/en_us/acquiringClass.lang @@ -0,0 +1,2 @@ +You're logging into class +& \ No newline at end of file diff --git a/beta-2.2/lang/en_us/acquiringDefaultClass.lang b/beta-2.2/lang/en_us/acquiringDefaultClass.lang new file mode 100644 index 0000000..a3be9ab --- /dev/null +++ b/beta-2.2/lang/en_us/acquiringDefaultClass.lang @@ -0,0 +1,2 @@ +No default class selected.You're logging into class: +& \ No newline at end of file diff --git a/beta-2.2/lang/en_us/acquiringDefaultType.lang b/beta-2.2/lang/en_us/acquiringDefaultType.lang new file mode 100644 index 0000000..797c750 --- /dev/null +++ b/beta-2.2/lang/en_us/acquiringDefaultType.lang @@ -0,0 +1,2 @@ +No default grade type selected.You're logging(0=numbers/exam,1=letters/homework): +& \ No newline at end of file diff --git a/beta-2.2/lang/en_us/acquiringType.lang b/beta-2.2/lang/en_us/acquiringType.lang new file mode 100644 index 0000000..34bb8d2 --- /dev/null +++ b/beta-2.2/lang/en_us/acquiringType.lang @@ -0,0 +1,2 @@ +You're logging(0=numbers/exam,1=letters/homework): +& \ No newline at end of file diff --git a/beta-2.2/lang/en_us/confirmation.lang b/beta-2.2/lang/en_us/confirmation.lang new file mode 100644 index 0000000..617c40c --- /dev/null +++ b/beta-2.2/lang/en_us/confirmation.lang @@ -0,0 +1,7 @@ +Here's your current settings +Current class +Current logging type +scores +grades +Do you wish to use these settings?hit "a" to change +& \ No newline at end of file diff --git a/beta-2.2/lang/en_us/finished.lang b/beta-2.2/lang/en_us/finished.lang new file mode 100644 index 0000000..69cf784 --- /dev/null +++ b/beta-2.2/lang/en_us/finished.lang @@ -0,0 +1,3 @@ +Please rename the "score.csv" or copy the chart into another chart using Excel or you'll lose the new chart. +Thank you for using SLS.This is a beta version app.Please contact the author/contributor if you have any suggestions. +& \ No newline at end of file diff --git a/beta-2.2/lang/en_us/illegalInput.lang b/beta-2.2/lang/en_us/illegalInput.lang new file mode 100644 index 0000000..1c74f21 --- /dev/null +++ b/beta-2.2/lang/en_us/illegalInput.lang @@ -0,0 +1,2 @@ +Illegal input.Try again. +& \ No newline at end of file diff --git a/beta-2.2/lang/en_us/initalizing.lang b/beta-2.2/lang/en_us/initalizing.lang new file mode 100644 index 0000000..9a9ba27 --- /dev/null +++ b/beta-2.2/lang/en_us/initalizing.lang @@ -0,0 +1,2 @@ +Initialization finished. +& \ No newline at end of file diff --git a/beta-2.2/lang/en_us/loggedStuNumReached.lang b/beta-2.2/lang/en_us/loggedStuNumReached.lang new file mode 100644 index 0000000..8f34836 --- /dev/null +++ b/beta-2.2/lang/en_us/loggedStuNumReached.lang @@ -0,0 +1,3 @@ +All the students have their results logged now. +If you wish to change some of them,hit key "a". +& \ No newline at end of file diff --git a/beta-2.2/lang/en_us/noStudent.lang b/beta-2.2/lang/en_us/noStudent.lang new file mode 100644 index 0000000..e0120dc --- /dev/null +++ b/beta-2.2/lang/en_us/noStudent.lang @@ -0,0 +1,2 @@ +Can't find the student.Did you type in the wrong name? +& \ No newline at end of file diff --git a/beta-2.2/lang/en_us/output-N+S.lang b/beta-2.2/lang/en_us/output-N+S.lang new file mode 100644 index 0000000..13c6af4 --- /dev/null +++ b/beta-2.2/lang/en_us/output-N+S.lang @@ -0,0 +1,2 @@ +Name,Result +& \ No newline at end of file diff --git a/beta-2.2/lang/en_us/startLogging.lang b/beta-2.2/lang/en_us/startLogging.lang new file mode 100644 index 0000000..9515f47 --- /dev/null +++ b/beta-2.2/lang/en_us/startLogging.lang @@ -0,0 +1,4 @@ +Please log the scores now.Format: +XXX(Name) +x(score/grade) +& \ No newline at end of file diff --git a/beta-2.2/lang/en_us/studentsLoaded.lang b/beta-2.2/lang/en_us/studentsLoaded.lang new file mode 100644 index 0000000..bc27c33 --- /dev/null +++ b/beta-2.2/lang/en_us/studentsLoaded.lang @@ -0,0 +1,2 @@ +Loading students' information... +& \ No newline at end of file diff --git a/beta-2.2/lang/zh_cn/acquiringClass.lang b/beta-2.2/lang/zh_cn/acquiringClass.lang new file mode 100644 index 0000000..4afd79a --- /dev/null +++ b/beta-2.2/lang/zh_cn/acquiringClass.lang @@ -0,0 +1,2 @@ +¼ɼİ༶Ϊ +& \ No newline at end of file diff --git a/beta-2.2/lang/zh_cn/acquiringDefaultClass.lang b/beta-2.2/lang/zh_cn/acquiringDefaultClass.lang new file mode 100644 index 0000000..eb1617d --- /dev/null +++ b/beta-2.2/lang/zh_cn/acquiringDefaultClass.lang @@ -0,0 +1,2 @@ +δָʹĬϰ༶¼ɼİ༶Ϊ +& \ No newline at end of file diff --git a/beta-2.2/lang/zh_cn/acquiringDefaultType.lang b/beta-2.2/lang/zh_cn/acquiringDefaultType.lang new file mode 100644 index 0000000..e7af098 --- /dev/null +++ b/beta-2.2/lang/zh_cn/acquiringDefaultType.lang @@ -0,0 +1,2 @@ +δָĬ¼ͣ¼ɼΪ(0=Գɼ(),1Ϊҵ(ĸȼ)) +& \ No newline at end of file diff --git a/beta-2.2/lang/zh_cn/acquiringType.lang b/beta-2.2/lang/zh_cn/acquiringType.lang new file mode 100644 index 0000000..272113e --- /dev/null +++ b/beta-2.2/lang/zh_cn/acquiringType.lang @@ -0,0 +1,2 @@ +¼ɼΪ(0=Գɼ(),1Ϊҵ(ĸȼ)) +& \ No newline at end of file diff --git a/beta-2.2/lang/zh_cn/confirmation.lang b/beta-2.2/lang/zh_cn/confirmation.lang new file mode 100644 index 0000000..d646794 --- /dev/null +++ b/beta-2.2/lang/zh_cn/confirmation.lang @@ -0,0 +1,7 @@ +ǰ£ +ǰ༶ +ǰ¼ɼͣ +Գɼ +ҵȼ +ʹ?ûaԸģ +& \ No newline at end of file diff --git a/beta-2.2/lang/zh_cn/finished.lang b/beta-2.2/lang/zh_cn/finished.lang new file mode 100644 index 0000000..83a942a --- /dev/null +++ b/beta-2.2/lang/zh_cn/finished.lang @@ -0,0 +1,3 @@ +Ϊscore.csvʹExcelеķһ񣬷´񽫱գ +лʹá԰н +& \ No newline at end of file diff --git a/beta-2.2/lang/zh_cn/illegalInput.lang b/beta-2.2/lang/zh_cn/illegalInput.lang new file mode 100644 index 0000000..2d2e157 --- /dev/null +++ b/beta-2.2/lang/zh_cn/illegalInput.lang @@ -0,0 +1,2 @@ +ȷ롣һΡ +& \ No newline at end of file diff --git a/beta-2.2/lang/zh_cn/initalizing.lang b/beta-2.2/lang/zh_cn/initalizing.lang new file mode 100644 index 0000000..ef6b69f --- /dev/null +++ b/beta-2.2/lang/zh_cn/initalizing.lang @@ -0,0 +1,2 @@ +ʼ... +& \ No newline at end of file diff --git a/beta-2.2/lang/zh_cn/loggedStuNumReached.lang b/beta-2.2/lang/zh_cn/loggedStuNumReached.lang new file mode 100644 index 0000000..88b961e --- /dev/null +++ b/beta-2.2/lang/zh_cn/loggedStuNumReached.lang @@ -0,0 +1,2 @@ +˰༶ѧijɼȫ¼ɡҪ޸ģûa +& \ No newline at end of file diff --git a/beta-2.2/lang/zh_cn/noStudent.lang b/beta-2.2/lang/zh_cn/noStudent.lang new file mode 100644 index 0000000..b402baf --- /dev/null +++ b/beta-2.2/lang/zh_cn/noStudent.lang @@ -0,0 +1,2 @@ +ѧڡDzִˣ +& \ No newline at end of file diff --git a/beta-2.2/lang/zh_cn/output-N+S.lang b/beta-2.2/lang/zh_cn/output-N+S.lang new file mode 100644 index 0000000..d5f48b1 --- /dev/null +++ b/beta-2.2/lang/zh_cn/output-N+S.lang @@ -0,0 +1,2 @@ +,ɼ +& \ No newline at end of file diff --git a/beta-2.2/lang/zh_cn/startLogging.lang b/beta-2.2/lang/zh_cn/startLogging.lang new file mode 100644 index 0000000..3a8566e --- /dev/null +++ b/beta-2.2/lang/zh_cn/startLogging.lang @@ -0,0 +1,4 @@ +뿪ʼ¼롣ʽ: +XXX(ƴд) x(ȼ) +ɼȫ¼ϵͳȴûʾѧȱ롰&˳ +& \ No newline at end of file diff --git a/beta-2.2/lang/zh_cn/studentsLoaded.lang b/beta-2.2/lang/zh_cn/studentsLoaded.lang new file mode 100644 index 0000000..c633da0 --- /dev/null +++ b/beta-2.2/lang/zh_cn/studentsLoaded.lang @@ -0,0 +1,2 @@ +ѧ... +& \ No newline at end of file diff --git a/beta-2.2/list.csv b/beta-2.2/list.csv new file mode 100644 index 0000000..1de30fe --- /dev/null +++ b/beta-2.2/list.csv @@ -0,0 +1,7 @@ +C1,3,,,, +,zs,three,3,zhangsan,zhang +,ls,four,4,lisi,li +,ww,five,5,wangwu,wang +C0,2,,,, +Ų,zbc,cat,zuozhe, +è,lmz,oldcat,,, diff --git a/beta-2.2/options.ini b/beta-2.2/options.ini new file mode 100644 index 0000000..4906408 --- /dev/null +++ b/beta-2.2/options.ini @@ -0,0 +1,37 @@ +#Configurationfile of SLS +#Language(0=English,1=Chinese) +#ԣ1Ϊģ0ΪӢ +LA +1 +#Use a spicifiec class(0=false,1=true) +#Ĭʹһضİ༶(1) +UDC +1 +#The number of the class +#Ĭϰ༶ +DC +0 +#Use a spicifiec result type(0=false,1=true) +#ʹĬ¼ģʽ +UDT +1 +#Ĭϵģʽ0ΪԳɼ1Ϊҵȼ +DT +0 +#DeveloperMode +#ģʽ +DM +1 +#Empty lines above the score chart(exclude the line writes"name"&"score") +#Ϸʾ롰У +ELAC +2 +#Sorting is enabled +#Ƿ +SRT +1 +#Sorting Algorithm('1'=bucket) +#㷨('1'ΪͰ) +SRTA +1 +& \ No newline at end of file diff --git a/beta-2.2/scoreS.csv b/beta-2.2/scoreS.csv new file mode 100644 index 0000000..e3cc078 --- /dev/null +++ b/beta-2.2/scoreS.csv @@ -0,0 +1,4 @@ +, +, +è,108 +Ų,99