版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言程序设计课程设计报告专 业: 电子信息工程(自动化)班 级: 电信0904 姓 名: 陈列慧 指导教师: 彭琼 丁雄 2010年 12月30日 C语言程序课程设计任务书一、设计题目:职工信息管理系统二、设计目的 1、熟练掌握C语言课程中所学的理论知识; 2、通过综合C语言的基本知识来解决实际问题; 3、加强分析和解决问题的能力;三、设计内容 设计对5项职工信息管理的课程信息管理系统,每个职工有职工号、姓名、性别、年龄、学历、工资等。系统功能包括:1、系统以菜单方式工作,密码登陆。2、课程信息的录入功能(增加数据)。用数组数据类型赋初值的方法把课程信息送到各个数组中(但注意要是合法数据),
2、然后把它们输出显示。3、课程信息的删除(删除数据)。任意输入一门课程的编号,将它所有的信息从数组中删除。4、课程信息的浏览功能(查找数据)。任意输入一门课程的编号,打印出所有相关数据。要求能多次查找。5、课程信息的删除(修改数据)。任意输入一门课程的编号,打印出所有相关信息后,可对某一项信息进行修改并保存。6、课程信息的计算并排序。计算所有课程的总学分及平均学分(aver,单精度,输出一位小数),将包括所有数据的数组元素按价格从高到低的顺序排序打印出来。四、设计步骤1、需求分析:对系统的应实现的功能进行分析。2、概要设计:对系统功能进行模块分解,对模块的功能及模块之间的相互关系进行说明(如用到
3、函数,则对函数间的接口进行说明),对系统使用的数据结构(各数组、主要变量的设置及其代表的含义)进行说明。3、详细设计:用流程图、伪代码等方法对各主要算法进行描述。4、编写代码:根据设计编写。源程序要按照程序的格式规范来编写,要求结构清晰,界面友好,关键部分有必要的注释。5、调试分析:准备充分的测试数据对系统进行调试(对错误的数据输入也要进行测试,保证程序的容错性),并通过测试对系统提出改进设想。目 录(空两行)1页码2页码(要求:给出一级目录,宋体加粗,四号字,1.5倍行距。)(报告正文部分):(要求:正文部分一律用小四号字,宋体,1.5倍行距。一级大标题靠左,加粗。二级大标题靠左,不加粗。)
4、课程设计的内容如下:1. 课程设计目的(可参考任务书)2.课程设计题目描述和要求(可参考任务书)3.课程设计报告内容(以下仅供参考)3.1 整个系统的框架结构与各个模块的接口设计与简介(可用绘图的方式表达说明系统的结构和个接口的定义).3.2登陆与主界面模块功能的设计与实现(包括流程图、源代码以及适当功能说明).3.3 具体负责的模块的功能的设计与实现(包括流程图、源代码以及适当功能说明)页:5这是每个人与其他组成员不同之处,也是重要之处,大家务必认证攥写。3.4 模块的集成与调试(描述模块的集成与调试的一些细节工作)4.总结(总结设计过程中的心得、经验、解决问题的方法和技巧、自己的收获等等)
5、参考书目:(五号,宋体加粗)1 谭浩强,C语言程序设计教程,北京,清华大学出版社,2009年2 .(要求:五号字,宋体,单倍行距。按作者、书名、出版社、地点、出版时间格式逐一列出,中间用逗号格开)附录(全部系统的源代码)/#include "StdAfx.h"#include<string.h> #include <stdio.h>#include <stdlib.h>#include <conio.h>#include <iostream.h>#define n1 20#define m1 3#define N
6、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()
7、; 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(i>0) for(int k=0;k<i;k+) if(strcmp(peoplek.num,peoplei.num)=0) cout<<"您输入的职工号
8、已存在,请更换号码!"<<endl; cout<<"职工号:" cin>>peoplei.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("性别:"); sc
9、anf("%s",peoplei.sex); printf("年龄:"); scanf("%s",peoplei.age); printf("学历:"); scanf("%s",peoplei.xueli); printf("工资:"); scanf("%s",peoplei.gongzi); printf("住址:"); scanf("%s",peoplei.address); printf("电话:&q
10、uot;); scanf("%s",peoplei.telephone); void enter() int i,n; printf("请输入人数(0-%d) :",N-1); scanf("%d",&n); printf("n 录入信息n"); for(i=0;i<n;i+)printf("n 请输入第%d个人的信息.",i+1); input(i);if(i!=0)save(n); printf_back(); void browse() int i,n; n=load();
11、printf_face(); for(i=0;i<n;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; ; n=load(); printf("你想添加的人数为(0-%d):",N-1-n); scanf
12、("%d",&m); k=m+n; for(i=n;i<k;i+) printf("n输入第%d个人的信息.",i-n+1 ); input(i);if(fp=fopen("Pro.txt","ab")=NULL)printf("文件打开失败!n"); for(i=n;i<k;i+) if(fwrite(&peoplei,sizeof(struct people),1,fp)!=1) printf("文件写入失败!n"); fclose(fp);
13、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;i<n;i+)if(strc
14、mp(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",
15、p.num); printf_face();for(i=0;i<n;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(
16、"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;a<n;a+) strcpy(peoplea.num,peoplea+1.num); strcpy(peoplea.na
17、me,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(&qu
18、ot;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;i<n;i+) if(i!=0)&&(i%10=0) printf("nn请记着你要修改的职工号。按任意键继续
19、 ."); getch(); puts("nn"); printf_one(i); do printf("nn请输入你要修改的职工信息的职工号:"); scanf("%s",p.num); for(i=0;i<n;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
20、);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&
21、quot;); for(i=0;i<n;i+) if(peoplei.num!=0) if(fwrite(&peoplei,sizeof(struct people),1,fp)!=1) printf("文件写入失败!n"); fclose(fp); int load() FILE *fp; int i; if(fp=fopen("Pro.txt","rb")=NULL) printf("n文件打开失败!n"); return NULL; for(i=0;!feof(fp);i+) fread(&am
22、p;peoplei,sizeof(struct people),1,fp); fclose(fp); return(i-1); int modify_data(int i) int c,w1; doputs("n请选择你要修改的选项nn 1).职工号 2).姓名 3).性别 4).年龄 5).学历 6)工资 7)住址 8)电话 "); printf("您的选择是: bb"); scanf("%d",&c); if(c>8|c<1)puts("n输入错误,请重新输入!"); getchar();
23、while(c>8|c<1);do switch(c) case 1:printf("职工号:");scanf("%s",peoplei.num);break; case 2:printf("姓名:");scanf("%s",);break; case 3:printf("性别:");scanf("%s",peoplei.sex);break; case 4:printf("年龄:");scanf("%s&qu
24、ot;,peoplei.age);break; case 5:printf("学历:");scanf("%s",peoplei.xueli);break; case 6:printf("工资:");scanf("%s",peoplei.gongzi);break; case 7:printf("住址:");scanf("%s",peoplei.address);break; case 8:printf("电话:");scanf("%s"
25、,peoplei.telephone);break; puts("n现在信息:n"); printf_face(); printf_one(i); printf("n你确定吗nnt 1).是 2).否 3).返回且不保存 bb"); scanf("%d",&w1); while(w1=2);return w1; /void no_input(int i,int n) int j,k,w1; do w1=0;for(j=0;peoplei.numj!='0'j+) if(peoplei.numj>'
26、9') puts("输入错误,请从新输入!n"); w1=1;break; if(w1!=1) for(k=0;k<n;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%
27、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
28、 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;i<N;i+)for(j=i;j<N;j+)if (strcmp(peoplei.gongzi,peoplej.gongzi )<0)strcpy(num,peoplei.num);strcpy(peoplei.num,peoplej.num);strcpy(peoplej.num ,nu
29、m);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.go
30、ngzi);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.t
31、elephone,peoplej.telephone);strcpy(peoplej.telephone,telephone);for (i=0;i<N;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;i<n-t;i+)s
32、canf("%d",&fi);for(i=0;i<n-t;i+)s=s+fi; printf("总工资是%6.2f平均工资是%6.2fn",s,s/(N-t);for(i=0;i<n-t;i+) for(j=0,max=0;j<n-t;j+)if(max<fj)max=fj,x=j;fx=0;for(z=0;z<m;z+)printf("%st",zgxxxz);printf("n");printf("n按任意键继续."); getch(); menu();
33、 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 查询及删除职工信息
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年大学试题(大学选修课)-《时间简史》导读历年参考题库含答案解析
- 2026学年辽宁省四年级语文期末通关基础巩固题详细参考解析详细答案和解析
- 2026学年山东省聊城市四年级数学期末深度自测快速提分题详细参考解析详细答案和解析
- 2026学年云南省六年级语文期末自测模拟黑金提分题(附答案)详细答案和解析
- 2025-2026学年一年级脸谱说课稿
- 2026年信息安全防护与策略考试卷
- 2025-2026学年各年龄班说课稿
- 2025-2026学年夺旗游戏说课稿
- 2026年广东省信宜市高二历史上册期末考试考试卷含答案(培优A卷)
- 2025-2026学年冰淇淋教育说课稿中班
- MT/T 1325-2025矿用设备再制造刮板输送机中部槽
- 2026年新高考I卷数学真题
- 2026年小学信息技术教师业务考试题库(附答案)
- 老年人多重用药评估与管理专家共识2026
- 护士执业注册健康体检表
- 2025福建新华发行(集团)有限责任公司南平地区会计岗位招聘笔试备考题库及答案解析
- 2024-2025学年度第二学期期末考试试卷 高一历史
- 高中数学第九、十章统计与概率章节测试卷-2024-2025学年高一下学期数学人教A版(2019)必修第二册
- 特殊工艺过程管理制度
- 大二python考试试题及答案
- 2024年4月自考00015《英语(二)》真题及答案
评论
0/150
提交评论