大连理工大学c语言大作业设计报告
大连理工大学程序设计报告
题目:学生信息管理系统
学 生 姓 名:
院系、班级 :
学 号 :
联 系 电 话:
Email : @
完 成 日 期: 20年5月
设计任务
选题意义因此需要一个应用能力强大的管理系统对其进行处理和存储,add();实现添加记录的功能;
del();实现删除记录的功能;
Edit();实现编辑记录的功能;
search();实现查找记录的功能;
程序的缺陷:
本程序是记录学生信息的但对于学生信息本人无法正确的把握长度!所以造成输出效果不是很好!对于记录中的每个信息均有字数限制,但本程序均未有错误处理!对于个选项都未作容错处理!但幸运的是这不会对数据产生影响!过程中提问较多。
程序的结构:
程序的主要流程图:
主函数:
当每项功能结束后,回到主菜单进行新的选择和操作!
主要能实现数据的输入和保存!
由于通过姓名删除和通过学号删除的流程差不多,通过上面的流程图我们可以看出来,所以我把他们整合到一张图里,在这过程中,他们并不是同时进行的!而是只进行其中的一个!通过姓名删除就不进行通过学号删除!
流程图就只介绍这几个比较重要的函数!
设计难点及解决方法
第二次添加学生成绩时出现覆盖原有成绩的现象,原因是每次添加都从文件起始位置开始写入,后来用链表添加,然后用新表覆盖,解决了这一问题.还有对链表进行排序时总是把链表断开,导致数据丢失.在反复检查错误后,改正了指针使用时的错误.
不足之处
程序功能太少.
对文件读写位置的控制掌握不熟,只好浪费动态内存.
C. 编程的体会:
C语言已经学了半年了,刚开始学时特别吃力,对于一个全新的东西还不适应。大概学了一个月之后,大概知道了怎么学,不过还是觉得有些吃力,随着上机调试的开始,由于基础未打好,每次上机压力都挺大的,有几次上机调出的题目极少之后,自信心严重受挫,对上机产生了畏惧感,经过及时调整,我加大了回去看书的力度,对知识点熟悉后情况好转了许多。但随着指针的学习,我再次感到了难度,指针都学晕了,我决定还是应该回去多看书,在一次次看书之后,我对指针的理解也逐渐加深了,学习不再那么吃力了,但离编出一个较好的程序还是有差距,开始只能是模仿课件或书上的例题,模仿多之后,对指针的理解进一步加深,随后自己就能编出一些程序,也得到了一些成就感。最终我认为C语言是一门应该多看书,多实践的课程,不要被眼前所遇到的困难吓倒,在解决一次次难题之后会有一种成就感,下次还想编,这样就形成了良性循环,C语言就不可怕了,而变成了一种乐趣。
课程意见:增加上机时辅导的老师!
20010年5月25日
电0911封帆c语言大作业
主函数main()
添加记录add
删除记录del
显示记录 disp
查找search
编辑edit
开始
输入choice
4
0
2
5
3
del();
choice
Edit();
display();
add();
退出
1
search();
结束
开始
输入choice
choice
输入处理
返回主菜单
0
输入c
c
y
输入c
n
c
保存
y
n
k==10
y
n
add();函数流程图:
开始
输入i
i
返回主菜单
n
输入name1
读入数据! or .stu.number
1
name1=?
num=stu.number?
y
输入num
2
n
将数据写入临时文件
studata是否结束
n
输入c
y
c
将临时文件
拷到studata
结束
y
开始
del();的流程图:
输入choice
choice
输入name
1
studata是否结束
输入num
2
读入数据! or .stu.number
n
name=?
num=stu.number?
将数据写入临时文件
y
n
重新读入数据stu
n
输入c
c
y
将临时文件
拷到studata
y
结束
n
Edit():函数的流程:图:
对于此函数来说通过姓名找到该同学并修改和通过学号找到该同学并修改流程差不多, 通过上面的流程图我们可以看出来,所以我把他们整合到一张图里,在这过程中,他们并不是同时进行的!而是只进行其中的一个!通过姓名找到学生并修改就不进行通过学号找到学生并修改!通过学号找到该同学并修改就不进行通过姓名找到并修改!