《高级语言程序设计与编译课程设计-图书管理系统》-公开DOC·毕业论文

上传人:zhuma****mei2 文档编号:136019532 上传时间:2020-06-22 格式:DOC 页数:47 大小:1.11MB
返回 下载 相关 举报
《高级语言程序设计与编译课程设计-图书管理系统》-公开DOC·毕业论文_第1页
第1页 / 共47页
《高级语言程序设计与编译课程设计-图书管理系统》-公开DOC·毕业论文_第2页
第2页 / 共47页
《高级语言程序设计与编译课程设计-图书管理系统》-公开DOC·毕业论文_第3页
第3页 / 共47页
《高级语言程序设计与编译课程设计-图书管理系统》-公开DOC·毕业论文_第4页
第4页 / 共47页
《高级语言程序设计与编译课程设计-图书管理系统》-公开DOC·毕业论文_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《《高级语言程序设计与编译课程设计-图书管理系统》-公开DOC·毕业论文》由会员分享,可在线阅读,更多相关《《高级语言程序设计与编译课程设计-图书管理系统》-公开DOC·毕业论文(47页珍藏版)》请在金锄头文库上搜索。

1、课 程 设 计 说 明 书课程名称:高级语言程序设计与编译 设计题目: 图书管理系统 院 系: 计算机科学与信息工程系 学生姓名: 学 号: 201103030094 专业班级: 网络工程 指导教师: 2012 年 6 月 7 日课 程 设 计 任 务 书设计题目图书管理系统学生姓名 所在院系计算机科学与信息工程系专业、年级、班11网络工程设计要求:完成一个图书管理系统系统,具体要求如下: 1.用户登录 10.保存用户信息2.系统主控平台 11退出 3.新增图书信息处理 4.浏览图书信息处理 5.查找图书信息处理 6.删除图书信息 7.保存图书信息处理 8.新增用户信息9.查找用户学生应完成的

2、工作:1 学生应认真学习参考程序,理解每个文件、每个函数以及各个变量的作用和意义。在此基础上进一步改进程序,最后正确地运行程序。2对程序进行测试,设计详细的测试计划,然后根据测试计划设计测试用例,对程序进行测试。测试时应注意对各种边缘情况进行测试。3 完成课程设计报告参考文献:1 梁 旭等 C语言课程设计 电子工业出版社 20092 谭浩强 C程序设计 清华大学出版社2008工作计划:1. 小组审题,查阅资料,进行设计前的必要资料准备(2天)。 2. 把程序完整运行出来(3天)。 3. 增加改进程序(2天)。 4. 写课程设计报告(2天)。 5. 提交课程设计报告及答辩(1天)任务下达日期:2

3、012 年 6 月 4日 任务完成日期:2012 年 6 月 18 日指导教师(签名): 学生(签名):目 录一 设计要求4二 系统的功能模块4三 数据结构设计描述4四 函数功能及参数说明、相互调用关系6五 各变量的定义和作用6六 各功能模块的算法处理流程图及相关说明7七 改进或增加功能模块说明11八 程序测试14九 程序设计过程中遇到的问题及解决过程16十 课程设计心得及体会17十一 参考文献17十二 源程序17图书管理系统一、设计要求1.要求使用多文件方式实现设计.2.要求在各个文件内实现结构化设计.3.每个模块作为一个单独的C文件.4.宏和数据结构等放在头文件中,并使用条件编译.二、系统

4、的功能模块根据设计要求,学生成绩管理系统功能模块如图2-1所示。总控函数、菜单文件student.c新建学生信息文件查询学生信息增加学生信息对学生成绩排序保存信息至记录文件夹显示学生信息修改学生信息删除学生信息按学号查询按姓名查询按名次查询按成绩区间查询按学号排序按名次排序按名称排序按总分排序按单科成绩排序图2-1 系统功能模块图三、数据结构设计描述#define INITIAL_SIZE 100 /数组初始大小#define INCR_SIZE 50 /数组每次增加的大小#define NUM_SUBJECT 5 /科目数struct student_info /结构体char number

5、15; /学号char name20; /姓名char gender4; /性别float scoreNUM_SUBJECT;/分别为该学生5门课的成绩float sum; /总分float average; /平均分int index; /名次;typedef struct student_info StuInfo;extern int numStus; /记录的学生数extern StuInfo* records; /记录学生信息的数组extern char savedTag; /信息是否已保存的标志,0为已保存,1为保存extern int arraySize; /数组大小extern

6、char* subject;每个学生信息资料用一个StuInfo结构来保存,用StuInfo数组全局变量records来保存一批学生的信息资料。宏定义INITIAL_SIZE表示数组初始大小,当已分配的数组大小不够用的时候,将增加数组大小,INCR_SIZE为当每次增加的大小。numStus为全局变量,表示数组中记录的学生数,arraySize是为数组分配的空间大小。全局变量sacedTag是信息是否以保存的标志,当数组内容被保存至文件后,设为“已保存”状态,当数组内容被修改之后,设为“为保存”状态。四、函数功能及参数说明、相互调用关系根据功能模块划分,学生成绩管理系统需建立的文件、各文件所包

7、含的函数以及各函数的相互调用关系如表4-1所示。表4-1函数相互调用关系源文件函数名或其他成分功 能student.cmain总控函数menu_select菜单选择handle_menu菜单处理newRecords新建学生信息记录quit结束运行add_disp.cshowTable打印表头getIndex按升序排序的位置addRecord在表尾追加信息display显示信息que_remv_modi.cremoveRecord删除制定的记录findRecord查找制定的记录queryInfo查找制定学生的信息copyRecord复制记录modifyRecord修改制定学生信息save_loa

8、dsave_loadsave文件储存load文件读取sort.csortInfo排序student.h常数提供常数结构声明学生成绩结构库函数及函数原型声明引用库函数及函数五、各变量的定义和作用student.hdefine INITIAL_SIZE 100 /数组初始大小#define INCR_SIZE 50 /数组每次增加的大小#define NUM_SUBJECT 5 /科目数struct student_infochar number15; /学号char name20; /姓名char gender4; /性别float scoreNUM_SUBJECT;/分别为该学生5门课的成绩f

9、loat sum; /总分float average; /平均分int index; /名次;extern int numStus; /记录的学生数extern StuInfo* records; /记录学生信息的数组extern char savedTag; /信息是否已保存的标志,0为已保存,1为保存extern int arraySize; /数组大小extern char* subject;除此之外还有部分函数内部变量,用作循环和判断条件。六、各功能模块的算法处理流程图及相关说明1. 总控函数、菜单文件student.c 主函数(main()在student.c文件中,该文件的主要功能

10、是根据用户输入的值,调用对应的处理函数,用户输入的数值与之对应的处理函数如图6-1所示。初始化数组 给records申请空间 用malloc函数给cn赋值,用switchcase0case1case2case3case4case5case6case7case8增加学生信息调用自定义函数addRecord()修改学生信息调用自定义函数modifyRecord()显示学生信息调用自定义函数display()查询学生信息调用自定义函数queryInfo()删除学生信息调用自定义函数removeRecord()对学生信息进行排序调用自定义函数sortInfo()保存学生信息至记录文件调用自定义函数sa

11、veRecords()从记录文件读取学生信息调用loadRecords()新建学生信息文件调用自定义函数newRecords()case9结束运行调用quit()对cn规定,若不是0到9之间则输入错误对newRecords()定义对quit()定义图6-1 case值与之对应的处理函数在主函数中,首先用malloc函数分配INITIAL_SIZE个StuInfo大小的数组给records,对各个全局变量进行初始化赋值,反复进行菜单处理。cn=atoi(s);用来对cn赋值,使之与case值对应。2.add_disp.caddRecord函数用来在当前表的尾部增加新的信息,者只要将新的信息保存到

12、recordsnumStus中,然后numStus自加1,完成操作。增加新信息前,numStus已经大于或等于arraySize,使用realloc函数重新为records分配大小。每增加一个学生信息,就通过总分来计算名次,该学生的名次是总分高于他的学生的总数加1,并且所有总分小于他的学生的名次均增加1。addRecord函数的数据流程图如图6-2所示。 是否添加信息 是y 否breakif(numStus=arraySize)判断数组空间真 假重新申请空间 输入学生信息recoreds=realloc(records,(arraySize+INCR 调用getIndex对学生的名次进行赋值_SIZE)*sizeof(StuInfo)图6-2 ad

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号