软件技术基础项目实战任务书指导书

上传人:宝**** 文档编号:137849774 上传时间:2022-08-19 格式:DOC 页数:41 大小:395.50KB
收藏 版权申诉 举报 下载
软件技术基础项目实战任务书指导书_第1页
第1页 / 共41页
软件技术基础项目实战任务书指导书_第2页
第2页 / 共41页
软件技术基础项目实战任务书指导书_第3页
第3页 / 共41页
资源描述:

《软件技术基础项目实战任务书指导书》由会员分享,可在线阅读,更多相关《软件技术基础项目实战任务书指导书(41页珍藏版)》请在装配图网上搜索。

1、软件技术基础课程设计项目实战任务书指导书胡永祥 编江苏财经职业技术学院2011年5月前 言软件技术基础是高职高专计算机软件技术、计算机应用技术、计算机网络技术、应用电子技术等专业的一门专业基础课,其特点是应用广泛,实践性较强。通过课程设计,可使学生进一步掌握C语言程序设计的基本知识,增强学生利用C语言进行程序设计的实践技能,培养学生综合运用相关知识的能力。一、项目实战的任务和性质1、巩固对所学C语言程序设计基本知识的掌握2、增强学生利用C语言程序设计的实践技能3、培养学生独立分析和解决问题的能力4、培养学生综合运用所学知识解决实际问题的能力二、项目实战的基本要求1、进一步掌握C语言程序设计方法

2、和组织实现的基本技能2、学会分析解决问题的方法,对设计中出现的问题,能通过独立思考、查阅资料等手段寻找解决问题的途径3、熟悉C语言程序调试的方法,对程序中出现的错误能够独立调试解决4、对设计结果能独立进行分析、评价5、培养严肃认真、实事求是的科学作风三、项目实战内容1、选择、熟悉并适应编程编译、调试环境2、选择并确定设计课题3、审阅所选课题、明确实现的具体方法,确定基本算法和编程方法4、编写程序5、上机调试程序,查错、纠错6、撰写课程设计报告7、准备答辩说明:阅读、分析课程设计实例,有助于理解和把握C语言程序设计的一些基本方法、过程和技巧项目实战任务书一、项目实战题目学生成绩管理系统二、项目实

3、战目的1进一步掌握和利用C语言进行行程设计的能力2进一步理解和运用结构化程序设计的思想和方法3初步掌握开发一个小型实用系统的基本方法4学会调试一个较长程序的基本方法5学会利用流程图表示算法6掌握书写程序设计开发文档的能力(书写课程设计报告)三、项目实战具体内容1每一条记录包括一个学生的学号、姓名、3门课成绩、平均成绩2. 输入功能:可以一次完成若干条记录的输入3显示功能:完成全部学生记录的显示4查找功能:完成按学号查找学生记录并显示5排序功能:按学生总分进行排序6插入功能:按学号插入一条学生记录7将学生记录保存在文件中8应提供一个菜单来调用各个功能,调用菜单的界面应尽可能清晰美观四、项目实战要

4、求1、用C语言实现系统2、利用结构体链表实现学生成绩的数据结构设计3、系统具有追加,查询,插入,排序等基本功能4、系统的各个功能要求用函数的形式实现5、完成设计任务并书写课程设计报告6、将学生成绩信息存在文件中五、项目实战报告的要求1、目录2、前言3、设计目标4、设计概要(设计思路)5、程序设计(要求一并提交源程序清单及电子文挡)6、测试结果7、结论或体会8、参考文献项目实战指导书一、概要设计1制作这样的一个数据库需要实现以下功能:(1)数据库的安全性。进入数据库需要输入用户的密码,不同的用户可以有不同的权限。(2)数据库的操作界面设计为菜单显示方式。用户通过菜单进行选择。如下图所示:图1 主

5、菜单界面程序的输出格式:图 2 程序的输出格式本程序利用单链表存储结构完成对学生成绩的动态管理,其基本功能模块图如下图所示:主程序输入显示删除查找插入追加保存读入计算拷贝排序索引分类合计图 3 基本功能模块图2各函数流程图(1)creat()函数(2)del()函数(3)display()函数(4)search()函数(5)save()函数(6)load()函数(7)computer()函数(8)copynew()函数(9)modify()函数(10)append()函数(11)sort()函数(12)index()函数(13)fail()函数(14)five()函数(15)average()

6、函数(16)classscore()函数二、详细设计:按照概要设计列出的功能模块,设计出与这些模块一一对应的功能函数,以供主函数使用。(1)函数原型:menu_select()函数功能:主菜单。用户通过菜单进行选择。调用各功能函数。(2)函数原型:student *creat()函数功能:该函数是用来创建单链表。当在主函数中输入1时,即进入创建链表函数,即开始输入学生信息,按照提示信息输入学号、三门课程的成绩,每输入完一个数就按一下回车键,当输入学号为0时结束输入,返回主函数,显示主菜单界面。(3)函数原型:student *del(student *head)函数功能:该函数的作用是删除指定

7、学号的学生记录。首先根据提示信息输入要删除结点的学号,输入后根据学号顺序查找结点,如果没有找到,则输出没有找到的信息;否则,显示找到的信息,然后删除。调用结束返回主函数,显示主菜单。(4)函数原型:void display(student *head)函数功能:该函数的作用是显示单链表。本函数以二维表的形式输出,直观漂亮。调整格式,对齐表格线。(5)函数原型:void search(student *head)函数功能:该函数的作用是查找指定学号的学生记录。根据提示信息输入要查找结点的学号,输入后根据学号顺序查找,如果没有找到,则输出没有找到的信息;否则,显示找到的信息。调用结束返回主函数,显

8、示主菜单。(6)函数原型:void save(student *head)函数功能:该函数的作用是将学生记录保存到指定文件中。在访问链表的过程中将记录写入文件。(7)函数原型:student *load()函数功能:该函数的作用是将学生记录从文件中取出放到链表中。Load和creat函数算法相同,不同点在于creat是从键盘上接受数据,而Load函数是从文件中读数据。(8)函数原型:student *computer(student *head)函数功能:该函数作用是计算每个学生成绩的总分和平均分。(9)函数原型:void copynew(student *head)函数功能:该函数的作用是把

9、学生记录从原来的文件中复制到新文件中。(10)函数原型:void sort(student *head)函数功能:排序。是对链表上的结点按照总分的由大到小的顺序进行排序。(11)函数原型:void modify(student *head)函数功能:修改数据。根据提示信息输入要查找结点的学号,输入后根据学号顺序查找,如果没有找到,则输出没有找到的信息;否则,修改找到的信息。调用结束返回主函数,显示主菜单。(12)函数原型:student *append(student *head)函数功能:添加记录。在链表最后添加一个结点记录,返回主函数。(13)函数原型:void index()函数功能:建

10、立索引。设置索引是为了分类合计。(14)函数原型:void fail(student *head)函数功能:查找不及格学生的信息。顺序查找各结点只要有一门学科分数低于60分就显示该学生的全部信息,返回索引函数。(15)函数原型:void five(student *head)函数功能:查找全年级前五名的学生,并显示他们的全部信息。返回索引函数。(16)函数原型:void average(student *head)函数功能:求各班的平均分。通过学号字段来区分班级,在这个字段内的记录的总分相加,除以人数,算出各班的平均分并显示。完毕后返回索引函数。(17)函数原型:void classscore

11、(student *head)函数功能:显示一个班的学生信息。输入班级号,通过学号控制顺序查找并显示该班全部学生信息。(18)函数原型:void main()函数功能:有机调用各个子函数。使用switch()函数进行菜单的选择。三、调试报告:1在调试菜单函数时,由于文本大小控制不当而出现了乱码,通过几次改正尝试,消除了这个现象。2在调试时经常出现语法错误,一些分号和大括号经常被遗漏,导致产生错误。四、程序清单:#include#include#include#include#include#includetypedef struct s1long no;char name10; float s

12、core3; float sum; float average; int order; struct s1 *next;STUDENT;int menu_select() char *menu=*MENU*, 1. Enter list, 2. Delete arecord from list, 3. Print list, 4. Search record on number, 5. Save the file, 6. Load the file, 7. Computer the score, 8. Copy the file to new file, 9. Sort data, 10. m

13、odify data, 11. Append record to file, 12. Index on number, 13. total on number, 14. Quit; char s3; int c,i; clrscr(); gotoxy(2,2); printf(Press any key enter menu.n); clrscr(); gotoxy(1,1); textcolor(1); textbackground(0); gotoxy(10,2); putch(0xc9); for(i=1;i54;i+) putch(0xcd); putch(0xbb); for(i=3

14、;i20;i+) gotoxy(10,i);putch(0xba); gotoxy(64,i);putch(0xba); gotoxy(10,20);putch(0xc8); for(i=1;i54;i+) putch(0xcd); putch(0xbc); window(11,3,63,19); clrscr(); for(i=0;i15;i+) gotoxy(10,i+1); cprintf(%s,menui); textbackground(0); window(1,1,80,50); gotoxy(20,21); do printf( Enter your choice (0-14):

15、); scanf(%s,s); c=atoi(s); while(c14); return c;int menu_select2() char *menu=*MENU*, 1. The student who fail in test, 2. The first to fifth in grade, 3. Class average on subject, 4. Class total record, 5. Quit; char s3; int c,i; clrscr(); gotoxy(2,2); printf(Press any key enter menun); clrscr(); go

16、toxy(1,1); textcolor(1); textbackground(0); gotoxy(10,2); putch(0xc9); for(i=1;i54;i+) putch(0xcd); putch(0xbb); for(i=3;i12;i+) gotoxy(10,i);putch(0xba); gotoxy(64,i);putch(0xba); gotoxy(10,12);putch(0xc8); for(i=1;i54;i+) putch(0xcd); putch(0xbc); window(11,3,63,11); clrscr(); for(i=0;i6;i+) gotox

17、y(10,i+1); cprintf(%s,menui); textbackground(0); window(1,1,80,50); gotoxy(20,13); do printf( Enter your choice (1-5):); scanf(%s,s); c=atoi(s); while(c14); return c;STUDENT *creat() STUDENT *head,*p,*s;float y,z,w; long x; int i; char na15; head=NULL; clrscr(); printf(Please input students number:)

18、; scanf(%ld,&x); printf(Please input name:); scanf(%s,na); printf(Please input sc1:); scanf(%f,&y); printf(Please input sc2:); scanf(%f,&z); printf(Please input sc3:); scanf(%f,&w); while(x!=0) s=(STUDENT*)malloc(sizeof(STUDENT); s-no=x; for(i=0;inamei=nai; s-score0=y; s-score1=z; s-score2=w; s-sum=

19、0; s-average=0; s-order=0; if(head=NULL) head=s;p=head; else p-next=s; p=s; printf(Please input students number:); scanf(%ld,&x); if(x=0)break; printf(Please input name:); scanf(%s,na); printf(Please input sc1:); scanf(%f,&y); printf(Please input sc2:); scanf(%f,&z); printf(Please input sc3:); scanf

20、(%f,&w); p-next=NULL; return(head);void showTable1()clrscr();gotoxy(10,3);printf(*STUDENT INFORMATION*);gotoxy(1,4);printf(-n);gotoxy(1,5);printf(|rec| no | Name | sc1 | sc2 | sc3 | sum | average |order|n);void showTable2()printf(-n);STUDENT *del(STUDENT *head) STUDENT *p,*q; long n;int flag=0; clrs

21、cr(); p=head; q=p;p=p-next; printf(Please input the number you want to delete:); scanf(%ld,&n); if(q-no=n) head=p;free(q);flag=1; while(p!=NULL) if(p-no=n) q-next=p-next; free(p);flag=1;break; p=p-next; q=q-next; if(flag=0) printf(Not find!n); printf(Press any key to return.n); getch(); return(head)

22、;void display(STUDENT *head)STUDENT *p; int i=1; p=head; clrscr(); showTable1(); while(p!=NULL) printf(|%3d|%10ld|%12s| %5.1f| %5.1f| %5.1f| %5.1f| %8.1f|%5d|n,i,p-no,p-name,p-score0,p-score1,p-score2,p-sum,p-average,p-order); p=p-next; i+; showTable2(); printf(Press any key to return.n); getch();vo

23、id search(STUDENT*head)long str; int i; int rec=1; STUDENT *p;p=head; clrscr(); printf(Please input the number you want to get :); scanf(%ld,&str); while(p!=NULL) if(str=p-no)i=1; p=p-next; if(i=1) showTable1(); printf(|%3d|%10ld|%12s| %5.1f| %5.1f| %5.1f| %5.1f| %8.1f|%5d|n,rec,p-no,p-name,p-score0

24、,p-score1,p-score2,p-sum,p-average,p-order); showTable2(); elseprintf(Not find!); printf(Press any key to return!); getch();void save(STUDENT *head)FILE *fp;STUDENT *p; clrscr(); if(fp=fopen(e:kesheyyp,wb)=NULL) printf(Cant open the file!n); exit(1); printf(n*Saving file*n); p=head; while(p!=NULL) f

25、write(p,sizeof(STUDENT),1,fp); p=p-next; fclose(fp); printf(Save success!n);STUDENT *load() STUDENT *p,*q,*head; FILE *fp; clrscr(); head=NULL; if(fp=fopen(e:kesheyyp,rb)=NULL) printf(Cant open the file!n); exit(1); while(!feof(fp) q=(STUDENT *)malloc(sizeof(STUDENT); if(fread(q,sizeof(STUDENT),1,fp

26、)!=1)break; if(head=NULL)head=q;p=head; elsep-next=q;p=q; p=q; p-next=NULL; fclose(fp); printf(load success!); return(head);STUDENT *computer(STUDENT *head)STUDENT *p;int i; p=head; while(p!=NULL) for(i=0,p-sum=0;isum+=p-scorei; p-average=p-sum/3.0; p=p-next; return(head);void copynew(STUDENT*head)F

27、ILE *fp;STUDENT *p; int i; clrscr(); printf(press class number you want to save:(1,2); scanf(%d,i); switch(i) case 1: if(fp=fopen(e:kesheclass1.dat,wb)=NULL) printf(Cant open the file!n); exit(1); printf(n Saving file.n); p=head; while(p!=NULL) fwrite(p,sizeof(STUDENT),1,fp); p=p-next; fclose(fp); p

28、rintf(Save success!n);break; case 2: if(fp=fopen(e:kesheclass2.dat,wb)=NULL) printf(Cant open the file!n); exit(1); printf(n Saving file.n); p=head; while(p!=NULL) fwrite(p,sizeof(STUDENT),1,fp);p=p-next; fclose(fp); printf(Save success!n);break; void modify(STUDENT*head)STUDENT *p;float y,z,w; long

29、 x,str; int i; char na15; clrscr(); p=head; printf(Please input the number you want to modify :); scanf(%ld,&str); while(p!=NULL) if(str=p-no) i=1; printf(Please input students new number:); scanf(%ld,&x); printf(Please input new name:); scanf(%s,na); printf(Please input new score1:); scanf(%f,&y);

30、printf(Please input new score2:); scanf(%f,&z); printf(Please input new score3:); scanf(%f,&w); p-no=x; p-namei=nai; p-score0=y; p-score1=z; p-score2=w; p-sum=0; p-average=0; p-order=0; p=p-next; if(i=1) printf(modify success!n); elseprintf(Not find!); printf(Press any key to return!); getch();STUDE

31、NT *append(STUDENT*head)STUDENT *p,*s; long x; int i; float y,z,w; char na10; clrscr(); p=head; while(p-next!=NULL) p=p-next; printf(Please input students number:); scanf(%ld,&x); printf(Please input name:); scanf(%s,na); printf(Please input score1:); scanf(%f,&y); printf(Please input score2:); scan

32、f(%f,&z); printf(Please input score3:); scanf(%f,&w); while(x!=0) s=(STUDENT*)malloc(sizeof(STUDENT); s-no=x; for(i=0;inamei=nai; s-score0=y; s-score1=z; s-score2=w; s-sum=0; s-average=0; s-order=0; p-next=s; p=s; printf(Please input students number:); scanf(%ld,&x); if(x=0) break; printf(Please inp

33、ut name:); scanf(%s,na); printf(Please input score1:); scanf(%f,&y); printf(Please input score2:); scanf(%f,&z); printf(Please input score3:); scanf(%f,&w); p-next=NULL; return(head);STUDENT *sort(STUDENT *head) int i=0; STUDENT *p,*q,*t,*r; r=head-next; head-next=NULL; while(r!=NULL) t=r; r=r-next;

34、 p=head; q=head; while(t-sumsum&p!=NULL) q=p; p=p-next; if(p=q) t-next=p; head=t; else t-next=p; q-next=t; p=head; while(p!=NULL) i+; p-order=i; p=p-next; printf(sort sucess!n); return (head);void fail(STUDENT *head)int i,flag=0; int rec=1; STUDENT *p;p=head;clrscr(); printf(Please input the subject

35、 number(1,2,3) :); scanf(%d,&i); showTable1(); while(p!=NULL) if(p-scorei-1no,p-name,p-score0,p-score1,p-score2,p-sum,p-average,p-order); rec+; p=p-next; showTable2(); if(flag=0) printf(No one fail in the subject!); printf(nPress any key to return!); getch();void five(STUDENT *head)STUDENT *p;int i;

36、 p=sort(head); showTable1(); for(i=0;ino,p-name,p-score0,p-score1,p-score2,p-sum,p-average,p-order); p=p-next; showTable2(); printf(nPress any key to return!); getch();void average(STUDENT*head)float sum=0,ave;int i,j,t=0; STUDENT *p; printf(which class you want to print(1,2); scanf(%d,&i); printf(w

37、hich subject you want to print(1,2,3); scanf(%d,&j); switch(i) case 1:p=head; while(p!=NULL) if(p-no206050500&p-noscorej-1; t+; p=p-next; break; case 2:p=head; while(p!=NULL) if(p-no206050600&p-noscorej-1; t+; p=p-next; break; clrscr(); ave=sum/t; printf(class%d sub%d average is: %.2f,i,j,ave); prin

38、tf(nPress any key to return!); getch(); void classscore(STUDENT*head)int i,rec=1; STUDENT *p; printf(which class you want to print(1,2); scanf(%d,&i); printf(class%dn,i); showTable1(); switch(i) case 1:p=head; while(p!=NULL) if(p-no206050500&p-nono,p-name, p-score0,p-score1,p-score2,p-sum,p-average,

39、p-order); rec+; p=p-next; break; case 2:p=head; while(p!=NULL) if(p-no206050600&p-nono,p-name, p-score0,p-score1,p-score2,p-sum,p-average,p-order); rec+; p=p-next; break; showTable2(); printf(nPress any key to return!); getch();void index(STUDENT *head)int i; clrscr(); gotoxy(2,24); printf(Press any

40、 key enter menun); getch(); for(;) switch(menu_select2() case 1: fail(head);break;case 2: five(head);break;case 3: average(head);break;case 4: classscore(head);break;case 5: return; void main()int i; STUDENT *head; clrscr(); gotoxy(2,24); printf(Press any key enter menun); getch(); for(;) switch(men

41、u_select() case 1: head=creat();break;case 2: head=del(head);break;case 3: display(head);break;case 4: search(head);break;case 5: save(head);break;case 6: head=load();break;case 7: computer(head);break;case 8: copynew(head);break;case 9: head=sort(head);break;case 10:modify(head);break; case 11:head=append(head);break;case 12:index(head);break;case 13:case 14:exit(0);

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!