C语言行业收入系统课程设计.docx
- 文档编号:1029398
- 上传时间:2022-10-15
- 格式:DOCX
- 页数:27
- 大小:327.85KB
C语言行业收入系统课程设计.docx
《C语言行业收入系统课程设计.docx》由会员分享,可在线阅读,更多相关《C语言行业收入系统课程设计.docx(27页珍藏版)》请在冰豆网上搜索。
C语言行业收入系统课程设计
课程设计报告
课程名称C语言课程设计
课题名称行业收入统计系统
专业
班级
学号
姓名
指导教师
目录
1、设计目的
2、总体设计
3、详细设计
4、调试与测试:
5、总结与体会
附:
源程序清单和执行结果
1.设计目的
实现对城市各行业收入的统计、排序以及各项数据的显示、查询、增删、修改等操作的管理。
本系统采用一个结构体数组或对象数组,每个数据的结构应当包括:
地区名称、各行业收入名称。
主要功能:
1)、数据录入、显示、查询
2)、数据修改
3)、统计并显示每个城市收入最高的行业
4)、统计并显示各行业总收入的全国平均值
5)、统计并显示超过平均值的城市信息
6)、将数据保存到文件中。
2.总体设计
本系统采用自顶向下、逐步细分的结构化程序设计方法,其模块结构如下图所示:
3.详细设计
主函数
main()
read()
菜单函数
intchoose=0,i;
scanf("%d",&choose);
for(i=0;i case1: Add();break; case2: Print();break; case3: Search();break; case4: Delete();break; case5: Modify();break; case6: SortHY();break; case7: Count();break; case8: Save();break; case9: exit(0); default: break; 数据录入 intHYIndex=0; intHYSum=0; intHYFlag[MAX]; printf("请输入编号: "); scanf("%s",temp.ID); printf("请输入行业名称: "); scanf("%s",temp.HY_Name); printf("请输入该地区行业的收入: "); scanf("%lf",&temp.Income); printf("请输入所在地区城市: "); scanf("%s",temp.City); HY[HYIndex]=temp; HYFlag[HYIndex]=1; HYSum++; HYIndex++; printf("录入成功! \n"); getch(); 数据读取 FILE*pfile=NULL; charbuf[SIZE]; (pfile=fopen("HY.txt","r"))==NULL fgets(buf,SIZE,pfile) printf("读取信息失败! \n"); return; fscanf(pfile,"%s",HY[HYIndex].ID); fscanf(pfile,"%s",HY[HYIndex].HY_Name); fscanf(pfile,"%lf\n",&HY[HYIndex].Income); fscanf(pfile,"%s",HY[HYIndex].City); HYFlag[HYIndex]=1; HYSum++; HYIndex++; HYSum--;HYIndex--;fclose(pfile); return; 数据保存 inti=0; FILE*pfile=NULL; pfile=fopen("HY.txt","w+"))==NULL for(i=0;i if(HYFlag[i]>0) printf("保存信息失败! \n"); return; fprintf(pfile,"\n"); fprintf(pfile,"%s\n",HY[i].ID); fprintf(pfile,"%s\n",HY[i].HY_Namfprintf(pfile,"%lf\n",HY[i].Income); fprintf(pfile,"%s\n",HY[i].City); 保存成功 数据查找 数据修改 charid[SIZE];inti=0; 数据查找 printf("\n开始修改: \n"); printf("请输入编号: "); scanf("%s",temp.ID); printf("请输入行业名称: "); scanf("%s",temp.HY_Name); printf("请输入收入: "); scanf("%lf",&temp.Income); printf("请输入所在地区城市: "); scanf("%s",temp.City); HY[i]=temp; return; 数据删除 charid[SIZE];inti=0; 数据查找 printf("\n查找成功: \n"); printf("\n编号: %s\t行业名称: %s\n",HY[i].ID,HY[i].HY_Name); printf("\t\t收入: %lf\t\t所在地区城市: %s\n",HY[i].Income,HY[i].City);HYSum--; HYFlag[i]=0; printf("\n"); printf("删除成功\n"); getch();return; 数据排序 最高行业及收入 平均收入 超过平均收入的城市信息 4.调试与测试 (1)进入主菜单,按字母提示操作。 比如按1键进入信息录入,按9键退出系统。 (2)录完数据后,返回主菜单,按3键进入数据查询,如果输入的地区没有,将会提示没有该地区信息,是否继续查询。 有该地区,则会显示该地区的所以信息。 (3)数据的显示都是利用循环的方式,用表格的形式显示出来,更具有人性化。 (4)在调试过程中,开始时,表格与数据没有对齐,只有慢慢的尝试,最终终于使表格非常美观的显示在用户前。 (5)在编读写文件函数的时候,数据能够存在文件中,但是不能显示出来,经过慢慢的摸索,终于知道是城市的总数没有保存,所以在建一个文件保存n的值后,结果就可以正常的输出保存在文件中的值了 以下为测试截屏: 5.总结与体会 过去只从别人口中听说过语言有多难多难,想不到我也接触了编程语言。 刚开始学习C语言的时候,感觉是新鲜,好玩,真的是又紧张又兴奋。 一有程序设计,我就非常积极的进行程序的设计和调试,尽管这些程序都是非常浅显的,不过高楼从低起,没有现在的基础,怎么可能有以后的飞跃? 这次C语言程序设计在考试的前一周,虽然说有点紧张,但是这并没有影响我对这次C语言程序设计的热情,为了能够把这次程序设计好,在这周的时间中,我基本上都要编程到凌晨两点。 几乎是每天到遨游在编程的世界中,几天的辛苦终于把我的行业收入统计系统完成了。 看到自己的辛苦换回了回报,我觉得自己这么做是值得的。 这次设计我个人觉得最大的特点就是界面友好,一切的操作都是有提示,只需用户稍微按几个键就可以完成所以的操作,在程序录入的时候,因为会冲掉以前的数据,所以,我用提示的方式提示用户,并且需要用户进行确认,确认以后还需要用户输入密码,在录入完以后也会提示用户是否保存。 这样多重保障,避免用户因为误操作而丢失数据。 数据查询,开始查询的时候,只能查出一个与要查询的地区信息。 有一次调试的时候,我不小心输了两个一样的地区名,这样发现不能查出这两个相同地区名的信息。 后面,我就用了一个while循环函数,当i的值不等于n的时候,就继续循环查找,直到等于n的值。 这样的话就不会出现有两个相同地区名的信息,而只查到一个地区的信息。 函数修改部分,刚开始的时候我准备用链表,结果VC下我找不到链表所用函数的头文件,所以我最终还是采用了数组变量。 开始用的时候,我觉得数组应该会要比链表不好用。 结果经过我的摸索,最终还是完成了数据的增加、修改、删除等操作。 函数的统计部分,开始想用指针进行排序,后面发现用冒泡法排序比较熟悉,结果就用了冒泡法进行排序。 在编程的时候,我发现if,for,while循环比较好用,又比较熟悉,所以大量使用了这个三个循环,使得界面非常的友好与美观。 Case语句,在进行选择的时候非常好用,所以有选择的地方我都是用的这个语句。 感觉程序设计的这周里,尽管又要复习其他科目又要编写程序,真的是相当得累,心理压力也非常大,但是我学到了好多以前没有掌握好的知识点,在老师的帮助下,终于保质保量的完成了老师交给我的任务。 这样想想,再苦再累也值得了。 C语言真的是一门很好的编程语言,虽然我现在学的东西非常浅显,不过在这周的程序设计中,我体会到了编程的乐趣,虽然编程真的好累,不过我觉得编程编好的那种成就感,累是可以完全忽略的。 在这周里也使我发现了我对程序设计的兴趣,更加促使我对程序设计的学习。 附: 源程序清单和执行结果 #include #include #include #include #defineSIZE50 #defineMAX100 voidRead();/*读数据*/ voidSave();/*存数据*/ voidSearch();/*查找*/ voidSearchByID();/*按编号查找*/ voidSearchByHY_Name();/*按行业名称查找*/ voidDelete();/*删除*/ voidPrint();/*显示*/ voidAdd();/*录入*/ voidModify();/*修改*/ voidSortHY();/*排序*/ voidCount();/*统计*/ structcHY/*行业结构体*/ { charID[SIZE];/*编号*/ charHY_Name[SIZE];/*行业名称*/ doubleIncome;/*收入*/ charCity[SIZE];/*所在地区城市*/ } HY[MAX],temp; intHYIndex=0; intHYSum=0; intHYFlag[MAX]; voidAdd()/*录入数据*/ { printf("请输入编号: "); scanf("%s",temp.ID); printf("请输入行业名称: "); scanf("%s",temp.HY_Name); printf("请输入该地区行业的收入: "); scanf("%lf",&temp.Income); printf("请输入所在地区城市: "); scanf("%s",temp.City); HY[HYIndex]=temp; HYFlag[HYIndex]=1; HYSum++; HYIndex++; printf("录入成功! \n"); getch(); } voidRead()/*读取数据*/ { FILE*pfile=NULL; charbuf[SIZE]; if((pfile=fopen("HY.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 行业 收入 系统 课程设计