参会人员管理系统课程设计说明书.doc

上传人:仙人指路1688 文档编号:2588702 上传时间:2023-02-20 格式:DOC 页数:17 大小:334.50KB
返回 下载 相关 举报
参会人员管理系统课程设计说明书.doc_第1页
第1页 / 共17页
参会人员管理系统课程设计说明书.doc_第2页
第2页 / 共17页
参会人员管理系统课程设计说明书.doc_第3页
第3页 / 共17页
参会人员管理系统课程设计说明书.doc_第4页
第4页 / 共17页
参会人员管理系统课程设计说明书.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《参会人员管理系统课程设计说明书.doc》由会员分享,可在线阅读,更多相关《参会人员管理系统课程设计说明书.doc(17页珍藏版)》请在三一办公上搜索。

1、程序设计课程设计报告课题 参会人员管理系统专业计算机科学与技术(软件工程)学生姓名班级学号指导教师完成日期2010年6月目录一 课程设计的目的.1二 课程设计任务与要求.1三 主要设计指标及特点.23.1 人员登录23.2 显示报道人员信息23.3 查询.43.4 统计.43.5 修改.63.6 删除.63.7 退出.7四 设计小结.8五 参考文献.9六 源程序.10一课程设计的目的1、加深对C语言程序设计课程知识的理解,掌握C语言应用程序的开发方法和步骤;2、进一步掌握和利用C语言程序设计能力;3、进一步理解和运用结构化程序设计的思想和方法;4、初步掌握开发一个小型实用系统的基本方法;5、学

2、会调试一个较长程序的基本方法;6、学会利用流程图或N-S图表示算法;7、掌握书写程序设计开发文档的能力(书写课程设计报告)。二 课程设计任务与要求1设计内容1.登录参会人员的下列信息:姓名、性别、年龄、单位房间号(设每个房间只住一人,房间号为101#120#,.,501#520#)。2、主菜单应至少包括以下几个菜单项: 人员登录、显示报道人员信息、查询、统计、修改、删除3、程序应分别用几个函数实现以上功能:随时对报道人员进行登录(login),来客登记的房间是根据客人要求分配的;如果客人申请的房间已有人登记了,可以让客人重新申请;如果所有房间都已经住满,则拒绝再进行人员登录;随时按所住房间号(

3、由小到大)输出(print)已报道人员信息;能够根据姓名实现对人员信息的查询;能够根据单位对与会人员进行分类统计,并输出统计结果;能够修改与会人员信息;能够删除某个参会人员,并清空其所住房间。2流程图参会人员管理系统人 员 登 录显示报道人员信息查 询修 改删 除统 计1三 主要设计指标及特点3.1人员登录主程序通过Menu函数实现该程序的主界面,函数体包含相应的printf语句来实现相应的菜单输出。void menu() printf(*n); printf(Meeting attendant Managing System Demon); printf(1.Staff loginn); p

4、rintf(2.Print Infon); printf(3.SearchByNamen); printf(4.Statisticsn); printf(5.Modifyn); printf(6.Deleten); printf(0.Quitn); printf(*n);3.2显示2对应的login界面,是通过调用login函数实现的。根据提示输入登录的信息,就完成了参会人员的基本信息的录入。strcpy(stafflength.room_num,room_num); /* 录入登陆信息*/ printf(Type in your name:); scanf(%s,&stafflength.n

5、ame); printf(Type in your gender:); scanf(%s,&stafflength.sex); printf(Type in your age:); scanf(%d,&stafflength.age); printf(Type in your dapartment:); scanf(%s,&stafflength.department); length+; /*参会人数加一*/ 在对有人登录的房间排好序后,用printf语句输出信息,如下:33.3查找按照提示输入3,进入查找界面。运用SearchByName功能,根据程序给出的提示:Type in the s

6、taffs name :根据输入信息,程序用for循环对已经登录的人员信息进行对比,看是否相符。 for(i=0;ilength;i+) if(strcmp(staffi.name,name)=0) /*判断名字是否相同,相同则输出人员信息*/ printf(%st,staffi.name); printf(%st,staffi.sex); printf(%dt,staffi.age); printf(%st,staffi.department); printf(%13s,staffi.room_num); printf(n); counter+; 3.4统计4按照提示输入4,运行Statis

7、tics。int flag=0; /*辅助标记*/ char department10030; /*用于记录不同单位的名字*/ int counter100; /*分别记录相应不同单位的参会人数*/ if(length!=0) k=0; /*单独处理数组第一个元素*/ strcpy(departmentk,staff0.department); /*记录单位*/ counterk=0;/*计数器清零*/ for(j=0;jlength;j+)/*计算次单位参会的总人数*/ if(strcmp(departmentk,staffj.department)=0) counterk+; for(i=

8、1;ilength;i+) for(index=0;index=k;index+) if(strcmp(departmentindex,staffi.department)=0) flag+; /*当前此单位在前面已经统计过*/ if(flag=0) /*出现一个未统计过的单位*/ k+; /*用两数组的下一个元素分别存放单位和该单位参会人数*/ strcpy(departmentk,staffi.department);/*记录单位*/ counterk=0;/*计数器清零*/ for(j=0;jlength;j+)/*计算次单位参会的总人数*/ if(strcmp(departmentk,

9、staffj.department)=0) counterk+; flag=0; /*辅助标志清零*/ 否则,输出No one logined yet. 53.5修改运行修改时,输入原先的房间号,根据提示再次输入要求进入的新的房间号,再次录入自己的个人信息。系统会输出Edit successfully 提示修改成功。3.6删除根据提示,选择6,运行delete 。输入要求删除的房间号。系统输出Delete successfully 表示操作成功。63.7退出选择0,退出程序。7四 设计小结这次的课程设计是一个巨大的挑战,是我们从未涉猎过的将多个函数运用起来,使之成为系统的课程。经过两个礼拜的努

10、力,终于完成了这次的课程设计。尽管结果并不是很令人满意,但是,不得不说,在这次的学习中,我学会了很多。在一开始的茫然不知所措到现在的渐入佳境,我是付出了很大的努力的。由于自身的素养,有很多的问题不能够解决。但是,在查阅了不少的资料,借鉴了一些类似作品后,又在同学与老师的帮助下,搞清楚了解决问题的关键所在。一步一步的解决了所有前行的问题。在这次设计里,对C语言里面的很多的概念有了新的认识,关于指针、链表等,对于这些核心的知识有了进一步的了解。而自己以前一直没有好好的重视这些。忽略了很多有用的东西,惭愧不已。在这次的学习中,我怕了解到了对于调用函数熟练掌握的重要性。对于这些常用函数,我们有必要下狠

11、功夫。仔细想来,自己真的还有很多不足的地方。虽然,最终结果是可喜的,我也不能忘记曾经历过的困难,我要时刻牢记时刻提醒自己提高自己的能力。像是一个个函数组成一个系统,我们平时的学习也是一块块的累积在一起才能够发挥功效的。我们要保持学科齐头并进,将各科组合起来,完美的完成工作。在这个竞争日益激烈的社会,我们只有不断的提高自身素养,不断完善自己,才能在社会上有立足之地。8五 参考文献谭浩强。 C程序设计(第三版)。 北京:清华大学出版社,20059六 源程序 #include#include#include #define MAXSIZE 100 /*定义最大参会人数*/typedef struct

12、 /*参会人员的数据结构*/ char name20; /*姓名*/ char sex7; /*性别*/ int age; /*年龄*/ char department30;/*单位*/ char room_num10; /*房间号*/STAFF;void menu() printf(*n); printf(Meeting attendant Managing System Demon); printf(1.Staff loginn); printf(2.Print Infon); printf(3.SearchByNamen); printf(4.Statisticsn); printf(5

13、.Modifyn); printf(6.Deleten); printf(0.Quitn); printf(*n);/*函数的定义*/int login(STAFF staff,int length) int i; if(length=100) /*房间已满,拒绝登陆*/ printf(There is no any empty room left!n login prohibited!); exit(-1); /*异常退出程序*/ else char room_num4; printf(The room_num is range from 101# to 120#.from 501# to

14、520#!n); printf(Type in the room_num:); scanf(%s,&room_num); for(i=0;ilength;i+) if(strcmp(room_num,staffi.room_num)=0) /*申请的房间已经有人*/ printf(The room you chose was logined,please choose anther.n); printf(Type in another different room_num:);/*让参会人选择别的空房间*/ scanf(%s,&room_num); i=-1; /*为检验新的房间是否为空作准备

15、*/10 /*end for*/ strcpy(stafflength.room_num,room_num); /* 录入登陆信息*/ printf(Type in your name:); scanf(%s,&stafflength.name); printf(Type in your gender:); scanf(%s,&stafflength.sex); printf(Type in your age:); scanf(%d,&stafflength.age); printf(Type in your dapartment:); scanf(%s,&stafflength.depart

16、ment); length+; /*参会人数加一*/ /*end else*/ return length; /*end login()*/void print(STAFF staff,int length) STAFF temp; int i,j; if(length!=0) for(i=0;ilength;i+) /*冒泡排序 排序房间号 小到大*/ for(j=i;j0) temp=staffj; staffj=staffj+1; staffj+1=temp; printf(Staff logined info:n); printf(Name Sex Age Department roo

17、m-numn); for(i=0;ilength;i+) printf(%st,staffi.name); /*输出报到人员的信息*/ printf(%st,staffi.sex); printf(%dt,staffi.age); printf(%st,staffi.department); printf(%9s,staffi.room_num); printf(n); else printf(No one logined yet.n);/*end print()*/void seachByName(STAFF staff,int length) char name20; int i; int

18、 counter=0; if(length!=0) printf(Tpye in the staffs name you search:); scanf(%s,&name); printf(Name Sex Age Department room-numn);11 for(i=0;ilength;i+) if(strcmp(staffi.name,name)=0) /*判断名字是否相同,相同则输出人员信息*/ printf(%st,staffi.name); printf(%st,staffi.sex); printf(%dt,staffi.age); printf(%st,staffi.de

19、partment); printf(%13s,staffi.room_num); printf(n); counter+; if(counter=0) /*查找的人还没登录*/ printf(n%s hasnt logined yet.n,name); else printf(No one logined yet.n); /*end seachByName*/void statistics(STAFF staff,int length) int i; int k,j; int index; int flag=0; /*辅助标记*/ char department10030; /*用于记录不同单

20、位的名字*/ int counter100; /*分别记录相应不同单位的参会人数*/ if(length!=0) k=0; /*单独处理数组第一个元素*/ strcpy(departmentk,staff0.department); /*记录单位*/ counterk=0;/*计数器清零*/ for(j=0;jlength;j+)/*计算次单位参会的总人数*/ if(strcmp(departmentk,staffj.department)=0) counterk+; for(i=1;ilength;i+) for(index=0;index=k;index+) if(strcmp(depar

21、tmentindex,staffi.department)=0) flag+; /*当前此单位在前面已经统计过*/ if(flag=0) /*出现一个未统计过的单位*/ k+; /*用两数组的下一个元素分别存放单位和该单位参会人数*/ strcpy(departmentk,staffi.department);/*记录单位*/ counterk=0;/*计数器清零*/ for(j=0;jlength;j+)/*计算次单位参会的总人数*/ if(strcmp(departmentk,staffj.department)=0) counterk+; flag=0; /*辅助标志清零*/ 12 pr

22、intf(Statistics result:n); printf(Department numbern); for(i=0;i=k;i+) printf(%s%20dn,departmenti,counteri); else printf(No one logined yet.n);/*end statistics()*/void modify(STAFF staff,int length) char room_num10; int i,k; if(length!=0) printf(Tpye in the staffs room-num you edit:); scanf(%s,&room

23、_num); for(i=0;ilength;i+) if(strcmp(staffi.room_num,room_num)=0) printf(Type in your room-num:); scanf(%s,&room_num); for(k=0;klength;k+) if(k=i) continue; /*可以选择原来的房间*/ if(strcmp(room_num,staffk.room_num)=0) /*申请的房间已经有人*/ printf(The room you chose is full,please choose anther.n); printf(Type in an

24、other different room-num:); scanf(%s,&room_num); /*提示选择别的空房间*/ k=-1; /*为检验新的房间是否为空作准备*/ /*修改人员信息*/ strcpy(staffi.room_num,room_num); printf(Type in your name:); scanf(%s,&staffi.name);13 printf(Type in your gender:); scanf(%s,&staffi.sex); printf(Type in your age:); scanf(%d,&staffi.age); printf(Typ

25、e in your dapartment:); scanf(%s,&staffi.department); printf(Edit successfully.); else printf(No one logined yet.n); /*end modify*/int Delete(STAFF staff,int length) int i,k; int counter=length; char room_num10; if(length!=0) printf(Tpye in the staffs room-num you delete:); scanf(%s,&room_num); for(

26、i=0;ilength;i+) if(strcmp(staffi.room_num,room_num)=0) /*删除人员*/ for(k=i;k=0&choice=6) switch(choice) case 1:length=login(staff,length);break; case 2:print(staff,length);break; case 3:seachByName(staff,length);break; case 4:statistics(staff,length);break; case 5:modify(staff,length);break; case 6:length=Delete(staff,length);break; case 0:printf(Quit successully.n); exit(-1); /*退出*/ menu(); printf(Enter your choice(0-6):); scanf(%d,&choice); printf(Sorry,there is no such function provided.n); return 0;15

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号