1、目 录1.设计任务12.基本思路13.方案设计23.1 主要算法说明23.2 程序框架设计34.程序的源代码45.调试过程中出现的问题及相应解决办法66.个人体会及建议77.参考文献771. 设计任务本课题是设计一个实用的小型学生成绩管理程序,它要求不用链表,而用数组来设计这个程序。它有查询和检索等功能,并且能够对指定文件操作,也可将多个文件组成一个文件。程序具体要实现的功能建立文件、读取文件、新建学生记录、增加或删除学生记录、显示记录、文件存储、修改记录、查询记录、记录排序、文件合并。在整个学生成绩管理系统的编写过程中,我主要负责编写main(主函数),new_file(新建文件),save
2、_file(另存为)函数,new_record(新建记录)函数以及主菜单显示函数的编写。函数的基本功能是:main函数掌控整个代码的大致流程,从进入系统到具体操作,再到推出系统;主菜单显示函数是整个系统的关键部分,它在main函数的控制下连接各个子函数的运行以及界面的显示,对用户的选择进行存储并调用相应函数;new_file函数用来新建文件用来存储学生数据; save_file(另存为)是用户在对文件进行操作之后对文件的保存处理;new_record(新建记录)函数主要是对文件进行学生数据记录的添加。2. 基本思路1main函数进入系统首先对密码进行验证,调用密码验证函数codecheck()
3、。验证权限通过之后进入主界面main_menu(),调用菜单处理函数menu_handle(),主要功能均在这部分中实现,操作完成之后按提示退出系统。2menu_select()函数用来显示菜单的选项,然后得到用户的选择。3menu_handle()函数首先调用menu_select()函数,用来接收用户的选择,然后针对不同的选择调用相应的函数,在函数功能完成后继续进行循环,直到接收到退出指令时才退出系统。4new_file()、save_file()、new_record()函数是用户在具体操作的时候进行文件的新建、保存以及学生数据记录的增添。3. 方案设计3.1 主要算法说明为了实现基本思
4、路中的一些功能,设计了如下算法:(1)在menu_handle()函数中,首先利用flag=1标志程序向下运行,然后读取menu_select()函数的返回值,menu_select()函数的返回值是用户对系统功能的一个选择,利用switch语句,根据用户选择在循环中调用各个函数,待函数调用完成后,再回到menu_handle()函数处,用户继续对功能进行选择,直到用户选择退出为止。此处是该系统的核心所在,所有函数的执行均需要执行此函数。 (2)在main()函数中,首先有进入系统对密码的验证,调用密码验证函数codecheck()。验证权限通过之后进入系统代码的运行控制,先到达主界面main
5、_menu(),然后调用菜单处理函数menu_handle(),按用户具体操作进行子函数调用,知道用户退出系统。(3)在new_file()函数中,主要是新建一个文件,设置文件的打开方式,然后设定一个指针指向该文件。(4)在save_file()函数中,是用户对操作之后文件进行的保存,要对文件的打开方式、数据结构进行设置。(5)在new_record()函数中,是用户在增添学生记录的函数,它包括输入提示、输入数据结构、以及将数据保存到结构数组当中。3.2 程序框架设计开始检查inicode文件是否存在读取文件中存储的密码信息用户输入密码错误3次错误比较两个密码是否相同退出系统是进入系统choi
6、cemenu_handle(int choice)具体功能实现退出系统系统主体框架4. 程序的源代码(1)在menu_select()函数中int choice /将得到的字符为数字,便于操作while(scanf(%d, &choice) != 1 | choice 10)while(ch = getchar() != n)putchar(ch); / 显示错误输入printf( is not the right options!n);printf(Please input the number between 0-10 );/按菜单提示操作,选项必须在设定范围内(2)在Handle_men
7、u()函数中 int flag = 1; /程序持续运行,可以重复选择switch(choice) /针对用户的选择调用相应的函数case 0:printf(Please input the filename );/打开文件 case 1:/new filechar new_filename64;fp = fopen(currentFilename, w);/新建文件,并设定使用文件方式为只允许写数据 case 2:fp = fopen(currentFilename, w);save_file(fp);/保存文件 case 3:save_file_as();/文件另存为 case 4:new
8、_record();/增添记录 case 5:del_record();/删除数据 case 6:modify_record();/修改数据 case 7:sort();/排序记录 case 8:find();/查找记录 case 9: merge();char name164, name264/*, name64*/;/合并文件(3)在new_record()函数中 while(1)/无限循环printf(please input a record:n );strcpy(studentn.number,temp.number );/将数据保存到结构数组当中printf(Do you want
9、 to insert another record? y/nn);/持续添加数据(4)在main()函数中void codecheck();/密码验证函数定义int main()int close_flag = 0;int choice;codecheck();main_menu();choice = menu_select();close_flag = menu_handle(choice);while(close_flag)/控制程序的运行main_menu();choice = menu_select();close_flag = menu_handle(choice);return 0
10、;5. 调试过程中出现的问题及相应解决办法对建立工程不是很了解。以前在编写C语言过程中,由于用的软件是tc 3.0建立工程也特别简单,只需要在project菜单下建立即可,但是在vc+6.0软件的使用过程中,发现project有很多类型,显然,不同的project对应着不同的文件以及不同的功能,对于特定的程序需要有特定的文件。针对这种情况,我先是试了一下每个工程,然后上网参考了其他编程者的说法,最后选用了Win32 application工程。6. 个人体会及建议这次课设的过程太艰难了,最主要的是个人实力不够,对C语言课程的掌握不够,在同组其他人员的带领下半学半做完成的。虽然很多地方是在他人指导下完成的,但自己也收获了很大的进步。自己独立学习也是一个重要的环节,虽然很多不懂,但是自己的努力才会有成果,也许这对以后的的其他课程学习是一次提示吧。还有在课程设计过程中,由于时间跨度比较大,所以很多时候对自己的要求也有所放松,在匆忙的时间内做出来的效果必然不是太好,所以请老师在以后的课设过程中对时间进行一定的调度,或者对学生的督促在加强一点吧。参考文献 1 周纯杰标准C语言. 华中科技大学出版社.20052 孙承爱,赵卫东. .程序设计基础(基于C语言).清华大学出版社.20083 史斌星.C语言贯通教程.清华大学出版社4 史斌星.C语言贯通教程,清华大学出版社 .
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922