版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机科学与技术系课程设计报告20 20 学年第 学期课程C语言课程设计课程设计名称班级班费管理系统 学生姓名 学号 专业班级 指导教师 20 年 月班级班费管理系统 目录班级班费管理系统2目录2一、 需求分析3二、算法设计3(一)设计思想31.程序结构(流程图)32. 重要的数据结构43. 主要算法思想4(二)设计表示4(三)实现注释6(四)算法设计中一些新的想法6三、 用户手册6四、 调试及测试7五、小结7六、参考文献8附录8测试数据14一、 需求分析本程序是班级班费管理系统,主要作用是帮助管理班级班费事务,以月份的形式管理班级班费账目,包括班费支出的时间、经手人、金额和原因。要求具有备忘
2、录班级班费管理和班费信息查看的功能。其中班级班费管理包括班费支出增加和删除功能。班费信息查看包括按月份查看和整体查看。要求具有备忘录班级班费管理和班费信息查看的功能。其中班级班费管理包括班费支出增加和删除功能。班费信息查看包括按月份查看和整体查看。程序设计需要运用面向过程的程序设计方法,要求选择动态数组,任务中要运用对文件进行读写操作。根据要求,本程序提供的基本管理功能有:(一) 添加:即增加一条班费支出到班费项目中;(二) 显示:即在屏幕上显示所有班费支出中的信息。(三) 存储:即将班费支出信息保存在一个文件中。(四) 装入:即将文件中的信息读入程序。(五) 查询:可根据月份查找班费支出信息
3、,若找到,显示在屏幕上。(六) 删除:可删除某月份的班费支出信息。二、算法设计(一)设计思想1.程序结构(流程图)开始主菜单 N管理员模式退出普通用户模式用户名&密码?返回主菜单查看日志 Y返回主菜单查看日志删除日志增加日志结束2. 重要的数据结构typedef struct ClassFeeint month; / 月份float money; /每月班费金额char people20; /班费支出经手人char reason100; /班费支出原因CF;3. 主要算法思想本程序主要运用面向过程的程序设计方法。在界面制作中,运用开关语句switch,通过输入数字,选择主菜单下的子菜单项目,并
4、运用库函数system(“cls”)和system(“pause”)进行清屏和暂停操作,使界面更加清晰美观。在各个子菜单中,分别通过调用子函数的方式来进行班费支出的增加、删除和查询操作。在增加、删除和查询函数中,运用结构体数组和文件操作,实现增加、删除和查询功能。(二)设计表示模块一 void Menu():主菜单函数,是进入系统的第一界面,用来让用户选择进入管理员模式或普通用户模式或退出系统,用户通过输入选择的数字来调用各个子函数进入各个模式。若输入错误,则会被要求重新输入。本函数运用开关语句switch以及调用子函数来实现功能。模块二 void Land():管理员登陆函数,用来让管理员登
5、陆系统,需要用户名和密码。若用户名输入错误,则无法登陆,会返回主菜单。若用户名输入正确,会继续被要求输入密码,这是调用到子函数int Key()。若密码输入错误,则会被要求再次输入密码。如果输入三次密码都是错误的,则无法再次输入密码,程序会提示“对不起!您已经错误输入三次,无法再次输入,按回车键返回主菜单。”,界面返回主菜单。若密码输入正确,会调转到子函数void Administrators()界面。本函数运用开关语句switch以及调用子函数int Key()和void Administrators()来实现功能。模块三 void Administrators():管理员模式函数,用来让管
6、理员选择增加支出或删除支出或查询日志或返回主菜单,用户通过输入选择的数字来调用各个子函数进入各个功能。若输入错误,则会被要求重新输入。本函数运用开关语句switch以及调用子函数来实现功能。模块四 void Users():普通用户模式函数,用来让普通用户选择查询日志或或返回主菜单,用户通过输入选择的数字来调用各个子函数进入各个功能。若输入错误,则会被要求重新输入。本函数运用开关语句switch以及调用子函数来实现功能。模块五 int Read():读取文件信息函数,用来读取文件日志.txt中共有多少条信息并返回信息总数目i。本函数运用文件打开、读取和关闭操作以及结构体数组和指针来实现功能。模
7、块六 void Output():输出文件内容函数,用来输出文件日志.txt的内容。本函数运用文件打开、读取、输出和关闭操作以及结构体数组和指针来实现功能。模块七 void Choose():查询文件内容菜单函数,用来让普通用户选择按月查询或查询所有或返回主菜单,用户通过输入选择的数字来调用各个子函数进入各个功能。若输入错误,则会被要求重新输入。本函数运用开关语句switch以及调用子函数来实现功能。模块八 void Delete():删除文件内容函数,用来让管理员删除文件内容。屏幕首先显示全部文件内容,然后显示“请输入你想要删除的月份:”,管理员输入数字,屏幕输出删除后的文件的全部内容,并将
8、删除后的文件的全部内容打印到更新后的日志.txt。之后,屏幕输出“请选择:1-返回上一级菜单 2-返回主菜单”,管理员输入数字,通过调用子函数void Administrators()和void Menu()来调转界面。若输入错误,则会被要求重新输入。本函数运用开关语句switch、文件打开、读取、打印和关闭操作、结构体数组、指针以及调用子函数void Administrators()、int Read()和void Menu()来实现功能。模块九 void Add():增加文件内容函数,用来让管理员增加文件内容。屏幕首先显示“请输入你要增加的支出信息(请依次输入时间(月份)、经办人姓名、金额
9、和原因)”,管理员输入相应内容,屏幕首先输出管理员增加的内容,然后输出增加后的文件的全部内容,并将增加后的文件的全部内容打印到更新后的日志.txt。之后,屏幕输出“请选择:1-返回上一级菜单 2-返回主菜单”,管理员输入数字,通过调用子函数void Administrators()和void Menu()来调转界面。若输入错误,则会被要求重新输入。本函数运用开关语句switch、文件打开、读取、打印和关闭操作、结构体数组、指针以及调用子函数void Administrators()、int Read()和void Menu()来实现功能。模块十 void consult():按月查询文件内容函
10、数,用来让管理员和普通用户按月查询文件内容。屏幕首先显示“请输入你想要查询的月份:”,管理员和普通用户输入数字,屏幕输出该月的全部班费支出内容。之后,屏幕输出“请选择:1-返回上一级菜单 2-返回主菜单”,管理员和普通用户输入数字,通过调用子函数void Choose()和void Menu()来调转界面。若输入错误,则会被要求重新输入。本函数运用开关语句switch、文件打开、读取、打印和关闭操作、结构体数组、指针以及调用子函数void Choose()、int Read()和void Menu()来实现功能。模块十一 int Key():密码函数,用来让管理员输入密码,使用数组实现密码以“
11、*”号形式输出。若输入的字符正确,则返回a=0;若输入的字符不正确,则返回a=1。本函数运用字符串数组来实现功能。模块十二 void main():本程序主函数。(三)实现注释任务中各项要求基本实现。在完成基本要求的基础上,本程序设计了管理员模式与普通用户模式。在管理员模式中,设计了用户名和密码模块。管理员必须输入正确的用户名,才能进一步输入密码,否则则无法进入管理员界面。在密码模块,设计了以“*”号形式输出密码的方式,而若输入密码错误超过三次,就无法进入管理员界面。而在各界面的调转方面,通过运用库函数system(“cls”)和system(“pause”)来实现清屏和暂停功能。(四)算法设
12、计中一些新的想法本程序可以使用链表。链表可以将结构体、数组、指针等C语言的基本元素融合在一起,它最大的好处是可以非常方便地在链表中实现插入、删除节点操作。本程序具有的增加、删除功能,正可以创建一个链表来实现这些功能。而本程序采用结构体数组的方法,对于增加、删除功能编写的代码较为繁琐,不如链表的操作简洁方便。但是,我对于链表操作不太熟练,把握不大,因此采用了结构体数组的方法。在之后的学习中,我会加强对链表知识的学习,实现使用链表来编写本程序。三、 用户手册用户进入系统后,首先在主菜单界面选择要进入的模式:管理员模式或普通用户模式或退出,输入数字1或2或3,如果输入其他字符,则屏幕会输出“输入错误
13、!请重新输入:”,并且调转回主菜单界面。例如:输入1后,系统进入管理员登陆界面,用户需要输入用户名,如果用户名错误,则屏幕会输出“请输入您的用户名,按回车键结束:”,并且调转回主菜单界面。如果用户名正确,则系统会继续要求用户输入密码。如果密码错误,则屏幕会输出“密码错误!请重新输入:”,若输入密码错误三次,则屏幕会输出“对不起!您已经错误输入三次,无法再次输入,按回车键返回主菜单。”,并且调转回主菜单界面。如果密码正确,则会调转到管理员界面。用户可以选择进入的功能:增加支出或删除支出或查询日志或返回主菜单,输入数字1或2或3或4,如果输入其他字符,则屏幕会输出“输入错误!请重新输入:”,并且调
14、转回管理员界面。例如:输入1后,屏幕显示“请输入你要增加的支出信息(请依次输入时间(月份)、经办人姓名、金额和原因)”,用户输入相应的信息后,屏幕首先输出用户增加的内容,然后输出增加后的文件的全部内容,并将增加后的文件的全部内容打印到更新后的日志.txt。之后,屏幕输出“请选择:1-返回上一级菜单 2-返回主菜单”,输入数字1或2,如果输入其他字符,则屏幕会输出“输入错误!请重新输入:”。输入1后,会返回管理员界面。输入2后,会返回主菜单界面。用户在进行操作时,根据屏幕输出的提示进行输入操作,输入数字或文字,在输入完成后,按回车键结束操作。四、 调试及测试在程序的调试及测试过程中,程序出现的问
15、题有:(1)由于粗心,一些符号为中文格式,这些错误但是“Ox”开头的。(2)密码函数编写错误。一开始定义密码函数为void型,无法返回值,后来改为int型后,函数正确了。(3)增加支出函数编写错误。运用结构体数组来编写增加支出函数,循环体较为复杂,在经过多次的修改过后,终于确定了最终正确的循环体。(4)删除支出函数编写错误。运用结构体数组来编写增加支出函数,循环体较为复杂,在经过多次的修改过后,终于确定了最终正确的循环体。(5)编程开始没有运用库函数system(“cls”)和system(“pause”)来实现清屏和暂停功能,因此输出界面较为冗长,后来经过查资料,学习了这两个库函数,使得系统
16、实现了清屏和暂停功能。(6)在文件操作中,读取文件内容时,一开始忘记了要读取题目,导致测试时多次死循环,之后发现了这个错误,定义变量读出题目后,文件操作正确了。五、小结经过一个星期的课程设计,我将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。通过课程设计,我进一步巩固、加深了所学专业课程C 程序设计语言的基本理论知识,理论联系实际,进一步培养了综合分析问题,解决问题的能力。课程设计全面考核了我所掌握的基本理论知识及实际业务能力,从而达到提高我素质的最终目的。利用所学知识,我开发小型应用系统,掌
17、握运用C 语言编写调试应用系统程序,训练了独立开发应用系统,进行数据处理的综合能力。在课程设计后,我掌握了结构化程序设计方法,熟悉了面向过程程序设计方法,熟练了掌握C 语言的基本语法,灵活运用了各种数据类型,进一步掌握在集成环境下如何调试程序和修改程序。课程设计的过程虽然很辛苦,但付出终有回报,计算机编程水平的提高就是对我最大的回报!六、参考文献1 黄明等编著C语言课程设计北京:电子工业出版社2 郭翠英编著C语言课程设计案例精编北京:中国水利水电出版社3 宁正元数据结构(c语言) 南京:东南大学出版社。2000年6月第1版4 严蔚敏等 数据结构(c语言版) 北京:清华大学出版社,1997年4月第1版5 谭浩强编著C程序设计题解与上机指导(第3版) 北京:清华大学出版社6 谭浩强编著C程序设计(第3版) 北京:清华大学出版社7 洪国胜 等编著 C+ Builder程序设计轻松上手北京:清华大学出版社8 宁正元数据结构(c语言) 南京:东南大学出版社。2000年6月第1版9 严蔚敏等 数据结构(c语言版) 北京:清华大学出版社,1997年4月第1版。10 明日科技 编著Visual C+程序开发范例宝典北京:人
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度farmhouse木门安装服务合同
- 深圳购房合同样本
- 住宅房屋购买合同简单版
- 2024年《软件许可合同中不可抗力事件的处理》
- 广告公司授权合同模板
- 2024年范文承包土地协议书
- 2024年发光字合同
- 跨境客运线路租赁合同
- 共建文明施工项目协议书
- 亲子园与医疗机构合作协议书
- 国开2024年《中国法律史》平时作业1-3答案
- 钢结构策划书(范本)
- 急性肾衰竭与crrt治
- 焦化厂生产工序及工艺流程图
- 呕吐(急性胃肠炎)诊疗指南(制订)编制说明排版
- 江堤道路工程施工方案#江苏
- (外研版)初中英语语法汇总[新版]
- 李燕璇植树问题卡通版5
- 有砟轨道铺设的施工讲解
- 烟草专卖食堂燃气泄露及火灾事故现场应急处置方案
- 国家电网公司十八项反措
评论
0/150
提交评论