《c语言大作业课程设计报告-学生管理系统.doc》由会员分享,可在线阅读,更多相关《c语言大作业课程设计报告-学生管理系统.doc(47页珍藏版)》请在金锄头文库上搜索。
1、华南理工大学 电子与信息学院 罗静慈201330252163 2014年5月31日 C语言课程设计报告设计题目:学生管理系统专 业: 班 级: 姓 名: 学 号:提交时间: 完成方式:(单选)自我评分:(单选)独立完成 优秀参考他人工作的基础上完成 良好在他人的帮助下完成 中等完整拷贝他人成果 及格 不及格 设计任务:C语言课程设计任务书5题目:学生管理系统设计功能:学生管理系统设计,每个学生是一条记录,包括姓名、学号、性别、出生年月、专业、年级、班级、家庭住址、宿舍号码等。系统要求实现以下功能:1、 输入功能:录入学生信息(包括学生学号、姓名、性别、出生年月、专业等);2、 显示功能:完成学
2、生记录的显示;3、 查找功能:完成按学号或姓名查找学生的相关记录,并显示。分布实施:1、 初步完成总体设计,搭好框架,确定人机对话界面,确定函数个数;2、 建立一个文件,将每位学生的信息写入文件中(人数利用宏定义设定)并显示与屏幕上;3、 完成上述显示,查找(姓名、性别等),修改等功能;4、 进一步要求,修改记录设置密码操作。要求:1、 用C语言实现程序设计;2、 利用结构体数组实现学生信息的数据结构设计;3、 系统各个功能模块要求用函数的形式实现;界面良好(良好的人机交互),程序必须加必要的注释。课程设计实验报告要求:1、预习报告:题目、课程设计任务、数据结构、程序的总体设计(算法)、模块划
3、分;2、实验总报告:流程图、主要源程序代码(需打印)、测试情况及调试中的问题与解决方案、小结等。一总体设计1.程序的总体设计本次课程设计,主要通过main函数调用welcome( ),mainmenu( )和close( )函数实现。在mainmenu( )函数中,又嵌套了五个函数模块,create( )、search( )、change( )、del( )、printall( ),分别实现新建学生信息、查找学生信息、修改学生信息、显示所有信息的功能。在search ( )中,又调用了search_num( )和search_name( )两个函数,分别代表用学号查找和用姓名查找两种查找方式。
4、另外,open( )函数用于获得文件的头指针,delay( )延时函数用于welcome( )中界面的动态显示。2.数据结构本次课程设计中用到的数据结构类型是单链表,链表的结点储存学生的信息,用结构体储存学生信息。typedef struct student/定义结构体变量,用于储存学生的信息char num12;/学号,最多输入12个字符;char name10;/姓名,最多输入10个字符(5个汉字);char sex4;/性别,最多输入4个字符(2个汉字);char birthday12;/出生年月日,最多输入12个字符;char grade8;/年级,最多输入8个字符;char majo
5、r20;/专业,最多输入20个字符;char tel15;/手机号码,最多输入15个字符;char wechat15;/微信号,最多输入15个字符;struct student *next;/用于存放链表下一个结点的地址,即下一个学生信息的地址 student;/结构体类型为student型3.函数原型声明的说明l delay( )函数输入参数:unsigned int 延长的时间输出参数:无返 回 值:无功能描述:调用delay( )函数实现延时效果,从而实现字符动态显示在界面中,或字符在界面中停留一段时间再消失。l create( )函数输入参数:无输出参数:无返 回 值:无功能描述:调用
6、create( )函数,能够新建学生信息,并将新建的信息储存到一个文件名为“学生管理系统信息.txt”的文本文件中。l open( )函数输入参数:无输出参数:student *fphead返 回 值:fphead 即返回文件的链头指针功能描述:打开文件,将文件“学生管理系统信息.txt”里面的数据载入链表,并将链表的头指针fphead返回l search_num( )函数输入参数:student *fphead 链头指针输出参数:无返 回 值:无功能描述:按学号查找学生的信息并将信息打印于屏幕l search_name( )函数输入参数:student *fphead 链头指针输出参数:无返
7、 回 值:无功能描述:按姓名查找学生信息并将信息打印于屏幕l search( )函数输入参数:无输出参数:无返 回 值:无功能描述:提供学号和姓名两种查询方式给用户选择,若选择按学号查询,则调用search_num( )函数;若选择按姓名查询,则调用search_name( )函数l change ( ) 函数输入参数:student *fphead 链头指针输出参数:无返 回 值:无功能描述:输入原来修改的密码方可执行此操作输入要修改的姓名,学生信息会打印在屏幕并提供8种选择,输入数字可以做相应信息的修改,并将修改的新信息替换原来的信息储存到文本文件“学生管理系统信息.txt”中l del(
8、 )函数输入参数:无输出参数:无返 回 值:无功能描述:输入某个学生的名字将参数该学生的信息并显示删除成功l printall( )函数输入参数:无输出参数:无返 回 值:无功能描述:将所有学生的信息以表格的形式打印到屏幕上l welcome( )函数输入参数:无输出函数:无返 回 值:无功能描述:登录界面将“welcome”以不同颜色显示,随后显示开发者信息并要求输入学号、输入密码以及修改密码l close( )函数输入参数:无输出参数:无返 回 值:无功能描述:退出学生管理系统l mainmenu( )函数输入参数:无输出参数:无返 回 值:无功能实现:显示主菜单,并根据用户的选择调用以上
9、不同的函数模块以实现新建学生信息、查询学生信息、修改学生信息、删除学生信息、显示所有信息、退出管理系统等不同的功能,是整个学生管理系统 的核心部分以下是调用到的库函数l getch( )输入参数:无输出参数:char 字符类型返 回 值:char 字符类型功能描述:有键盘输入一个字符l fopen( )函数输入参数:文件名,使用文件方式输出参数:FILE *fp 文件的地址返 回 值:FILE *fp 文件的地址功能实现:使用文件方式为wb,则以只写的方式打开文件,若文件不存在,则建立一个新文件;使用文件方式为ab,则以追加的方式打开文件,即向文件的末尾添加数据,若文件不存在,则出错l fwr
10、ite( )函数输入参数:student *p, sizeof(student),int ,FILE*fp输出函数:无返 回 值:无功能描述:向指定文件写一个数据块,将新建的信息写入到指定文件中l fclose( )函数输入参数:FILE *fp 文件地址输出函数:无返 回 值:无功能描述:把fp指定的文件关闭,再次调用fopen 函数之前fp不再指向该文件l feof( )函数输入参数:FIEL *fp 输出参数:真值0或1返 回 值:真值0或1功能描述:检查到文件读写位置标志是否移动到文件末尾,即磁盘文件是否结束l fread( )函数输入参数:student *p, sizeof(stu
11、dent),int , FILE*fp输出参数:无返 回 值:无功能描述:从指定文件中读一个数据块l strcmp( )函数输入参数:两个字符数组输出参数:真值0或1 返 回 值:真值0或1功能描述:若两个字符串一样,返回真值1;若不同,返回真值0l GetStdHandle( )函数输入参数:STD_OUTPUT_HANDLE输出参数:HANDLE handle返 回 值:HANDLE handle功能描述:获取控制台句柄l SetConsoleTextAttribute( )函数输入参数:HANDLE handle,FOREGROUND_颜色输出函数:无返 回 值:无功能描述:改变字体颜色
12、4.流程图主流程图 退出系统界面 学生管理系统主菜单新建信息模块查询信息模块修改信息模块删除信息模块显示信息模块退出系统模块按学号查询按姓名查询 登录界面二详细设计1各个模块的流程图新建信息模块开始 按输入数据数据数据是否继续输入将数据写进文本按任何键回主菜单 否 是 查询信息模块开始输入要查询的方式 读取数据输出“还未建立信息”文件不存在是否找到信息是否找到信息输出数据输出数据是是否否无此信息无此信息按任何键回主菜单文件存在输入要查询的姓名修改信息模块是否继续修改信息开始 读取数据输出“还未建立信息”输入要修改的姓名是否找到信息否无此信息打印信息是 输入数据将数据写进文本,并输出“修改成功”按任何键回主菜单文件不存在 文件存在 文件存在是否删除信息模块开始 读取数据文件不存在输出“还未建立信息”文件存在输入要删除的姓名是否找到信息否无此信息删除数据输出“删除成功”按任何键回主菜单 是 显示信息模块开始 读取数据输出“还未建立信息”文件存在文件不存在打印数据按任何键回主菜单退出系统模块开始是否退出系统否返回主菜单延迟2秒后退出