- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言课程设计报告
——学生成绩简单管理程序
一、程序的主要功能
用单向链表结构实现简单的学生成绩管理功能,要求具有链表建立、链表输出、结点有序插入、节电删除、数据查询等功能。
各项菜单功能:
(1)Creat List(建立有序单向链表)
从键盘上一次输入一个学生的姓名和成绩,以姓名为序建立有序链表。插入一条记录后,显示提示信息:确认是否输入下一条记录,如确认,继续输入,否着推出输入功能。
(2)Display All Record(显示所有结点记录)
按顺序显示链表中所有记录,每屏显示10条记录。每显示10条,按Enter键继续显示下一屏。
(3)Insert a Record(插入一条结点记录)
在以姓名为序排列的链表中插入一条记录,插入后,链表仍然有序。输出成功信息。
(4)Delete a Record(按姓名查找,删除一条结点记录)
输入待删除记录的姓名,显示提示信息,让用户再次确认是否要删除。确认后,将该姓名的记录删除。
` (5) Query(查找并显示一个结点记录)
输入姓名,查找该记录,并显示该学生成绩。
(6)Add Records from a Text File (从正文文件添加数据到链表中)
用户可提前建立一个正文文件data.txt,存放多个带加入的记录。提示输入正文的文件名,然后从该文件中一次性加入多条学生记录。文件data.txt格式如下:
2 /*表示带添加的记录数*/
WangXiao 95 /*下面每行为姓名和成绩*/
LiuLin 87
(7)Write to a Text File
将链表中的全部记录写入文件records.txt,要求文件格式和data.txt相同。
新增菜单功能:
(8)Reverse List
将链表中的所有结点逆序存放。
(9) Delete the Same Record
删除相同姓名的记录。
(0) Quit
退出系统并释放链表存储空间。
二、主要问题及解决方法:
在写程序中遇到的问题是:开始时无法正确完成“确认后再继续”的问题再后来写附加程序对链表逆序有些疑惑。面对遇到的问题我先自己认真耐心的修改,严格按照老师说的各个功能分步测试方法,解决了其中的大多数问题,对遗留下来的以和同学交流探讨与问老师相结合的方式来达到彻底的解决。
心得体会:
完成之后程序运行到一半会停止,不得不对300多行的程序进行单步调试,解决了很多问题之后,发现编程需要非常严谨的态度和足够的耐心,否则就会因为一些问题而卡住甚至放弃。当然在整个过程中,同学帮助解决了许多自己没有意识到得错误,换一个角度,才能发现问题吧。
三、源程序及注释:
#include stdio.h /*库函数调用*/
#include stdlib.h
#include ctype.h
#include string.h
#include malloc.h
struct stud /*定义一个结构体类型struct stud*/
{
char name[20];
float score;
struct stud *next;
};
typedef struct stud Student; /*用Student替代struct stud*/
int menu_select(); /*全体函数的外部申明*/
Student *Create();
void Display(Student *);
Student *Insert(Student *,Student *);
Student *Insert_a_Record(Student *);
Student *Delete(Student *,char *);
Student *Delete_a_Record(Student *);
Student *Query(Student *,char *);
void Query_a_record(Student *);
Student *AddfromText(Student *,char *);
void WritetoText(Student *,char *);
void Quit(Student *);
Student *Reverse(Student *);
Student *DeleteSame(Student*);
int n; /*定义一个全局变量*/
main()
{
Student *head=NULL ;
char filename[20]; /*定义一个字符数组*/
while (1)
{
switch (menu_se
您可能关注的文档
最近下载
- (部编)新人教版三年级语文下册课外阅读理解(25篇).pdf VIP
- 北师大版2024-2025学年三年级上册数学培优拓展讲义第5讲周长(单元讲义)(学生版+解析).docx VIP
- 2年级数学下册口算、竖式、脱式题卡.doc VIP
- 创业路演演讲稿(3篇).docx VIP
- 体育公园实施性施工组织设计.pdf VIP
- GB50231-2009 机械设备安装工程施工及验收通用规范.docx VIP
- 大学英语六级考试词汇表完整版(复习必背).pdf VIP
- 《中国共产党党员领导干部廉洁从政若干准则》(排版完整版).doc VIP
- 细菌性脑膜炎治疗指南.doc VIP
- 现场组织协调方案及措施.docx VIP
文档评论(0)