版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、XXXXXXX 大学课程设计说明书名称 计算机语言C课程设计 一一职工信息管理系统设计2011年6月20日至2011年6月26日 共1周院系.班级.姓名.学号.系 王 任.教研室主任.指导教师一、课程设计的目的与要求错 .误!未定义书签。1.1 目的 错.误!未定义书签。1.2 要求 错 .误!未定义书签。二、题目说明错.误!未定义书签。2.1 程序开发背景错.误!未定义书签。2.2 开发工具介绍错.误!未定义书签。三、总体设计错.误!未定义书签。3.1 总体思想错.误!未定义书签。3.2 软件模块结构图错.误!未定义书签。3.3 系统流程图错.误!未定义书签。3.3.1 主函数 错.误!未定
2、义书签。3.3.2 显示函数错.误!未定义书签。3.3.3 录入函数错.误!未定义书签。3.3.4 查询函数错.误!未定义书签。3.3.5 删除函数错.误!未定义书签。3.3.6 排序函数错.误!未定义书签。四、详细设计和系统实施错.误!未定义书签。4.1 数据结构设计错.误!未定义书签。4.1.1 定义数组错.误!未定义书签。4.1.2 定义结构体错.误!未定义书签。4.1.3 函数功能描述错.误!未定义书签。4.2 界面设计错.误!未定义书签。4.2.1 用户登录界面错.误!未定义书签。4.2.2 主界面 错.误!未定义书签。4.2.3 显示界面错.误!未定义书签。4.2.4 录入界面错.
3、误!未定义书签。4.2.5 信息查询界面错 .误!未定义书签。4.2.6 删除界面错.误!未定义书签。五、遇到的问题及解决办法错 .误!未定义书签。六、课程设计总结错.误!未定义书签。七、参考文献错.误!未定义书签。附录(源程序代码)错.误!未定义书签。7一、课程设计的目的与要求1.1 目的1 .掌握C 语言编程的基础知识较熟练的编写C 语言应用程序。2 .能够利用所学的基本知识和技能,解决简单的程序设计问题,增强独立完成工作的能力。3 .通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能力都有一个很大的提高,进一步培养学生热爱专业的思想,同时对本专业综合素质的提高起一个积极的推动
4、作用。4 .2 要求1 .要求利用C 语言面向过程的编程思想来完成系统的设计;2 .突出C 语言的函数特征,以多个函数实现每一个子功能;3 .画出功能模块图;4 . 进行简单界面设计,能够实现友好的交互;5 . 具有清晰的程序流程图和数据结构的详细定义;6 . 熟练掌握C 语言对文件的各种操作。二、题目说明1. 职工信息管理系统设计, 使之包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。2. 使这个管理系统具有以下功能:可以使系统以菜单方式工作、能够录入、查询、删除、 排序职工的信息。3. 可以按学历、按工号查询职工信息。使查询职工信息变得方便、简单。2.1 程序开发背
5、景现在随着社会的进步和人民生活水平的逐渐提升,大学生数量越来越多,相应的所需要处理的的信息也越来越复杂,而凭借人力不可能准确及时地处理所有信息,因此,编写 此程序是极为必要的。但由于各个学校的情况不同,所以难以编写一个通用的成绩管理程 序。此程序是根据本校情况和老师指导所编写,用以解决教师对学生成绩的添加、修改、删除以及学生对其成绩的查询等工作。2.2 开发工具介绍Visual C+ Visual C+ 是一个功能强大的可视化软件开发工具。自1993年Microsoft 公司推出Visual C+1.0 后,随着其新版本的不断问世,Visual C+ 已成为专业程序员进行软件开发的首选工具。虽
6、然微软公司推出了Visual C+.NET(VisualC+7.0) ,但它的应用的很大的局限性,只适用于Windows 2000,Windows XP 和 WindowsNT4.0。所以实际中,更多的是以 Visual C+6.0为平台。 Visual C+6.0不仅是一个 C+编译器,而且是一个基于 Windows操作系统的可视化集成开发环境。Visual C+6.0 由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard 等开发工具。这些组件通过一个名为Developer Studio 的组件集成为和谐的开发环境。Visual C+ 它大概可以分
7、成三个主要的部分:1 Developer Studio 。 2 MFC。3 Platform SDK 。 1三、总体设计3.1 总体思想本系统主要的设计思想是实现对职工信息的录入、删除、排序、查询等主要功能。职工 信息以文件的形式存储。系统的人机接口采用简单的字符界面进行交互。系统的设计方法 是结构化设计方法,采用C语言进行开发。软件开发平台采用Visual C+6.0 ,主要考虑在VC中可以使用中文,用户交互界面设计比较美观清晰。3.2 软件模块结构图根据需求分析结果,职工信息管理系统可以分为显示员工资料、录入员工资料、员工信息查询、删除员工信息、员工信息排序、退出信息系统。如图 3-1所示
8、。职工信息管理系统1-3 图3.3系统流程图3.3.1 主函数3.3.2显示函数#如图3-3所示图3-33.3.3录入函数如图3-4所示图3-43.3.4查询函数9如图3-5所示图3-53.3.5删除函数#如图3-6所示图3-63.3.6排序函数11如图3-7所示图3-7四、详细设计和系统实施4.1 数据结构设计4.1.1 定义数组定义一维数组struct worker work50; 用于定义员工的总人数,当员工总人数超过50 后便不能再录入员工资料。4.1.2定义结构体结构体 struct worker 用于存放存放员工的资料,包括员工的基本信息:工号,姓 名,年龄,学历,工资,住址,电话
9、号码。struct workerint num;工号char name15;名字char xingbie;性别int age;年龄char exp6;学历int wage;工资char address20;住址char tel12;电话号码;当前工人个数int count=0;39int sort_type=0;当前排序类型4.1.3函数功能描述函数主界面:void homepage();显示职工成绩信息:void display();录入职工信息信息:void input();删除职工信息:void del();查询职工信息:void find();排序职工信息:void sort();用户
10、等待函数:void waiting。;退出系统函数:void quit();4.2界面设计4.2.1用户登录界面此模块用于欢迎界面,同时要求用户输入用户名和密码,只有当两者都正确时,才能进入到系统,当有三次错误,系统就会自动退出,如图4-1所示。8 ,C:VDocuaente and SettingsVSindentDebug001.ezeM MMM MMM MMM MM欢迎使用职工信息管理系统郝佳丽2011.06.20tj* 'aj" "aj, 'aj* bj* ".j" "aj, 'aj* bj* ".j&
11、quot; "aj, 'aj* bj* aj* aj* aj* bj* aj* aj* aj* bj* aj* aj* aj* bj* aj* aj* aj* bj* *aj* aj* aj* bj* *aj* ".j" "aj, 'bj* *aj* ".j" "aj, 'bj* *aj* tj- aj* aj* *aj* ".j "w* 嶷 -费费费,-黏具-鼻-鼻-舞鼻 典,鼻 餐 费,费鼻-典,费鼻 典,-费餐 费,-费黏/鼻-鼻-鼻 费,鼻黏*,黏请输入用户名:admin请
12、输入6位密阳;123456Ld您已经成功登录图4-1代码实现:void main() int i=0,k=0;char username15,pwd6;for(i=0;i<3;i+)printf("n请输入用户名:");gets(username);printf("n请输入6位密码:");gets(pwd);if(strcmp(username,"admin")=0)&&(strcmp(pwd,"")=0) printf("n您已经成功登录");k=1;for(i=0;i&
13、lt;20;i+)printf(".");Sleep(100);system("cls");homepage();break;elseprintf("n用户名或密码无效请重新输入:n");continue;if(k=0)printf("n连续输入错误3 次 将退出程序n");Sleep(2000);quit();在此模块中,if(strcmp(username,"Admin")=0)&&(strcmp(pwd,"")=0),用于检测用户名和密码是否正确。for
14、(i=0;i<3;i+)printf("n请输入用户名:");gets(username);printf("n请输入 6 位密码 :");gets(pwd);此段代码用于获取账户名和密码并计数是否超过三次,超过三次,则有Sleep(2000);实现退出程序。4.2.2 主界面此模块主要实现进入主界面和根据用户需要进入相应界面,包括显示界面,录入界面,删除界面,排序界面并可以选择退出,如图4-2 所示:图4-2代码实现void homepage()char n;while (n!='1')&&(n!='2
15、9;)&&(n!='3')&&(n!='4')&&(n!='5')&&(n!='0')printf("n请选择:");fflush(stdin);scanf("%c",&n);switch(n)case '1':display。;break;case '2':if(count<50) input();elseprintf("记录数已满n");Sleep(2000)
16、;system("cls");homepage();break;此模块中,switch(n) , case()用于判定主界面的选项,根据选项进行设置。其中if(count<50)用于限制录入员工的人数,超过50名员工就无法再进行录入,并且直接通过sleep(2000);homepage() 回到主界面上。4.2.3显示界面此模块是用来显示员工的资料信息的,包括工号,姓名,性别,年龄,学历,工资, 住址,电话等基本信息,一边管理员能够及日的掌握到所要员工的资料。如图4-3所示。图4-3代码实现void i;char c;printf("
17、备注:学历(1二中专,2二大专,3二本科,4二硕士 ,5二博士 ,6=其它):nnn"); switch(sort_type)case 0: printf("tt 未NF序:nn"); break;case 1:printf("tt 按工号排序:nn"); /sort();break;case 2:printf("tt 按工资排序:nn");/sort();break;)printf("t工号t姓名t性别t年龄t学历t工资t住址t电话n");此模块中有三种显示方式,第一种是无序显示,就是按照录入时的顺序显
18、示,还有两种分别是是按照工号和工资来排序。后两种显示方式主要是有switch(sort_type)语句来实现的,它相当于一个开关,与下面的case()相对应,相括号中的数字相对应时,就会执行相应的语句。4.2.4录入界面这个模块主要是录入员工资料,录入的顺序如图所示,当录入的员工人数满到50后,便不能再进行录入员工资料,此时已经达到了录入人数的最大值。如图 4-4所示。图4-4代码实现void input() int i,numcheck;char c;do printf("工号:n");scanf("%d",&workcount.num);nu
19、mcheck=1;if(workcount.num<0)printf("请输入正整数:n");for(i=0;i<count;i+)if(workcount.num=worki.num) numcheck=0;printf("工号重复,重新输入:n");doc=getchar();if(c='y'|c='Y')count+;此模块中if(workcount.num=worki.num) ; numcheck=0;很是重要,它判定录入的工号是否重复,重复的话会有重新输入的提示,避免职工信息的重复。当记录数已满时,
20、通过sleep(2000),使之回到主界面,进行其他选项设置。4.2.5信息查询界面此模块用于职工信息的查询,共分为两种查询方式,一是按工号查询,二是按学历查询。用if函数来实现,可快速查询到职工的姓名、工号、学历、电话等详细信息。如图4-5所示。图4-5代码实现void find()int i,j;int choice=0;int find_num;char findedu6;char c;system("cls");printf("tt 请选择查询功能:n");printf("t1.按工号查询n");printf("t2
21、.按学历查询n");printf(" 请输入选择:");doscanf("%d",&choice);while (choice!=1)&&(choice!=2);if (choice=1)printf("nt 请输入要查询的职工号n");scanf("%d",&find_num);printf("n 正在查询,请稍候");for(i=0;i<20;i+)printf(".");Sleep(100);system("cl
22、s");printf("nn 按任意键返回n");c=getch();system("cls");homepage();此模块中,通过while (choice!=1)&&(choice!=2); 这个选择来实现查询的方式,选择“ 1”为工号查询,选择“2”则为按学历查询。if (find_num=worki.num) 即为根据职工号进行查询,strcmp(findedu,worki.exp) 根据学历进行职工信息查询。4.2.6删除界面此模块用于删除员工信息,对于已经无用的员工信息进行删除,采用按工号删除的模 式。如图4-6所
23、示。图4-6代码实现void del() int i,j,del_num,match=0;char c;system("cls");printf(" 请输入要删除的员工工号:n");scanf("%d",&del_num);waiting。;for(i=0;i<count;i+) if(worki.num=del_num) match=1;for(j=i;j<count;j+)workj=workj+1;count-; 此模块中,首先还是要先进职工信息查询模块,然后再根据查询到的职工号进行删除。printf(&qu
24、ot;%d",&del_num);即为显示要删除的职工号,if(c='y'|c='Y')则是确定是否删除选定的职工信息。最后通过homepage()回到主界面。五、遇到的问题及解决办法1 . 在一些字符或字符串的定义上出项错误,如定义职工电话号码的时候,用成了float 类型,而正确的应该是char 类型。2 在进行模块函数设计时,find() 函数功能没有设计好,导致部分函数代码过长,可读性降低,以至于再次重写里面的一小部分代码,浪费了大量的时间。3在整个程序设计编写完成后,编译时出现了大量的错误,而且里面大部分是因为大小写问题,还有void
25、 拼错拼成viod ,还有“;”没有写,后来经过程序错误查询,一一更改了过来。4. 在编写代码时没有添加注解,降低了在调试测试时程序的可读性,同时也降低了与其他同学的交流,虽然在测试过程中我把全部的注解加上,但也延长了整个程序的开发时间。六、课程设计总结通过此次学生成绩信息管理系统,让我熟悉了软件开发的流程,相信在以后的工作中 我能在最短的时间内投入到大的程序开发项目中。在进行课程设计的前两天,不知道从何入手,很是不解,不知道我们究竟要做什么。 后来通过上网找资料,才发现有好多做法,根本就看不完,此时才真正意识到差距所在。于是,通过借鉴网络作品,才发现作品并不是一味的照搬照抄才实用,集众家之所
26、成,不断完善,才能造出属于自己的作品,并且实用。在整个课程设计中,我认为最重要的就是耐心和细心。细心,就是在编写过程中注意 拼写,仔细编写程序;耐心,就是程序编译中出现很多错误的时候能够耐心去修改,只有 这样,才能很好的完成程序。虽然在整个过程中出现了不少错误,但最终还是圆满完成了,此次程序设计的经历让 我学到了太多,同时也让我理解到参加的项目越大越能学到知识,因此以后我会积极主动 的去参加一些项目,以此来提高自己的技能和编程经验。七、参考文献【1】.实用c语言简明教程李金祥、顾小晶主编【2】.C+语言程序设计,刘振安,刘燕君,孙忱,机械工业出版社;【3】.C语言程序设计一体化案例教程,刘维富
27、,清华大学出版社;4 .C语言课程设计,黄明,梁旭,万洪莉,电子工业出版。附录(源程序代码)#include<stdio.h>#include<string.h>#include<windows.h>#include<conio.h>void homepage(); / 主界面void display(); /显示全部信息void input(); /录入 插入void find();void del();/删除记录void sort();/排序void waiting(); /等待界面void quit();/退出界面struct worker
28、int num; /工号char name15; /名字char xingbie; /性别int age; /年龄char exp6; /学历int wage; /工资char address20;/ 住址char tel12;/电话号码;int count=0; /当前工人个数int sort_type=0; /当前排序类型struct worker work50;void main() int i=0,k=0;char username15,pwd6;system("color 3f");printf("nn");printf(" tn&q
29、uot;);printf(" t*1 n");printf("1 n");printf("tt1 *1*1*11*1 n");printf("1 n");t*1111111*printf("1 n");printf("1 n");printf("1 n");printf("1 n");printf("1 n");printf("1 n");printf("1 n");print
30、f("tttttttt*1 *欢迎使用职工信息管理系统*1 *郝佳丽*| *2011.06.20*1*1 n");printf(" t1 n");printf(" t *央*1*11*1 n");printf(" t1n");for(i=0;i<3;i+)printf("n 请输入用户名:");gets(username);printf("n请输入 6 位密码 :");gets(pwd);if(strcmp(username,"admin")=0)&
31、amp;&(strcmp(pwd,"")=0)printf("n您已经成功登录");k=1;for(i=0;i<20;i+)printf(".");Sleep(100);system("cls");homepage();break;elseprintf("n用户名或密码无效请重新输入:n");continue;if(k=0)printf("n连续输入错误3 次 将退出程序n");Sleep(2000);quit();void homepage()char n;p
32、rintf("nn");prnt(tn");printf("t*printf("tprintf("tprintf("tprintf("t*printf("tprintf("tprintf("tprintf("t*printf("tprintf("tprintf("tprintf("t*printf("tn");11* | n");* | n");* | n");* | n");
33、* | n");* | n");* | n");* | n");* | n");*1*1 *1 *1.显不'员工资料1 *1*1 *1 *3.员工信息查询| *1*| *1 *5.员工信息排序| *1*1* n");录入员工资料1 n");删除员工记录1 n");退出信息系统1 n");1while (n!='1')&&(n!='2')&&(n!='3')&&(n!='4'
34、)&&(n!='5')&&(n!='0')printf("n请选择 :");fflush(stdin);scanf("%c",&n);switch(n)case '1':display();break;case '2':if(count<50)input();elseprintf(" 记录数已满n");Sleep(2000);system("cls");homepage();break;case '
35、3':find();break;case '4':del();break;case '5':sort();break;case '0':quit();break;default:printf("n选项错误n");void display()int i;char c;system("cls");printf(" 备注:学历(1= 中专 ,2= 大专 ,3=本科 ,4=硕士 ,5= 博士 ,6= 其它 ):nnn");switch(sort_type)case 0:printf(&q
36、uot;tt未排序 :nn");break;case 1:printf("tt按工号排序:nn");/sort();break;case 2:printf("tt按工资排序:nn");/sort();break;printf("t工号 t 姓名 t 性别 t 年龄 t 学历 t 工资 t 住址 t 电话 n");if (count=0) printf("nt无员工信息!n");for(i=0;i<count;i+)printf("t%dt%st%ct%dt%st%dt%st%sn"
37、;,worki.num,,worki.xingbie,worki.age,worki.exp,worki.wage,worki.address,worki.tel);printf("nn按任意键返回n");c=getch();system("cls");homepage();void input()int i,numcheck;char c;system ("cls");doprintf("工号 :n");scanf("%d",&workcount.num);numc
38、heck=1;if(workcount.num<0)printf("请输入正整数:n");for(i=0;i<count;i+)if(workcount.num=worki.num)numcheck=0;printf("工号重复, 重新输入:n");while(!numcheck);printf("姓名 :");fflush(stdin);scanf("%s",);fflush(stdin);printf("性别 (F:M):");scanf("
39、%c",&workcount.xingbie);printf(" 年龄 :");scanf("%d",&workcount.age);fflush(stdin);printf(" 学历 (1= 中专 ,2= 大专 ,3= 本科 ,4= 硕士 ,5=博士 ,6=其它 ):n");scanf("%s",workcount.exp);printf(" 工资 :");scanf("%d",&workcount.wage);printf("住
40、址:");scanf("%s",workcount.address);printf("电话:");scanf("%s",workcount.tel);printf("n是否继续输入(y/n):n");doc=getchar();if(c='y'|c='Y')count+;if(count<50)input();elseprintf("记录数已满n");Sleep(2000);system("cls");homepage();el
41、se if(c='n'|c='N')count+;system("cls");homepage();else;while(c!='y')&&(c!='n')&&(c!='Y')&&(c!='N');void del()int i,j,del_num,match=0;char c;system("cls");printf(" 请输入要删除的员工工号:n");scanf("%d"
42、;,&del_num);waiting();for(i=0;i<count;i+)if(worki.num=del_num)match=1;for(j=i;j<count;j+)workj=workj+1;count-;.n");if(!match) printf("n没有要找的工号printf("n是否继续删除?(y/n)");fflush(stdin);doc=getchar();if(c='y'|c='Y')del();else if(c='n'|c='N')sys
43、tem("cls");homepage();while(c!='y')&&(c!='n');void sort()int i,j;int choice=0;struct worker temp;system("cls");printf("tt请选择排序功能:n");printf("t1.按工号排序n");printf("t2.按工资排序n");printf(" 请输入选择:");doscanf("%d",&a
44、mp;choice);while(choice!=1)&&(choice!=2);switch(choice)case 1:for(i=0;i<count-1;i+)for(j=0;j<count-i-1;j+)if(workj.num>workj+1.num)temp=workj;workj=workj+1;workj+1=temp;sort_type=1;break;case 2:for(i=0;i<count-1;i+)for(j=0;j<count-i-1;j+)if(workj.wage<workj+1.wage)temp=work
45、j;workj=workj+1;workj+1=temp;sort_type=2;break;waiting();");printf(" 排序完成!请按任意键返回查看!getch();system("cls");homepage();void find()int i,j;int choice=0;int find_num;char findedu6;char c;system("cls");printf("tt 请选择查询功能:n");printf("t1.按工号查询n");printf("t2.按学历查询n");printf(" 请输入选择:");doscanf("%d",&choice);while (choice!=1)&&(choice!=2);if (choice=1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 开发需求委托合同(2篇)
- 建筑材料采购分包合同(2篇)
- 2024年注册消防工程师题库参考答案
- 二零二五年度汽车租赁担保公司合同车辆作为抵押的担保公司服务协议4篇
- 二零二五版特色小吃店转让与加盟协议4篇
- 二零二五年度智慧城市建设项目融资合同及违约赔偿条款3篇
- 2025年度个人购房合同(含贷款及产权登记)4篇
- 平板灯施工方案
- 酸碱灭火器课程设计
- 2025年销售合同台帐模板(服装行业专用)
- 2019级水电站动力设备专业三年制人才培养方案
- 室内装饰装修施工组织设计方案
- 洗浴中心活动方案
- 送电线路工程施工流程及组织措施
- 肝素诱导的血小板减少症培训课件
- 韩国文化特征课件
- 抖音认证承诺函
- 清洁剂知识培训课件
- 新技术知识及军事应用教案
- 高等数学(第二版)
- 肺炎喘嗽的中医护理常规
评论
0/150
提交评论