一. 函数的主要功能。
1. create list:建立有序单向链表。
2. display all record:显示所有结点记录。
3. insert a record:插入一条结点记录。
4. delete a record:按姓名查找,删除一条结点记录。
5. query:查找并显示一个结点记录。
6. add record from a text file:从正文文件中添加设局到链表中。
7. write to a text file:将链表中的记录输出到正文文件中。
8. reverse list:将链表中的所有记录逆序存放。
9. delete the same record:删除相同名字的记录。
1. quit:退出程序。
二. 程序设计中遇到的问题及解决办法。
在程序设计的过程中,发现自己的很多的问题,像耐心不够、不够细心等等,让在做课设的过程中吃够了苦头,在慢慢的调试和修改后,总算可以把程序运行起来了。因而一份扎实的功是很重要的,而且,对上机环境的熟悉程序成功的运行也是很重要的。同时,对书本知识的不熟悉也让我在做课设的过程中不得不参照书本上的源程序。
现将我的问题、困难列举如下:
1.在编写create 函数时,对是否继续输入数据的地方,我的程序段是这样的:” printf("are you sure to add this record?
[y/n]");getchar();c=getchar();开始时,没有加“getchar();这一句,结果在输入的时候总是会出现纪录被复制的情况。在参考了同学的意见后,加上了那一句,程序第一个功能就调试好了。所以说,有时程序看上去是对的,但在一定的编译环境下可能会出错,因而对编译环境的熟悉,能让编程变得简单、容易。
2.在student *delete(student *head,char name)函数和student *query(student *head,char name)函数的形参书写char name时,name没有加,结果导致数据无法传递。太粗心了………这个错误实在是太低级了,以后会注意的!
3.在处理student *addfromtext(student *head,char *name)函数时,由于在主函数前定义该函数时少了一个形参,结果在编译时出现了“extra parameter in call to xxxxxxxx”的错误,致使后边函数编写的再好也会通不过编译,所以说,做事情细心是很重要的。一个人即使做的事99.9%是对的,可是如果另外的0.
1%是错的,那么这件事就做的没有什么意义了!细心,对于编程人员来说真的很重要。
4.在insert a record函数调用时函数名写错,“record”的“r”忘记大写,结果函数无法调用,再次强调:细心很重要。
5.在编写程序时,对一些函数不够熟悉,总是翻书找函数具体是怎么样的,虽然给出这个函数能看懂,但却不能独立的写出它,对书的了解不够透彻,还不能掌握函数的用法,学的还不到位,需要自己下工夫真正的掌握并灵活运用,这是我在剩下的时间里需要重点改正和努力的地方。
6.从中我还认识到上机实践的重要性,不能只停留在把书看懂的曾面上,要多多上机操作,才能找出自己学习中的问题,知道自己不懂的地方,更加完善自己,学到更多的知识,掌握好c语言这门技术。
7. 至于新增的函数,reverse list()和deletesame()函数都可以从字面上可以看得出,第一个是把链表中的记录逆序存放,主要思路在于把最后一个和head连起来,后一个则是用两个for循环语句进行地毯式扫描,找到相同的两个,再删除。
总的来说,这次课程设计很有意义,让我吃了很多的苦头,不过还是值得的,让我明白很多的看似简单却在生活中容易忘记的道理……铭记于心!!
三. 源程序及注释。
#include<>
#include<>
#include<>
#include<>
#define null 0
struct stud定义结构体类型*/
char name[10];
int score;
struct stud *next;
int n=0全局变量,记录学生个数*/
typedef struct stud student;
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 *)
student *reverse(student *)
student *deletesame(student *)
void quit(student *)
main()
char filename[20];
student *head=null;
for(;;
int menu_select()
char c;do
system("cls");
printfn");
printfstudent grade maneger programen");
printfmain meauversion:v1.1 *");printfn");
printf1. create list");
printf2. dispaly all record");
printf3. insert a record");
printf4. delete a record");
printf5. query");
printf6. add records from a text file");
c语言课程设计报告 课程设计报告
周口师范学院。课程设计报告。院 系 计算机科学与技术学院 班级。学生姓名学号。设计题目 职工工资管理系统。完成日期 年月日 课程设计任务书。设计题目 工资管理系统 教研室主任指导教师 年月日。摘要11设计内容 任务及具体要求2 1.1设计内容2 1.2设计任务及具体要求2 2概要设计3 2.1该系统...
C语言课程设计报告
华中科技大学计算机科学与技术学院。题目 专业 班级 学号 姓名 成绩 指导教师 完成日期 2016年月日。目录。一 系统需求分析 1 二 总体设计 2 三 数据结构设计 3 四 详细设计 4 五 系统实现 5 六 运行测试与结果分析 6 七 总结 7 八 参考文献 8 九 指导教师评语 9 对所要解...
C语言课程设计报告
c语言。课程设计。商业销售管理系统。学号 121407210 姓名 宋军。班级 软件1202 指导老师 邹姝稚。成绩 2013年6月。一 任务描述。编写一个商品销售管理系统,是其能够拥有商品买卖和库存管理功能。在顾客选购时,需给出输入商品名称,或商品型号,或选择列表进而输入商品编号三种选择,在顾客选...