五邑大学课程设计报告
课程类别: 本科
课程名称: C语言程序设计课程设计
课程代号: 0800090
指导教师:
学生成绩管理系统设计与实现
姓名:学号:3113003904院系:计算机学院专业:电子信息工程(信息安全)
课程设计报告提交时间:2014年 4月 27 日
目 录
1课程设计内容1
2课程设计要求1
2.1功能要求1
2.2技术要求1
3概要设计1
3.1功能模块图1
3.2功能模块描述2
4详细设计2
4.1功能流程图2
4.2重点设计2
5测试与调试2
6心得体会2
参考文献2
学生成绩管理系统设计与实现
课程设计内容
设计并实现通讯录管理系统,具备以下功能模块:
功能模块1:显示学生成绩信息记录;
功能模块2:查找学生成绩信息记录;
功能模块3:添加学生成绩信息记录;
功能模块4:修改学生成绩信息记录;
功能模块5:删除学生成绩信息记录;
功能模块6:以文件形式存储学生成绩信息;
功能模块7:具有功能选择菜单及操作界面;
课程设计要求
功能要求
功能要求1:能显示在链表中的学生成绩信息记录;
功能要求2:能查找在链表中的学生成绩信息记录;
功能要求3:能添加学生成绩信息记录至链表;
功能要求4:能修改链表中的学生成绩信息记录;
功能要求5:能删除链表中的学生成绩信息记录;
功能要求6:能将链表中的学生成绩信息永久保存至文件中;
功能要求7:能将文件中的信息读入链表;
功能要求8:具有功能选择菜单及操作界面;
技术要求
技术要求1:建立学生成绩信息结构体;
技术要求2:通过链表动态储存结构体并进行相应的操作;
技术要求3:将文件读入链表并储存链表中的信息至文件;
技术要求4:读取文件中的信息至链表;
概要设计
功能模块图
3.2功能模块描述
1. 主界面与功能选择:在main()函数中,利用无限次循环语句while()和选择语句swith (xz)实现各个子函数的调用,系统根据输入的数字选项来调用相应的函数,以实现相应的功能。
2.从文件读取信息至链表listlink load(),新建链表listlink create():在进入系统后,先将以保存的文件中的学生成绩信息通过“head=load()”的方式读取至结构体penson中去;如果文件不存在或为空,则通过“head=create()”的方式新建一个链表用于记录学生成绩信息。
3.浏览学生成绩记录 void show(listlink head):在主界面选择功能1时,系统将链表中的学生成绩信息显示出来。
4.查找学生成绩记录 void find(listlink head):在主界面选择功能2时,系统会根据用户输入的姓名自动搜索链表中的相关信息,如果一直到链表尾都没有找到,则提示用户“对不起,没有找到该条记录,请确认输入是否正确!”,若找到则显示出该生的成绩信息。
5.修改学生成绩记录void alter(listlink head):在主界面选择功能3时,系统会先通过“show(head)”显示所有记录,然后用户只需输入需要修改对象的姓名就可进入修改,这时系统会弹出一条确认信息,以免错误操作,修改后,系统将新的信息通过指针的方式赋值给需要修改的对象,并提示修改成功。
6.删除学生成绩记录 listlink Delete(listlink head):在主界面选择功能4时,系统先通过“show(head)”显示链表中的记录,用户再输入需删除对象的姓名,此时系统查找链表中的相应记录,找到后系统弹出确认信息,以免造成误删,若用户确认删除,系统通过链表将该记录的前一节点指向后一节点,并释放该记录在链表中申请的内存空间,最后返回头指针。
7.添加学生成绩记录至链表尾 void input(listlink head):在主界面选择功能5时,系统先找到链表的尾节点,利用无限次循环语句while()进行添加记录操作,用malloc()分配结构数组的动态内存(当输入的姓名为“#”时,结束添加操作并释放malloc()分配的内存空间),每添加完一位学生的成绩信息后,将尾节点置为空。
8.保存学生成绩记录至文件 void save(listlink head):利用fp=fopen()打开已有文件,再通过while()语句将链表中的所有记录用fwrite()写入文件,直到链表尾部,保存成功。
详细设计
功能流程图
.4.2重点设计
系统由一个头文件(score.h),一个主函数(stu_score.c)和一个功能函数(function.c)组成,主函数主要包括界面及功能选择菜单,功能函数则包括了所有要用到的功能,通过主函数调用。学生成绩信息通过链表操作的方式进行动态存储,以提