欢迎来到天天文库
浏览记录
ID:9938401
大小:296.30 KB
页数:16页
时间:2018-05-16
《数据结构课程设计报告---利用栈求表达式的值》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、数据结构课程设计报告题目:利用栈求表达式的值学院:信息工程学院专业:计算机科学与技术指导老师:******姓名:********学号:*********2011-6-27-14-目录1.摘要………………………………………………………………………12.设计方案…………………………………………………………………012.1整体设计方案………………………………………………………012.1.1创建试题库模块设计方案……………………………………022.1.2试题测试模块设计方案………………………………………032.1.3查看
2、历史分数模块设计方案…………………………………062.1.4随时退出模块设计方案………………………………………072.1.5主程序设计方案………………………………………………073.本程序涉及的结构体………………………………………………………084.程序演示………………………………………………………………………095.课程设计心得………………………………………………………………14-14-1.摘要设计一个用于小学生使用的数学表达式求值的系统。在系统中,充分利用数据结构中栈的知识,并用到了C语言中的文件操作,主要是
3、:如何从试题库中读取题目以及将试题写入试题库中。完成了试题库的录入更新,考试,打分,评价和与历史分数的对比评价等功能。在系统中,充分体现了数据结构这门学科的特色。其中涉及到的文件主要有:shitiku.txt——用来存放试题;markrec.txt——存放历史分数;n_rec.txt存放测试次数。2设计方案2.1整体设计方案此课题是研究表达式求值的问题,以帮助小学生完成测试。为了达到这个功能,实际我们要做的就是出题,和计算分数给出评价的工作。整体设计都是以这个要求为轴心进行的。为了直观和方便,现画出软件整体设计模
4、块图。如下图:利用栈求表达式的值创建试题库试题测试查看历史分数随时退出2.1.1创建试题库模块设计方案首先在主函数中调用创建试题库函数,将试题存入到试题库文件shitiku.txt中,然后将该调用从主函数中删除。创建试题库函数:创建指向xuanti类型的指针,利用循环将输入的测试题该指针的xuanti单元中,最后将该指针中的测试题写入试题库文件shitiku.txt中。在创建试题库这个模块中,还包含了两个文件操作的函数的调用,分别是将试题信息写入shujuku.txt中的函数voidWriteToFile(xua
5、nti*pstu,intnum)与讲试题信息从shujuku.txt中读出来的函数voidReadFromFile(xuanti*pstu,intnum)。部分程序如下:voidBuilt_shitiKu()/*建立试题库文件*/{inti,num;xuanti*pstu;printf("请输入试题数目:");/*输入试题数目*/scanf("%d",&num);fflush(stdin);pstu=(xuanti*)malloc(num*sizeof(xuanti));/*动态分配内存*/if(pstu==
6、NULL)-14-{printf("没有足够的内存空间!");/*没有足够内存空间*/return;}for(i=0;i7、ULL){printf("不能创建试题库!");/*不能创建试题库*/free(pstu);exit(0);}fwrite(pstu,sizeof(xuanti),num,fp);fclose(fp);}voidReadFromFile(xuanti*pstu,intnum)/*从试题库中提取试题*/{FILE*fp;fp=fopen("shitiku.txt","rt");if(fp==NULL){printf("不能打开shitiku.txt文件!");/*不能打开shitiku.txt文件*/fre8、e(pstu);exit(0);}fread(pstu,sizeof(xuanti),num,fp);fclose(fp);}2.1.2试题测试模块设计方案试题计算:建立两个栈,分别存放数字、运算符,建立一个二维数组,存放任意两个运算符之间的优先级关系,通过比较符号栈中后两个运算符的优先级关系,决定数字-14-栈中后两个数据是直接入栈还是运算之后入栈,最后在数字栈中得到最
7、ULL){printf("不能创建试题库!");/*不能创建试题库*/free(pstu);exit(0);}fwrite(pstu,sizeof(xuanti),num,fp);fclose(fp);}voidReadFromFile(xuanti*pstu,intnum)/*从试题库中提取试题*/{FILE*fp;fp=fopen("shitiku.txt","rt");if(fp==NULL){printf("不能打开shitiku.txt文件!");/*不能打开shitiku.txt文件*/fre
8、e(pstu);exit(0);}fread(pstu,sizeof(xuanti),num,fp);fclose(fp);}2.1.2试题测试模块设计方案试题计算:建立两个栈,分别存放数字、运算符,建立一个二维数组,存放任意两个运算符之间的优先级关系,通过比较符号栈中后两个运算符的优先级关系,决定数字-14-栈中后两个数据是直接入栈还是运算之后入栈,最后在数字栈中得到最
此文档下载收益归作者所有