




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
中北大学 数据结构 课程设计说明书 学生姓名:刘敏杰学号:1021011545学院:软件学院专业:软件开发与测试题目:利用栈求表达式的值,可供小学生作业,并能给出分数指导教师何志英 2011年12月20日 设计任务概述(包括系统总体框图及功能描述) 此课题是研究表达式求值的问题,以帮助小学生完成测试。为了达到这个功能,实际我们要做的就是出题,和计算分数给出评价的工作。整体设计都是以这个要求为轴心进行的。为了直观和方便,现画出软件整体设计模块图。 利用栈求表达式的值 创建试题库 试题测试 查看历史分数 随时退出 整体设计模块图可以清晰的看出软件的几大模块。整个系统的操作流程图可以看出操作的整体流程,如下图 开始 结束 菜单选择 试题测试 查看历史分数 输入1 输入2 输入0 2.本设计所采用的数据结构(如:链表、栈、树、图等) 根据以上功能说明,设计运算信息,堆栈的存储结构,设计程序 完成功能; 3.功能模块详细设计 在此说明每个部分的算法设计说明(可以是描述算法的流程图),每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义)。 3.1详细设计思想 学生要进行测试,首先要有试题。那么我们就要先建立试题库。这个试题库的试题是我们在程序运行过程中手动输入,存放在一个shujuku.txt的文件中。 首先在主函数中调用创建试题库函数,将试题存入到试题库文件shitiku.txt中,然后将该调用从主函数中删除。 创建试题库函数:创建指向xuanti类型的指针,利用循环将输入的测试题该指针的xuanti单元中,最后将该指针中的测试题写入试题库文件shitiku.txt中。 3.2核心代码 (正文宋体小四号字,1.5倍行距) #include<stdio.h> #include<stdlib.h> #include<time.h> #include<string.h> #include<conio.h> #defineSTACK_INIT_SIZE100 #defineSTACKINCREMENT10 #defineERROR0 #defineOK1 //定义表达式 typedefstructshiti { chara[20]; longresult; }xuanti; typedefstructSqStack1 {//建立数字栈 int*base; int*top; intstacksize; }SqStack1; typedefstructSqStack2 {//建立运算符栈 char*base; char*top; intstacksize; }SqStack2; voidWriteToFile(xuanti*pstu,intnum); voidReadFromFile(xuanti*pstu,intnum); voidpage_title(char*menu_item) {//建立菜单 printf(">>>数学习题库<<<\n\n-%s-\n\n",menu_item); } voidreturn_confirm() { printf("\n按任意键返回……\n"); getch(); } voidIntInitStack(SqStack1*S1) { S1->base=(int*)malloc(STACK_INIT_SIZE*sizeof(int)); if(!S1->base) exit(ERROR); S1->top=S1->base; S1->stacksize=STACK_INIT_SIZE; }//IntInitStack voidCharInitStack(SqStack2*S2) { S2->base=(char*)malloc(STACK_INIT_SIZE*sizeof(char)); if(!S2->base) exit(ERROR); S2->top=S2->base; S2->stacksize=STACK_INIT_SIZE; }//CharInitStack longIntGetTop(SqStack1*S1) {//取栈顶元素 longe1; if((*S1).top==(*S1).base) return0; e1=*((*S1).top-1); returne1; }//IntGetTop charCharGetTop(SqStack2*S2) {//取栈顶元素 chare2; if((*S2).top==(*S2).base)return0; e2=*((*S2).top-1); returne2; }//IntGetTop intIntPush(SqStack1*S1,inte1)

王子****青蛙
实名认证
内容提供者


最近下载