




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言程序设计上机实习报告学院:班级:姓名:学号:指导老师:资源学院021094柴杉20091001131赵曼刖言我们学习C语言课程设计的主要目的是为了了解和熟悉C语言的编程。学习C语言要 经过一个“理论f实践f在理论f在实践,的过程。而学习C语言课程设计就是要我们进 行实践,从中发现问题,解决问题,提高我们运用C语言的能力。是我们能够运用C语言 解决一些问题。通过不断的编程,熟能生巧,是我们的理论学习也有了实践基础,学习理论 知识就较为容易一些,然后再通过实践不断的提高,如此良性循环就能是我们的C语言编 程能力更上一成楼。正文一、题目要求杂志订阅管理软件要求使用计算机对一种杂志的订阅进行管理
2、,该杂志拥有的最多订户不超过10人,每个订户 的信息包括:姓名,性别,地址,电话号码,杂志单价,订阅数,订阅的期限(至XX年XX月).现在要求用菜单选择并完成下述的功能:增加新订户,即将订户的全部信息输入到文件中;根据当天的日期对订户文件进行查询,删除已经到期的订户记录;统计本期杂志的订户数并打印运算结果;本期订户信息表:订户名订阅数单价金额李平25.511.0黄海15.55.5合计31.016.5二、需求分析根据题目要求,由于订户信息放在文件中,所以应提供文件的输入,输出,删除等操作; 在程序中需要浏览订户的信息,应提供显示、查找等操作;另外还应提供键盘式选择菜单实 现功能等。三、总体设计根
3、据上面的需求分析,可以将这个系统的设计分为四大模块:添加、查询、统计、退出。其中主要功能是添加、查询、统计三个模块。四、详细设计1、主函数主函数只提供输入、处理和输出部分的函数调用。其中各功能模块用菜单方式选择。其【程序】void menu() /* 主界面 */int w,n; /疫量n保存选择菜单数字,w判断输入的数字是否在功能菜单对应数字范围内*/ doclrscr();printf(n);printf(tt* * * * * * * * * * * * * * * * * * * * * * * * *n); TOC o 1-5 h z printf(ttn);printf(ttn);
4、printf(tt Welcome to the magazine order system !n);printf(ttn);printf(ttn);*1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* 个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个
5、nn;.1:add_new_subscribern);2:browsen);3:statisticn);4:exitnn);printf(tt* * * * * * * * * * * * * * * * * * * * * * * * *n); printf(nntt printf(tt printf(tt printf(tt printf(tt printf(tt *nn);printf( Choice your number(1-4): bb);scanf(%d”,&n);if(n4) /*对选择的数字作判断*/w=1;else w=0;while (w=1);/*选择功能*/switc
6、h(n)case 1:add();break;/*增加新订户记录 */case 2:search();break;/*查找过期的订户记录并删除*/case 3:statistic();break;/*统计*/case 4:exit();break;/*退 出*/*主 函数 */main()FILE *fp;fp=fopen(record.txt,w);/*建 立一个record.txt记事本 */ fclose(fp);menu();2、各功能模块设计(1)添加模块【需求分析】该模块的功能是需要增加新的订户的记录,从键盘输入并逐条写到原来的文件中,添加【程序】/*添 加模块 */void ad
7、d()int t,i,m;clrscr();t=load_record();printf(How many groups information do you want to add?n); printf(Enter the number: bbb);scanf(d,&m); /*输入要添加的记录个数*/for(i=0;im;i+)printf(nInput %dth subscriber record.n,i+1);input(t+i);/*调用输入函数*/save(t+m);/*调用保存函数 保存t+m组数据*/clrscr();/*清屏*/menu();/*返回登陆界面*/void in
8、put(int i)printf(Please input:nName sex address phone_number unit_price amount time_limit n);scanf(s%s%s%s%s%s%s,&,&orderi.sex,&orderi.address,&orderi.phone_number,&orderi.unit_price,&orderi.amount,&orderi.time_limit); (2)查询模块【需求分析】该模块的功能是根据目前的日期对订户文件进行查询,删除已到期的订户记录。【程序】/* 查询模块 */void sea
9、rch()FILE *fp;char date11,str2;int t,i,sum=0;t=load_record();printf(Please input the current date:bbbbbbbbbbb);scanf(s,date);printf(n);if(fp=fopen(record.txt,w)=NULL)/* 以只写方式打开*/printf(nCannot open filen);exit(0);printf(n);for(i=0;it;i+)if(strcmp(orderi.time_limit,date)0)sum+;printf(n);printf_one(i)
10、;/*把符合条件的记录显示出来个个个个个个个个个个个个个个个个个个个个个个个个/printf(nnThe record is out of date!);printf(nnDo you want to delete its information?(YorN): bb);scanf(%s,str);if(strcmp(str,Y)=0|strcmp(str,y)=0)continue;fwrite(&orderi,sizeof(struct magazine),1,fp);fclose(fp);if(sum=0)printf(*nn);printf(Sorry! Cannot find the
11、 equipment which you want to.nn);printf(*nn);printf(nnnPress any key to go back the former step.n);getchar();menu();(3)统计模块【需求分析】该模块的功能是统计所有订户的资料并显示结果。【程序】/* 统 计模块 */void statistic()int t;t=load_record();printf(The amount of subscriber is%dbbb”,t);printf_n(t);printf(nnnPress any key to go back.nn);g
12、etchar();menu();void printf_one(int i)/*显示一个仪器记录的函数*/ printf(%-10s %-5s %-10s %-11s%-4s%-3s %-10snn”,,orderi.sex,orderi.addr,orderi.phone_number,orderi.unit_price,orderi.a mount,&orderi.time_limit);void printf_n(int n)/*显示n个仪器记录的函数*/ int j;printf(Namesex addressphone_number price amountti
13、me_limitnn);for(j=0;jn;j+)if(j+1)%10=0)/*控制显示,每屏显示10行*/printf(nnPress any key to continue .”);getchar();puts(nn);printf_one(j);/*调用显示一个仪器记录的函数*/3、公共函数/* 公共函数 */int load_record()/*加载仪器信息并计算记录仪器个数的函数*/ FILE *fp;int i;if(fp=fopen(record.txt”,r)=NULL)/* 以只读方式打开*/printf(nCannot open filen);exit(0);for(i=
14、0;!feof(fp);i+)/*从文件中读入数据并保存在结构体数组中*/ fread(&orderi,sizeof(struct magazine),1,fp);fclose(fp);return(i-1);void save(int n)/*n表示保存n组数据,m表示保存在哪个文件夹里*/FILE *fp;int i;fp=fopen(record.txt”,w);/* 以只写方式打开*/if(fp=NULL)printf(nCannot open filen);exit(0);for(i=0;in;i+)fwrite(&orderi,sizeof(struct magazine),1,f
15、p);fclose(fp);五、上机操作运行结果下面是各个模块的界面图:1、主菜单函数2、添加模块在主界面出现后输入1并按【enter】键,结果如图。输入要输入的记录数然后逐条增加,如图所示。3、查询模块4、统计模块六、总结在老师的带领下进行了 C语言程序实践学习。在短短一周的实习期间使我获取了不少新 知识也巩固了许多老知识。C语言是需要有一定基础、而且动手能力强的学科。上机实验是学习程序设计语言必不 可少的实践环节,特别是C语言灵活、简洁,更需要通过编程的实践来真正掌握它。对于程 序设计语言的学习目的,可以概括为学习语法规定、巩固贯穿系统知识、掌握程序设计方法、 提高程序设计能力。通过多次上
16、机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上 就会自然而然地掌握C语言的语法规定。对于一些内容自己认为在课堂上听懂了,但上机实 践中会发现原来理解的偏差,更加巩固了学过的知识。这次上机实习让我学到了很多有用的东西,巩固了之前的学习,让我学到了在教室和做 题中学不到的一些知识,通过这个程序的学习,使我进一步理解和运用结构化程序设计的思 想和方法。初步掌握开发一个小型实用系统的基本方法,学会调试一个比较长程序的基本方 法,学会利用流程图表示算法,进一步掌握和提高利用C语言进行程序设计的能力。我认为这次实习对我而言是非常有意义的,使我的动手能力有了很大的提高。七.源程序#inc
17、lude#include#define max 20struct magazinechar name11;char sex8;char addr11;char phone_number12;char unit_price5;char amount4;char time_limit11;ordermax;void save(int n);int load_record();void search();void printf_n(int n);void printf_one(int i);void input(int i);void statistic();void add();void menu
18、();void exit();main()FILE *fp;fp=fopen(record.txt,w);/*建 立一个record.txt”记事本 */ fclose(fp);menu();void menu()int w,n;doprintf(n);printf(tt* * * * * * * * * * * * * * * * * * * * * * * * *n); TOC o 1-5 h z printf(ttn);printf(ttn);printf(tt Welcome to the magazine order system !n);printf(ttn);printf(ttn
19、); printf(tt* * * * * * * * * * * * * * * * * * * * * * * * *n);printf(nntt*nn;printf(tt1:add_new_subscribern);printf(tt2:browsen);printf(tt3:statisticn);printf(tt4:exitnn);printf(tt*1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1
20、* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* nn;printf( Choice your number(1-4): bb);scanf(%d”,&n);if(n4) w=1;else w=0;while (w=1);/* 选择功能 */switch(n)case 1:add();break;/*增加新订户记录 */case 2:search();break;/*查找过期的订户记录并删除*/case 3:statistic();break;/*统计*/case 4:exit();break;/*退 出*/ /、天*/
21、 个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个/void add() int t,i,m;t=load_record();printf(How many groups information do you want to add?n);printf(Enter the number: bbb);scanf(%d”,&m);for(i=0;im;i+)printf(nInput %dth subscriber record.n”,i+1);input(t+i);/*调用输入函数*/save(t+m);/*调用保存函数 保存t+m组数据*/
22、menu();/*返回登陆界面*/void input(int i)printf(Please input:nName sex address phone_number unit_price amount time_limit n);scanf(%s%s%s%s%s%s%s”,&,&orderi.sex,&orderi.addr,&orderi.ph one_number,&orderi.unit_price,&orderi.amount,&orderi.time_limit);/* 统 计 模 块/ * void t;t=load_recor
23、d();printf(The amount of subscriber is%dbbb”,t);printf_n(t);printf(nnnPress any key to go back.nn);getchar();menu();void printf_one(int i)/*显示一个仪器记录的函数*/printf(%-10s %-5s%-10s%-11s%-4s%-3s %-10snn”,,orderi.sex,orderi.addr,orderi.phone_number,orderi.unit_price,orderi.am ount,orderi.time_li
24、mit);void printf_n(int n)/*显示n个仪器记录的函数*/int j;printf(Namesex addressphone_number price amounttime_limitnn);for(j=0;jn;j+)if(j+1)%10=0)/*控制显示,每屏显示10行*/printf(nnPress any key to continue .”);getchar();puts(nn);printf_one(j);/*调用显示一个仪器记录的函数*/*查询模块/ 个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个/void sear
25、ch()FILE *fp;char date11,str2;int t,i,sum=0;t=load_record();printf(Please input the current date:bbbbbbbbbbb);scanf(%s”,date);printf(n);if(fp=fopen(record.txt”,w)=NULL)/* 以只写方式打开*/printf(nCannot open filen);exit(0);printf(n);for(i=0;it;i+)if(strcmp(orderi.time_limit,date)0)sum+;printf(n);printf_one(i);/*把符合条件的记录显示出来/*printf(nnThe record is out of date!);pri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 20 曹刿论战 (教学设计)九年级语文下册同步备课系列(统编版)
- 茂名市高三第二次综合测试文综历史试题
- 学校安全法律知识
- 2025年山东省枣庄市台儿庄区中考一模语文试题(原卷版+解析版)
- 2025年会工作总结汇报
- 采购文员年终工作总结
- 教师专业技术履职总结
- 监控、校园广播、网络采购合同范本
- 水电线管安装合同
- 2025年佳木斯货运从业资格证考些什么内容
- 山东省地图模板课件
- 项目工程决算书
- 《三国演义》 作品简介名著导读PPT模板
- 施工组织设计-高标准农田建设项目
- DB32T 2061-2018单位能耗限额统计范围和计算方法02-(高清现行)
- 合并财务报表模板案例含抵消分录公式及数据-直接生成报表
- 癫狂中医内科学
- 端午节通用模板PPT
- 部编本三年级语文下册第三单元《语文园地三》课件PPT
- 环保铁1215物质安全资料表MSDS
- ST-结构文本-PLC编程语言-教程
评论
0/150
提交评论