欢迎来到天天文库
浏览记录
ID:41223443
大小:19.74 KB
页数:11页
时间:2019-08-19
《2019《C语言程序设计基础》上机实验报告(模版)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、《C语言程序设计基础》上机实验报告(模版) 成都信息工程学院计算机系 课程实验报告 实验课程:C语言程序设计2实验项目:职工管理系统指导教师:李莉丽学生姓名:桂柯学生学号:20XX051102班 级:计科3班实验地点:5201实验时间:20XX年5月11日 点~点实验成绩:评阅老师:李莉丽,书写上机实验报告内容的纸张也用A4纸,最后从侧面装订) 一【上机实验目的】 通过亲自设计程序,可以令我们熟悉c语言操作,更熟练的掌握c语句。初步体会编程的过程,为将来的程序深入学习打下基础和培养兴趣。 二【实验环境】 三【上机实验内容】 职工信息管理系统要求: 职工信息
2、包括职工号,姓名,性别,年龄,学历,工资,住址,电话等。试设计一职工信息管理系统,使之能够提供下列功能:系统以菜单方式工作 职工信息录入功能职工信息浏览功能 职工信息查询功能,查询方式: 1)按学历查询 2)按职工号查询 职工信息删除,修改功能。 思路: 录入并向文件里保存数据的实现思路:C语言并没有提供键盘输入数据直接录入文件的功能,只有内存变量向文件写入数据的功能,而键盘输入数据可以到内存变量,因此实现此部分功能时,应当键盘将数据放入变量,再变量写入文件。这里录入要求不采用书上例子,它是用结构体数组,我们要求只用一个结构体实现。先将一个人的信息放入结构体,将这个结
3、构体数据写入文件后,再将下一个人的信息继续放在这个结构体中,再将这个结构体写入文件。这样节省内存空间。 计算并修改文件里数据的实现思路:这部分的功能的实现应当先将文件的数据读到变量当中,在变量当中完成计算,再将数据写入文件。如果只是修改文件的数据,并不计算,则可以直接定位到文件中相应的位置,写入数据,则把原来的数据覆盖以完成修改。 向文件里追加数据的实现思路:文件本身提供了这项功能,只要以“a”的方式打开就行。然后向文件写入的数据,直接放在文件末尾。 查找文件里是否有某项数据的实现思路:C语言并没有提供判断文件内容的功能,必须将文件内容读到变量里再进行判断。实际的查找可能是在
4、大量的数据里的查找,高效的查找是折半查找,折半的前提是排序,因此需先对排序后的文件读出,以折半方式查找。 根据要求显示文件里的某些数据或全部数据的实现思路:C语言没有提供将文件内容显示的功能,所以需要将文件内容读到变量里,再显示变量。 在文件里插入或删除某项数据的实现思路:C语言同样没有直接提供该项功能,因此必须借内存变量完成。以前的知识知道,在大量的数据里删除一个数,用数组表示不合适,因为涉及到大量的数据的移动,用链表是合适的,效率高。因此完成这部分操作要求用链表实现,先将文件里的数据读出组织成链表,在链表上完成插入与删除后,再将链表中的数据写入文件。 按某个数据项进行排序
5、生成排序文件的实现思路:排序是在数组里实现。因此先要将文件里的数据读到数组里,将数组排完序后,再将数据写入文件。 四【上机调试程序流程图】 1.显示主菜单 2.添加职工信息 3.浏览职工信息。 4.查询职工信息。 4根据标号查询职工信息。 根据姓名查询职工信息。 根据年龄查询职工信息。 5.修改职工信息。 浏览修改后的职工信息。 6.删除职工信息。 浏览删除后的职工信息。 7.用链表添加职工信息。 浏览添加后的职工信息。 五【上机调试中出现的错误信息、错误原因及解决办法】 1.光条菜单的错误:刚开始只能用键盘上的英文字母控制光条上下移动,想用上下箭头
6、的ASCII代码,结果错误不能上下移动解决方法:使用键盘扫描码。 2、浏览函数scan在调试和链接的时候都没有出现错误提示,但在运行的时候出现了问题。写入指定位置的文件,打开后总会有乱码。与c语言课本上的例题对照后发现,我写的fopen(没有指定文件的存储类型。解决方法:在文件名wenjian后面加上.txt后即可。 3.浏览函数scan遇到的问题虽然不大,但解决起来很麻烦。理想的运行结果是美观整齐。即下面的职工信息分别与第一个printf输出的中文项目提示对齐。解决方法:不断修改空格个数,不断运行察看效果。4.程序运行后菜单界面不消失 解决方法:使用清屏函数,是每次运行后
7、界面还原。5.功能函数运行完后会跳出界面,直接退出。解决方法:在每个功能函数的后面加如返回值。 六【上机调试后的源程序及还存在的问题】 源程序: #include#include #defineESC0x1b #defineENTER0x0d#defineUP0x48#defineDOWN0x50#defineLEFT0x4b#defineRIGHT0x4d typedefstruct {intNo;intage;charname[20];}WORK
此文档下载收益归作者所有