




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计课程设计报告专 业: 电子信息工程(自动化)班 级: 电信0904 姓 名: 陈列慧 指导教师: 彭琼 丁雄 2010年 12月30日 C语言程序课程设计任务书一、设计题目:职工信息管理系统二、设计目的 1、熟练掌握C语言课程中所学的理论知识; 2、通过综合C语言的基本知识来解决实际问题; 3、加强分析和解决问题的能力;三、设计内容 设计对5项职工信息管理的课程信息管理系统,每个职工有职工号、姓名、性别、年龄、学历、工资等。系统功能包括:1、系统以菜单方式工作,密码登陆。2、课程信息的录入功能(增加数据)。用数组数据类型赋初值的方法把课程信息送到各个数组中(但注意要是合法数据),然后把它们输出显示。3、课程信息的删除(删除数据)。任意输入一门课程的编号,将它所有的信息从数组中删除。4、课程信息的浏览功能(查找数据)。任意输入一门课程的编号,打印出所有相关数据。要求能多次查找。5、课程信息的删除(修改数据)。任意输入一门课程的编号,打印出所有相关信息后,可对某一项信息进行修改并保存。6、课程信息的计算并排序。计算所有课程的总学分及平均学分(aver,单精度,输出一位小数),将包括所有数据的数组元素按价格从高到低的顺序排序打印出来。四、设计步骤1、需求分析:对系统的应实现的功能进行分析。2、概要设计:对系统功能进行模块分解,对模块的功能及模块之间的相互关系进行说明(如用到函数,则对函数间的接口进行说明),对系统使用的数据结构(各数组、主要变量的设置及其代表的含义)进行说明。3、详细设计:用流程图、伪代码等方法对各主要算法进行描述。4、编写代码:根据设计编写。源程序要按照程序的格式规范来编写,要求结构清晰,界面友好,关键部分有必要的注释。5、调试分析:准备充分的测试数据对系统进行调试(对错误的数据输入也要进行测试,保证程序的容错性),并通过测试对系统提出改进设想。目 录(空两行)1页码2页码(要求:给出一级目录,宋体加粗,四号字,1.5倍行距。)(报告正文部分):(要求:正文部分一律用小四号字,宋体,1.5倍行距。一级大标题靠左,加粗。二级大标题靠左,不加粗。)课程设计的内容如下:1. 课程设计目的(可参考任务书)2.课程设计题目描述和要求(可参考任务书)3.课程设计报告内容(以下仅供参考)3.1 整个系统的框架结构与各个模块的接口设计与简介(可用绘图的方式表达说明系统的结构和个接口的定义).3.2登陆与主界面模块功能的设计与实现(包括流程图、源代码以及适当功能说明).3.3 具体负责的模块的功能的设计与实现(包括流程图、源代码以及适当功能说明)页:5这是每个人与其他组成员不同之处,也是重要之处,大家务必认证攥写。3.4 模块的集成与调试(描述模块的集成与调试的一些细节工作)4.总结(总结设计过程中的心得、经验、解决问题的方法和技巧、自己的收获等等)参考书目:(五号,宋体加粗)1 谭浩强,C语言程序设计教程,北京,清华大学出版社,2009年2 .(要求:五号字,宋体,单倍行距。按作者、书名、出版社、地点、出版时间格式逐一列出,中间用逗号格开)附录(全部系统的源代码)/#include StdAfx.h#include #include #include #include #include #define n1 20#define m1 3#define N 3 char zgxxn1m116;struct people char num100; /*职工号char name15; /*姓名char sex20; /*性别char age20; /*年龄char xueli20; /*学历char gongzi20; /*工资char address20; /*地址char telephone20; /*电话号码peopleN;void input(int i);void enter();void browse();void add();/void no_input(int i,int n) ;void search();void modify(); void save(int n);int load(); int modify_data(int i); void printf_face(); void printf_back(); void printf_one(int i); void menu(); void chack_No(int i);void mima ();void zggzpaixu();void chack_No(int i)if(i0) for(int k=0;ki;k+) if(strcmp(peoplek.num,peoplei.num)=0) cout您输入的职工号已存在,请更换号码!endl; coutpeoplei.num; chack_No(i); break; void input(int i) /no_input(i,i); printf(职工号:); scanf(%s,peoplei.num); chack_No(i);printf(姓名:); scanf(%s, ) ; printf(性别:); scanf(%s,peoplei.sex); printf(年龄:); scanf(%s,peoplei.age); printf(学历:); scanf(%s,peoplei.xueli); printf(工资:); scanf(%s,peoplei.gongzi); printf(住址:); scanf(%s,peoplei.address); printf(电话:); scanf(%s,peoplei.telephone); void enter() int i,n; printf(请输入人数(0-%d) :,N-1); scanf(%d,&n); printf(n 录入信息n); for(i=0;in;i+)printf(n 请输入第%d个人的信息.,i+1); input(i);if(i!=0)save(n); printf_back(); void browse() int i,n; n=load(); printf_face(); for(i=0;in;i+)if(i!=0)&(i%10=0)printf(nn按任意键继续.); getch(); puts(nn);printf_one(i) ;printf(t共有%d条记录.n,n); printf(n按任意键继续.); getch(); menu(); void add() int i,n,m,k; FILE*fp; n=load(); printf(你想添加的人数为(0-%d):,N-1-n); scanf(%d,&m); k=m+n; for(i=n;ik;i+) printf(n输入第%d个人的信息.,i-n+1 ); input(i);if(fp=fopen(Pro.txt,ab)=NULL)printf(文件打开失败!n); for(i=n;ik;i+) if(fwrite(&peoplei,sizeof(struct people),1,fp)!=1) printf(文件写入失败!n); fclose(fp); printf_back(); void search() int i,n,k,w1=1,w2,w3,w4,m,a; struct people p; n=load(); do printf(n选择你要查询的方式 nt1).按学历 2).按职工号 bb); scanf(%d,&m); switch(m)case 1:dok=-1; printf(nn请输入你要查询的学历:); scanf(%s,p.xueli); printf_face(); for(i=0;in;i+)if(strcmp(p.xueli,peoplei.xueli)=0)k=i; printf_one(k);break;if(k=-1)printf(nn你输入的学历不存在!); printf(nn你想继续查询吗?nt 1).是 2).否 bb); scanf(%d,&w1); if(w1=2) printf_back();while(k=-1&w1=1);break;case 2:dok=-1; printf(nn请输入你要查询的职工号:); scanf(%s,p.num); printf_face();for(i=0;in;i+)if(strcmp(p.num,peoplei.num)=0) k=i; printf_one(k);break;if(k=-1)printf(nn你输入的职工号不存在!); printf(nn你想继续查询吗?nt1).是 2).否 bb); scanf(%d,&w1); if(w1=2)printf_back();while(k=-1&w1=1);break; w4=0;w3=0; if(k!=-1) printf(nn请选择你要进行的操作:nt 1).查询 2).修改 3).删除 4).返回主菜单 bb); scanf(%d,&w2); switch(w2) case 2:w3=modify_data(k); break; case 3: printf(n你确定要删除吗?nt 1).是 2).否 bb); scanf(%d,&w4); if(w4=1) for(a=k;an;a+) strcpy(peoplea.num,peoplea+1.num); strcpy(,peoplea+1.name); strcpy(peoplea.sex,peoplea+1.sex); strcpy(peoplea.age,peoplea+1.age); strcpy(peoplea.xueli,peoplea+1.xueli); strcpy(peoplea.gongzi,peoplea+1.gongzi); strcpy(peoplea.address,peoplea+1.address); strcpy(peoplea.telephone,peoplea+1.telephone); break; if(w3=1|w4=1) save(n); printf(nn操作成功! _ ); printf(nn请输入你要进行的操作: nt 1).继续查询 2).返回上一级 bb ); scanf(%d,&w2); while(w2=1); menu();void modify() struct people p; int i,n,k,w0=1,w1,w2=0; n=load(); do k=-1; printf_face(); for(i=0;in;i+) if(i!=0)&(i%10=0) printf(nn请记着你要修改的职工号。按任意键继续 .); getch(); puts(nn); printf_one(i); do printf(nn请输入你要修改的职工信息的职工号:); scanf(%s,p.num); for(i=0;in;i+) if(strcmp(p.num,peoplei.num)=0) k=i; p=peoplei; if(k=-1)printf(nn你的输入有误,请重新输入); while(k=-1); printf_face(); printf_one(k); w1=modify_data(k);if(w1=1) printf(n操作成功! _.n是否继续修改?nnt 1).是 2).否t bb); scanf(%d,&w0); w2=1; else w0=0; if(w2=1) peoplek=p; if(w0!=1&w2=1) save(n); while(w0=1); menu(); void save(int n) FILE *fp; int i; if(fp=fopen(Pro.txt,wb)=NULL) printf(n文件打开失败!n); for(i=0;i8|c8|c9) puts(输入错误,请从新输入!n); w1=1;break; if(w1!=1) for(k=0;kn;k+) if(k!=i&strcmp(peoplek.num,peoplei.num)=0) puts(你输入的职工号已经存在了,请从新输入!n); while(w1=1); void printf_face() printf( 职工号 姓名 性别 年龄 学历 工资 住址 电话 n); void printf_one(int i) printf(%9s%9s%9s%9s%9s%9s%10s%12sn,peoplei.num,,peoplei.sex,peoplei.age,people i.xueli,peoplei.gongzi,peoplei.address,peoplei.telephone); void printf_back() int w; printf(nt操作成功!._nn); printf(请选择:nnt1).浏览所有信息 t2).返回 : bb); scanf(%d,&w); if(w=1) browse(); else menu(); void pai_x()int i,j,t=0,x,z,max,m=5,n=3;float s=0;int fm1;char num100,age20,address20,name15,gongzi20,sex20,telephone20,xueli20;for (i=0;iN;i+)for(j=i;jN;j+)if (strcmp(peoplei.gongzi,peoplej.gongzi )0)strcpy(num,peoplei.num);strcpy(peoplei.num,peoplej.num);strcpy(peoplej.num ,num);strcpy(age,peoplei.age);strcpy(peoplei.age,peoplej.age);strcpy(peoplej.age ,age);strcpy(address,peoplei.address);strcpy(peoplei.address,peoplej.address);strcpy(peoplej.address ,address);strcpy(name,);strcpy(,);strcpy( ,name);strcpy(gongzi,peoplei.gongzi);strcpy(peoplei.gongzi,peoplej.gongzi);strcpy(peoplej.gongzi ,gongzi);strcpy(xueli,peoplei.xueli);strcpy(peoplei.xueli,peoplej.xueli);strcpy(peoplej.xueli ,xueli);strcpy(sex,peoplei.sex);strcpy(peoplei.sex,peoplej.sex);strcpy(peoplej.sex,sex);strcpy(telephone,peoplei.telephone);strcpy(peoplei.telephone,peoplej.telephone);strcpy(peoplej.telephone,telephone);for (i=0;iN;i+)printf(%9s%9s%9s%9s%9s%9s%10s%12sn,peoplei.num,,peoplei.sex,peoplei.age,peoplei.xueli,peoplei.gongzi,peoplei.address,peoplei.telephone);printf(请按上面工资顺序重新输入工资n);for(i=0;in-t;i+)scanf(%d,&fi);for(i=0;in-t;i+)s=s+fi; printf(总工资是%6.2f平均工资是%6.2fn,s,s/(N-t);for(i=0;in-t;i+) for(j=0,max=0;jn-t;j+)if(maxfj)max=fj,x=j;fx=0;for(z=0;zm;z+)printf(%st,zgxxxz);printf(n);printf(n按任意键继续.); getch(); menu(); void jiem() int a; printf(ttt*n); printf(ttt欢迎进入职工工资排序系统!n); printf(ttt*nnnnn);printf(要进行排序请按(1),否则返回!n);scanf (%d,&a);printf(职工信息将按工资由高到低排序:n);if (a=1)pai_x(); elsemenu();void menu() int n,w1; do system(cls);/清屛printf(nt *n); printf(t *欢迎进入职工信息管理系统*n); printf(t *n);printf(t 1 录入职工信息 n); printf(t 2 修改职工信息 n); printf(t 3 查询及删除职工信息(学历/职工号) n); print
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智能家居产品知识产权合作开发合同
- 2025建筑材料代理购销合同
- 劳务合同双解协议书
- 共享厨房行业投资策略报告:2025年投资指南
- 土地无偿置换协议书
- 商品授权合同协议书
- 医疗器械临床试验质量管理规范化与2025年临床试验伦理审查标准创新报告
- 卫生清理外包协议书
- 协助房屋征收协议书
- 协会企业服务协议书
- 超声引导下的星状神经节阻滞
- MOOC 学术英语写作-东南大学 中国大学慕课答案
- GB/T 23703.2-2010知识管理第2部分:术语
- 电网变电站一键顺控改造技术规范
- 中小学学习《民法典》主题班会精品模板ppt
- 【地理】2011年高考真题-文综地理福建卷解析版
- 企业环境保护管理制度汇编
- 暖通空调设备安装施工重难点分析及解决方案
- 地铁盾构管片常见质量问题分析
- 消防维护与保养(通用)ppt课件
- 浙江理工大学研究生培养方案专家论证意见表
评论
0/150
提交评论