课程设计实验报告_第1页
课程设计实验报告_第2页
课程设计实验报告_第3页
课程设计实验报告_第4页
课程设计实验报告_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中南大学二○一五~二○一六学年第一学期信息科学与工程学院《计算机与程序设计基础》程序设计报告课程名称:计算机与程序设计语言基础班级:2015级计算机工程试验班学号:0902150424姓名:张志凌云指导教师:汪洁二○一五年十二月目录一、需求分析 -2-1.要解决的问题 -2-2.基本要求 -2-3.限制条件 -3-二、总体设计 -3-1.算法分析 -3-2.程序设计流程图 -4-3.程序设计组成框图 -4-三、详细设计 -7-1.参数说明 -7-2.函数功能 -8-3.函数调用关系描述 -8-四、调试与测试 -9-五、测试结果 -9-六、心得体会 -9-七、附录 -9-1.源程序清单(含注释) -9-2.结果(图文,包括测试数据和运行结果) -20-一、需求分析1.要解决的问题设计一个学生信息管理系统: A采用菜单界面 B可以对学生信息进行录入,增加,修改,删除,查询,统计,显示,排序和存盘 C可以按班进行管理,可增加、删除班级 D将学生信息保存在文件中。可以根据学生总分、单科分高低排序并输出 E增加、修改、删除、查询、统计学生信息必须使用链表实现(从文件中读取信息至链表再进行处理,或者将链表信息存入文件) F可以根据自身理解为系统增加新的功能。 学生信息包括:学号、姓名、性别、年龄、专业班级和三门以上课程成绩2.基本要求(改)1.理解算法的基本概念;2.使用常量、变量、运算符与表达式、程序控制结构、数组、函数、编译预处理、指针、结构体与共用体及文件等C语言要素进行程序设计;3.在一种C语言开发环境下进行C程序设计的基本步骤;3.限制条件⑴硬件:一般PC机。⑵软件:操作系统为Windows8,设计语言为VisualC++或TurboC2.0。二、总体设计1.算法分析以上所给的课程设计的题目,每一个对象都包括多个属性。所以要考虑数据的存储形式要用结构体类型来实现。首先,应该考虑定义一个结构,其次,我们应该考虑数据的存储形式:是定义一个数组来存储,还是定义一个链表呢?在这里假如我们以数组的方式来存储,当然可以,但是我们知道,假如我们定义一个数组的话,我们首先必须知道学生人数大概是多少,以便我们确定数组的大小,但是题目中没有给出,而且题目要求中有大量的删除、插入操作,所以用链表的方式比较方便。对于菜单的实现,首先我们用printf函数把程序的功能列出来,然后等待用户选择而执行不同的函数,执行完了一个功能后又回到菜单。保存数据要通过文件来实现,文件的读写操作请参考教材文件一章及其他参照书的有关文件的章节。2、程序设计流程图3、程序设计组成框图(1)删除函数structstudent*delete(structstudent*head)输入一个姓名,进行匹配没找到,pOld后移找到首节点pHead=pOld->next;其他pHead=pOld->next;释放空间(2)排序(3)修改函数structstudent*correct(structstudent*a)pNew=l->next当pNew->number!=charnum[]&&pNew!=1pNew下移找到匹配没有找到匹配信息进行修改。料可以修改输入各修改信息(4)查询函数structstudent*pre(structstudent*head)pNew=l->next当pNew->number!=charnum[]&&pNew!=1输出p的结点pNew移向下一个节点p=p->next(后移一个结点)(5)插入函数structstudent*add(structstudent*head)初始r指向头结点使r指向最末尾;是新加入的节点插入末尾分配区域,输入数据(6)保存函数structstudent*save(structstudent*a)定义文件指针fp=fopen(“c:\\student”,”wb”)(使指针指向文件,只允许只读)fp=NULL是否重新打p=l->next开文件p!=0时发生错误读取一个长度为结点的数据块并流向是fp否p=p->next(后移一个结点)保存成功fclose(fp)关闭文件三、详细设计1、参数说明structstudent{ charname[30]; charsex[5]; intage; charnumber[10]; charglass[30]; intmath_grades; intEnglish_grades; intC_grades; chartotal[10]; structstudent*next; intorder; };2、函数功能Structstudent*add;\\保存Structstudent*correct;\\修改structstudent*screen_loading\\加载structstudent*pre\\查询structstudent*correct|\\修改structstudent*sort\\排序structstudent*student_delete\\删除voidsave\\存储3、函数调用关系描述witch(choice){case1:for(;;){head=screen_loading(head);printf("请输入新增的学生信息\n");head=add(head);printf("是否需要保存?1:是。2,返回菜单。\n");scanf("%d",&i);if(i=1){ save(head);} if(i=2) break;case2:head=sort(head);break;case3:head=correct(head);break;case4:head=student_delete(head);break;case5:head=pre(head);break;case6:exit(0);}四、调试与测试试方法:从网络、课本、其他辅导书中了解每一个函数的具体编译方法,先调试每一个函数,再一个个合起来进去,通过修缮主函数的衔接来保证它们正常运行。测试过程中遇到的主要问题:如何连接起各个函数,如何在每一次操作后返回主菜单,如何保存到一个文件中并可以下次调用,程序卡死等一系列问题。采取的解决措施:通过自学课本第九章和第十章内容,以及查阅其他辅导资料,在与其他同学相互讨论的基础上,自己不断完善程序,在不断的修改中找到正确的方法。五、调试结果失败。。程序总是运行错误要停止运行六、心得体会本次课程设计是在学习了《C语言程序设计(第二版)》的基础上自学九、十章的内容完成的。虽然遇到了许多问题,但是在不断修改和询问中,也积累了许多曾经不了解的知识。在编程过程中,遇到了很多困难,还有一些曾经忽视的小细节,都带给我不少困难,通过向同学请教,上网查

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论