《相机销售系统C语言实习报告.docx》由会员分享,可在线阅读,更多相关《相机销售系统C语言实习报告.docx(49页珍藏版)》请在三一办公上搜索。
1、西安郵電大学C语言课程设计报告题 目: 相机销售管理系统院系名称: 计算机学院 专业名称: 计算机科学与技术班 级: 学生姓名: 学号(8位): 指导教师: 设计起止时间:一. 设计目的1:数量掌握c语言编程,并灵活营运函数实现不同的功能; 2:用c语言编写相机销售管理系统的程序;3:更深入了解c语言,牢记其中各注意事项。二. 设计内容 相机销售管理系统: 参数:相机型号(品牌version),感光器件(sensetization),市场价(price),光学变焦倍数(optical_zoom),最大像素(highest_pixel)。 提供的功能:1:系统界面处理(包括密码登陆,密码的修改等
2、); 2:系统工作方式,以菜单方式工作; 3:商户功能a:相机参数及内容的顺序输出(按市场价高低);b: 相机参数及内容的录入与信息的增加输入; c: 相机参数及内容的显示输出; d:相机参数及内容的选择删除;e: 相机参数及内容的修改; f:相机参数及内容的查询与统计 (1):按型号(品牌) (2):按感光器件 (3):按市场价 (4):按光学变焦倍数 (5):按像素 4:用户功能a:相机参数及内容的显示输出;b:相机参数及内容的查询与统计 (1):按型号(品牌) (2):按感光器件 (3):按市场价 (4):按光学变焦倍数 (5):按像素c:相机参数及内容的顺序输出(按市场价高低) 三概要
3、设计1功能模块图;密码管理密码登录修改密码商户管理用户管理读文本顺序输出菜单(登录界面、主菜单)进入系统查找信息删除文件修改信息增加文件读文本查找信息顺序输出型号市场价感光器件光学变焦倍数最大像素型号main()主函数2各个模块详细的功能描述。 主函数: void main(); 登录菜单: void headmean(); /进入主系统 进入系统选择服务void MainMenu(); /用户选择系统 选择服务(1):Int CipherTest(); /用户密码检验void RevisalCipher(); /密码修改(2):进入主菜单:headmean(); 用户选择void MainM
4、enu(); /用户选择系统 正式使用系统void opensurface_1(); /商户管理界面void c; /客户管理界面 商户管理void save_inf(Linklist L); /创建文件void read_file(); /读文件void inter_sort_s(); /商户进入排序操作void add_file(); /增加文件信息Linklist delect_mean(); /进入删除操作void amend_file(); /进入修改操作void find_message_s(); /进入商户查找操作 客户管理void read_file(); /读文件void i
5、nter_sort_c(); /客户进入排序操作void find_message_c(); /进入客户查找操作 菜单函数:void int_mean(); /系统主菜单void inter_mean(); /功能主菜单void surface_1(); /商户菜单void surface_2(); /用户菜单void amend_mean(); /修改项菜单 void find_mean(); /查找并统计菜单四详细设计1功能函数的调用关系图;main()主函数save_inf(Linklist L)headmean()opensurface_1()inter_sort_s()CipherT
6、est()add_file()amend_file()read_file()find_message_s()delect_mean()Opensurface_2()read_file()inter_sort_c()find_message_c()2各功能函数的数据流程图;执行CipherTest()函数1:密码,执行CipherTest()函数开始判断输入密码是否正确密码修改结束2读取信息函数,执行read_file()函数开始打开文件将文件信息存到链表中输出链表信息结束 3:按价格顺序输出,执行sort_s()函数结束开始将文本信息存到链表中保留前驱结点进入排序循环若第i项价格小于其后所比较
7、的交换两个信息改链 4:增加信息,执行add_file()函数结束开始创见链表添加信息到链表中将链表存到文本中保存文本5:删除信息,执行delect_mean()函数开始结束将文本信息存到链表中找到要删除的信息将删除信息的前个结点与其后结点相接,释放删除的信息空间保存文本 6:修改信息,执行amend_file()函数开始结束将文本信息存到链表中找到要修改的信息将修改项的新信息重新输入保存文本7:查找信息并统计,执行find_message_s()函数开始结束将文本信息存到链表中选择寻找信息的方式根据查找方式找到所查信息保存文本进入循环查找输出所查找信息语气查找的结果数3重点设计及编码(其中主
8、函数)。 1:密码验证与密码修改(实现密码错误时可再次输入)void RevisalCipher() /密码修改char c26,c6;printf(请输入新的6位数密码:n);scanf(%s,c2);printf(请再次输入您的密码:n);scanf(%s,c);system(cls);if (strcmp(c2,c)=0)printf(密码修改成功!n);printf(n);printf(n);int CipherTest() /密码管理char c16,c2=111111;int m;system(cls);printf(nnnn);do printf( 请输入您的密码(首次进入为6位
9、初始密码)n);flushall(); scanf(%s,c1);/ c1 = getchar();if (strcmp(c1,c2)=0)printf(n);return 1;else printf(密码输入错误,请重新出入!n);printf(是否重新输入(重新输入请键入1;退出请键入0):n);scanf(%d,&m);flushall();while (m=1);return 0;2:显示文本信息(将文本信息存到链表中)Linklist read_inf() /从指定文件中读取信息并存入单链表中Linklist head;Mobel *p,*s;FILE *fp;char filena
10、me40;int i=0;system(cls);flushall();printf(读文件 请输入文件名(f:/b.txt有文件):n);gets(filename);for(; (fp = fopen(filename,rt) = NULL ;)printf(读文件失败,请重新输入文件名:n);flushall();gets(filename);3:输出链表信息(要有一个指向指针)void print_inf(Linklist L) /输出链表信息Mobel *p;system(cls);printf( 该品牌信息如下:n);printf(n);printf( 型号 最大像素(万) 市场价
11、(元) 光学变焦倍数 感光器件n);for(p = L-next;p-next !=NULL;p = p-next) printf( %-15s %-15d %-15d %-15d %-5s n,p-version,p-highest_pixel,p-price,p-optical_zoom,p-sensetization);flushall();printf(n);4:顺序输出(排序函数关键在找最大节点的位置时能记录前一节点的位置,并实现链表的重新连接)Linklist sort_price() /排序 Linklist head; Mobel *pre, *mid, *m, *p;head
12、 = read_inf(); p = head-next; while(p != NULL) mid = head-next; if(head-price next-price) head-next = mid-next; mid-next = head; head = mid; pre = head; mid = head-next; m = mid-next; while(mid-next != NULL) if(mid-price price) pre-next = mid-next; mid-next = m-next; m-next = mid; pre = pre-next; mi
13、d = pre-next; m = mid-next; p = p-next; return head;5:修改函数主要是对修改项的选择Linklist amend(Linklist L) /修改链表 char version10;Mobel *p;/int n;char m; amend_mean();printf(n);printf( 请正确输入要修改内容所对应的型号:n);flushall();gets(version);p = L-next;/for(p=L; strcmp(p-version,Version) != 0 & p != NULL; p = p-next) /错在这/;
14、printf(正确:n);while(p != NULL & strcmp(p-version,version)p = p-next;if(p != NULL)amend_mean();printf( 请选择要修改的项目:n);scanf(%d,&m);printf(n);switch(m) case 1: printf( 请输入新型号的内容:n);flushall();gets(p-version);loop_amend(L);break;case 2: printf( 请输入最新价格:n);scanf(%d,&p-price);loop_amend(L);break;case 3: pri
15、ntf( 请输入最大像素:n);scanf(%d,&p-highest_pixel);loop_amend(L); break;case 4: printf( 请输入光学变焦倍数:n);scanf(%d,&p-optical_zoom);loop_amend(L);break;case 5: printf( 请输入最大像素的内容:n);flushall();gets(p-sensetization);loop_amend(L);break;case 6: opensurface_1(); break; case 7: break;default: printf(按任意键返回上一界面);getc
16、h();opensurface_1(); break;else printf(型号输入错误,无此型号n);amend(L);return L;6:删除函数中主要是前驱结点与后接结点的链接,并释放所删除项的空间Linklist delect_link(Linklist L)Mobel *p,*s;char m,version10;flushall();printf(确定要进行删除文件操作 y or n:n);scanf(%c,&m);if(m = y | m = Y)s = (Mobel *)malloc(sizeof(Mobel);printf(请输入要删除的型号n);flushall();g
17、ets(version);for(s = L, p = L-next; p != NULL & strcmp(p-version,version); s = s-next,p = p-next);if(p != NULL)s-next = p-next;free(p);printf(删除成功n);delect_link(L);elseprintf(输入型号错误n);else if(m = n | m = N)flushall();printf(按任意键显示删改后内容);getch();print_inf(L);elseprintf(输入错误n);delect_link(L);/printf(是
18、否返回上一界面y or nn); return L;6:添加文本信息主要是常见链表Linklist build_creat() /建立链表Linklist L;Mobel *p,*s;char version10;int price;int highest_pixel;int optical_zoom;char sensetization5;/char sensetization_size;int i = 0;L = (Linklist)malloc(sizeof(Mobel);/s = (Mobel *)malloc(sizeof(Mobel);L-next = NULL;p = L; fl
19、ushall();printf(请输入第一个型号(000结束):n);while(1)flushall(); gets(version);if(strcmp(version,000) != 0)i+;/scanf(%d,%d,%d,%s,&highest_pixel,&price,&optical_zoom,&sensetization);printf(最大像素:);scanf(%d,&highest_pixel);printf(市场价:);scanf(%d,&price);printf(光学变焦倍数:);scanf(%d,&optical_zoom);flushall();printf(感光
20、器件:);gets(sensetization);/gets(sensetization_size);s = (Mobel *)malloc(sizeof(Mobel);strcpy(s-version,version);s-highest_pixel = highest_pixel;s-price = price;s-optical_zoom = optical_zoom;strcpy(s-sensetization,sensetization);p-next = s;p = s;printf(请新增第%d个信息的型号(000结束):n,i+1);elsep-next = NULL;brea
21、k;printf(共有%d个型号:n,i);return L;五测试数据及运行结果1正常测试数据(3组)及运行结果;1:主界面2:登陆菜单:3:修改密码4:进入系统,选择用户身份5:进入商户管理界面6:读取信息7:顺序输出(按价格由高到低)8:增加信息9:删除信息10:查找信息并统计11:修改信息12:进入客户管理系统2非正常测试数据(2组)及运行结果。1:密码输入错误可继续输入直到正确2:用户选择错误可在继续选择直到正确3:文件名输入错误可同样进行反复输入4:所查找信息未找到系统会提示输入错误六调试情况,设计技巧及体会1对自己的设计进行评价,指出合理和不足之处,提出改进方案;2对设计及调试过
22、程的心得体会。经过这两周的实习,确实是对c变成有了更深入的认识。C语言是一种奇妙的语言。我做的课题是相机销售管理系统。刚开始做课程设计时说实在是不知如何下手,不知该从那方面开始。开始的一周,总在怀疑自己能不能编写出要求的程序来,总想着自己不可以,也就一定程度上开始投机取巧,三天内也只是在某个功能模块里运行处“预期”的结果,当八个模块组合起来却不能运行。放假的两天没怎么运行程序,就在反思,后来终于下决心重新编写程序,我相信我可以的。第二周,正式开始我的程序,将书中相关内容知识反复看了好几遍,并且比较深入的认识到书中的每个相关程序,对于每一模块都认真思考,模块的组合再三认证,讲过4天的努力,终于我
23、做到了,完全是我一个人成果,这真让人兴奋。当然,其间也请教了班里的同学,这里,谢谢你们!在我编程遇到问题时,是你们不厌其烦的帮我解决,谢谢你们。这个课题做完后,对c,我也考虑了些。C,这种语言真是奇妙!编译时出现问题,这还好解决,可以直接根据提示找到问题所在,可要是在运行时出现问题,可真不是好解决的。C的要求真的比较苛刻,就是输入输出格式不对也会出现问题,不时出现乱码,就是直接运行不出,这点需注意。变量的类型也同等重要,需谨慎。变成的一些细小问题是要特别注意的,比如说,语句的符号怒该省的必需的有,不能有的绝不能有,中英文的区别,语句中必须是英文字符!所引用的函数必需的在所在的库函数中才能被引用
24、,否则会出现错误。Flushall(),这个函数,可真不可小视,不仅在gets()函数前必须加此函数外,scanf()有时也需要,否则所输入的数据视为空数据,从而影响到函数无法输入数据。两周的实习结束,我对c有了更深入的了解,这两周,不仅是对这一年的总结应用,更是下一学年的一个好的开始!七参考文献八附录:源代码(电子版)#include#include#include#include#include#include#define LEN 100typedef struct brand_mobel /指针结构体变量char version10;char sensetization5;int pr
25、ice;int highest_pixel;int optical_zoom;/char sensetization;/char sensetization_size;struct brand_mobel *next;*Linklist,Mobel;/函数声明void head_mean(); /进入主系统void int_mean(); /系统主菜单void MainMenu(); /用户选择系统void inter_mean(); /功能主菜单void surface_1(); /商户菜单void surface_2(); /用户菜单void amend_mean(); /修改项菜单voi
26、d opensurface_1(); /商户管理主界面void opensurface_2(); /客户管理主界面Linklist get_L(); /得到链表int CipherTest(); /用户密码检验void RevisalCipher(); /密码修改void save_inf(Linklist L); /创建文件Linklist build_creat(); /创建链表Linklist read_inf(); /将文件信息放到链表中void read_file(); /读文件void print_inf(Linklist L); /输出链表信息void add_file(); /
27、增加文件信息Linklist delect_mean(); /进入删除操作Linklist delect_link(Linklist L); /删除链表void amend_file(); /进入修改操作Linklist amend(Linklist L); /修改链表void loop_amend(Linklist); /循环修改链表操作Linklist sort_price(); /链表排序void inter_sort_s(); /商户进入排序操作void inter_sort_c(); /客户进入排序操作void find_message_s(); /进入商户查找操作void find
28、_message_c(); /进入客户查找操作 void find_mean(); /查找并统计菜单void save_inf(Linklist L); /将链表信息存入文件中void find_version(); /型号查找void find_price(); /价格查找void find_highest_pixel(); /最高像素查找yvoid find_optical_zoom(); /光学变焦倍数查找void find_sensetization(); /感光器件查找 void int_mean() /系统主菜单system(cls);printf(nnn);printf( 欢迎进
29、入相机销售管理系统 n); /解决printf(n);printf( 主界面 n);printf(n);printf( 1: 用户登录 n);printf(n);printf( 2: 退出系统 n);printf(nnn);void inter_mean() /功能主菜单system(cls);printf(nnn);printf( 欢迎进入相机销售管理系统 n);printf(-n);printf(n);printf( 1: 修改密码n);printf( 2: 进入系统n);printf( 3: 返回主菜单n);printf( 4: 退出系统n);printf(nn);printf(-n);
30、printf(nn);void surface_1() /商户管理主界面 printf(nn);printf(*商户管理主界面*n);printf(n);printf( 1: 读取信息 n);printf( 2: 顺序输出 n);printf( 3: 增加信息 n); /yesprintf( 4: 删除信息 n);printf( 5: 修改信息 n); /yesprintf( 6: 查找并统计 n);printf( 7: 返回上一界面 n); /yesprintf( 8: 返回主菜单 n);printf( 9: 退出系统 n); /yesprintf(n);printf(*n);printf(n);printf(n);flushall();void surface_2() /客户管理主界面printf(nn); printf(*客户管理主界面*n);printf(n);printf( 1: 读取信息 n);printf( 2: 查找信息 n);printf( 3: 按顺序查看信息 n);printf( 4: 返回上界菜单 n);printf( 5: 退出系统 n);printf(n)