中南大学C语言程序设计Word格式文档下载.docx
《中南大学C语言程序设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《中南大学C语言程序设计Word格式文档下载.docx(18页珍藏版)》请在冰豆网上搜索。
二.解题思路
三.程序框图
四.程序截图
五.学之心得
六.程序代码
一.需求分析
教师工资管理系统
(1)系统需要实现的功能:
A输入教师信息
B浏览教师信息
C查询教师信息
D删除教师信息
E修改教师信息
(2)数据处理:
计算并输出教师的实际工资
(3)需要处理的信息:
教师编号、姓名、性别、工资、水费、电费、实际工资
1.由于一个教师所包含的信息过多,所以应先定义一个结构体。
然后再定义一个结构体数组,来存储每个教师的信息。
数组的大小通过用宏定义的MAX来实现。
2.主函数部分:
可以通过switch语句来实现各个功能的接入。
每个功能可以通过函数的形式来实现。
3.输入信息函数的实现:
可以利用for循环和结构体数组以及scanf语句来实现每个教师信息的录入。
4.浏览信息函数的实现:
可以利用for循环和结构体数组以及printf语句来实现每个教师信息的输出。
5.查询信息函数的实现:
可以利用for循环和if语句来判断需要查询的教师编号是否与数据库中的已有教师编号一致,如果一致,输出该教师的所有信息。
6.删除信息函数的实现:
与5部分相似,判断编号一致后,将该编号后一个教师的所有信息赋给该编号下的教师结构体数组中,并把原来编号下的教师信息归零。
7.修改信息函数的实现:
先定义一个新的结构体数组,通过for循环和if语句以及赋值语句来实现该教师全部信息的修改,通过switch语句来实现教师的部分信息修改
8.教师的姓名等字符数组的修改通过指针的方式来实现。
三.程序框图
四.程序截图
程序菜单:
输入教师信息:
浏览教师信息:
查询教师信息:
删除教师信息:
修改该教师全部信息:
修改该教师单个信息:
退出系统:
五.学之心得
刚开始拿到题目时,看到密密麻麻的课程设计书和题目要求,觉得这简直是在为难我们,脑海中一点思路也没有,顿时明白一个程序的诞生是如此的不易,如此的损伤脑细胞。
拿到题目后,先把课本看了一遍,还是没思路,然后通过在网上看别人写的程序,才慢慢有了点思路。
从开始的看不懂,到一点点理解,然后再模仿,再改进。
在这个过程中,发现自己也在一步步的提高。
通过调试报错,找错修改,如此反复,程序的功能在一点点完善。
虽然是在原有的程序上修改,但是其中可以插入自己新编的功能,并且能够调试成功,心中的自豪感油然而生。
不去尝试,怎么知道自己不行。
在这次课程设计中,我找到了自己的许多不足,同时也积累了经验。
总体来说,这次课程设计还是很有意义的!
最后,还要感谢老师的教导和同学的帮助!
#include<
stdio.h>
#defineTEACHER_MAX2
//教师信息结构体
structteacher
{
intnum;
charname[10];
charzhiwei[10];
charsex[5];
intgongzhi;
intjiangjin;
intdianfei;
intshuifei;
intshiji;
}teacher[TEACHER_MAX];
//复制教师信息函数部分
voidCopyString(char*A,char*B,intlength)
{
inti;
for(i=0;
i<
length;
i++)
A[i]=B[i];
}
}
//输入教师信息函数部分
voidInputInformation(void)
printf("
请输入教师的信息:
\n"
);
[编号][姓名][性别][职位][工资][奖金][电费][水费]\n"
TEACHER_MAX;
scanf("
%d%s%s%s%d%d%d%d"
&
teacher[i].num,teacher[i].name,teacher[i].sex,teacher[i].zhiwei,&
teacher[i].gongzhi,&
teacher[i].jiangjin,&
teacher[i].dianfei,&
teacher[i].shuifei);
teacher[i].shiji=teacher[i].gongzhi+teacher[i].jiangjin-teacher[i].dianfei-teacher[i].shuifei;
//浏览教师信息函数部分
voidViewInformation(void)
[编号][姓名][性别][职位][工资][奖金][电费][水费][实际]\n"
%-3d%-10s%-10s%-10s%-4d%-4d%-4d%-4d%-4d\n"
teacher[i].num,teacher[i].name,teacher[i].sex,teacher[i].zhiwei,teacher[i].gongzhi,teacher[i].jiangjin,teacher[i].dianfei,teacher[i].shuifei,teacher[i].shiji);
//查询教师信息函数部分
voidCheckInformation(void)
请输入你要查询的教师的编号:
\nnum="
%d"
num);
if(teacher[i].num==num)
姓名:
%-10s\n性别:
%-10s\n职位:
%-10s\n工资:
%-4d\n奖金:
%-4d\n电费:
%-4d\n水费:
%-4d\n实际:
%-4d\n"
teacher[i].name,teacher[i].sex,teacher[i].zhiwei,teacher[i].gongzhi,teacher[i].jiangjin,teacher[i].dianfei,teacher[i].shuifei,teacher[i].shiji);
break;
//删除教师信息函数部分
voidDeleteInformation(void)
请输入你要删除的教师的编号:
for(;
TEACHER_MAX-1;
teacher[i].num=teacher[i+1].num;
CopyString(teacher[i].name,teacher[i+1].name,10);
CopyString(teacher[i].zhiwei,teacher[i+1].zhiwei,10);
CopyString(teacher[i].sex,teacher[i+1].sex,10);
teacher[i].gongzhi=teacher[i+1].gongzhi;
teacher[i].jiangjin=teacher[i+1].jiangjin;
teacher[i].dianfei=teacher[i+1].dianfei;
teacher[i].shuifei=teacher[i+1].shuifei;
teacher[i].shiji=teacher[i+1].shiji;
teacher[i].num=0;
CopyString(teacher[i].name,"
"
10);
CopyString(teacher[i].zhiwei,"
CopyString(teacher[i].sex,"
5);
teacher[i].gongzhi=0;
teacher[i].jiangjin=0;
teacher[i].dianfei=0;
teacher[i].shuifei=0;
teacher[i].shiji=0;
//修改教师信息函数部分
voidModifyInformation(void)
{voidModify1(void);
voidModify2(void);
intchoice;
1.修改该教师全部信息\n2.修改该教师单个信息\n"
请输入选择的项目:
"
choice);
switch(choice)
case1:
Modify1();
break;
case2:
Modify2();
//修改函数子函数1部分---修改该教师全部信息
voidModify1(void)
structteacherchange;
请输入该教师编号:
change.num);
[编号][姓名][性别][职位][工资][奖金][电费][水费]\n%d"
change.num);
%s%s%s%d%d%d%d"
change.name,change.sex,change.zhiwei,&
change.gongzhi,&
change.jiangjin,&
change.dianfei,&
change.shuifei);
change.shiji=change.gongzhi+change.jiangjin-change.dianfei-change.shuifei;
if(teacher[i].num==change.num)
teacher[i].num=change.num;
CopyString(teacher[i].name,change.name,10);
CopyString(teacher[i].zhiwei,change.zhiwei,10);
CopyString(teacher[i].sex,change.sex,5);
teacher[i].gongzhi=change.gongzhi;
teacher[i].jiangjin=change.jiangjin;
teacher[i].dianfei=change.dianfei;
teacher[i].shu