数据结构课程设计》实验报告
九江学院
信息科学与技术学院
《数据结构课程设计》报告书
题 目: 学生成绩管理系统
专 业: 信息管理与信息系统
班 级:
姓 名:
学 号:
同组人员:
指导老师:
设计时间: 2014年 3月 23日 ~ 2014年3月28日
目 录
《数据结构》课程设计报告书1
1.课程设计(实训)计划3
2.系统需求分析与功能设计3
3. 总体设计4
4. 程序模块设计6
5. 技术难点与分析7
6. 系统测试8
7. 心得体会9
8. 参考文献10
课程设计(实训)计划
3月24日:完成必做项目班级通讯录管理
3月25日:上午完成选做项目的需求分析、总体设计
下午完成选做项目的模块设计
3月26号:完成系统的编码和调试
3月27号:设计有效的测试方法与测试数据、书写实验报告
3月28号:准备答辩系统需求分析与功能设计(根据课题的要求进行简单的需求分析,设计相应的数据流图,得出相应的系统功能需要, 系统数据流图)
(1)具备对成绩的管理功能(添加、删除、排序)
(2)具备按学号、姓名查询成绩的功能。
备注:成绩记录的信息有学号、姓名。可以用能表示学生成绩的结构体数组存储数据。
1:删除学生姓名、学号、成绩及学生列。
2:对学生信息进行相应的修改(对象为:姓名、学号、成绩)。
3:输入学生姓名、学号、成绩来添加学生列。
用C语言编程比较同类数据(成绩)大小进行排序。
4:通过输入学生的姓名、学号来查询对应的成绩。3. 总体设计
(根据功能需求,设计系统的总体结构。系统总体功能模块图,菜单的设计)
Creat()创建表,输入姓名 班级 学号 各科成绩
void menu();主登陆界面
void main();主函数
void alter(linklist L);修改学生信息
void delnode(linklist L);删除学生信息
void insert(linklist L,listnode *p);插入学生信息
void outputlist(linklist L);输出学生信息
listnode * listfind(linklist L);查找学生信息
void sort(linklist L);实现学生成绩的排序
4. 程序模块设计
(设计并编写输入\输出、查询\统计、数据维护等功能模块的应用程序, 每个人设计2个以上的模块,一个组完成一个完整的系统,数据库访问,存储过程调用等作重点阐述)
1.建立单链表
(1)模块设计分析:用头插法建表虽然算法简单,但生成的链表中结点的次序和输入的顺序相反。为求得二者一致这里采用了尾插法建表。
(2)算法思想:首先将新结点插到当前单链表的表尾上,然后需要增加一个尾指针,使之指向当前单链表的表尾。
代码:
linklist createlist()/*建立一个单链表*/
{
listnode *p,*r;
int flag=1;
r=L;
while(flag==1)
{
p=(listnode *)malloc(sizeof(listnode));
printf("学号 班级 姓名 性别 电话 地址 \n");
printf(" --------------------------------------------\n");
scanf("%s %s %s %s %s %s",p->data.num,p->data.clas,p->data.name,p->data.sex,p->data.phone,p->data.addr);
r->next=p;
r=p;
printf(" 继续建表吗? (1.是/0.不):");
scanf("%d",&flag);
}
if(flag==1)
printf("创建成功!\n");
r->next=NULL;
r