还剩28页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
课程设计报告课程设计C语言课程设计课题名称班级档案管理系统专业电气工程及其自动化前言《C语言程个序设计》课程设计是对学生的一种全面综合训练,它包括问题分析,总体结构设计,用户界面设计,程序设计基础技能和技巧,多人合作,以致一整套软件工作规范的训练和科学作风的培养是与课堂听讲、自学和联系相辅相成的必不可少的一个教学环节通常,课程设计的课题比平时的习题复杂得多,也更接近实际课程设计着眼于理论与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养程序设计工作所需要的知识综合能力;另一方面,能使书上的知识变“活”,使学生更好地深化理解和灵活掌握教学内容为了达到上述目的,本课程设计安排了十五个设计课题,训练重点在于基本的程序设计方法和分析问题的能力,而不强调面面俱到学生选其中一题进行设计,设计完毕写出课程设计报告,用A4纸打印成册;并将课程设计报告与源程序存盘学习委员将课程设计报告与磁盘(缺一不可)收齐以后交指导老师
一、目的全面熟悉、掌握C语言基本知识,掌握C语言程序设计中的顺序、分支、循环三种结构及数函数和C语言基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后再在专业课程中应用计算机系统解决计算、分析、实验和设计等等学习环节打下较扎实的基础
二、基本情况课程类别必修课课程学分1学分课程学时一周课程对象电气工程
0781、
0782、
0783、
0784、
0785、0786
三、时间安排时间任务2008-3-8下午340-540指导老师给学生布置课程设计的任务及要求2008-3-10到2008-3-15学生根据设计任务及要求,对系统进行需求分析、概要设计和详细设计,并在此基础上编写程序代码学生提交系统程序清单初稿上机调试程序修改并完善程序并上机调试程序2008-3-16接受指导老师的验收2008-3-16到2008-3-22书写课程设计报告提交课程设计报告
四、设计可调试过程规范化要求1)需要分析分析系统功能需求以及用户操作流程1)概要设计在需要分析的基础上,确定系统总体框架(系统功能结构图)1)详细设计定义数据储存结构,并设计实现系统功能的具体算法,画出各算法的工作流程图1)代码设计根据所设计的算法,定义相应函数分别实现系统的各子功能模块,同时由主程序提供友好的用户界面,使用户可通过选择主菜单来调用课程设计中要求完成的各个功能模块,子程序执行完后还可以返回主菜单,继续选择其他功能执行源程序要求书写规范,结构清晰重点函数的重点变量重点功能部分均要求给出清晰的程序注释1)程序调试程序编译、连接成功后,自己设计实现程序功能的一组或多组测试数据,并严格按照此测试数据进行测试,然后分析测试结果如果程序不能正常运行或结果不正确,则需要对程序进行单步调试,在进行过程中认真查找算法实现中存在的问题,并加以分析和改正如果程序能够基本正确运行,可考虑增加若干基本的容错功能(如避免用户操作错误时程序出现死循环等);另外尽量对现有算法给出改进方案,并比较不同算法之间的优缺点
五、设计报告及书写内容要求课程设计任务完成后,每位同学必须独立书写一份课程设计报告,注意不得抄袭他人的报告(或给他人抄袭),一旦发现,成绩为零分课程设计报告的内容应包括以下五个部分1)需求分析包括设计题目、设计要求以及系统功能需求分析;2)概要设计包括系统总体设计框架和系统功能模块图;3)详细设计包括主要功能模块的算法设计思路以及对应的工作流程图;4)主要源程序代码包括存储结构设计说明,以及完整源程序清单;5)调试分析过程描述包括测试数据、测试输出结果,以及对程序调试过程中存在的问题的思考(列出主要问题的的出错想象、出错原因、解决方法及效果等);6)总结包括课程设计过程中的学习体会与收获,对C语言和本次课程设计的认识以及自己的建议等内容7)书写格式严格按所附要求书写附课程设计报告装订顺序封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)正文格式一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体,行距22正文内容
一、课题的主要功能;
二、课题的功能模块可划分(要求画出模块图);
三、主要功能的实现(至少要有一个主要模块的流程图);
四、程序调试;
五、总结;
六、附件(所有程序的原代码,要求对程序写出必要的注释)正文总字数要求在5000字以上(不含程序源代码)
六、考核方式指导老师负责验收程序的运行结果,并结合学生的工作态度、实际动手能力、创新精神和设计报告等进行综合考评,并按优秀、良好、中等、及格可不及格五个等级给出每位同学的课程设计成绩具体考核标准包含以下几个部分1)平时出勤(占10%)2)系统需求分析、功能设计、数据结构设计及程序总体结构合理与否(占10%)3)程序能否完整、准确地运行,个人能否独立、熟练地调试程序(占40%)4)设计报告(占30%)5)独立完成情况(占10%)
七、指导老师王颖
八、课程设计题目
1.问题描述对一个有N个学生的班级,通过该系统实现对该班级学生的基本信息进行录入、显示、修改、删除等操作的管理课题二班级档案管理系统的设计与实现
2.功能要求
(1)本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括姓名、学号、性别、年龄、备注
(2)本系统显示这样的菜单班级档案管理系统请选择系统功能项a.学生基本信息录入b.学生基本信息显示c.学生基本信息存储d.学生基本信息删除e.学生基本信息修改修改前要求输入密码f.学生基本信息查询
①按姓名查询
②按学号查询g.退出系统
(3)执行一个具体的功能之后,程序将重新显示菜单3.算法提示
(1)数据结构结构体类型数组
(2)数据库结构该系统的基本数据库如下
4.测试数据姓名学号性别年龄备注charcharcharintchar学生人数N=
105.对该系统有兴趣的同学可以在实现上述基本功能后,完善系统的其它功能目录TOC\o1-3\f\h\z\u课程设计主文档9
一、课程设计题目9
二、内容摘要9
三、关键字9
四、总体设计方案的选定9【概要设计】9【详细设计】10
五、函数细说10
六、函数间的调用关系图14
七、主控模块和部分子模块18
八、附件19
九、调试分析29
十、总结30
十一、参考资料30应用技术学院课程设计评分表31课程设计主文档
一、课程设计题目班级档案管理系统
二、内容摘要该系统是一个简单的班级档案管理系统能够使学生了解到相应的信息同时也减少了老师的工作量整个系统除了主函数外,另外还有12个函数,实现8大功能输入信息功能、显示信息功能、查询信息功能、插入信息功能、保存信息功能、读取信息功能等
三、关键字档案管理系统函数数组结构体文件循环语句多分支结构
四、总体设计方案的选定程序的功能要实现对班级学生档案的统一有效的管理,就需要通过运用函数,编译语句,数据类型来实现,由于班级中学生信息数据多,数据结构相似的特点,很明显自然的想到用数组实现数据的存储,且总体数据结构应用文件类型的数据,文件类型为结构体数据,数据库结构用文件来实现,需要存储的信息数据有学生的姓名,学号,性别,年龄等最后通过函数之间的调用来实现【概要设计】程序的模块组成以及各个函数的功能:
1、程序的模块组成:主函数:intmain输入函数:STUDENT*create显示函数:voidprintSTUDENT*head查询函数:voidsearchSTUDENT*head删除函数:STUDENT*deleteSTUDENT*head插入函数:STUDENT*insertSTUDENT*headSTUDENT*new保存函数:voidsaveSTUDENT*head
2、各个函数的主要功能:输入函数:随时输入数据显示函数:显示各个函数和数据寻找函数:方便学生查找自己的信息删除函数:方便工作人员修改学生信息 插入函数:可以插入新的信息保存函数:保存好学生信息以免丢失【详细设计】相关的数据类型:班级档案结构数组typedefstructz1{/*定义数据结构*/charno
[12];charname
[15];charsex[N];intage;charremarkstructz1*next;}
五、函数细说整个系统除了主函数外,另外还有12个函数,实现八大功能输入功能、显示功能、查找功能、插入功能、保存功能、读取功能各个函数的详细设计说明分别如下
1.主函数main利用无限次循环for;;和swithch实现各函数的调用,系统根据输入的数字选项来调用相应的函数2.菜单选择函数intmenu_select个这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的八大功能,根据每功能前面的序号进行选择,中间还显示系统当前的时间等执行完每一个函数功能后,按任一键回到主界面也要通过这个函数来实现!3.输入记录函数STUDENT*create这是一个无参函数,用来执行第学生基本信息的输入,当学生学号为@时停止输入,函数结束后,带回一个指向链表头的指针head算法先声明一个首节点head,并将head-next设为NULL每输入一个数据就声明一个新节点p,把p-next设为NULL,并且链接到之前列表的尾端N-S流程图如下head=NULLfori=0;i=2;i++指针p指向新开辟的单元指针p是否为空
4.显示记录函数voidprintSTUDENT*head这是一个不返回值的有参函数,形参为“链表头的指针”,负责对全部学生成绩记录的输出,不足之处就是不能对学生成绩进行分页显示算法先将p结点的指针指向第一个结点,将p结点即第一个结点的数据输出然后再将p结点的指针指向p指针的的指针即下一结点,将p结点即第一结点的数据输出重复执行此步聚直到p指针指向NULL为止N-S流程图如下p=head使指向第一个结点输出p所指向的结点p指向一下个结点当p指的不是表尾
5.查找记录函数voidsearchSTUDENT*head这是一个不返回值的有参函数,形参为“链表头的指针”,实现按姓名对某个学生进行查找,并显示所查找到的记录算法采用线性查找法往下一个节点查找输入所要查找的学生的姓名s,设一个指针变量p,先指向第一个结点,当strcmpp-namesp!=NULL时,使p后移一个结点,如果p!=NULL,输出p所指的结点N-S流程图如下输入要查找的学生的姓名sp=head使p指向第一结点当记录的姓名不是要找的,或指针不为空时p=p-nextp!=NULL如果指针不为空输出p所指向的结点显示没有该学生
6.删除记录函数STUDENT*deleteSTUDENT*head这是一个有参函数,形参为“链表头的指针”,先通过密码程序,即输入一个无回显示的字符串a[],如果输入的字符串与系统设定的字符串pass相同,就可以进入删除函数,否则返回菜单进入删除函数后,输入要删除的学生记录的姓名,找到后显示该学生信息,等确认后便可按回车进行删除算法从p指向的第一个结点开始,检查该结点中的num值是否等于输入的要求删除的那个姓名如果相等就将该结点删除,如不相等,就将p后移一个结点,再如此进行下去,直到遇到表尾为止N-S流程图如下
7.插入函数STUDENT*insertSTUDENT*head这是一个有参函数,形参有两个,一个是“链表头的指针”,一个是“待插入指针”,按照学号进行插入,并返回算法先用指针变量p指向待插入的结点,q指向第一个结点如果p-noq-no,则待插入的结点不应插在q所指的结点之前此时将q后移,并使info指向刚才q所指的结点重复以上的步骤,直到p-no=q-no为止这时将p指向的结点插到q所指结点之前但是如果q所指的已是表尾结点,则p1就不应后移了如果p0-no比所有结点的no都小,则应将p0所指的结点插到链表末尾如果插入的位置既不在第一个结点之前,又不在表尾结点之后,则将p的值赋给info-,使info-next指向待插入的结点,然后将q的值赋给p-next,使得p-next指向q指向的变量如果插入位置为第一个结点之前,则将p赋给head,将q赋给p-next如果要插到表尾之后,应将p赋给q-next,NULL赋给p-nextN-S流程图如下8.保存数据到文件函数voidsaveSTUDENT*head这是一个不返回值的有参函数,形参为“链表头的指针”,可以把学生记录保存在电脑上由自己任意命名的二进制文件N-S流程图如下息,并返回菜单
9.从文件读数据函数STUDENT*load这是一个不返回值的有参函数,形参为“链表头的指针”,根据输入的文件地址进行读取N-S流程图如下定义两个指针变量p1p2输入要打开的记录文件地址infile文件不能打开否是开辟一个新单元指针p1是否为空返回菜单否是返回菜单读入记录fclosefp;关闭文件
六、函数间的调用关系图1 main函数的下属子功能函数及其调用示意图 2统计函数的下属功能函数及其调用示意图1234567
七、主控模块和部分子模块
八、附件#includestdio.h/*I/O函数*/#includestdlib.h/*I/O函数*/#includestring.h/*字符串函数*/#includeconio.h/*屏幕操作函数*/#defineN10intM=0;structstudent{charnum
[13];charname
[20];charsex;charaddress
[30];int age;};typedefstructLB{structstudentXINXI;structLB*next;}LB_1*LB_2;voidCAIDANG{printf\t\t\t欢迎使用本班级档案管理系统\t\t\t\t\n;printf★*★*★*★*★*★*★*★*★*★欢迎进入我们的系统★*★*★*★*★*★*★*★*★*★\n\n;printf 湖南工程学院0783班C语言课程设计《班级档案管理系统》欢迎您!\n\n;printf
1.录入学生资料\t\t\t\t\t
4.查询学生信息\n\n;printf
2.修改学生信息\t\t\t\t\t
5.删除学生信息\n\n;printf
3.保存学生信息\t\t\t\t\t
0.退出档案系统\n\n;printf \n;printf★*★*★*★*★*★*★*★*★*★欢迎进入本系统★*★*★*★*★*★*★*★*★*★\n;}/*文本颜色*/voidcolor{textbackground8;textcolor9;clrscr;}voidWrong{printf\n对不起您的输入错误!\n;}voidSORRY{printf\n对不起该同学现没有任何信息!\n;}voidprinteLB_1*p/*本函数用于输出英文 */{printf%-2s%s\t%s\t%s\t%d\t\np-XINXI.nump-XINXI.namep-XINXI.sexp-XINXI.addressp-XINXI.age;}/*该函数用于定位链表中符合要求的接点,并返回该指针 */LB_1*LocateLB_2lcharfindmess[]charnameornum[] { LB_1*r; ifstrcmpnameornumnum==0/*按学号查询 */ { r=l-next; whiler!=NULL { ifstrcmpr-XINXI.numfindmess==0 returnr; r=r-next; } }elseifstrcmpnameornumname==0/*按姓名查询 */ { r=l-next; whiler!=NULL { ifstrcmpr-XINXI.namefindmess==0 returnr; r=r-next; }}return0;}/*以下是增加学生信息的函数*/voidTIANJIALB_2l{LB_1*p*r*s;charnum
[13];r=l;s=l-next;whiler-next!=NULL/*些处循环一直到最后*/r=r-next;while1{printf 请输入添加的学生学号输入0返回上一级菜单:;scanf%snum;ifstrcmpnum0==0 break;whiles{ ifstrcmps-XINXI.numnum==0 { printf(必看提示):学号为%s的学生已有信息若要修改请你输入2修改!\nnum; printes; printf\n; return; } s=s-next;}p=LB_1*mallocsizeofLB_1;strcpyp-XINXI.numnum;printf 请你输入学号:;scanf%sp-XINXI.num;getchar;printf 请你输入姓名:;scanf%sp-XINXI.name;getchar;printf 请你输入性别:;scanf%sp-XINXI.sex;getchar;printf 请你输入地址:;scanf%sp-XINXI.address;getchar;printf 请你输入年龄:;scanf%dp-XINXI.age;getchar;/*下面是把指针变量转到链表的下一个结点中以便循环的时候使用 */p-next=NULL;r-next=p;r=p;M=1; }}/*以下是删除学生信息的函数*/voidSHANCHULB_2l{intsel;LB_1*p*r;charfindmess
[20];if!l-next{printf\n******(必看提示):对不起,现文件中没有信息所以您不能查询!\n;return;}printf\n必看提示以学号删除请输入1\n以姓名删除请输入2\nPLEASE:;scanf%dsel;ifsel==1{printf请输入要删除的学生的学号PLEASE:;scanf%sfindmess;p=Locatelfindmessnum;ifp{r=l; whiler-next!=p r=r-next; r-next=p-next; freep; printf\n*******(必看提示):该学生的信息已完全删除成功!\n; M=1;}else SORRY;}elseifsel==2{printf请输入要删除的学生的姓名PLEASE:;scanf%sfindmess;p=Locatelfindmessname;ifp{r=l; whiler-next!=p r=r-next; r-next=p-next; freep; printf\n******(必看提示):该学生信息已成功删除!\n; M=1;}else SORRY;}elseWrong;}/*以下是查询学生信息*/voidCHAXIONGLB_2l{intsel;charfindmess
[20];LB_1*p;if!l-next{printf\n******(必看提示):对不起,现文件中没有信息所以您不能查询!\n;return;}printf\n以学号查询请输入1:\n以姓名查询请输入2:\n以性别查询请输入3:\n以性别查询请输入4:\n PLEASE;scanf%dsel;ifsel==1/*输入学号查询*/{printf请你输入要查找的学号:;scanf%sfindmess;p=Locatelfindmessnum;ifp{printf\t\t\t\t查找结果\n;printf学号:%s\n姓名:%s\n性别:%s\n地址:%s\n年龄:%d\np-XINXI.nump-XINXI.namep-XINXI.sexp-XINXI.addressp-XINXI.age;}else SORRY;}ifsel==2/*输入姓名查询 */{printf请你输入要查找的姓名:;scanf%sfindmess;p=Locatelfindmessname;ifp{printf\t\t\t\t查找结果\n;printf学号:%s\n姓名:%s\n性别:%s\n地址:%s\n年龄:%d\np-XINXI.nump-XINXI.namep-XINXI.sexp-XINXI.addressp-XINXI.age;}else SORRY;}elseWrong; }/*以下是修改学生信息的函数*/voidXIUGEILB_2l{LB_1*p;longintij;charfindmess
[20];if!l-next{printf\n(必看提示):对不起,现文件中没有信息所以您不能查询!\n;return;}fori=1;i=2;i++ { printf\n\n\n\n\n; printf请输入密码:; scanf%sj; ifj==1234break; else {ifj!=1234 returnCAIDANG; }}printf请你输入要修改的学生学号:;scanf%sfindmess;p=Locatelfindmessnum;ifp{printf请你输入新学号原来是%s:p-XINXI.num; scanf%sp-XINXI.num; printf请你输入新姓名原来是%s:p-XINXI.name; scanf%sp-XINXI.name; printf请你输入新性别原来是%s:p-XINXI.sex; scanf%sp-XINXI.sex; printf请你输入新地址原来是%s:p-XINXI.address; scanf%sp-XINXI.address; printf请你输入新年龄原来是%d:p-XINXI.age; scanf%sp-XINXI.age; getchar; M=1;}elseSORRY;}/*保存在文件中*/voidBAOCONGLB_2l{FILE*fp;LB_1*p;intflag=1count=0;fp=fopenc:\\lygwr;iffp==NULL{printf\n=====提示:重新打开文件时发生错误!\n;exit1;}p=l-next;whilep{iffwritepsizeofLB_11fp==1{ p=p-next; count++;}else{flag=0; break;}}ifflag{printf\n提示;正在保存文件 共保存了%d条信息\ncount;M=0;}fclosefp;}/*以下是主函数*/voidmain{LB_2l;/*连表 */FILE*fp;/*文件指针 */intsel;longijd;charch;charjian;intcount=0;LB_1*p*r;color;clrscr;l=LB_1*mallocsizeofLB_1;l-next=NULL;r=l;fp=fopenC:\\lygrb;iffp==NULL{printf\t\t\t\t\n\n;printf\n;printf*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*\n *_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*\n Welcometocometooursystem!!! \n Youcanonlyinquireyourownmessages!Ifyouwanttoseeaboutother \n studentsmessagesyouneedfirsttosendinquirmenttothemaskingfor \n agreementthenyoucanvisithis/hermessages! \n Haveagoodtime!nowyoucancomein!!! \n *_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*\n *_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*\n 注意系统启动码为:ILOVEMYSCHOOLVERYMUCH!!! \n *_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*\n *_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*\n;printf欢迎使用,本系统中现没有任何记录,您要先创建文件请按以下操做进行PLEASE\n;printf\n 提示:文件还不存在,是否创建?y/n请做选择--\n;printf\n;scanf%cjian;ifjian==y||jian==Y {fp=fopenC:\\lygwb; clrscr; } {fori=1;i=2;i++ { printf\n\n\n\n\n; printf请输入密码:; scanf%ldj; ifj==1234break; else {ifj!=1234return; } } }exit0;clrscr;}while!feoffp{p=LB_1*mallocsizeofLB_1;iffreadpsizeofLB_11fp/*将文件的内容放入链表中 */{ p-next=NULL; r-next=p; r=p;/*把该结点放入链表中*/ count++;}}fclosefp;/*关闭文件 */while1{CAIDANG;printf请你选择操作:;scanf%dsel;clrscr;printf\n\n\n;ifsel==0{ ifM==1 {getchar; printf\n必看提示:链表中的信息已经改动如果确认把改动保存在文件中请做选择y/n\n; scanf%cch; ifch==y||ch==Y BAOCONGl; } printf★*★*★*★*★*★*★*★*★电气0783祝你财源广进!!★*★*★*★*★*★*★*★*★\n *_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*\n Thankyouforyourcomingtooursystem!!! \n *_*_*再_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_谢*_*_*_*_*_*\n Welcometouseoursystemagain! \n *_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*谢_*_*_*_*\n Goodbye!!! \n *_*_*见_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*\n*_*_*!_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*!_*_*_*_*\n ★*★*★*★*★*★*★*★*★*★电气0783祝你万事如意!!★*★*★*★*★*★*★*★*★\n; break;clrscr;}switchsel{ case1:TIANJIAl;break; case4:CHAXIONGl;break; case3:BAOCONGl;break; case2:XIUGEIl;break; case5:SHANCHUl;break; default:getchar;break;}} end: getchar; }该程序密码为
(1234)
九、调试分析
(1)刚开始执行输入函数,按学号顺序输入十个学生的成绩输完后执行显示功能,学生成绩记录是按学号的反顺序显示的,试着在其中增加一些语句,希望能把学号按正常顺序显示,但暂时没有成功,所以在输入成绩时只能按学号反顺序输入,最后就按学号正常顺序输出了
(2)在输入函数中设了一个无限循环,可以输入无数个学生的信息,当学号为@的时候则停止输入
(3)输入太多个学生的信息时,屏幕显示不能控制为一页一页显示,所以为了方便起见,不要输入太多记录,十七左右为最佳
(4)在输入选项时不能输入字母否则会死循环,建议不要乱输字母
十、总结课程设计是培养学生综合运用所学知识发现提出分析和解决实际问题锻炼实践能力的重要环节是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在生活中可以说是无处不在因此,作为二十一世纪的大学生来说掌握计算机开发技术是十分重要的回顾起此次课程设计,至今我仍感慨颇多,的确,从拿到题目到完成整个编程,从理论到实践,经过一周的课程设计,我学到了许多,不仅巩固了以前所学过的知识,而且学到了很多在书上所没有学到过的知识,使我自己对C语言有了重新的认识,觉得它十分的重要,但掌握它又不是一件容易的事只要通过自己不停的思考,不断的上机实践才能够比较熟练的掌握好,在其中我们遇到了比较多的困难,因为其中有些知识我们并没有学到过,要自己去查找资料来完成在设计过程中遇到问题,可以说是困难重重,因为毕竟是第一次做的,难免会遇到各种各样的问题,同时在设计过程中发现了自己的不组之处,对以前的所学过的知识理解的不够深刻,掌握的不够牢固,比如说结构体……通过这次课程设计之后,觉得以前学过的知识要重新温习这次课程设计的题目是班级档案管理系统,看起来十分的容易,这次课程设计终于完成了,在设计中遇到了许多的问题,但在王颖老师的指导下,终于迎刃而解,同时在王老是的身上我学到了很多实用的知识在此我表示感谢!同时,对过我帮助的所有同学和各位指导老师再次表示衷心的感谢
十一、参考资料
[1]洪锦魁.C语言程序设计科学技出版社[J]2004
(5)
[2]谭浩强.C语言程序设计第二版.清华大学出版社[M]1999121:298-327…
[3]蒋清明.C语言程序设计人民邮电出版社,
2005.2应用技术学院课程设计评分表课程名称C语言课程设计项目评价设计方案的合理性与创造性设计与调试结果设计说明书的质量答辩陈述与回答问题情况课程设计周表现情况综合成绩教师签名日期(注1.此页附在课程设计报告之后;2.综合成绩按优、良、中、及格和不及格五级评定)否是输入学号p-no输出内存溢出p-no是否为@否是停止输入返回输入姓名p-name输入年龄p-age输入性别p-sex输入备注p-remark菜单p-next=head;head=p;是否输入一个字符串a[]Ifa!=passElsecontinueReturnhp1=head;当(strcmpp1-nos)p1!=NULLp2=p1p1=p1-next否p1是要删除的结点是p1所指是头结点输出找不到的信息否p2-next=p1-nexthead=p1-next删除头结点是q=headp=new原来的链表是空表是否当P0所指的结点作为唯一结点当p-noq-no以及q所指向的不是表尾结点info指向q位置q向后移一个结点p-no=p-nohead=pp-next=q插到表头之前info-next=pp-next=q插到表中间q-next=pp-next=NULL插到表尾之后q指向头结点否否是是输入要保存记录的文件地址outfile否是p=head当p不为空时文件不能打开fwritepLEN1fp;写入一条记录p=p—next;指针后移 输出一个出错信息,并返回菜单fclosefp;关闭文件maininsertexitsavecreatedeleteprintsearchloadmenu_selectgetchgotoxycprintfmenu_selecttextcolorputchwindowtextbackgroundmallocinputscreatesizeofsizeoffwritefopensavefclosemallocfreadfeopfopensizeofloadfcloseinsertinputsmallocstrcmpputcharstrcmpgetchdeleteinputsstrcpystrlensearchstrcmp开始主菜单选择功能存入学生信息删除学生信息显示学生信息查询学生信息保存学生信息读取学生信息插入学生信息退 出 系 统结束。