《代理商信息管理组织系统.doc》由会员分享,可在线阅读,更多相关《代理商信息管理组织系统.doc(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、,C语言课程设计报告 姓 名: 都 鹏 班 号: 031102 学 号: 20101003091 院 系: 材化学院 专 业: 应用化学 指导教师: 吴 杰 成 绩: 2012 年 7 月目 录1 题目要求2 需求分析3 详细设计 1.主函数 2.各功能模块设计4 运行结果5 实习感想6 附录(源代码)代理商信息管理系统一、题目要求 基本功能:代理商信息的采集,浏览 ,查询;代理商品信息的输入,浏览,修改,查询,统计等。 二、 需求分析 (1) 实现代理商信息采集和代理商品信息输入功能,要提供结构体的输入操作;(2) 实现统计功能,要提供相应的统计操作;(3) 实现查询功能,要提供查找操作;(
2、4) 实现修改功能,要提供修改操作;(5) 另外,还要提供键盘式选择菜单以实现功能选择。 三、总体设计 整个系统应设计为代理商信息采集,浏览,查询;代理商品信息的输入,浏览,修改,查询,统计等模块。数据结构采用结构体数组。 代理商信息管理系统代理商信息采集代理商信息浏览代理商信息查询代理商品信息输入代理商品信息浏览代理商品信息修改代理商品信息查询代理商品信息统计4、 详细设计1. 主函数【流程图】 根据n的值调用各功能模块函数输入n,判断n是否是1-?显示一系列功能选项 NYY 【程序】int main() struct acmer agent100 ; int n, i, k ; print
3、f(请输入要统计的代理商数目: ) ; scanf(%d, &n) ; printf(请输入代理商信息:n) ; for(i = 1 ; i = n ; i+) input(i, agent) ; menu(); while(scanf(%d, &k),k!=0) switch(k) case 1:for(i = 1;i = n ; i+) output(i, agent);menu();break; case 2:stat(n,agent);menu();break; case 3:search(n,agent);menu();break; case 4:amend(n,agent);men
4、u();break; case 5:sort(n,agent); for(i = 1;i = n ; i+) printf(%d,i); output(i, agent); menu();break; case 6:n = add(n,agent); menu();break; case 7:n=cancel(n,agent);menu();break; default:printf(errorn) ;menu(); return 0 ; 2.各功能模块设计(1) 输入模块但看各数据信息,数字、年、月、日可以用整型,而姓名、代理商编号、联系方式、销售量可以用字符型数组。数据信息存放在文件中,一
5、条记录对应一个代理商,既符合习惯也方便信息管理.把年月日作为结构体成员,存放在data结构体中,把姓名、代理商编号、联系方式、销售量、代理商品信息作为另一个结构体成员,存放在acmer结构体中。struct data int year ; int month ; int day ; ; struct acmer int number ; char name20 ; char agentnum20 ; char phonum20 ; char goods20; struct data time ; ;(2) 代理商数目添加模块int add(int n,struct acmer agent )
6、int k,i; printf(请输入要添加代理商的数目:); scanf(%d, &k); for(i = n+1 ; i = n+k ; i+) input(i,agent); return n+k ; (3) 删除代理商编号模块int cancel(int n,struct acmer agent ) char x20; int i,j,flag,t; t = n ; printf(请输入要删除代理商的编号(按000结束删除):); while(scanf(%s,x)!=EOF) flag = 0; if(strcmp(x,000) = 0) break; for(i = 1 ; i =
7、 n ; i+) if(strcmp(x,agenti.agentnum) = 0) for(j = i+1 ;j=n ; j+) agenti = agenti+1; flag = 1; t-; break; if(flag = 0) printf(没有此代理商的信息n); return t ; (4) 代理商信息统计模块 void sort(int n,struct acmer agent) struct acmer t ; int i, j; for(i = 1;i = n-1 ;i+) for(j = 1 ; j = n-i;j+) if(agentj.numberagentj+1.n
8、umber) t = agentj; agentj = agentj+1 ; agentj+1 = t ; void stat(int n,struct acmer agent) int k,i,x ; printf(1:销售量超过k的代理商n) ; printf(2:排名前k的代理商n); printf(请选择要实现的统计功能,按4结束统计:n); while(scanf(%d, &x),x!=4) printf(请输入k: ); scanf(%d, &k); switch(x) case 1:for(i = 1 ; i k) output(i,agent) ;break; case 2:s
9、ort(n,agent); for(i = 1 ; i = k ; i+) output(i,agent);break; default:printf(errorn) ; (5) 代理商信息修改模块 void amend(int n,struct acmer agent ) int i,k,flag = 0 ; char x20; printf(请输入要修改的代理商的编号: ); scanf(%s,x); for(i = 1;i = n;i+) if(strcmp(x,agenti.agentnum)=0) flag =1; printf(代理商品信息: ) ;scanf(%s, agenti
10、.goods) ; break; if(flag = 0) printf(没有此人的信息n); else printf(修改成功n); (6) 代理商信息查询模块void search(int n,struct acmer agent) int k,i,flag=1; char x20; printf(1按姓名查找); printf(2按编号查找); printf(请选择查找方式:); scanf(%d, &k); if(k = 1) printf(请输入要查找代理商的姓名:); scanf(%s, x); for(i = 1 ; i = n;i+) if(strcmp(x, agenti.n
11、ame) = 0) flag = 0; output(i,agent); break; if(flag = 1) printf(没有此人的信息n); if(k = 2) printf(请输入要查找代理商的编号:); scanf(%s, x); for(i = 1 ; i = n;i+) if(strcmp(x, agenti.agentnum) = 0) flag = 0; output(i,agent); break; if(flag = 1) printf(没有此人的信息n); 5、 上机操作下面是各个模块的界面图1. 主菜单函数2输入模块3. 输出模块4. 统计模块5. 查找模块6. 代
12、理商品信息修改7. 排名8. 添加9. 删除6、 源程序见附录7、 总结“实践是检验真理的唯一标准”,历史告诉们要注重实践.只有通过实践我们才能够了解到我们对知识到底掌握多少,我们还欠缺那些.通过时间我们又可以加深和巩固知识.C语言的实习正是这样一个过程.我的C语言课程学习的不够好,实习的时候很吃力。编写用的是结构化设计法,而我调试的时候发现了好多问题。有时候由于一个很小的错误导致程序的无法运行,让我明白了编程细心的重要性。通过该实例的学习,使我进一步理解和运用结构化程序设计的思想和方法,学会了用流程图表示算法。在老师和同学们的帮助下,我才可以清楚的知道我还有那些不足的地方.短短一周的时间里我学习到了许多以前课堂上没有学习到或者没有记住的东西,有初步了解了C语言的简单的应用,获益匪浅.再此我要郑重感谢老师和同学们,有你们热心的鼓励,耐心无私的帮助,我的这次实习才能得以顺利完成.