代码连接git
本次要求把这个程序作成GUI(能够是Windows PC 上的,也能够是Mac、Linux,web,手机上的),成为一个有基本功能、必定价值的程序。
在下面的功能需求中实现两个:web
本次编程要求实现记录用户的对错总数,而且在之前的基础上进行增量计算。所以,这就要求咱们须要建立文件或其余方法来保存对错的数量,以便于在再次开启程序时可以读入之前作题的数目。计时功能是相对比较容易实现的,只需在开始答题是开启时钟,提交答案时关闭时钟,两次的差值就是答题所用的时间。多种语言选择,其实就是在实现中文的基础上将显示界面和答案对错提示用不一样的语言来替代,而内在的关于计算、比较答案的算法却没有太大的变化。算法
程序中判断答案的代码以下(为中文版的),在切换到英文等其余语言时,只需将显示正确错误的的中文设置为英文,而生成题目的函数并不须要有任何的改变。编程
char* Submit(char result[],char * answer) { static char prompt[20]; FILE * in; FILE * out; in=fopen("number.txt","r"); fscanf(in,"%d,%d",&right,&wrong); fclose(in); if(strcmp(answer,result)==0) { strcpy(prompt,"正确!"); right++; } else { strcpy(prompt,"错误! "); strcat(prompt,"正确答案是:"); strcat(prompt,result); wrong++; } out=fopen("number.txt","w"); fprintf(out,"%d,%d",right,wrong); fclose(out); return prompt; }
整个工程总共有三个界面:选择语言的界面、中文界面和英文界面(中文繁体的只需建立一个新的界面,而后调用以前的函数便可)。界面之间的跳转使用按钮来控制,如下是部分代码(主界面到中文界面):函数
void CTeamworkDlg::OnChinese() { // TODO: Add your control notification handler code here chinese chinese; CTeamworkDlg::OnOK(); chinese.DoModal(); }
每一题计时的代码以下:学习
void chinese::OnButton() { // TODO: Add your control notification handler code here UpdateData(); m_Show1=Draw(); start=clock(); UpdateData(false); } void chinese::OnButton_Submit() { // TODO: Add your control notification handler code here finish= clock(); duration =(double)(finish-start)/CLOCKS_PER_SEC; sprintf(temp,"%g",duration); m_Show3=temp; UpdateData(false); }
计时功能经过按钮实现,在生成题目以后开启时钟,在提交以后在记录一个时间,两个时间的差值就是本题的用时。测试
PSP2.1 | Personal Software Process Stages | Time (%) Senior Student(/hour) | Time (%)(/hour) |
· Planning | 计划 | 2 | 1.8 |
· Estimate | 估计这个任务须要多少时间 | 25 | 20 |
· Analysis | 需求分析 (包括学习新技术) | 2 | 1 |
· Coding Standard | 代码规范 | 1 | 1.5 |
· Design | 具体设计 | 1.5 | 1 |
· Coding | 具体编码 | 20 | 15 |
· Test | 测试(自我测试,修改代码,提交修改) | 1 | 1.5 |
Reporting | 报告 | 1 | 1 |
整个编程过程当中,遇到很多的问题。相似[Error]:LNK2005 ——生成题目的函数写在Draw.h的头文件中,在只有中文界面时调用函数时没有任何的问题,而在加入英文界面的由于重复定义而出现了错误。上网百度后,发现只需声明该方法便可,并不须要从新定义其余与之功能相同的异名函数。在读入文件时,也曾就文件的路径编写时使用绝对路径或则相对路径出现过问题。一开始使用绝对路径编写,发现编译后运行生成的.exe文件时会出现错误。以后,将文件路径改成相对路径并将其移入到Debug文件夹中后就能够很好地实现实验要求的功能。同时,在计时方面仍有不足,只可以一题一题的统计时间。程序还有许多不足,以后会不断改进!!!编码