- 1、本文档共22页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
江西科技师范大学
《高级语言程序设计》实训报告
专 业: 计算机科学与技术(职教) 学生姓名: 芦育清 学 号: 指导教师: 曾纯青
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
文档评论(0)