st[0] = 'Y'; } }
while (q == 2) {
printf(\ scanf(\ if (st[0] == 'Y') { printf(\ scanf(\ printf(\ scanf(\
while (rmp1[string(Rid)] != 1) {
printf(\ printf(\ scanf(\ printf(\ scanf(\ }
while (rmp[string(Rid)] != string(Rpw)) {
printf(\password is not correct, please re-enter!!!\\n\
printf(\ scanf(\ }
while (1) {
printf(\ printf(\
printf(\ printf(\ int qq;
scanf(\ while (qq == 1) {
printf(\ scanf(\
int xxx = Find_book(TheBook); print_Book(xxx);
15
printf(\ print \return, another key continue \\n\
int qqq;
scanf(\ if (qqq == 1) break; }
while (qq == 2) {
int xxx = Find_Reader(Rid); print_reader_borrow(xxx);
printf(\ int qqq;
scanf(\ if (qqq == 1) break; }
if (qq == 3) { break; } }
printf(\ scanf(\
if (stt[0] == 'Y') break; else continue; } else {
printf(\ scanf(\ printf(\ scanf(\
while (rmp1[string(rid)] == 1) {
printf(\id has been registered, please change.\\n\
printf(\ scanf(\ printf(\ scanf(\ }
rmp1[string(rid)] = 1;
16
rmp[string(rid)] = string(rpw); fuzhi(readers[++nreaders].id, rid); readers[nreaders].quantity = 0; readers[nreaders].price = 0; st[0] = 'Y'; } }
writeln(); }
4.测试结果
管理员界面及功能
读者界面及功能
17
5.分析与探讨
经过一个多星期的编译原理课程设计,在我的努力下,顺利完成该课程设计。
通过该课程设计,掌握了编译程序工作的基本过程及其各阶段的基本任务,熟悉了编译程序总流程框图,了解了编译程序的生成过程及其相关的技术,对课本上的知识也有了更深的理解。老师常说,课本上的知识是机械的,表面的,要学会去运用,要举一反三。现在终于深刻的了解了这句话。经过这次的课程设计,发现书本上很深奥的知识变的更为简单,同样,对实验原理也了有更深的理解。知道和理解了该理论在计算机中是怎样执行的, 对该理论在实践中的应用有深刻的理解 。通过该课程设计,把死板的课本知识变得生动有趣,激发了学习的积极性。能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。
课程设计中程序比较复杂,在调试时应该仔细,在程序调试
18
时,注意指针,将不必要的命令去除。除了课堂外,课程设计是最能学到东西的,最考验人的。在做课程设计的这段时间,时刻都感到自己学的知识有多么的贫瘠。经过这次课程设计,让我对C++这门语言有了更深的认识,操作能力有了提高要想是写出的代码能运行,需要耐心细心,毅力以及充沛的体力。只有经过多次编辑,多次编译,再多次运行,才能编写出更好的程序,有时候需要多次的更正才能达到所要的运行结果。
19