1、*C语言课程设计实验报告*学院:管理科学与信息工程学院 班级: 计算机 学号:_1401111633 姓名: 张浩 程序作者: 程光亮 ,张浩 C语言程序设计课程-设计报告课程设计的目的1复习、巩固C语言的基础知识,进一步加深对C语言的理解和掌握;2为学生提供一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机结合起来,锻炼学生的分析解决实际问题的能力。提高学生实践编程的能力;3培养学生在项目开发中团队合作精神、创新意识及能力。课程设计题目安排课程设计题目可从以下题目中选择,也可经老师同意自拟题目。可以多人合作完成(每组最多3人),合作完成的必须明确每个人的具体任务,每人单独上交课程
2、设计报告。一, 题目内容描述第1题 学生档案管理设计一个学生档案管理程序。该程序应该具有下列功能:(1)通过键盘输入某位学生的相关信息。包括学号、姓名、性别、年龄、出生年月、电话、E-mail、籍贯等;(2)浏览学生信息;(3)根据学号修改、删除学生信息;(4)能按学号、姓名、年龄等关键字排序;(5)统计学生年龄的平均值及各年龄段人数;(6)用链表实现,原始数据输入和结果输出使用文件存放二,应用程序的详细说明(一) 系统总体框图档案管理系统修改密码输入修改统计信息输出信息查询信息退出存盘录入信息删除信息添加信息按序号按姓名按序号按姓名 (二) 模块功能说明1 学生信息的输入和修改函数原形:vo
3、id shuxiu()功能:首次进入管理系统时,进行学生信息的录入,将学生信息存放于结构体链表中入口参数:无出口参数:结构体类型的头指针函数调用关系说明:main()函数调用shuxiu()函数,返回结构体类型的头指针Shuxiu()函数调用shuru()函数和xiugai()函数Shuru()函数主要完成数据的输入以及将数据存储到硬盘的工作Xiugai()调用add()用来添加学生信息 Shanchu()哟买回来删除学生信息 Xg()用来实现数据的修改内容限制:录入学生信息学如果重复无法检测。2 修改学生信息函数原形:void xiugai()功能:主要王成数据的添加、删除和修改,隶属于数据
4、的输入和修改模块入口参数:无出口参数:无函数调用关系说明:shuxiu()函数调用修改函数 Xiugai()函数中调用add() shanchu() xg()内容限制:待修改结点存在,不存在时进行提示3 删除学生信息函数原形:int delete(LNode *head,char *n)功能:找到待删除结点(找不到时return NULL),将其从链表中脱离并释放 删除信息并释放该结点入口参数:struct node *head 出口参数:结构体类型的头指针函数调用关系说明:main函数调用delete函数,Delete函数中调用shuchu1函数返回结构体类型的头指针内容限制:待删除结点存在
5、,不存在时进行提示4 学生信息查询函数原形:void chaxun() 功能:分为void sch_name()(按姓名查找)和void sch_num()(按学号查找)根据输入的部分信息,搜索另外的学生信息入口参数: 出口参数:无 函数调用关系说明:main函数调用chaxun()函数Chaxun()函数中调用sch_num()(按姓名查找)和sch_num()(按学号查找)两函数内容限制:待查询结点存在,不存在时进行提示5 修改密码函数原型:void gaimi()入口参数:struct node *head 出口参数:无 函数调用关系说明:main函数调用gaimi函数,gaimi函数中
6、调用comp1函数用来检查原始密码输入是否正确。Gaimi函数中调用xiugai函数用来修改密码。6 学生信息的统计函数原型:void gaimi()入口参数:struct node *head 出口参数:无 函数调用关系说明:main函数调用gaimi函数,gaimi函数中调用comp1函数用来检查原始密码输入是否正确。Gaimi函数中调用xiugai函数用来修改密码。7 退出存盘函数原形:void tuichu() 功能:退出时将信息以文件形式存盘入口参数:struct node *head 出口参数:无函数调用关系说明:main函数调用tuichu函数(三)主模块算法说明1,主函数流程图
7、main()二, 数据的输入和修改shuxiu() 1,数据的输入 2,修改学生档案信息xiugai() 数据的添加add() 数据的删除shanchu() 数据的修改xg()三,测试结果(1) 进入系统输入密码(2) 学生档案信息输入(3) 修改学生信息(添加)(4) 输出全部学生档案信(5) 学生信息查询(6) 修改密码四,测试过程中遇到的主要问题及采取的解决措施:1, 添加学生档案信息时总是将前面已输入的内容覆盖。解决办法是:增加一个n的变量,再打开文件后先对原先从在的内容进行检查,然后在循环语句中(i=n;i=n+m;i+)使得从下一条开始存储。2, 姓名查找时明明有对应的信息存在,但总是输出“查找信息不存在”,原因:C语言无法识别汉字。解决办法:输入姓名用英文代替。3, 修改密码,修改完显示“修改完成“,但下次进入时还是输入原始密码,解决办法:在修改完成时给一个返回值到输入密码中。五,设计总结及体会12