欢迎来到天天文库
浏览记录
ID:55895579
大小:210.00 KB
页数:10页
时间:2020-06-13
《c++程设计报告材料.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、程序管理系统一、需求分析(一)题目的容与要求1.容:1、每一条记录包括一个学生的学号、、3门成绩、平均成绩。2、输入功能:可以一次完成无数条记录的输入。3、显示功能:完成全部学生记录的显示。4、查找功能:完成按查找学生记录,并显示。5、删除功能:请求用户输入要删除的学生记录的学号,从链表中删除结点。6、排序功能:按学生平均成绩进行排序。7、保存功能:将学生记录保存在任何自定义的文件中,如保存在:c:score。8、读取功能:将保存在文件中的学生记录读取出来。9、有一个清晰美观界面来调用各个功能,本程序中采用菜单的设计来实现美观界面。2.要求:1、整个系统均用C语言实现
2、;2、利用指针、链表来实现学生成绩的数据结构设计;3、系统具有输入、显示、查询、删除、排序、插入,保存、读取基本功能;4、系统的各个功能模块都用函数的形式来实现;(二)开发工具操作系统:Windows7旗舰版。硬件环境:CPUIntel(R)Core(TM)i3380+存2G,硬盘320G。软件环境:TurboC。二、概要设计(一)总体结构本程序主要分为十个模块:主函数模块,菜单设计模块,InputRecord模块,PrintRecord模块,SearchRecord模块,DeleteRecord模块,UpdateRecord模块,SortRecord模块,WriteR
3、ecordToFile模块,ReadRecordFromFile模块。主函数模块实现函数调用。主菜单输入列表查找删除修改排序写入读出帮助(一)课程设计目的1.进一步掌握和利用C语言进行程序设计的能力;2.进一步理解和运用结构化程序设计的思想和方法;3.初步掌握开发一个小型实用系统的基本方法;4.学会调试一个较长程序的基本方法;5.学会利用流程图或N-S图表示算法;6.掌握书写程设计开发文档的能力(书写课程设计报告)。(二)课程设计的意义课程设计让我更进一步地了解、掌握和利用C语言。加强了我对利用C语言进行程序设计的能力,让我学会了开发小型系统的基本方法,激发了我对计算机
4、这一专业的热情。更重要的是C语言程序设计大大地开拓了我的思维,让我更有条理地处理事情。这次课程设计对我个人以后的发展有这很大的帮助。一、算法分析(一)主函数main()通过调用菜单设计模块来判断即调用用户选择的功能模块。(二)菜单设计模块菜单窗口图像的存储和重放:在文本模式下使用gettext()函数存放某一缓冲区的文本,puttext()函数将缓冲区的文本显现出来。菜单窗口和菜单项的生成:将实现存放在字符指针数组中的菜单各项容填入相应的位置中,并用红色标出相应项选择对应的热键。生成光条:在菜单上压上光条,用户按【Up】或【Down】键,使光条在整个菜单项上移动,来标明
5、要选择的菜单项,当按回车键后,转入执行菜单项功能,这是通过相应菜单项的图像存取和改变背景色后的重放来实现的。键识别:键盘操作函数bioskey()来得到用户按键的扫描码。(一)输入记录函数STUDENT*create()这是一个无参函数,用来执行第学生成绩记录的输入,当学生为0时停止输入,函数结束后,带回一个指向链表头的指针head。算法:先声明一个首节点head,并将head->next设为NULL。每输入一个数据就声明一个新节点p,把p->next设为NULL,并且到之前列表的尾端。head=NULLfor(;;)指针p指向新开辟的单元指针p是否为空是否输入学号p-
6、>num输出p->num是否为0存是否溢出输入p->name停止for(i=0;i<3;i++)输入输入成绩返回p->sum=s;菜单p->average=(float)s/3;p->order=0;p->next=head;head=p;(二)显示记录函数voidprint(STUDENT*head)这是一个不返回值的有参函数,形参为“链表头的指针”,负责对全部学生成绩记录的输出,不足之处就是不能对学生成绩进行分页显示。算法:先将p结点的指针指向第一个结点,将p结点(即第一个结点)的数据输出。然后再将p结点的指针指向p指针的的指针(即下一结点),将p结点(即第一结点)
7、的数据输出。重复执行此步聚直到p指针指向NULL为止。p=head,使指向第一个结点输出p所指向的结点p指向一下个结点当p指的不是表尾(一)查找记录函数voidsearch(STUDENT*head)这是一个不返回值的有参函数,形参为“链表头的指针”,实现按学号对某个学生进行查找,并显示所查找到的记录。算法:采用线性查找法往下一个节点查找。输入所要查找的学生的学号s,设一个指针变量p,先指向第一个结点,当strcmp(p->name,s)&&p!=NULL时,使p后移一个结点,如果p!=NULL,输出p所指的结点。输入要查找的学生的学号s
此文档下载收益归作者所有