1、此程序是根据本校情况和老师指导所编写,用以解决教师对学生成绩的添加、修改、删除以及学生对其成绩的查询等工作。2.2开发工具介绍Visual C+ Visual C+是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C+1.0后,随着其新版本的不断问世,Visual C+已成为专业程序员进行软件开发的首选工具。 虽然微软公司推出了Visual C+.NET(Visual C+7.0),但它的应用的很大的局限性,只适用于Windows 2000,Windows XP和Windows NT4.0。所以实际中,更多的是以Visual C+6.0为平台。 Visua
2、l C+6.0不仅是一个C+编译器,而且是一个基于Windows操作系统的可视化集成开发环境。Visual C+6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。 这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。 Visual C+它大概可以分成三个主要的部分: 1 Developer Studio。2 MFC。3 Platform SDK。1三、总体设计3.1总体思想本系统主要的设计思想是实现对职工信息的录入、删除、排序、查询等主要功能。职工信息以文件的形式存储。系统的人机接口采用简单的字符界面进
3、行交互。系统的设计方法是结构化设计方法,采用C语言进行开发。软件开发平台采用Visual C+6.0,主要考虑在VC中可以使用中文,用户交互界面设计比较美观清晰。3.2软件模块结构图根据需求分析结果,职工信息管理系统可以分为显示员工资料、录入员工资料、员工信息查询、删除员工信息、员工信息排序、退出信息系统。如图3-1所示。图3-13.3系统流程图3.3.1主函数3.3.2显示函数3.3.3录入函数3.3.4查询函数3.3.5删除函数3.3.6排序函数四、详细设计和系统实施4.1数据结构设计4.1.1定义数组定义一维数组struct worker work50。用于定义员工的总人数,当员工总人数
4、超过50后便不能再录入员工资料。4.1.2定义结构体结构体struct worker用于存放存放员工的资料,包括员工的基本信息:工号,姓名,年龄,学历,工资,住址,电话号码。struct worker int num。 工号 char name15。 名字 char xingbie。 性别 int age。 年龄char exp6。 学历int wage。 工资char address20。 住址 char tel12。 电话号码。int count=0。 当前工人个数int sort_type=0。 当前排序类型4.1.3函数功能描述函数主界面:void homepage()。显示职工成绩信
5、息:void display()。录入职工信息信息:void input()。删除职工信息:void del()。查询职工信息:void find()。排序职工信息:void sort()。用户等待函数:void waiting()。退出系统函数:void quit()。4.2界面设计4.2.1用户登录界面此模块用于欢迎界面,同时要求用户输入用户名和密码,只有当两者都正确时,才能进入到系统,当有三次错误,系统就会自动退出,如图4-1所示。图4-1代码实现:void main() int i=0,k=0。 char username15,pwd6。for(i=0。i3。i+) printf(n请
6、输入用户名:)。 gets(username)。 printf(n请输入6位密码: gets(pwd)。 if(strcmp(username,admin)=0)&(strcmp(pwd,123456)=0)n您已经成功登录 k=1。 for(i=0。20。. Sleep(100)。 system(cls homepage()。 break。 elsen用户名或密码无效 请重新输入:n continue。 if(k=0)n连续输入错误3次 将退出程序n Sleep(2000)。 quit()。在此模块中,if(strcmp(username,Admin)=0),用于检测用户名和密码是否正确。此
7、段代码用于获取账户名和密码并计数是否超过三次,超过三次,则有Sleep(2000)。实现退出程序。4.2.2主界面此模块主要实现进入主界面和根据用户需要进入相应界面,包括显示界面,录入界面,删除界面,排序界面并可以选择退出,如图4-2所示:图4-2代码实现void homepage() char n。 while (n!=1)&(n!23450)n请选择: fflush(stdin)。 scanf(%c,&n)。 switch(n)case : display()。 if(count50)input()。printf(记录数已满n break。此模块中,switch(n),case()用于判定
8、主界面的选项,根据选项进行设置。其中if(count50)用于限制录入员工的人数,超过50名员工就无法再进行录入,并且直接通过sleep(2000)。homepage()回到主界面上。4.2.3显示界面此模块是用来显示员工的资料信息的,包括工号,姓名,性别,年龄,学历,工资,住址,电话等基本信息,一边管理员能够及时的掌握到所要员工的资料。如图4-3所示。图4-3void display() int i。 char c。printf(备注:学历(1=中专,2=大专,3=本科,4=硕士,5=博士,6=其它):nnn switch(sort_type) case 0:tt未排序:nn case 1:
9、tt按工号排序:/sort()。break。 case 2:tt按工资排序:t工号t姓名t性别t年龄t学历t工资t住址t电话n此模块中有三种显示方式,第一种是无序显示,就是按照录入时的顺序显示,还有两种分别是是按照工号和工资来排序。后两种显示方式主要是有switch(sort_type)语句来实现的,它相当于一个开关,与下面的case()相对应,相括号中的数字相对应时,就会执行相应的语句。4.2.4录入界面这个模块主要是录入员工资料,录入的顺序如图所示,当录入的员工人数满到50后,便不能再进行录入员工资料,此时已经达到了录入人数的最大值。如图4-4所示。图4-4void input() int
10、 i,numcheck。do printf(工号:%dworkcount.num)。 numcheck=1。 if(workcount.num0)请输入正整数:count。 if(workcount.num=worki.num) numcheck=0。工号重复,重新输入: do c=getchar()。 if(c=y|c=Y) count+。此模块中if(workcount.num=worki.num);numcheck=0。很是重要,它判定录入的工号是否重复,重复的话会有重新输入的提示,避免职工信息的重复。当记录数已满时,通过sleep(2000),使之回到主界面,进行其他选项设置。4.2.
11、5信息查询界面此模块用于职工信息的查询,共分为两种查询方式,一是按工号查询,二是按学历查询。用if函数来实现,可快速查询到职工的姓名、工号、学历、电话等详细信息。如图4-5所示。图4-5void find() int i,j。 int choice=0。 int find_num。 char findedu6。tt请选择查询功能:t1.按工号查询nt2.按学历查询n请输入选择: scanf(choice)。 while (choice!=1)&(choice!=2)。 if (choice=1)nt请输入要查询的职工号nfind_num)。n正在查询,请稍候 system(nn按任意键返回n
12、c=getch()。此模块中,通过while (choice!这个选择来实现查询的方式,选择“1”为工号查询,选择“2”则为按学历查询。if (find_num=worki.num)即为根据职工号进行查询,strcmp(findedu,worki.exp)根据学历进行职工信息查询。4.2.6删除界面此模块用于删除员工信息,对于已经无用的员工信息进行删除,采用按工号删除的模式。如图4-6所示。图4-6void del() int i,j,del_num,match=0。请输入要删除的员工工号:del_num)。 waiting()。 if(worki.num=del_num) match=1。
13、for(j=i。jj+) workj=workj+1。 count-。此模块中,首先还是要先进职工信息查询模块,然后再根据查询到的职工号进行删除。即为显示要删除的职工号,if(c=)则是确定是否删除选定的职工信息。最后通过homepage()回到主界面。五、遇到的问题及解决办法 1.在一些字符或字符串的定义上出项错误,如定义职工电话号码的时候,用成了float类型,而正确的应该是char类型。 2在进行模块函数设计时,find()函数功能没有设计好,导致部分函数代码过长,可读性降低,以至于再次重写里面的一小部分代码,浪费了大量的时间。3在整个程序设计编写完成后,编译时出现了大量的错误,而且里面
14、大部分是因为大小写问题,还有void拼错拼成viod,还有“;”没有写,后来经过程序错误查询,一一更改了过来。4. 在编写代码时没有添加注解,降低了在调试测试时程序的可读性,同时也降低了与其他同学的交流,虽然在测试过程中我把全部的注解加上, 但也延长了整个程序的开发时间。六、课程设计总结通过此次学生成绩信息管理系统,让我熟悉了软件开发的流程,相信在以后的工作中我能在最短的时间内投入到大的程序开发工程中。在进行课程设计的前两天,不知道从何入手,很是不解,不知道我们究竟要做什么。后来通过上网找资料,才发现有好多做法,根本就看不完,此时才真正意识到差距所在。于是,通过借鉴网络作品,才发现作品并不是一
15、味的照搬照抄才实用,集众家之所成,不断完善,才能造出属于自己的作品,并且实用。在整个课程设计中,我认为最重要的就是耐心和细心。细心,就是在编写过程中注意拼写,仔细编写程序;耐心,就是程序编译中出现很多错误的时候能够耐心去修改,只有这样,才能很好的完成程序。虽然在整个过程中出现了不少错误,但最终还是圆满完成了,此次程序设计的经历让我学到了太多,同时也让我理解到参加的工程越大越能学到知识,因此以后我会积极主动的去参加一些工程,以此来提高自己的技能和编程经验。七、参考文献【1】.实用c语言简明教程李金祥、顾小晶主编【2】.c+语言程序设计,刘振安,刘燕君,孙忱,机械工业出版社;【3】.C语言程序设计
16、一体化案例教程,刘维富,清华大学出版社;【4】.C语言课程设计,黄明,梁旭,万洪莉,电子工业出版。附录(源程序代码)#includestring.hwindows.hconio.h /主界面 /显示全部信息 /录入 插入 /删除记录 /排序 /等待界面 /退出界面 /工号 /名字 /性别 /年龄 char exp6。 /学历 int wage。 /工资 char address20。/住址 /电话号码 /当前工人个数 /当前排序类型struct worker work50。color 3f tn t*n t*n t*n t* *n t* 欢迎使用职工信息管理系统 *n t* 郝佳丽 *n t* 2011.06.20 *n t*n tn for(i=0。tnt*nt* * *nt* 1.显示员工资料 * 2.录入员工资料 *nt* 3.员工信息查询 * 4.删除员工记录 *nt* 5.员工信息排序 * 0.退出信息系统 *ntn case 50) input()。 printf( find()。 case del()。 break。 sort()。 default:n选项错误nv
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1