内蒙古科技大学课程设计报告书

上传人:无*** 文档编号:114049308 上传时间:2022-06-27 格式:DOC 页数:34 大小:227KB
收藏 版权申诉 举报 下载
内蒙古科技大学课程设计报告书_第1页
第1页 / 共34页
内蒙古科技大学课程设计报告书_第2页
第2页 / 共34页
内蒙古科技大学课程设计报告书_第3页
第3页 / 共34页
资源描述:

《内蒙古科技大学课程设计报告书》由会员分享,可在线阅读,更多相关《内蒙古科技大学课程设计报告书(34页珍藏版)》请在装配图网上搜索。

1、.科技大学本科生课程设计说明书题 目:C语言课程设计 职工信息管理系统学生:杉杉学 号:1376807439专 业:计算机科学与技术班 级:2013级一4班指导 柏建普33 / 34科技大学课程设计任务书课程名称C语言课程设计设计题目职工信息管理系统指导教师柏建普时间2014.12.312014.1.4.一、教学要求1. 巩固和加深学生对C语言课程的基本知识的理解和掌握2. 掌握C语言编程和程序调试的基本技能3. 利用C语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C语言解决实际问题的能力二、设计资料与参数每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目

2、选定后不可更换。职工信息管理系统设计职工信息包括职工号、性别、出生年月、学历、工资、住址、等(职工号不重复)。试设计一职工信息管理系统,使之能提供以下功能:v 职工信息录入功能(职工信息用文件保存)输入v 职工信息浏览功能输出v 查询或排序功能:(至少一种查询方式) 算法按工资查询 按学历查询等v 职工信息删除、修改功能(任选项)三、设计要求与成果1. 分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多3人)协作完成一个题目)2. 写出详细设计说明(至少包括功能实现分析和模块流程图)3. 编写程序代码,调试程序使其能正确运行(代码书写要规,标示符要见名知意,要有必要的注释,每人至少

3、3个函数,每人至少200行代码,不包括注释和花括号)4. 设计完成的软件要便于操作和使用5. 设计完成后提交课程设计报告(请严格按照模板进行排版)四、进度安排第一天 选择课程设计题目,分析课题的要求第二天 编程第三天 编程与调试第四天 写课程设计报告第五天 提交课程设计报告(打印稿与电子稿)五、评分标准1. 根据平时上机考勤、表现和进度,教师将每天点名和检查2. 根据课程设计完成情况,必须有可运行的软件。3. 根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不与格。六、建议参考资料1C语言程序设计,谭浩强,清华大学2C语言程序设计课程设计,振安,机械工业目 录科技大学课程设计任务书I

4、第一章需求分析31.1引言31.2任务概述31.3数据描述41.4功能需求41.5性能需求51.6运行需求51.7任务计划5第二章概要设计62.1总体设计62.2数据结构设计62.3接口设计72.4运行界面设计8第三章详细设计93.1输入模块设计93.2输出模块设计113.3查找模块设计123.4排序模块设计14第四章测试分析164.1测试程序执行情况164.2出现的问题和解决的方法20第五章用户手册215.1使用说明21第六章课程设计总结22附录:程序代码23参考文献34第一章 需求分析1.1 引言由于现今的职工信息管理非常繁琐,管理人员付出大量的工作时间,得到的效率很低。因此为提高工作效率

5、,减轻单位工作人员对职工信息进行登记,查找的工作,进而需要设计出以功能更完善、合理、先进的职工信息管理系统来管理。开发此职工信息管理系统软件,以供教学人员与操作者进行职工管理,方便操作者随时添加、查询、修改职工信息。 1.2 任务概述本课程设计主要解决职工信息管理问题。使用计算机进行信息管理,不仅提高了工作效率,而且大大的提高了其安全性,尤其对于复杂的信息管理,计算机能够充分发挥它的优越性,职工信息管理系统是一个工作单位不可缺少的部分,它的容对于教学人员与操作者来说都至关重要。 1、首先进行需求分析,搞清楚系统功能和任务;2、然后在总体设计中确定模块结构、划分功能模块,将软件功能需求分配给所划

6、分的最单元模块。确定模块间的联系,确定数据结构、文件结构、数据库模式,确定测试方法与策略;3、在详细设计中,为每个模块确定采用的算法,选择适当的工具表达算法的过程(流程图)来描述模块的详细过程。确定每一模块采用的数据结构和模块接口的细节,包括对系统外部的接口和用户界面,对系统部其他模块的接口;4、根据分析编写C语言代码。具体任务:1.职工信息管理系统设计,使之包括职工号、性别、年龄、学历、工资、住址、等(职工号不重复)。2.使这个管理系统具有以下功能:可以使系统以菜单方式工作、能够录入、查询、删除、排序职工的信息。3.可以按学历、按工号查询职工信息。使查询职工信息变得方便、简单.1.3 数据描

7、述该系统用下面五个功能模块编写,每个模块执行不同的功能,体现了模块化设计的思想。下面五个模块都是利用C语言文件,向文件中追加数据、修改数据、查询数据和删除数据。输入:可以输入通讯录记录,利用C语言文件,向文件中按顺序输入职工号、性别、出生年月、学历、职务、工资、住址、等(职工号不重复)再用fclose()函数关闭并保存文件。 输出:也是用通过循环依次输出文件中的数据,即输出所有职工信息记录。删除:输入你要删除职工信息后,系统会自动删除他/她的记录,在删除通过switch语句满足提示你确认删除的功能,只有等你确认删除后才会删除。查找:为了满足用户的实际需求,设计了两种查询方式可以用工号、学历两种

8、方式查找职工信息记录。这里用到strcmp()函数,通过比较字符串是否相同来判别是否找到相关信息,找到后就把文件中的数据赋给对应的变量,再把变量所带的值输出到屏幕上。保存:用到fclose()函数,每次操作成功后会自动保存到指定的文件中1.4 功能需求1) 输入功能:可以多次完成多个职工所有信息。2) 浏览功能:可以一次性浏览职工的所有信息。3) 查询功能:可以按职工工号和学历两种方式查询。4) 删除功能:可以对职工的信息进行删除。5) 排序功能:可以按职工号进行降序排序。6) 退出本系统1.5 性能需求1) 硬件环境 处理器:Inter CR300或是更高。 存:128MB(建议 196MB

9、)。 硬盘空间:20MB。 2) 软件环境 操作系统: Windows 2000/ XP 或是Windows 2000/Windows NT Server 4.01.6 运行需求1) 运行环境 运行环境:CodeBlocks/VisualC+6.01.7 任务计划设计资料与参数职工信息管理系统设计职工信息包括职工号、性别、出生年月、学历、工资、住址、等(职工号不重复)。试设计一职工信息管理系统,使之能提供以下功能:v 职工信息录入功能(职工信息用文件保存)输入v 职工信息浏览功能输出v 查询或排序功能算法按工号查询 按学历查询v 职工信息删除功能第二章 概要设计2.1 总体设计根据需求分析结果

10、,职工信息管理系统可以分为显示员工资料、录入员工资料、员工信息查询、删除员工信息、员工信息排序、退出信息系统。如图2-1所示。职工信息管理系统显示员工资料员工信息查询删除员工信息员工信息排序退出信息系统录入员工资料图2-1 软件模块结构图2.2 数据结构设计2.2.1定义数组定义一维数组struct worker work50;用于定义员工的总人数,当员工总人数超过50后便不能再录入员工资料。2.2.2定义结构体结构体struct worker用于存放存放员工的资料,包括员工的基本信息:工号,年龄,学历,工资,住址,。struct worker int num; 工号 char name15;

11、 名字 char xingbie; 性别 int age; 年龄 char exp6; 学历 int wage; 工资 char address20; 住址 char tel12; ;int count=0; 当前工人个数int sort_type=0; 当前排序类型2.3 接口设计 表2.1:函数列表函数名函数格式函数功能homepagevoid homepage();函数主界面displayvoid display();显示职工信息inputvoid input();录入职工信息delvoid del();删除职工信息findvoid find();查询职工信息sortvoid sort(

12、);排序职工信息quitvoid quit();退出系统函数2.4 运行界面设计主程序流程图如图2-4.所示开始提示输入用户名、密码密码正确重新登录?退出系统是否否是登录成功员工信息查询删除员工信息录入员工资料员工信息排序退出信息系统显示员工资料退出结束图2-4第三章 详细设计3.1 输入模块设计input()录入函数创建文件输入信息 关闭文件返回homepage()如图3-1所示图3-1这个模块主要是录入员工资料,录入的顺序如图所示,当录入的员工人数满到50后,便不能再进行录入员工资料,此时已经达到了录入人数的最大值。代码实现void input() int i,numcheck; char

13、 c; do printf(工号:n); scanf(%d,&workcount.num); numcheck=1; if(workcount.num0) printf(请输入正整数:n); for(i=0;icount;i+) if(workcount.num=worki.num) numcheck=0; printf(工号重复,重新输入:n); do c=getchar(); if(c=y|c=Y) count+; 此模块中if(workcount.num=worki.num);numcheck=0;很是重要,它判定录入的工号是否重复,重复的话会有重新输入的提示,避免职工信息的重复。当记录

14、数已满时,通过sleep(2000),使之回到主界面,进行其他选项设置。3.2 输出模块设计display()显示函数打开文件顺序输出返回homepage()如图3-2所示图3-2此模块是用来显示员工的资料信息的,包括工号,性别,年龄,学历,工资,住址,等基本信息,一边管理员能够与时的掌握到所要员工的资料。代码实现void display() int i; char c;printf(备注:学历(1=中专,2=大专,3=本科,4=硕士,5=博士,6=其它):nnn); switch(sort_type) case 0: printf(tt未排序:nn); break; case 1:print

15、f(tt按工号排序:nn); /sort();break; case 2:printf(tt按工资排序:nn);/sort();break; printf(t工号tt性别t年龄t学历t工资t住址tn);此模块中有三种显示方式,第一种是无序显示,就是按照录入时的顺序显示,还有两种分别是是按照工号和工资来排序。后两种显示方式主要是有switch(sort_type)语句来实现的,它相当于一个开关,与下面的case()相对应,相括号中的数字相对应时,就会执行相应的语句。3.3 查找模块设计如图3-3所示find()查询函数打开文件查询条件i = ?i = 1按工号查询i= 2按学历查询关闭文件返回h

16、omepage()是否图3-3此模块用于职工信息的查询,共分为两种查询方式,一是按工号查询,二是按学历查询。用if函数来实现,可快速查询到职工的、工号、学历、等详细信息。代码实现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 (choic

17、e=1)printf(nt请输入要查询的职工号n);scanf(%d,&find_num);printf(n正在查询,请稍候); for(i=0;i20;i+) printf(.); Sleep(100); system(cls);printf(nn按任意键返回n); c=getch(); system(cls); homepage();此模块中,通过while (choice!=1)&(choice!=2);这个选择来实现查询的方式,选择“1”为工号查询,选择“2”则为按学历查询。 if (find_num=worki.num)即为根据职工号进行查询,strcmp(findedu,worki

18、.exp)根据学历进行职工信息查询。3.4 排序模块设计如图3-4所示sort()排序函数打开文件排序条件i = ?i = 1i= 1按工号排序i= 2按工资排序关闭文件返回homepage()是否图3-4此模块用于职工信息的排序,共分为两种排序方式,一是按工号排序,二是按工资排序。可快速按需求对员工信息进行排序,以便于查看。代码实现:void display() int i; char c; system(cls);printf(备注:学历(1=中专,2=大专,3=本科,4=硕士,5=博士,6=其它):nnn); switch(sort_type) case 0: printf(tt未排序:

19、nn); break; case 1: printf(tt按工号排序:nn); /sort();break; case 2: printf(tt按工资排序:nn);/sort(); break; printf(t工号tt性别t年龄t学历t工资t住址tn);if (count=0) printf(nt无员工信息!n); for(i=0;icount;i+) printf(t%dt%st%ct%dt%st%dt%st%sn, worki.num,worki.name,worki.xingbie,worki.age,worki.exp,worki.wage,worki.address,worki.t

20、el); printf(nn按任意键返回n); c=getch(); system(cls); homepage();模块中,排序方式方式主要是有switch(sort_type)语句来实现的,它相当于一个开关,与下面的case()相对应,括号中的数字相对应时,就会执行相应的语句。选择来实现排序的方式,选择“1”为工号排序,选择“2”则为按工资排序。 第四章 测试分析4.1 测试程序执行情况4.1.1登陆界面如图4-1-1所示图4-1-14.1.2主界面如图4-1-2所示图4-1-24.1.3显示员工资料如图4-1-3所示图4-1-34.1.4录入员工资料如图4-1-4所示图4-1-44.1.

21、5查询员工资料如图4-1-5所示图4-1-54.1.6删除员工资料如图4-1-6所示图4-1-64.1.7员工信息排序如图4-1-7所示图4-1-74.1.8退出系统如图4-1-8所示图4-1-84.2 出现的问题和解决的方法 1.在一些字符或字符串的定义上出项错误,如定义职工的时候,用成了float类型,而正确的应该是char类型。 2在进行模块函数设计时,find()函数功能没有设计好,导致部分函数代码过长,可读性降低,以至于再次重写里面的一小部分代码,浪费了大量的时间。3在整个程序设计编写完成后,编译时出现了大量的错误,而且里面大部分是因为大小写问题,还有void拼错拼成viod,还有“

22、;”没有写,后来经过程序错误查询,一一更改了过来。4. 在编写代码时没有添加注解,降低了在调试测试时程序的可读性,同时也降低了与其他同学的交流,虽然在测试过程中我把全部的注解加上, 但也延长了整个程序的开发时间。第五章 用户手册(可选)5.1 使用说明(1)根据正确的提示安装软件。(2)Intel486以上系列、AMD K6 以上系列等PC台式机和便携式电脑都可运行。(3) 打开该程序系统,浏览菜单,根据需要选择功能,进行各项操作。操作如下:输入正确的用户名和密码进入主菜单。(如图4-1-1.默认用户名为:管理者,密码为:1)进入主菜单如图4-1-2,根据需要,选择对应的功能。1.显示员工信息

23、:职工号、性别、出生年月、学历、职务、工资、住址、(职工号不重复)。如图4-1-3所示。2.录入员工信息:将所需的职工信息输入。如图4-1-4所示。3.查询员工信息:则屏幕会出现两个对话框按学历和按工号查找,查处相应的职工信息。(此职工信息是否录入)。如图4-1-5所示。当查询不能显示需要时,进入录入程序,把所输入的信息进行录入,使之正确能够正常运行。或进入删除信息中,重新输入自己所要的信息。当信息输入正确,进入你所需要的菜单程序中:职工信息:显示包括职工号、性别、出生年月、学历、工资、住址、等(职工号不重复)。4.删除员工信息:选择你要删除的职工,输入职工号,则该职工信息将被系统删除。如图4

24、-1-6所示。(此职工信息是否录入)5.员工信息排序:则屏幕会出现两个对话框按工号和按工资排序,对职工信息进行相应的排序。如图4-1-7所示。排序完成后,可进入浏览信息页面,查看职工信息。0.退出信息系统:退出系统,感谢使用。如图4-1-8所示。第六章 课程设计总结通过此次学生成绩信息管理系统,让我熟悉了软件开发的流程,相信在以后的工作中我能在最短的时间投入到大的程序开发项目中。在进行课程设计的前两天,不知道从何入手,很是不解,不知道我们究竟要做什么。后来通过上网找资料,才发现有好多做法,根本就看不完,此时才真正意识到差距所在。于是,通过借鉴网络作品,才发现作品并不是一味的照搬照抄才实用,集众

25、家之所成,不断完善,才能造出属于自己的作品,并且实用。回顾起此次课程设计,至今我仍感慨颇多,的确,从拿到题目到完成整个编程,从理论到实践,在这些日子里,我学到很多很多的东西,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不

26、够深刻,掌握得不够牢固,比如说结构体通过这次课程设计之后,一定把以前所学过的知识本次课程设计结束了,对于我们的影响很大。我们通过这次实践学到了许多知识。学到了设计一个简单的系统。要注意哪些方面。也使我知道自己哪些方面做得还不够。我总结出了一点点的经验如下:要对系统的功能和要求做出详细的分析,并合理分解任务。 把分解出来的子任务,做给一个相对独立的模块。在设计一个模块之前,要简单构想一下总界面的显视情况。针对构想出来的界面进行程序的编写。在整个课程设计中,我认为最重要的就是耐心和细心。细心,就是在编写过程中注意拼写,仔细编写程序;耐心,就是程序编译中出现很多错误的时候能够耐心去修改,只有这样,才

27、能很好的完成程序。附录:程序代码#include#include#include#includevoid homepage(); /主界面void display(); /显示全部信息void input(); /录入 插入void find();void del(); /删除记录void sort(); /排序void quit(); /退出界面struct worker int num; /工号 char name15; /名字 char xingbie; /性别 int age; /年龄char exp6; /学历int wage; /工资char address20;/住址char t

28、el12; /;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(t*n); printf(t*n); printf(t* *n); printf(t* 欢迎使用职工信息管理系统 *n); printf(t* *n); printf(t* *n); printf(t* 杉杉 *n); printf(t* *n); printf(t* 2014.12.

29、30 *n); printf(t* *n); printf(t*n); printf(t*n);for(i=0;i3;i+) printf(n请输入用户名:); gets(username); printf(n请输入密码:); gets(pwd); if(strcmp(username,管理者)=0)&(strcmp(pwd,1)=0) printf(n您已经成功登录); k=1; for(i=0;i20;i+) printf(.); Sleep(100); system(cls); homepage(); break; else printf(n用户名或密码无效 请重新输入:n); cont

30、inue; if(k=0) printf(n连续输入错误3次 将退出程序n); Sleep(2000); quit();void homepage() char n; printf(nn);printf(t*n);printf(t* * *n);printf(t* 1.显示员工资料 * 2.录入员工资料 *n);printf(t* * *n);printf(t*n);printf(t* * *n);printf(t* 3.员工信息查询 * 4.删除员工记录 *n);printf(t* * *n);printf(t*n); printf(t* * *n);printf(t* 5.员工信息排序 *

31、 0.退出信息系统 *n);printf(t* * *n); printf(t*n); while (n!=1)&(n!=2)&(n!=3)&(n!=4)&(n!=5)&(n!=0) printf(n请选择:); fflush(stdin); scanf(%c,&n); switch(n) case 1: display(); break;case 2: if(count50) input(); else printf(记录数已满n); Sleep(2000); system(cls); homepage(); break;case 3: find(); break; case 4: del(

32、);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(tt未排序:nn); break; case 1: printf(tt按工号排序:nn); /sort();break; case 2: printf(tt按工资排序:nn);/sort(); b

33、reak; printf(t工号tt性别t年龄t学历t工资t住址tn);if(count=0) printf(nt无员工信息!n); for(i=0;icount;i+) printf(t%dt%st%ct%dt%st%dt%st%sn, worki.num,worki.name,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

34、c; system (cls); do printf(工号:n); scanf(%d,&workcount.num); numcheck=1; if(workcount.num0) printf(请输入正整数:n); for(i=0;icount;i+) if(workcount.num=worki.num) numcheck=0; printf(工号重复,重新输入:n); while(!numcheck); printf(:); fflush(stdin); scanf(%s,workcount.name);fflush(stdin); printf(性别(F:M):); scanf(%c,

35、&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(住址:);scanf(%s,workcount.address);printf(:);scanf(%s,workcount.tel); printf(n是否继续输入(y/n):n); do c=getchar(); if(c=y|c

36、=Y) count+; if(count50) input(); else printf(记录数已满n); Sleep(2000); system(cls); homepage(); else 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,&del_num); for(i=0;icount;i+)

37、if(worki.num=del_num) printf(n删除成功!); match=1; for(j=i;jcount;j+) workj=workj+1;count-; if(!match) printf(n没有要找的工号.n); printf(n是否继续删除?(y/n); fflush(stdin); do c=getchar(); if(c=y|c=Y) del(); else if(c=n|c=N) system(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(请输入选择:); do scanf(%d,&choice); while(choice!=1)&(choice!=2); switch(choice) case 1: for(i=0;icount-1;i+) for(j=0;jworkj+1.num) temp=workj; workj=workj+1; workj+1=temp;

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!