您好,欢迎访问三七文档
电子科技大学成都学院程序综合设计论文论文题目工会成员信息管理系统学生姓名学号专业通信工程系(分院)通信与信息工程系授课教师2015年5月制摘要摘要c语言是一种编程语言,用于编写程序,日常生活中所用的各种软件啦、游戏啦,其实都是一个程序而已,而c语言的作用就是用来编写这些软件的。精通了c语言将来学习其他高级编程软件就比较随意了。如今计算机的运用越来广泛,跟我们的日常生活有密不可分的关系了,然而工会成员的信息管理也能通过计算机程序来实现更好的管理,通过一段简单的计算机程序来实现企业,公众对成员信息的管理,可以通过这段程序实现对新成员信息的录入、浏览、按各种方式进行查找、删除、修改等等。这次,我们将用C语言来实现这个程序,完成它的各个功能。关键字:C语言,信息管理,计算机程序第一章引言引言1.1问题分析题目是工会成员信息管理系统,成员信息管理系统是事业单位科学、全面、高效进行人事管理的系统。在操作上集输入、维护、查询、统计、打印、输出等处理为一体,简便灵活,自动化功能强大。就本课题以及我们所学知识而言,需要进行公会成员信息的录入、浏览、修改、查找、删除公会成员信息等操作,分别建立功能模板,最后还应提供键盘式选择菜单实现程序运行。1.1.1基本功能(1)工会成员信息录入功能——输入(2)工会成员信息浏览功能——输出(3)工会成员信息查询功能(查询方式:a.按是否结婚查询。b.按子女个数查询。)(4)修改工会成员信息并保存(5)删除工会成员信息1.1.2扩展功能在基本功能实现以后,可以进行创新设计,比如对菜单进行美化、增添个人登录模块功能、完善成员更加详细的信息功能以及让系统更加人性化一点也就是增加输入提示,以及某些错误提示等。电子科技大学成都学院课程设计1.2研究思路基于工会成员信息管理系统的基本功能,我们需要用vc6编写一个程序,此程序的主要功能是有一个菜单,将在实现功能时显示出来,并且有选项。系统应该包含姓名、性别、出生年月、是否婚配、子女个数;系统会有错误提示功能;有输入功能;能够输出所有成员的信息清单;能够按成员婚配与否或成员工号查询某一个成员的信息;能够修改某个成员的信息;能够删除某个成员的信息等。明确了我们所要设计系统的功能后,接下来就应该编写程序去实现每个功能,最后再汇总,然后在主函数中进行调用。1.3小组分工我们小组有四个人,按照不同的功能模块进行分工,分为四个大致板块(1)工会成员信息录入功能和浏览功能(2)工会成员信息查询功能(查询方式:a.按是否结婚查询。b.按子女个数查询。)(3)修改工会成员信息并保存(4)删除工会成员信息出了这四个板块以外还有就是要进行程序的整合调试,改错,还有就是美观设计。我们通过大家选择各自自己负责的一部分。最后我做的是主页面的设计、修改公会成员信息并保存。后面的整合调试,改错以及美观设计有大家共同完成。分工好后就各自先完成自己负责的那个板块。在大家做自己的板块之前我们会应该对某些东西进行一个统一的定义,比如公会成员的信息各自有什么来定义。最后我们都用intnum来定义工会成员号、charname[20]来定义公会成员姓名、charsex[10]来定义公会成员性别、intage来定义公会成员出生年月、charmarry[10]来定义工会成员婚否、intchild来定义工会成员的子女个数。通过这样大致统一的定义后,会给后面的归总减轻很大的麻烦。第二章总体设计总体设计2.1程序功能结构图2.2系统体系结构①structemployee{}/*定义一个结构体*/②voidmain(){}/*主函数*/③voidmenu(){}/*菜单函数*/④voidinput(){工会成员信息管理系统录入信息浏览信息查询信息删除信息修改信息退出电子科技大学成都学院课程设计}/*录入函数*/⑤voidsave(int){}/*保存文件函数*/⑥voiddisplay(){}/*浏览函数*/⑦voidsearch(){}/*查询主函数*/⑧voidmodify(){}/*修改函数*/⑨voiddel(){}/*删除函数*/首先制定好总体设计,也就是最后的程序代码的框架,在设计好框架过后,后面才能将各自的程序代码汇总起来。接下来就要大家各自完成自己负责的那一部分代码了。第三章程序实现详细过程程序实现详细过程3.1主页面函数设计3.1.1设计思路主页面函数,其实主页面函数很简单,就是运用多个printf打印出函数所要实现的功能和选择条件,只是要注意位置,尽量是打印的东西处于对话框的中间位置,这样看上去更加美观。3.1.2实现过程首先是要运用多个printf实现要打印的内容,打印的内容也就是你程序所要实现的功能,并且添加上对应的编号,以便于选择。然后调节主页面的使其看起来更加简单美观,在查阅书籍后学习怎么对页面进行操作,于是就把背景改成了白色,并将主页面以管理员身份就行了命名,也就是页面名称为公会成员信息管理系统,还有就是主页面可能会多次调用,调用时前面还有其他功能执行的一些东西,一点也不美观,于是就在主页面的一开始就使用了一个清屏的操作,这样就好很多了。然后不断的调试位置使其中的内容尽量居中对齐,这样更具有美观感。在多次调试后最后的主界面运行效果如图3-1所示。主页面做成这样子已经差不多了,也算是完成了第一个简单的函数,然后再做后面的公会成员信息的修改。电子科技大学成都学院课程设计图3-1-2主界面运行效果3.2修改公会成员信息函数设计3.2.1设计思路修改函数有一定的难度,在经过查阅书籍后才确定了应该怎么去实现它。首先要对函数进行修改,你就要输入你修改后的内容,然后你该后的内容又不可能直接在原来的结构体重的信息上进行修改,显然这里首先就要对结构体的内容重新定义一次,定义包括公会成员号、姓名、出生年月、性别、婚否以及子女个数。然后,你要修改的是面向某一个成员的信息进行修改,首先要找出你要修改的成员,我觉得名字是最可靠的,于是就通过名字来找到这个成员,在找到成员后,每个成员有6项基本信息,也不会全部去改,于是就还要选择你所修改的是某一项内容,最后将修改后的打印并确认,然后保存修改内容,最后在选择接下来将要进行的操作。第三章程序实现详细过程3.2.2实现过程首先就行定义,要定义的内容有整型的工会成员号、数组的姓名、数组的性别、数组的婚否、整型的出生年月、整型的子女个数,以及诺干后面要使用到的用于循环啊,选择什么的整型变量。定义好后,第一步就是通过姓名找到你所要修改的那一位成员信息,姓名就要从键盘输入,为了更方便的输入正确无误的姓名我们在之前可以先对成员所有信息就行打印一次,这里就会调用浏览函数。然后根据你输入的内容跟原有的成员信息进行匹配,先是一个循环的对原有成员信息进行一一匹配,有则打印出该成员的信息,若没有就提示没有找到该成员。最终如图3-2-2-a所示。3-2-2-a再找到所要修改的成员信息之后,第二遍就要选择你所要修改的这位成员的哪一项信息这里就有多项选择就会有的switch就行选择,在选择之前先要打印出各项信息所对应的序号,然后用scanf从键盘上输入你要执行修改哪一项,通过case中的不同分支进行完成。每个分支都先提示xxx改为:然后通过scanf从键盘上输入你要将这一项改为什么,这里输入储存在的地方也就是修改函数开始定义的电子科技大学成都学院课程设计里面,然后在用这些输入的去替换原来结构体中的数据,这里替换就涉及两种内容的替换,一个是整型还有一个是数组的替换,整型的替换很简单,如图3-2-2-b所示,直接有等号就可以传递了。图3-2-2-b然而数组之间值的传递不能直接用等号,需要通过strcpy来实现,如图3-2-2-c所示。图3-2-2-c还有一点很重的是在每一个case后面必须加上break来跳出去。修改后在进行一次确认,修改函数大致也就完成得差不多了,最终如图3-2-2-d所示。图3-2-2-d第三章程序实现详细过程最后还要将程序更加的完善,添加一些人性化的提示,当出现选择的时候你所输入的不在选择范围内这时候提示输入错误,并请重新输入,如图3-2-2-e所示。还有在修改完成后进行保存这时调用保存函数,在调用保存函数之后再调用一次浏览函数,以此来判断是否修改正确。还有最后一项就是修改过后是还需要修改其他内容还是返回主函数,在进行一次选择,如图3-2-2-f所示。这些完成后这个修改函数也就差不多了。最后再进行一些对齐之间的调节,修改函数也就做完了。图3-2-2-e电子科技大学成都学院课程设计图3-2-2-f3.3程序归总和调试等各个成员把每个人自己负责的那一部分程序完成后就要将各个函数组合起来,使其实现相应的功能。按照前面想的系统结构体系,首先定义一个结构体,结构体中包含工会成员的所有信息,在定义了结构体过后就要对函数进行声明,函数只有在声明后才能调用。然后编写主函数,在主函数中实现各个函数的调用,选择同样用switch和case来共同完成,先调用主界面函数在提示请选择的服务,然后从键盘上输入你要实现某一功能所对应的序号,同样考虑到程序的更加完善这里用一个判断来判断你是否输入正确,主页面中只有1-6,若超出此范围提示对不起,您输入有误,请重新输入,如果输入正确,则执行的case中相应的语句,也就是各个函数的调用。这里输入1,则调用录入函数;输入2,则调用浏览函数;输入3,则调用查询函数;输入4,则调用删除函数;输入5,则调用修改函数。最后还加一条输入6,则退出程序,然后就是在执行完函数调用后,选择是继续使第三章程序实现详细过程用程序还是退出程序,如图3-3所示。最后还要做的,也是最重要的就是让程序能够顺利执行,这也是最麻烦的一步,由于各个函数在调用时所用到的数据不一样,这个时候要全部改成相同的。这个时候有个难点就是成员信息的保存,以及在各个子函数中如何去调用这个保存了的函数。然而函数的保存我们以前没有学过,于是只有自己翻阅书籍查阅资料,看打了几个案例后,它们实现保存函数都是通过下面这段程序来实现的:/******************保存文件函数****************/voidsave(intm)//保存m个成员数据{inti;/*计数*/FILE*fp;/*文件变量*/if((fp=fopen(employee_list,wb))==NULL)/*试图打开成员列表文件(二进制写入),如出错,提示后退出。*/{printf(成员列表为空,不能打开\n);exit(0);}for(i=0;im;i++)/*将内存中工会成员的信息输出到磁盘文件中去*/if(fwrite(&em[i],sizeof(structemployee),1,fp)!=1)//逐个写入成员数据,如出错,提示后关闭成员列表文件退出。电子科技大学成都学院课程设计printf(写入出错\n);fclose(fp);}intload()/*读入成员数据*/{FILE*fp;inti=0;if((fp=fopen(employee_list,rb))==NULL)/*试图打开成员列表文件(二进制读出),如出错,提示后退出。*/{printf(不能打开成员列表\n);exit(0);}else{do{fread(&em[i],sizeof(structemployee),1,fp);/*逐个读入成员数据*/i++;}while(feof(fp)==0);}fclose(fp);/*关闭成员列表文件*/return(i-1);/*返回成员个数*/}将这段文件保存函数加入进去后,然后就要不停地调试程序,检查程序中的错误,然后改正,刚开始错误好多,一条一条的慢慢改正,好让程序最终能够正常运行。不得不说,调试程序这一步是最麻烦,最累也是最耗时间的。通过不懈的努力,一个错误一个错误的改正,终于经过5天的调试,最终程序的得以正常运行,顿时心中大有成就感。后面的任务就是不断运行,去找程序中的不足的地方,也就是bug。接下来的两天我们小组程序都各自尝试着运行程序,去发现程序中的缺陷,比如提示错误什么还有就是那些地方应该加一些文字
本文标题:C语言程序设计论文
链接地址:https://www.777doc.com/doc-6183117 .html