c语言成绩插入程序,C语言课程设计学生成绩简单管理程序.doc

C语言课程设计学生成绩简单管理程序.doc

南京航空航天大学

2010-2011 (二)C程序设计课程设计报告

课设题目:学生成绩简单管理程序一

学生学号:

课设教师:

日 期:2011.5.31

程序主要功能:(写出程序完成的主要功能)

用结构体数纟 11结构实现简羊的学生成绩管理功能,要求具有数据输入、数据输出、数纟 11排 序、元素插入、元素删除、查询等功能。

各菜单功能:

Input Records(输入若干条记录)

从键盘一次输入一个学生的姓名和成绩(一条记录),依次存放到结构体数组屮。 掺入一条记录后,显示提示信息:确认是否输入下一条记录,如确认,继续输入, 否则,退出输入功能。

Display All Record (显示所有记录)

按顺序显示表中所有记录,每屏显示十条记录。每显示+R>键继续显示下一屏。

Sort (排序)

以姓名为序排列数组。

Insert a Record (插入—条记录)

在以姓名为序排列的数组中插入一条记录,插入后数组仍有序。输出插入成功的信 息。

Delete a Record (按姓名査找,删除一条记录)

输入待删除记录的姓名,显示提示信息,让用户再次确认是否要删除。确认后,将该姓名 的记录删除。

Query (查找并显示一个记录)

输入姓名,查找该记录,并显示该同学的成绩。

Add Records from a Text File (从正文文件屮添加数椐到结构体数组屮)

用户可事前建立一个正文文件data.tx t,存放多个待加入的记录。提示输入正文文件的文件 名,然后从该文件中一次性加入多条学生记录。文件data,txt格式如下:

2

W ang Xiao 95

Li uLin 8 7

Write to a Text file

将数组中的全部记录写入文件r ecords.txt ,要求文件格式和文件data.txt相同。

Quit (退出学生成绩管理程序)

说明:(写出对题目的分析,设计中遇到的主要问题及解决方法,对设计的

感想和心得。如有新增加的功能,给出增加功能的设计说明)

题0分析

该题主要考察对结构体,指针,文件的操作,以及C语言算法的掌握,所以完成此道题 目要求较强的没计能力,尤其是要有一种大局观的意识。如何调程序也非常重要,通过这 个程序可以学习到以前调试短程序没有的的经验。

菜单中的每一个选项都对应一个子程序,子程序的算法儿乎襄获了所有C语言学过的技巧, 下面就各个子程序中的功能进行说明:

功能1和4的算法相似,输入一条记录到结构体巾去,其巾有一部很关键,就是通过gets 将所有的多余的字符,回车读去,否则就会出错。

功能2是显示所有的记录,通过循环输出,格式也比较重要。

功能3为按学号排序,因为学号定义成了字符数组的形式,因此在运用冒泡法进行排序的 时候,要用到strcmp,strcpy等函数。

功能5为按姓名删除记录,先输入姓名,再一一比较,如果没有则返回失败信息,如果找 到就将此记录都向前移一位,返回n-1。

功能6的算法在5中就己经体现了,输入姓名,一一比较。

功能7为新增的功能,因为考虑到原来给出的函数中竟然没有对学生成绩的统计功能,因 此新增此功能,可以得出所有的记录个数,最高、最低、平均分,并输出相关的学生信息 等。

功能8和9是对文件的操作,提前准备好数据。

在写程序中遇到的I'uJ题:

开始时无法正确完成“确认后再继续”我先是自己认真耐心地用很多方法调试修改, 然后问了儿个同学,解决了这个问题,还有有关文件读写的问题,因为是上课时没有听太 明白,所以自己再次仔细看了一遍书,分析书屮例题,然后再运用到该程序的编写屮,在 同学的帮助下解决了。妞对遇到的其他很多或大或小的问题主要都是和同学交流探讨与问 老师相结合的方式來达到彻底的解决的。

心得体会:

编这样一个程序在之前看的时候总是觉得不可能做到,完全没有思路,不过当静下心 坐在电脑前仔细看完要求和提示后,一步一步地编写,慢慢地发现其实只要肯想肯问就能 积少成多,完成这样一个在我们之前看来很复杂的程序设计。两百多行的程序内容很多, 有的地方也很复杂,尤其是一些细节问题,粗心地S?三落叫,造成很多不必要的错误并且 很难发现,因此的确是对我毅力的一种考验。完成之后程序运行到第一次输入数据总是会 停止,不得不对300多行的程序进行单步调试,再次解决了之前没有发现的问题之后,发 现编程需要非常严谨的态度和足够的耐心,否则就会因为一些问题而卡住甚至放弃。当然 在整个过程中,同学帮助解决了许多自己没有意识到得错误,换一个角度,xT能发现问题 吧。

源程序

stdio.h>/*调用库函数*/ //include #include //include

#define NULLO t ypedef

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值