C语言----教师工资管理系统设计

上传人:豆**** 文档编号:43600687 上传时间:2021-12-03 格式:DOC 页数:12 大小:48KB
收藏 版权申诉 举报 下载
C语言----教师工资管理系统设计_第1页
第1页 / 共12页
C语言----教师工资管理系统设计_第2页
第2页 / 共12页
C语言----教师工资管理系统设计_第3页
第3页 / 共12页
资源描述:

《C语言----教师工资管理系统设计》由会员分享,可在线阅读,更多相关《C语言----教师工资管理系统设计(12页珍藏版)》请在装配图网上搜索。

1、精品文档,仅供学习与交流,如有侵权请联系网站删除 程序设计基础课程设计报告 教师工资管理系统设计【精品文档】第 10 页目录问题概述1系统目标1设计的过程及步骤2函数设计3系统实现7总结17参考文献18 一.问题概述随着时代的进步,人们越来越认识到教育的重要性,科教兴国是十分可行的政策,而教师则是教育事业最重要的一环,他们的付出是我们国家富强的根本保证。现阶段,各学校的教师数量越来越多,工资、工作安排等方面管理起来就越来越麻烦,这十分不利于教育事业的大步前进,设计出一款用于教师工资管理的程序很有必要,通过系统的C语言学习,我们已经能够通过自己编写程序实现这一目的,进行教师信息的录入,管理,查询

2、等方面的操作,进而推动教育事业的进步。二.系统目标2.1 (对系统技术的目标)根据所学的程序设计基础原理与程序设计的知识,能够针对一个小型的程序 设计基础管理系统,进行系统的需求分析,系统设计,程序设计基础设计,编码, 测试等,完成题目要求的功能,从而达到掌握开发一个小型系统程序设计的目的。 2.2 (对系统技术的要求)1. 教师信息及教师工资信息的录入功能(录入数据以文件形式存储) 2 教师工资查询功能(至少提供两种及两种以上查询方法)(1)按教师编号进行查询(2)按所在部门进行查询注:查询结果用链表的形式保存并输出3 教师工资的统计功能4 教师工资的修改功能(如晋升职称后)3、 设计的过程

3、及步骤1. 需求分析(描述系统需求,既详细分析系统需求和功能) 根据题目要求,应当把教师信息用结构体形式输入,再定义一个全局变量和文件 指针进行整个程序的运行,然后把教师信息送到文件中,所以应该提供一个结构 体和文件的输入输出等操作;在程序中需实现教师信息录入,查询,删除 和修改等功能的操作,所以需要建立相应的模块来实现;另外还需提供键盘式选 择菜单实现功能,在运行时达到所要目的。2. 设计系统功能图(根据需求分析结果和文件结构,应用结构化分析与设计技术设计功能结构 图,如下图所示)教师工资管理系统界面添加教师信息删除教师信息更新教师信息按编号排序按编号查询教师信息按部门查询教师信息退出输出全

4、部教师信息保存信息四、函数设计(详细分析每一个子模块的子功能,定义主要的子函数原型,并对每一个 函数的功能加以说明)4.1此系统主要有7个功能,有主要的9个函数,他们分别是insert () /添加教师信息cut () /删除教师信息updata () /更新教师信息find () /按部门查询教师信息findbyid ()/按编号查询教师信息sort () /按编号排序print () /输出全部教师信息save () /保存信息save1 () /退出4. 2每个函数所用到的主要是结构体和链表struct messageint id;char name30;int age;char sex

5、4;char dept20;char phone20;int money;struct message *next;int hassong(struct message *h,int id,char name);struct message *creat(void)struct message *p1,*p2,*head;int i=1,id;char *check; char choice;head=p2=(struct message *)malloc(N);printf(nnn);printf(导入文件失败,请输入信息,输入完成后按回车键确定nnn);head-next=NULL;4.3

6、界面设计1、进入系统的界面,首先进行信息录入2、输入信息后按回车,如果继续输入按Y,确定信息再回车3、回车后进入操作页面,选择不同的数字回车,进行不同的操作4、按4,回车,进行按部门查询教师信息5、按5,回车、按编号查询教师信息五五、系统实现#include stdio.h#include string.h#include stdlib.h#include conio.h#include windows.h#define PT 编号:%d 姓名:%s 年龄:%d 性别:%s 部门:%s 手机号:%s 工资%d n,p-id,p-name,p-age,p-sex,p-dept,p-phone,p

7、-money#define N sizeof(struct message)struct messageint id;char name30;int age;char sex4;char dept20;char phone20;int money;struct message *next;int hassong(struct message *h,int id,char name);struct message *creat(void)struct message *p1,*p2,*head;int i=1,id;char *check; char choice;head=p2=(struct

8、 message *)malloc(N);printf(nnn);printf(导入文件失败,请输入信息,输入完成后按回车键确定nnn);head-next=NULL; choice=y; for(i=1;choice=y|choice=Y;i+)printf(*请输入编号 姓名 年龄 性别 部门 手机号 工资*n);p1=(struct message *)malloc(N);scanf(%d %s %d %s %s %s %d,&p1-id,p1-name,&p1-age,p1-sex,p1-dept,p1-phone,&p1-money);check = p1-name;id=p1-id

9、;while(hassong(head,id,check)=1)printf(n已经存在,请重新输入!n);scanf(%d %s %d %s %s %s %d,&p1-id,p1-name,&p1-age,p1-sex,p1-dept,p1-phone,&p1-money);check = p1-name;id=p1-id; p2-next=p1; p2=p1;p2-next=NULL; printf(n继续?(Y/N):); choice=getche(); printf(n);return head;struct message *readfile(void)/* 建立信息 */char

10、 *p=D:/teacher.txt;FILE *fp;struct message *p1,*p2,*head;head=p2=(struct message *)malloc(N);head-next=NULL;if (fp=fopen(d:/teacher.txt,r)=NULL)printf(导入文件失败 ,请输入一些信息,p);head=creat();elseint i=0;p1=(struct message *)malloc(N);while(fscanf(fp,%d %s %d %s %s %s %d,&p1-id,p1-name,&p1-age,p1-sex,p1-dept

11、,p1-phone,&p1-money)=7)i+;p2-next=p1;p2=p1;p1=(struct message *)malloc(N);fclose(fp);if(i = 0)head=creat();elseprintf(录入完毕!共 %d 个教师信息导入成功n,i);p2-next=NULL;getche();return head;void insert (struct message *head)struct message *p;char *check;int id;p=(struct message *) malloc(N);printf(*请输入编号 姓名 年龄 性别

12、 部门 手机号 工资*n);scanf(%d %s %d %s %s %s %d,&p-id,p-name,&p-age,p-sex,p-dept,p-phone,&p-money);check = p-name;id=p-id;if(hassong(head,id,check)=0)if(head-next!=NULL)p-next=head-next;head-next=p;printf(n插入成功!按任意键继续!);else printf(n该教师已经存在); getche();void cut(struct message *p0) int id; struct message *p;

13、 char choice; if(p0-next=NULL) printf(信息出错!按任意键退出!); getch(); exit(1); printf(请输入要删除的编号:); scanf(%d,&id); for(p=p0-next;p-id != id;p0=p,p=p-next); printf(你要删除的信息如下,请确认是否删除:n); printf( n编号:%d 姓名:%s 年龄:%d 性别:%s 部门:%s 手机号:%s 工资%d n,p-id,p-name,p-age,p-sex,p-dept,p-phone,p-money); printf(n是Y,否N:); choic

14、e=getche(); if(choice=Y|choice=y) p0-next=p-next; free(p); printf(n删除成功!); printf(n按任意键结束!); getche();int hassong(struct message *h,int id,char name) struct message *p; int flag=0; if(h-next=NULL) return 0; for(p=h-next;p!=NULL;p=p-next)if(strcmp(p-name,name)=0)flag=1;if(p-id=id)flag=1; return flag;

15、void findbyid(struct message *h) int n; struct message *p; printf(请输入你要查找的教师编号:); scanf(%d,&n); for(p=h-next;p!=NULL;p=p-next) if(p-id = n) printf(你查找的信息如下:n);printf( n编号:%d 姓名:%s 年龄:%d 性别:%s 部门:%s 手机号:%s 工资%d n,p-id,p-name,p-age,p-sex,p-dept,p-phone,p-money); printf(按任意键继续!); getche(); return;print

16、f(没有找到!n); printf(按任意键继续!); getche();void updata(struct message *h) int n; struct message *p; printf(请输入你要更新的教师编号:); scanf(%d,&n); for(p=h-next;p!=NULL;p=p-next) if(p-id = n) printf(你查找的信息如下:n);printf( n编号:%d 姓名:%s 年龄:%d 性别:%s 部门:%s 手机号:%s 工资%d n,p-id,p-name,p-age,p-sex,p-dept,p-phone,p-money);print

17、f(*请输入年龄 性别 部门 手机号 工资*n);scanf(%d %s %s %s %d,p-name,&p-age,p-sex,p-dept,p-phone,&p-money);printf(更新成功!); getche(); return;printf(没有找到!n); printf(按任意键继续!); getche();void find(struct message *h) char name30; struct message *p; printf(请输入你要查找的教师部门:); scanf(%s,name); for(p=h-next;p!=NULL;p=p-next) if(s

18、trcmp(p-dept,name)=0) printf(你查找的信息如下:n); printf( n编号:%d 姓名:%s 年龄:%d 性别:%s 部门:%s 手机号:%s 工资%d n,p-id,p-name,p-age,p-sex,p-dept,p-phone,p-money); printf(没有找到!n); printf(按任意键继续!); getche();void print(struct message *p)p=p-next;while(p!=NULL)printf(PT);p=p-next;printf(n按任意键继续!); getche();void sort(struc

19、t message *head) struct message *q,*t,*p; p=head; t=NULL; while(t!=head-next) p=head; q=p-next; while(q-next!=t) if(p-next-idq-next-id) p-next=q-next; q-next=q-next-next; p-next-next=q; p=p-next; q=p-next; t=q; printf(排序完毕,按任意键继续!);getche();void save1(struct message *p)FILE *fp;fp=fopen(d:/teacher.t

20、xt,w); p=p-next;while(p!=NULL)fprintf(fp,%d %s %d %s %s %s %dn,p-id,p-name,p-age,p-sex,p-dept,p-phone,p-money);p=p-next;fclose(fp);void save(struct message *p)save1(p);printf(n保存成功 按任意键继续!); getche();int main() int choice=1,i; struct message *head; head=NULL; head=readfile(); for(i=1;choice!=0;i+) s

21、ystem(cls); printf(*教师管理系统*n); printf(n); printf(n); printf( 1 . 添加教师信息 n); printf( 2 . 删除教师信息 n); printf( 3 . 更新教师信息 n); printf( 4 . 按部门查询教师信息 n); printf( 5 . 按编号查询教师信息 n); printf( 6 . 按编号排序 n); printf( 7 . 输出全部教师信息 n); printf( 8 . 保存信息 n); printf( 0 . 退出 n); printf(*n); printf(请选择一个功能:n); scanf(%d

22、,&choice); switch(choice) case 1: insert(head) ; break; case 2: cut(head) ; break; case 3: updata(head) ; break; case 4: find(head) ; break;case 5: findbyid(head) ; break; case 6: sort(head);break; case 7: print(head);break; case 8: save(head);break; case 0: save1(head); break; return 0;六、总结首先,我想感谢我

23、的组员,因为我们是分工合作的,他们有的负责一个功能, 有的负责两个功能,而我主要是些主函数,在他们的积极配合下,我们很快就把 总程序写好,并调试完毕。所以我想感谢他们的配合。因为集体的力量是强大的, 只有我们的积极合作,才能够准时的完成这个课程设计。然后,我觉得在这个课程设计的过程中,我学到了很多东西。第一是耐心, 当你在调试程序中,看到了你设计的程序出现了那么多错误,或者当显示0错误 0警告,却不能运行,或者是运行结果不是你所期望时,我觉得这时候最是考验 耐心的时候,也只有耐心和永不言败的信念,才能支持你逆流而上,解决所有的 困难。在这个过程中,我试过用了几个钟的时间找一个错误,而结果只是打错了 一个定义。第二是沟通,因为我对C语言也比较熟了,有一些同学比较陌生,所 以他们来问我,在我解答他们的问题是,我深刻的体会了沟通的重要性,因为只 有你沟通的好,他们容易理解,你也不用浪费口舌去讲一些不必要的知识点!

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