学生成绩记录簿设计说明_第1页
学生成绩记录簿设计说明_第2页
学生成绩记录簿设计说明_第3页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、目录第一章 程序设计的目的和要求 11.1 课程设计的目的 11.2 课程设计的要求 11.2.1 程序设计报告的容要 11.2.2 程序设计报告的质量要求 . 2第二章 课程设计任务容 32.1 考核容 3编写的C+语言程序 32.1.2 课程设计报告 32.2 课题 3第三章 详细设计说明 43.1 函数说明 43.2 函数流程图 53.3.1 主函数流程图 53.3.2 子函数流程图 53.3 编码及调试 7第四章 软件使用说明 94.1 应用程序运行环境的要求 94.2 应用程序功能的详细说明 9附录一:参考文献 13附录二:程序清单 14程序设计基础课程设计-学生成绩记录簿第一章程序

2、设计的目的和要求1.1课程设计的目的1. C语言课程设计的主要目的是培养学生综合运用 C语言程序设计课程所学到的知 识,编写C程序解决实际问题的能力,以及严谨的工作态度和良好的程序设计习惯。2通过课程设计的训练,学生应该能够了解程序设计的基本开发过程,掌握编写、 调试和测试C语言程序的基本技巧,充分理解结构化程序设计的基本方法。3. C语言程序设计的主要任务是要求学生遵循软件开发过程的基本规,运用结构化 程序设计的方法,按照课程设计的题目要求,分析、设计、编写、调试和测试C语言程序及编写设计报告。1.2课程设计的要求程序设计报告的容要求课程设计要求学生遵循软件开发过程中的基本规,运用结构化程序

3、设计的方法,程 序设计报告应该能够反映学生完成课程设计题目的全部情况, 包括对课程设计题目要求的 分析、应用程序的设计、程序的测试过程以及程序的运行情况等,因此,编写课程设计报 告是课程设计一个不容忽视的重要环节。一个高质量的课程设计报告应该满足下列条件: 报告容完整、观点正确;层次清晰、语流畅、用词准确且无二义性;能够反映结构化程序 设计方法的基本原则;绘制的所有图表规且正确。用户文档是面向使用该应用程序的用户编写的,因此,应该将用户需要知道的所有 容用简练、清晰的语言描述清楚。下面是用户文档应该包含的主要容:(1) 应用程序运行环境的要求;(2) 应用程序功能的详细说明;(3) 流程图;(

4、4) 代码及调试 程序设计报告的质量要求一个高质量的课程设计报告应该满足下列条件:报告容完整、观点正确;层次清晰、语言流畅、用词准确且无二义性;能够反映结构化程序设计方法的基本原则;绘制的所有图表规且正确。第二章课程设计任务容2.1考核容编写的C+语言程序针对编写的C+程序,应该主要考查下列容:是否符合题目要求,是否完成了主要功能;是否存在语法错误、逻辑错误及运行错误;程序设计是否合理;程序是否具有良好的可读性和可靠性;是否符合结构化程序设计所倡导的基本理念;用户界面是否友好。课程设计报告针对提交的课程设计报告,应该主要考查下列容:程序设计的报告容是否全面,观点是否正确;设计过程是否符合结构化

5、程序设计方法的基本原则;层次是否清楚,语言是否通顺;各种图表是否规;是否具有良好的程序设计 习惯。2.2课题设计一个学生成绩记录簿C+程序,该系统的主要功能如下:1)创建信息并以磁盘文件保存;2)读取磁盘文件并显示输出所有学生的成绩;3)按学号或查询成绩;4)添加成绩记录;5)修改指定或学号的学生的成绩并可存盘;6)显示输出60分以下、60-79、80-89、90分以上各分数段的学生信息;第三章详细设计说明3.1函数说明Init ()初始化函数Create ()创建链表Delete (STUDENT)删除记录Prin t(STUDENT *h)显示所有记录Search ( STUDENT *h

6、查找学生成绩In sert(STUDENT *h)插入记录1 插入记录函数函数原型:int insert(STUDENT *h)功能:根据用户指定将信息插入特定位置参数:结构体数组和记录数要求:输入信息2 查找函数函数原型:int search()功能:根据用户需要输出记录参数:记录数组和记录成绩以及s要求:判断存中记录的名字与输入的是否相等,如果相等则输出,否则提前结束3 删除记录函数函数原型:int delete(STUDENT *h)功能:删除存链表中的指定结点参数:记录数组和记录条数,成绩要求:给出相关信息3.2函数流程图主函数流程图声明调用函匏定力吉枸体类型变量舌明全局吏量int m

7、/输出开杨議果的菜单/ 显不*辐扎m/caee 1 cacs 2 case g ateU(朋)图3-1函数主流程图子函数流程图如图3-2所示:图3-2流程图从表中删除原有纪录模块,算法,如图3-3所示:按照查找纪录模块,算法,如图 3-4所示:按照删除记录模块,算法,如图3-5所示图3-5修改信息流程图3.3编码及调试在设计该程序的时候我采用了结构化程序方法编辑,并在源代码的基础上添加了中 文注释,但是在该系统的编写过程中仍然有许多错误,主要的有:注释文字的排版,定义 错误,句式的语法错误。在完善程序时,我将源代码先打印下来反复的捉摸和研究,力图 在上机运行时先改正一些低级错误,如缺少“;”之

8、类。在仔细检查之后,将源代码上机 调试一进行编译,在编译和连接过程中发现错误,屏幕上显示了出错信息,根据提示找到 出错的位置,加以改正直到顺利显示我预期想得到程序效果。具体调试过程如下:1、 首先,在本次调试过程中我碰到了在上机前根本没有想到的错误:在注释的时候, 注释文字应写在一起中间不能有中断,不能再其中包含 c语言的语句。否则会引起错误, 例如格式不正确或是多了字符等。2、缺少变量定义或是定义位置不正确;由于该程序相对来讲稍有些长,前后有些变量很难联系起来,但是在错误信息的提 示下一般还是很是可以找到。不过需要注意的是在定义的时候有些函数使用同样的变量名 而表示不同的作用,因而使用要很小

9、心,定义及定义的位置要特别留意。为减少这样的错 误我后来还是用不同的变量名来表示,结果引起的那些错误解决了。3、句式的语法错误;大多的语法错误在通过书本参考下能够修改。主要是平时看书不仔细、不太注意而 产生的。如没有注意具体数据使用是有一定的围限定;过分重视分号的重要性而在for、if、while语句中画蛇添足加分号;在使用文件的时候忘记将文件先打开,对打开的方式 与使用的情况不太注意而造成不匹配; 还有漏掉形参的定义是值不能传递等等。 这些语法 错误有信息框的提示一般是能够排除的。编译、连接的成功并不意味着程序的最终成功。逻辑上的错误机器不易检查出来, 这时需要对数据结果进行分析。 这种错误

10、的查找是最难的,需要编程序的人有相当的耐心 和细心去把问题找出来。这也是本次程序编辑过程中碰到的最大的难题。往往运行之后得不到另人满意的结果,此时解决的方法一则可以用“分段检查”的方法,在程序的不同位置设几个printf函数语句,输出有关变量的值,逐段往下检查,或用 debug进行调试,对 检查出的错误进行修改,当调试完毕将设置的 printf都删去。若在程序中找不到问题,则 再来考虑算法是否逻辑严谨,再进行修改。如此循环往复,直到最后程序运行成功。在本次程序编辑过程中,我就是常遇到编译能通过,能够运行程序,但是总在输入、删除等操 作完之后再想去看数据文件中存在的数据记录的时候,却一条记录也显

11、示不出来,我怀疑是哪个对方对n变量的定义或使用出错了,于是在每个主要函数的操作过程中添加了 printf语句用来显示n的变化,例如在执行某个函数前添加插入语句显示 n的起始值,在执 行完该个函数后再添加插入语句显示此时n的结果值,观察n的变化是否正确,如果错误了, 也就说明该函数编写过程有错。诸如这样的调试方法,不断缩小检查围,最后将错误找到, 进行修改。所以到最后我找到了错误,及时改正,终于把程序完成了, 一切功能显示正常。以上是调试的全过程。第四章软件使用说明4.1应用程序运行环境的要求程序运行的环境 Win9X/Win2000/WinXP/Win20034.2应用程序功能的详细说明步骤1

12、:根据数字提示从1-5中选择要操作的功能,如图4-1所示:图4-1软件使用图示,按3, “修改4-2所示:步骤2:按1键,会出现提示“插入信息”,按2,会出现“删除信息” 信息”,按4,会出现“查看信息”,按5, “保存”,按q键即可退出,如图图4-2软件使用图示步骤3:键入1回车,会出现提示“请输入要删除学生信息”,现在就可以删除学生信息,如图4-3所示:图4-3软件使用图示步骤4:键入2及Enter键,会出现提示“请输入要查找的学生信息”,然后根据提示将该学生的信息删除,如图4-4所示:图4-4软件使用图示第五章课程设计心得与体会在课程设计过程中,遇到了不少的问题。这迫使我不得不参考一些课

13、外资料,向同 学和老师们请教。不过,最后在我的努力和老师同学们的帮助下,还是把程序写出来了, 这令我非常高兴。但是在运行过程中又出现了问题。一开始就出现了十几个错误,这令 我的信心有所下降,有的错误我根本就不知道是啥意思, 我就向同学以及上网查一下资 料。在经过几天的检查与修改后,终于能编译出来了,这又使得我非常高兴。但是运行 的结果不是很理想,没能够达到我预想的那样。在运行出来之后,我有点不敢相信这是我通过努力做出来的, 对于我这个编程新手, 在课程设计中,刚开始真有点对自己失去信心,在硬着头皮的情况下,还是做出来了。 发现其实事情并不像刚开始自己想的那样。现在回想起来好像就是开头克服自己最

14、难 了,这大概就是人们说的万事开头难。附录一:参考文献1 谭浩强.C+程序设计.清华大学.2 严蔚敏 吴伟民.数据结构(C语言版).清华大学附录二:程序清单#in clude<iostream.h> #i nclude<stri ng.h> #in clude<stdlib.h> #in clude<c oni o.h> #in clude<fstream.h> class stude nt private:stude nt* n ext;public:char stu_ nu m15;/学号char stu_ name30;/flo

15、at stu_score ;/成绩/*在该节点后插入一个几点*/void afterI nsert(stude nt *p);/*在该节点后删除一个节点*/void afterDelete();/*获得下一个节点的指针*/ stude nt *getNext()return n ext;查询学生信息*void getMage();/*学生彳信息 修改 */ void cha ngeMage(i nt n, char *ptr);void cha ngegrade(float p);/*构造 */ stude nt(char *nu m,char *n ame ,float score);stu

16、de nt();void stude nt:cha ngegrade(float p)stu_score=p;stude nt:stude nt()/构造strcpy(stu_num,"O");strcpy(stu _n ame,"0");stu_score=0;next='0'III*构造/stude nt:stude nt(char *nu m,char *n ame, float score)strcpy(stu_ num,nu m);strcpy(stu _n ame, name);stu_score=score;next=

17、9;0'void stude nt:afterl nsert(stude nt *p)II插入节点p->n ext=n ext;n ext=p;void stude nt:afterDelete( ) II删除节点stude nt *p=n ext;n ext=p->n ext;delete p;void stude nt:getMage()/获得信息cout«"学号:"<<stu_num <<": "<<stu_name;cout« "C+ 成绩:"<

18、<stu_score<<endl;void stude nt:cha ngeMage(i nt n, char *ptr)switch( n)case 1: strcpy(stu_ nu m,ptr);break;case 2: strcpy(stu_ n ame,ptr);/建立链表函数void con struct_list(stude nt *tail)stude nt *p=new stude nt;char very20;float achieve;coutvv"请输入学号:"<<endl;cin> >very;p->

19、;cha ngeMage(1,very);cout«"请输入:"<<endl;cin> >very;p->cha ngeMage(2,very);cout«"请输入 c+成绩:"<<endl;cin> >achieve;p->cha ngegrade(achieve);system("cls");cout«"信息输入完毕"<<endl;for(;tail->getNext()!='0') ta

20、il=tail->getNext();tail->afterl nsert(p);查询信息*/stude nt *fin dmege(stude nt *head )返回上loop:级菜单cout<<"1- 按查询 2-按学号查询q-"<<e ndl;char p5,ptr20;stude nt *mid=head;cin> >p;if(p0!='1'&&p0!=2&&p0!='q'|strle n( p)>1)system("cls")

21、;coutvv"对不起,你的输入有误,请重新输入!"<<endl;goto loop;switch(p0)case '1': system("cls");cout«" 请输入要查找:"<<e ndl;cin> >ptr;for(;strcmp(ptr,mid->stui_n ame)!=O;mid=mid->getNext()if(mid->getNext()='O')"<<e ndl;coutvv"对不起,

22、你要查找的人不存在,请确认你的输入是否正确!goto loop;return mid;case 2:system("cls");cout«" 请输入您要查找的学号:"<<e ndl;cin> >ptr;for(;strcmp(ptr,mid->stu _nu m)!=O;mid=mid->getNext()if(mid->getNext()='0')"<<e ndl;coutvv"对不起,您要查找的容不存在,请确认您的输入是否正确!goto loop;re

23、turn mid;case 'q': retur n '0'default:system("cls");coutvv"对不起,您的输入有误,请重新输入!"<<e ndl;goto loop;删除链表节点*/void delete_list(stude nt *head)stude nt *p='0'char selet4;system("cls");"vve ndl;coutvv"在删除前,系统会根据您的提示找到您要删除的学生信息!p=fi ndmege(

24、head);if(p!='0')coutvv"确认要删除吗(yes/任意键返回)"<<endl;cin> >selet;if(strcmp(selet,"yes")=0)for(;head->getNext()!=p;head=head->getNext();head->afterDelete();system("cls");coutvv"该信息删除成功!"<<e ndl;修改节点信息void cha nge_in fo(stude nt *he

25、ad)system("cls");"vve ndl;coutvv"在您修改前,系统会根据您提供的信息找的您要修改的信息:stude nt *p='0'float achieve;p=fi ndmege(head);if(p!='O')cout«"请输入 C+成绩:"<<endl; cin> >achieve;p->cha ngegrade(achieve);system("cls");cout«"修改成功"<

26、<endl; void output(stude nt *head)输出学生成绩信息*/system("cls");cout<<"1-查看指定学生信息;2-查看所有学生信息;3-分段输出学生信息"<<endl;char ch;int n=0;head=head->getNext();cin> >ch;switch(ch)case '1': head=fi ndmege(head);if(head='0') break;head->getMage();break;case

27、 2: while(head)head->getMage();head=head->getNext();break;case 3: cout«"a-60 分以下;b-6070 分之间;c-7080 分之间;d-8090 分之间; e-90100 分之间:"<<endl;cin> >ch;switch(ch)case 'a': while(head)if(head->stu_score<=60) head->getMage( );n+;head=head->getNext();break;c

28、ase 'b': while(head)if(head->stu_score>60&&head->stu_score<=70) head->getMage( );n+;head=head->getNext();break;case 'c': while(head)if(head->stu_score>70&&head->stu_score<=80) head->getMage( );n+;head=head->getNext();break;case '

29、;d': while(head)if(head->stu_score>80&&head->stu_score<=90) head->getMage( );n+;head=head->getNext();break;case 'e': while(head)if(head->stu_score>90&&head->stu_score<=100)head->getMage( );n+;head=head->getNext();if(n=0) cout«"该分段没有您要找的学生信息"<<endl;*主菜单void mainmenu (stude nt *head)char selet10;int n=1;ofstream outfile ;ifstream in file ;stude nt *p,*ptr ;stude nt *test=head,*mid ;A'*欢迎进入学生信息管理* *<<e ndl;docout«"

温馨提示

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

评论

0/150

提交评论