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