学生成绩管理系统 C语言学生成绩管理系统 C语言.doc
文本预览下载声明
江西科技师范大学
《高级语言程序设计》实训报告
专 业: 计算机科学与技术(职教) 学生姓名: 芦育清 学 号: 指导教师: 曾纯青
2015 年 5 月 27 日
C语言学生系统
——调试分析与运行结果
一.系统总体设计(用了链表)
本系统设计的函数是由一个主函数几个子函数组成的。首先构思大局编出一个主函数,然后根据要实现的功能逐步细分设计,分别解决新建、显示、查找、删除、退出功能的子函数编程中遇到的问题。首先通过新建函数添加信息,然后再逐步编写和验证其它功能。显示函数的设计利用C语言的循环功能依次输出信息。查找是用一个字符串比较得出两个相同的字符串的方法找出用户要查找的人。删除函数的设计首先先找到对应的链表然后删除此链表实现删除目的的,for循环和 while循环在这此设计中也起了很大的作用。
三.系统流程图
四.程序的数据设计
1 菜单函数
菜单函数首先标出欢迎进入学生管理系统,然后给出用户可选择的项目,用户可以通过选择该项前的代码来实现想要实现的功能,其流程图如图3所示:
2 新建学生信息
通过开辟链表对每个链表赋值,每输完一次便指向下一个链表,并用一个计数器计入新建的个数;
3 查看学生信息
显示学校信息通过循环函数将全部的通讯录信息以此显示出来,其流程图如图所示:
4 删除学生信息
链表的删除操作是指将某个节点从链表中分离出来,也就是修改该节点的前趋节点指针,使其指向要删除节点的后节点就可以了。
5 查找学生信息
通过两字符串的比较,找到与输入姓名相同的姓名的位置。
6 退出学生管理系统
在使用完系统后,按0键便会退出系统.
按0即退出;
7我的代码
#includestdio.h
#includestdlib.h
#includemalloc.h
#includewindows.h
#includemalloc.h
#define LEN sizeof(struct student)
struct student* Head;
struct student
{
int num;
char name[10];
int score;
struct student *next;
};
int n;
struct student* creat() //新建学生信息
{
struct student* head=NULL,*a,*b; //这里的初始化为null是为了避免出错
n=0;
a=(struct student*)malloc(LEN);
printf(请输入学号姓名和分数(当输入的学号姓名和分数为0时退出新建):\n);
scanf(%d,a-num);
scanf(%s,a-name);
scanf(%d,a-score);
a-next=NULL;
while(a-num!=0)
{
n=n+1;
if(n==1)
{
head=a;
b=a;
}
else
{
a=(struct student*)malloc(LEN);
a-next=NULL;
printf(请输入学号姓名和分数:\n);
scanf(%d,a-num);
scanf(%s,a-name);
scanf(%d,a-score);
if(a-num !=0)
{
b-next=a;
b=a;
}
}
}
b-next=NULL;
return head;
}
void print(struct student* head) //查看所有学生信息
{
struct student* p;
p=head;
while(p!=NULL)
{
printf(学号:%d,p-num);
printf(姓名:%s,p-name);
printf(分数:%d\n,p-score);
p=p-next;}
printf(按任意键进行......);
fflush(stdin);
getchar();
system(cls);
}
void dele
显示全部