ImageVerifierCode 换一换
格式:DOCX , 页数:41 ,大小:1.07MB ,
资源ID:9351199      下载积分:2 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9351199.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言程序设计实验报告.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言程序设计实验报告.docx

1、C语言程序设计实验报告安阳工学院C 语言 课 程 设 计 课程题目:家庭财务管理系统院 系:计算机科学与信息工程学院专业班级:11级计算机科学与技术(嵌入方向)姓 名:吕鹏学 号:201103010042QQ 号码:1476265623指导老师:高原完成时间:公元二零一二年六月十五课 程 设 计 任 务 书设计题目家庭财务管理系统姓名吕鹏所在院系计算机科学与信息工程学院专业班级11级计科嵌入设计要求:完成一个学生成绩管理系统系统,具体步骤要求如下:1、添加收入 2、查询收入明细 3、删除收入4、修改收入5、添加支出 6、查询支出明细 7、修改支出8、删除支出9、统计总支出总收入学生应完成的工作

2、:1 学生应认真学习参考程序,理解每个文件、每个函数以及各个变量的作用和意义。在此基础上进一步改进程序,最后正确地运行程序。2对程序进行测试,设计详细的测试计划,然后根据测试计划设计测试用例,对程序进行测试。测试时应注意对各种边缘情况进行测试。3 完成课程设计报告参考文献:1 顾晓琳等 C程序设计课程设计 电子工业出版社 20112 谭浩强 C程序设计教程 清华大学出版社2010工作计划:1. 小组审题,查阅资料,进行设计前的必要资料准备(2天)。 2. 把程序完整运行出来(3天)。 3. 增加改进程序(2天)。 4. 写课程设计报告(2天)。 5. 提交课程设计报告及答辩(1天)任务下达日期

3、:2012 年 6 月 1 日 任务完成日期:2012 年 6 月 15 日指导教师(签名): 学生(签名):吕鹏 界面 九、程序设计过程中遇到的问题及解决过程1.对程序整体理解,但在设计过程中,细节问题处理不当,造成程序不能运行或者运行错误,并且,对某一部分的程序不能独立设计出来。对此问题的解决是参考了c程序设计课程设计上的参考程序,完成了设计,但是不是一味的照搬,对参考程序进行了修改和添加。增加了按成绩区间查询的查询方式,增加了按总成绩排序的排序方式。2.在组建工程的时候,将各个程序分给小组成员,两个人设计一个模块,但是出现了连接错误,各个模块之间也出现了输入上的错误,致使程序不能运行。对

4、于各个模块逐一检查,添加修改,最终使各个模块错误消除,同时连接错误也自行解决。3.在刚开始程序设计的时候,不了解什么是组建工程,什么是模块,对于程序设计本身也有不理解的地方,不知道该从何下手。解决方法:先看c程序设计课程设计,了解怎样组建工程,理解每个模块的作用,弄清楚参考程序上的逻辑顺序以及如何设计等问题,然后再进行课程设计。十、课程设计心得及体会对于第一次做课程设计的我来说,这次的课程设计是一次既让人痛苦又让人开心的事情。开始的时候根本不清楚课程设计要设计什么,不知道到底怎样设计,因为平时所写的c程序都是一些简单而且基本的C程序,根本不是解决实际情况,符合客户要求的工程程序,所以觉得无从下

5、手,觉得很困难,甚至没有一个思路,而且对于组建工程,构建模块等工作无法理解。这些情况都使自己陷入了苦恼的深渊。后来,听从辅导老师的意见,从C程序设计课程设计开始,一点点了解怎样组建工程,怎么样构建模块,对于每个模块应该怎么样进行设计,逻辑思维是什么,然后开始构建。在设计过程中一直都有错误存在,困难重重。遇到困难就开始用大量的时间进行修改以及整理,理出思路。最终将工程调试成功,添加模块成功,而这些成功的瞬间是最快乐最开心的时刻。而且通过这次课程设计我学会了好多东西,觉得自己设计的东西更加接近实际的程序要求。知道团队合作的重要性,知道怎样使团队一起合作构建程序。总的来说,我获益匪浅。十一、参考文献

6、1 梁旭等C程序设计课程设计(第2版) 电子工业出版社,20112 刘振安等C程序设计课程设计,机械工业出版社,20073 谭浩强C程序设计(第五版),清华大学出版社,2011十二、源程序#define MAX_NAME 11#define MAX_DETAIL 21#define MENU_COUNT 9#define DATA_FILE fs.dat#define MAX_USERNAME 10typedef enum _fi_type income = 1, payout = -1fi_type;typedef struct _fi_info int year; int month; f

7、i_type type; char nameMAX_NAME; float money; char detail MAX_DETAIL;fi_info;typedef struct _fi_data fi_info info; struct _fi_data*next;fi_data;void add_income();void search_income();void delete_income();void update_income();void add_payout();void search_payout();void delete_payout();void update_payo

8、ut();void count_total();void quit();void search_all();void main_1();void search_data(fi_type type);void delete_data(fi_type type);void update_data(fi_type type);void initialize();void(save_to_file();/void clear_data(); /修改项fi_data* get_last();fi_data* get_previous(fi_info* p);void input_info(fi_info

9、* info);void show_info(fi_data* p,int count);fi_data* head;char menu=|=|n| 吕鹏 家庭财务管理系统 |n+-+n| 收入管理 |n| 添加收入 |n| 查询收入 |n| 删除收入 |n| 修改收入 |n| 支出管理 |n| 添加支出 |n| 查询支出 |n| 删除支出 |n| 修改支出 |n| 统计 |n| 统计收支 |n+-+n| 退出 退出系统 |n+-+n+-+n+-+n;void (* menu_fun)()= quit, add_income, search_income, delete_income, upd

10、ate_income, add_payout, search_payout, delete_payout, update_payout, count_total;#include#include#includeint main() struct data int i; char ch20; char name20; dt; FILE * fp; char shuru20; char ch; char c; if(fp=fopen(aa.dat,w)=NULL) printf(Can not open aa.datfile!nPlease set up this file in same dir

11、ectory!n); printf(按回车键退出.n); ch=getchar(); exit(0); fread(&dt,sizeof(struct data),1,fp); if(dt.i=2) printf(请输入密码:); gets(shuru); if(strcmp(shuru,dt.ch)=0) main_1(); else printf(password error!n); printf(是否重设密码: Y N n); scanf(%c,&ch); c=getchar(); if(ch=Y|ch=y) printf(请输入用户名:); gets(shuru); if(strcmp

12、(shuru,dt.name)=0) fp=fopen(aa.dat,w); printf(*提示*n); printf(*账户已清除(原储存资料未清除)!请重设账户与密码!*n); printf(*n); printf(按回车键退出.n); ch=getchar(); fclose(fp); else if(dt.i!=2) printf(首次登陆(或已清除账户),请设置用户名及密码n); printf(请输入用户名(为找回密码而设):); scanf(%s,dt.name); printf(请输入密码:); scanf(%s,dt.ch); ch=getchar(); /接收最后的回车字符

13、 if(fp=fopen(aa.dat,w)=NULL) printf(can not open!); exit(0); dt.i=2; fwrite(&dt,sizeof(struct data),1,fp); fclose(fp); main_1(); return 0;void initialize() FILE* fp = NULL; fi_data* p = NULL; fi_data* last = NULL; int count = 0; fp = fopen(DATA_FILE,rb); if(fp=NULL) fp = fopen(DATA_FILE,wb); fclose(

14、fp); return; p=(fi_data*)malloc(sizeof(fi_data); memset(p,0,sizeof(fi_data); p-next=NULL; while(fread(&(p-info),sizeof(fi_info),1,fp)=1) if(head=NULL) head=p; else last = get_last(); last-next = p; count+; fseek(fp,count * sizeof(fi_info),SEEK_SET); p=(fi_data*)malloc(sizeof(fi_data); memset(p,0,siz

15、eof(fi_data); p-next=NULL; free(p); p=NULL; fclose(fp);void add_income() fi_data* p = (fi_data*)malloc(sizeof(fi_data); memset(p, 0, sizeof(fi_data); p-next = NULL; input_info(&(p-info); p-info.type = income; if(head=NULL) head = p; else get_last(head)-next = p; /查询收入明细void search_income() search_da

16、ta(income);/删除收入void delete_income() delete_data(income);/修改收入void update_income() update_data(income);/添加收入void add_payout() fi_data* p = (fi_data*)malloc(sizeof(fi_data); memset(p, 0, sizeof(fi_data); input_info(&(p-info); p-info.type = payout; if (head = NULL) head=p; else get_last(head)-next = p

17、; void search_payout() search_data(payout);void delete_payout() delete_data(payout);void update_payout() update_data(payout);void count_total() float total_income = 0.0; float total_payout = 0.0; fi_data*p=head; while(p!=NULL) if(p-info.type=income) total_income +=p-info.money; else total_payout +=

18、p-info.money; p=p-next; printf(+-+-+-+n); printf(| 合计收入 | 合计支出 | 结余 |n); printf(+-+-+-+n); printf(|%12.2f|%12.2f|%12.2f|n,total_income,total_payout,total_income-total_payout); printf(+-+-+-+n); if(total_income-total_payout)按任意键返回主菜单.); fflush(stdin); getchar();void quit() save_to_file(); /clear_data

19、(); /修改项 exit(0);void search_data(fi_type type) int year = 0; int month = 0; fi_data*p = NULL; fi_data* result9 = NULL; int count = 0; char input = ; while(1) printf(请输入要查询的年月(年/月 例:1992/6); if(scanf(%d/%d,&year,&month)!=2) printf(输入错误。n); else p=head; count=0; memset(result,0,sizeof(fi_data*); whil

20、e(p!=NULL) if(p-info.year=year&p-info.month=month&p-info.type=type) if(count输入空格并按回车键翻页。其他键退出。); fflush(stdin); input=getchar(); if(input= ) memset(result,0,sizeof(fi_data*); count=0; resultcount=p; count+; else break; p=p-next; if(count!=0) show_info(result,count); else printf(没有找到数据。n); printf(继续查

21、找其他数据?(y or n); fflush(stdin); input = getchar(); if(input=y|input=Y) continue; else break; void delete_data(fi_type type) int year = 0; int month = 0; fi_data*p = NULL; fi_data*pre=NULL; fi_data* result9 = NULL; int count = 0; char input = ; int i = 0; while(1) printf(请输入要查询的年月(年/月 例:1992/6); if(sc

22、anf(%d/%d,&year,&month)!=2) printf(输入错误。n); else p=head; count=0; memset(result,0,sizeof(fi_data*); while(p!=NULL) if(p-info.year=year&p-info.month=month&p-info.type=type) if(count输入空格并按回车键翻页。输入对应的序号删除。其他键退出。); fflush(stdin); input=getchar(); if(input= ) memset(result,0,sizeof(fi_data*); count=0; resultcount=p; count+; else if(input=1&inputnext; else pre-next = resulti-next; free(resulti); for(;i删除成功。n); else break; p= p-next; if(count !=0) show_info(result, count); prin

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1