当前位置:文档之家› C++课设教师工资管理系统

C++课设教师工资管理系统

目录 (1)一.设计目的 (2)二.设计内容 (3)三.概要设计 (4)1. 功能模块图 (4)2. 各个模块详细的功能描述。

(4)四.详细设计 (5)1、输入记录模块52、插入记录模块63、删除记录模块(具体流程图如图所示)74、............................................ 函数功能描述7五.测试数据及运行结果 (9)1. 系统主界面 (9)2. 输入界面 (10)3. 输出教师信息界面 (11)4. 插入教师信息界面 (12)六.调试情况,设计技巧及体会 (12)附录源代码 (13)word范文、设计目的本程序旨在训练基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件和结构数组的各种基本操作。

本程序涉及结构体、数组、指针、文件等方面的知识。

通过本程序的训练,使读者能对C语言的文件操作有一个更深刻的了解,掌握利用数组存储结构实现教师工资管理系统,为进一步开发出高质量信息管理系统打下坚实的基础。

(1)巩固和加强《C++语言程序设计》课程的理论知识。

(2)掌握C ++语言的基本概念、语法、语义和数据类型的使用特点。

(3)掌握C ++语言程序设计的方法及编程技巧,能正确使用C ++语言编写程序。

(4)进一步理解和运用结构化程设计的思想和方法;学会利用流程图表示算法。

(5)掌握调试程序的基本方法及上机操作方法。

(6)掌握书写程设计开发文档的能力,学会撰写课程设计总结报告。

课程设计的思想和方法还可以作为毕业论文时的参考资料。

(7)通过查阅手册和文献资料,培养自己独立分析问题和解决问题的能力。

为自己做毕业设计打好基础。

(8)初步掌握开发一个小型实用系统的基本方法:结合实际应用的要求,使课程设计既覆盖知识点,又接近工程实际需要。

通过激发学习兴趣,调动自己主动学习的积极性,并根据实际编程要求,训练自己实际分析问题的能力及编程能力,并养成良好的编程习惯。

(9)培养自己的创新能力和创新思维。

可以根据指导书和相关文献上的参考算法,自己设计出相应的应用程序。

( 1 0 )培养自己良好的程序设计风格。

在实际编程中,为了提高编程质量,对空行、空格和注释均有要求。

自己在课程设计书写代码时,应该严格按要求处理,以便建立良好的程序设计风格。

. 设计内容每个教师的信息为:教师号、姓名、性别、单位名称、家庭住址、联系电话、基本工资、津贴、生活补贴、应发工资、电话费、水电费、房租、所得税、卫生费、公积金、合计扣款、实发工资。

注:应发工资=基本工资+津贴+生活补贴;合计扣款=电话费+水电费+房租+所得税+卫生费+公积金;实发工资=应发工资-合计扣款。

1、教师信息处理(1) 输入教师信息(2) 插入(修改)教师信息:(3) 删除教师信息:(4) 浏览教师信息:提示:具体功能及操作参考题1。

2、教师数据处理(1) 按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。

(2) 教师实发工资、应发工资、合计扣款计算。

提示:计算规则如题目。

(3) 教师数据管理提示:输入教师号,读出并显示该教师信息,输入新数据,将改后信息写入文件(4) 教师数据查询:提示:输入教师号或其他信息,即读出所有数据信息,并显示出来。

(5) 教师综合信息输出提示:输出教师信息到屏幕。

三•概要设计1.功能模块图7――退出系统图1教师工资系统功能模块图2.各个模块详细的功能描述。

(1) 输入教师信息模块在主菜单中运用结构体teacher ,输入教师信息,首先建立链表,将用户输入的学生信息存储到链表中, 输入完成后提示用户时候继续输入, 如果用户输入 “Y'或“ y ”,则再次调用,实现继续输入学生信息的操作。

如果用户输入“ N或“n ”,则返回主菜单界面。

(2) 插入教师信息模块教师工资管理系统*♦*在主菜单中调用teacher *insert() ,然后按照提示依次输入教师信息,然后再调用void print ()函数讲所有的教师信息记录打印出来。

然后再返回主菜单界面。

(3) 修改教师信息模块在主菜单中调用void edit() 函数。

按教师号查找教师信息,如果找到教师信息,调用void edit() 函数提示用户输入新的教师信息,完成修改的操作。

操作结束后提示用户修改成功。

然后返回主菜单界面。

(4) 删除教师信息模块在主菜单中调用del() 函数,以删除教师信息,首先按学号查询教师信息,如果没有找到教师信息,给出提示信息。

如果查找到该教师信息,给出改教师的全部信息,如果查找到,则删除该教师信息,给出删除成功的提示信息。

然后返回主菜单界面。

(5) 浏览教师信息模块在主菜单中调用void print() 函数来显示教师信息,先判断链表是否为空。

如果链表不为空时,逐条显示链表中教师的信息,显示调用teacher *next() 函数按照教师号的大小来显示教师的信息。

然后返回主菜单界面。

(6) 系统信息模块在主菜单中输入6,可知系统信息、版本。

(7) 退出系统模块将链表中的数据全部释放掉,防止内存泄露。

退出系统。

四.详细设计1、输入记录模块输入教师信息的流程图如下图。

首先要开辟一个新节点,并使p1,p2 指向它读入一个教师数据给pl 所指的节点。

此时要使head=NULLn=0,并且p1->num!=O2、插入记录模块插入记录模块具体流程图如下图所示:具体流程图如图:3、删除记录模块(具体流程图如图所示)4、函数功能描述(1)保存数据函数save()函数原型:void save()功能描述:将链表teacher中的N个数据写入到磁盘文件teacher_list 中,如果保存成功,则给出提示保存成功,否则返回“ cannot ofen file ”表示无法打开文件,返回“ file write error ”表示文件输入错误。

(2)浏览教师信息函数query()函数原型:void query(struct teacher *p)功能描述:将链表teacher中的head指向p,然后让用户输入教师号no,依次在链表中需找p,如果教师号不对,则指针往后面拨动一下,使p=p->next ;知道找到相对应的正确的教师号。

然后打印出教师的基本信息。

函数流程图如图5.2所示图5.2(3)修改教师信息函数edit()函数原型:void edit(struct teacher *p)功能描述:首先让用户输入希望修改的教师的教师号a,然后在链表中一条一条查找看p->num是否等于a,如果找到,则让用户再次输入教师的具体信息,输入完毕跳出,转向主菜单界面。

如果没有找到,则令P=p->next。

直到查询完所有的教师记录。

函数流程图如图5.3所示I-五•测试数据及运行结果1.系统主界面用户刚进入系统时,如图1、2所示。

主菜单界面:请输入你想要的操作’自3息自心自心自心信倚M.ft.ft. 师师mm师息统系入入改出 12 34 5 6 7图1■I*w2.输入界面用户在主菜单界面的时候输入1,显示如图图2依次给出需要输入的信息的,教师号、姓名、性别、单位名称、家庭住址、联系电话、基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等。

当公积金输入完成,系统将给出提示是否想继续输入教师信息,显示如图 如果输入丫或者y ,则继续输入教师信息;如果输入 N 或者n ,则返回到主菜单 界面。

显示如下图:3. 输出教师信息界面如果已经输入教师信息,再在主菜单选择 4――浏览教师信息,结果如图:-口sL5 0 0 2n私0022回j S 6 0 £ n 6 0 hnpi662B:01込&n F话资 g贴:3|:2<阳得:3|:2:号:1:n名住电工:1;^费:1所费金?工名怨庭皐电租人生积个鲁性电诊个卫公一 丸入入入AJ入入入入入入入入入下佳嗚住l旧咤用住嗚住冃隹冃请三诟三嗚注嗚住月嗚 3 4 5 6漳师息统系 改#^岀俘退□Jig息匚匕rr'w■ ■4. 插入教师信息界面在主菜单中进入2——插入教师信息,然后依次插入教师的所有信息,最后打印 链表里的记录,如图:六•调试情况,设计技巧及体会持续一个学期的课程设计给了我太多的感触,开始从题目上看,感觉题目很大,设计量很大,也很复杂,感觉不是简单的就能解决的。

这样只用重新拾起书 继续来看,获得新的知识和巩固以前的 C 方面的知识。

提升自己的能力。

整个程序的设计是分模块实现具体的功能,每个模块分别由不同的函数构 成。

链表的建立实现输入信息的功能,相比较于数组更加方便,更能够节省内存 空间等。

通过使用文件fread 和fwrite 函数方便的将数据信息写入文件以及将文 件中的信息载入显示段。

通过这个学期的课程设计的练习与设计我学会了很多,也更加熟悉C 语言程序设计,从中得到了很多乐趣,很快乐,感觉 C 语言的世界里面奇妙无比。

虽然 在途中也遇到很多的苦难,但是还是通过问同学和学长解决了。

最后看到自己设 计的程序能够运行起来特别的开心。

这次的程序设计很有意义,也很锻炼人的能力,特别是 C 语言方面的能力,为自己在C+■语言方面打下基础。

附录 源代码#include<iostream>I J 口卜 I賦j iaoshi03\Debug\ j iaoshiLOS. exe00任:2下 ______________________ 税BB 随安 0 n 舌务 0占II1 231 ■■Q _a 0 nA. : : 0 z- I号:g:n名住电工费:1所零 T 名怨庭拿贴喬电租人空积養性<^^犀电査个卫必 %入入入M2入入入入入入入入输8 0 0 3 0 0 8!:2 6 0 0 二■■请1诂—H请请注冃1请请请请lrlllJ卜斟#include<fstream> #include<stdlib.h> #include<string> #include<iomanip> using namespace std; int i;class Person { public:void display(){cout << " 姓名:";cin >> name;cout << " 工号:";cin >> num;while(num<=0) {cout<<" 请重新输入工号大于0 的数:"<<endl; cin>>num;}}string name;// 名字int num;};// 工号class Teacher: public Person// 教师{ public:Teacher() { int s=1000;wage = s;butie1=0;}void display1();int wage;// 基本工资int time;int butie1;int jintie1;};// 课时void Teacher::display1(){cout << " 请输入";Person::display();cout << " 请输入教师的课时(小时) :"; cin >> time;while(time<=0){cout<<" 请重新输入课时大于0 的数:"<<endl; cin>>time;}}};// 补贴Teacher t[100];Leader x[100];Jianzhi j[100]; void show()cout << "\t 请输入你要录入的对象:" << endl;cout << "\t\t 1 :教师" << endl;cout << "\t\t 2 :领导" << endl;cout << "\t\t 3 :教师兼职领导" << endl;cout << "\t\t 4 :退出录入" << endl;cout << " 请选择:}void jiaoshiluru()// 教师录入{ofstream outfile(" 教师.txt", ios::app);if (!outfile) {cerr << "open error!" << endl; exit(0);}int b;cout << " 请选择你要录入教师的个数:";cin >> b;for (i = 0; i < b; i++) { t[i].display1();cout<<" 是否保存信息(y(Y)/n(N))"<<endl; char c;cin>>c; if(c=='Y'||c=='y') {outfile << t[i].num << " " << t[i].name << " " << t[i].wage << " " << t[i].time << endl;}}outfile.close();}void wenjianluru()// 文件录入{int c;for (i = 0;; i++){ show(); cin >> c; if (c == 4) { cout << " 退出录入成功。

相关主题