c语言程序设计报告链表,c语言程序设计报告 链表实现学生信息管理

《c语言程序设计报告 链表实现学生信息管理》由会员分享,可在线阅读,更多相关《c语言程序设计报告 链表实现学生信息管理(15页珍藏版)》请在人人文库网上搜索。

1、c语言课程设计报告链接的列表,实现学生信息管理一.课程设计目标c语言课程设计的目的在于通过课程设计的综合教育,培养学生实际分析、编程和实践问题的能力,最终目的是通过此表格帮助学生系统掌握该课程的主要内容,更好地完成教育任务。本课程旨在重点介绍c语言的基本特征,并讨论c语言的重要基础知识。结合实际应用要求,使课程设计既接近知识点,又符合工程实际要求。激发学习兴趣,调动学生积极学习的热情,根据实际编程要求培养实际分析问题的能力和编程能力,培养良好的编程习惯。此外,在实际编程中,为了提高编程质量,希望学生在编写代码时严格按照要求处理空行、空格、注释,建立良好的编程风格。二.设计项目:管理学生状态本课。

2、程必须设计模拟学生信息管理程序,并使用链接列表实现。具有浏览、插入、删除、修改等功能,还可以存储和读取数据。主要功能模块:1.浏览学生信息:显示学生的信息。2.插入学生信息:添加学生的信息。3.删除学生信息:输入学号删除学生信息。4.修改学生信息:输入学号修改学生信息。5.保存学生信息:将学生信息保存到文件。0.系统关闭:退出程序运行并退出前询问是否保存信息。三.具体任务教师提供主菜单程序和0,2模块。学生在此信息系统中添加了4个名为:的模块1.浏览学生信息3.删除学生信息4.修改学生信息5.保存学生信息四、详细介绍1、浏览学生信息2、插入学生信息3、删除学生信息4、修改学生信息5、信息写入读。

3、取6、保存和发布学生信息五、课程设计实践部分本学期的第一个正式编程是使用链表管理学生的学生状态信息。在学习过程中,我不仅回收了以前的函数,还接触到了链表这个全新的概念。连接列表的使用在以后的编程中尤为重要,在信息时代的编程中,可以存储、调用和更改起重要作用的数据。在这次编程中,老师和同学都是我的有力支持者。例如,switch语句下的使用break和getchar的重要性,以及applet中的循环对于每个阶段的程序都很重要。通过这次编程,我发现我感兴趣的东西不是只要有兴趣就能掌握的。经过不断的练习和调试,要在一次失败中找到原因,把周围所有的力量团结在一起突破。最重要的收获是实际写代码的重要性。我。

4、遇到了华为等程序员,他们有c语言设计规范,每个固定程序编写都有固定的格式,没有格式的惩罚。在这次编程中,我充分体会到了形式的重要性。我程序的最大问题是switch语句中格式不对称导致的错误,最后是老师发现的大问题。最后,在这次编程过程中感谢老师,帮助了我的同学!六、源代码的完整列表#include#include#include#includeStruct nodechar number12;char name10;char sex6;char classes10;char tel12;Struct node * nextTypedef structnode/函数声明void Browse(N。

5、ODE * head);void Insert(NODE * head);void Delete(NODE * head);void Modify(NODE * head);void write info(NODE * head);void ReadInfo(NODE * head);void free list(NODE * head);void Exit(NODE * head);/主程序Int main()Int choice/a variable accept the users choiceNODE * headhead=(NODE *)malloc(size of(NODE);/c。

6、reat head nodehead-next=NULL;/install a tailReadInfo(head);/get info from disk file if file existedWhile(1)/主菜单printf(“ n % s”,* * * * * *学生信息管理系统* * * * * * * n * 1 .浏览学生信息*n * 2 .插入学生信息*n * 3 .删除学生信息*n * 4 .修改学生信息*n * 5 .保存学生信息*n * 0 .关机*n * * * * * * * * * * * * * * * * * * * * * * * * n 请按功能代码选择。

7、(0-5): );scanf(“% d”,choice);/number with return char into the io buttergetchar();/clear the return char from buffer交换机(choice)盘柜1:browse(head);Break盘柜23360insert(head);Break案例3:删除(head);BreakCase 4:修改(head);Break盘柜5:write info(head);BreakCase 0:Exit(头部);exit(0);Default:Printf(n选择错误,请重新输入! n ); /end。

8、 of switch /end of while(1)return 0;/浏览学生信息Void Browse(NODE *head)NODE * p=headIf(p-next=NULL)Printf(没有文件记录!请输入学生信息! n );Returnp=head-next;printf( number name class extel n );printf(-n );While(p)!=NULL)printf(“% s % s % s % s % s n”,p-number,p-name,p-classes,p-sex,p-telp=p-next;Void Insert(NODE *hea。

9、d) /插入函数定义NODE *t,* p;t=(NODE *)malloc(size of(NODE);/create a new node and pointed by tP=head/p is to point to the head node,which is passed from main functionPrintf(输入学生学号: n );scanf(“% s”,t-number);Printf(请输入学生名称: n );scanf(“% s”,t-name);Printf(请输入学生性别: n );scanf(“% s”,t-sex);请输入Printf(学生班级。 n );。

10、scanf(“% s”,t-classes);Printf(输入学生电话: n );scanf(“% s”,t-tel);If(p-next=NULL) /没有原始学生记录p-next=t;/new node connect to head nodet-next=NULL;/install a tail for the new nodeElse /有原始学生记录t-next=p-next;/new node insert to the rear of the head node。p-next=t;/two steps定义Void Delete(NODE *head) /删除函数NODE* p=。

11、head,* t=p-next;char num12;Printf(请输入学编号:以删除学生。 n );scanf(“% s”,num);While(t)!=NULL)If(strcmp(t-number,num)!=0)t=t-next;p=p-next;Elsep-next=t-next;free(t);Printf(“删除学生信息成功 n”);ReturnPrintf(此学生学号不存在。请输入有效的学生学号。 n );/修改学生信息Void Modify(NODE *head)NODE * p=headp=p-next;char num12;请输入Printf(“要修改信息的学生学编号:。

12、n”)。);scanf(“% s”,num);Int choiceWhile(p)!=NULL)If(strcmp(p-number,num)!=0)p=p-next;ElsePrintf(1 .学号2。名称3 .性别4。第5课。电话n选择:);scanf(“% d”,choice);交换机(choice)盘柜1:Printf(请输入要修改学生的学号:n)。);scanf(“% s”,p-number);Break盘柜23360Printf(“输入要修改的学生的名称: n”);scanf(“% s”,p-name);Break案例3:Printf(请输入要修改的学生的性别: n );scanf。

13、(“% s”,p-sex);BreakCase 4:请输入班级:以修改学生“Printf”。 n );scanf(“% s”,p-classes);Break盘柜5:Printf(请输入电话:以修改学生。 n );scanf(“% s”,p-tel);Break break/将学生信息写入文件Void WriteInfo(NODE *head)FILE * FPNODE * p=headif(FP=fopen( c : 32;database . txt , WB )=null)Printf(无法打开学生文件! n );Returnp=p-next;While(p)!=NULL)If (fwr。

14、ite(p,sizeof(NODE),1,fp)!=1)/write info and check sucess or notPrintf(写入学生文件出错! n );p=p-next;f close(FP);/从文件读取学生信息Void ReadInfo(NODE* head)FILE * FPNODE* p=head,* t;if(FP=fopen( c : 32;database . txt , Rb )=null)Printf(学生数据文件不存在,或文件未打开! n );ReturnP-next=!空;While(p-next)!=NULL)t=(NODE *)malloc(size of(NODE);Fread(t,sizeof(NODE),1,FP);p-next=t;p=p-next;f close(FP);/取消关联的列表Void FreeList(NODE* head)NODE* p=head,* t=headWhile(p)!=NULL)p=p-next;free(t);t=p;/退出程序Void Exit(NODE* head)Char ansint flag=1;If(平视!=NU。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值