《程序设计基础》
课程设计报告
教师工资管理系统设计
目录
问题概述 ------------------------------------------------ 1
系统目标 ------------------------------------------------ 1
设计的过程及步骤 ---------------------------------------- 2
函数设计 ------------------------------------------------ 3
系统实现 ------------------------------------------------ 7
总结 --------------------------------------------------- 17
参考文献 ----------------------------------------------- 18
一.问题概述
随着时代的进步,人们越来越认识到教育的重要性,科教兴国是十分可行的政
策,而教师则是教育事业最重要的一环,他们的付出是我们国家富强的根本保证。
现阶段,各学校的教师数量越来越多,工资、工作安排等方面管理起来就越来越麻
烦,这十分不利于教育事业的大步前进,设计出一款用于教师工资管理的程序很有
必要,通过系统的 C 语言学习,我们已经能够通过自己编写程序实现这一目的,进
行教师信息的录入,管理,查询等方面的操作,进而推动教育事业的进步。
二.系统目标
2.1 (对系统技术的目标)
根据所学的程序设计基础原理与程序设计的知识,能够针对一个小型的程序
设计基础管理系统,进行系统的需求分析,系统设计,程序设计基础设计,编码, 测
试等,完成题目要求的功能,从而达到掌握开发一个小型系统程序设计的目的。
2.2 (对系统技术的要求)
1. 教师信息及教师工资信息的录入功能(录入数据以文件形式存储)
2. 教师工资查询功能(至少提供两种及两种以上查询方法)
(1)按教师编号进行查询
(2)按所在部门进行查询
……
注:查询结果用链表的形式保存并输出
3. 教师工资的统计功能
4. 教师工资的修改功能(如晋升职称后)
1
三、设计的过程及步骤
1.需 求 分 析 ( 描 述 系 统 需 求 , 既 详 细 分 析 系 统 需 求 和 功 能 )
根据题目要求,应当把教师信息用结构体形式输入,再定义一个全局变量和文件 指
针进行整个程序的运行,然后把教师信息送到文件中,所以应该提供一个结构 体和
文件的输入输出等操作;在程序中需实现教师信息录入,查询,删除 和修改等功能
的操作,所以需要建立相应的模块来实现;另外还需提供键盘式选 择菜单实现功能,
在运行时达到所要目的。
2.设计系统功能图(根据需求分析结果和文件结构,应用结构化分析与设计技术设计
功能结构 图,如下图所示)
教师工
资管理
系统界
面
添加教
师信息
删除教
师信息
更新教
师信息
按部门
查询教
师信息
按编号
查询教
师信息
按编号
排序
输出全
部教师
信息
保存信
退出
息
四、函数设计
(详细分析每一个子模块的子功能,定义主要的子函数原型,并对每一个 函
数的功能加以说明)
4.1 此系统主要有 7 个功能,有主要的 9 个函数,他们分别是
insert ()
//添加教师信息
cut () //删除教师信息
2
updata () //更新教师信息
find ()
//按部门查询教师信息
findbyid ()//按编号查询教师信息
sort ()
//按编号排序
print ()
//输出全部教师信息
save ()
//保存信息
save1 () //退出
4. 2 每个函数所用到的主要是结构体和链表
struct message
{
int id;
char name[30];
int age;
char sex[4];
char dept[20];
char phone[20];
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);
3
printf("\n\n\n");
printf("导入文件失败,请输入信息,输入完成后按回车键确定\n\n\n");
head->next=NULL;
4.3 界面设计
1、进入系统的界面,首先进行信息录入
2、输入信息后按回车,如果继续输入按 Y,确定信息再回车
3、回车后进入操作页面,选择不同的数字回车,进行不同的操作
4
4、按 4,回车,进行按部门查询教师信息
5、按 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->money
#define N sizeof(struct message)
struct message
{
int id;
char name[30];
int age;
char sex[4];
char dept[20];
char phone[20];
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("\n\n\n");
printf("导入文件失败,请输入信息,输入完成后按回车键确定\n\n\n");
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;
6