精编软件技术基础项目实战任务书指导书.doc

上传人:聆听****声音 文档编号:563962 上传时间:2023-04-29 格式:DOC 页数:41 大小:395.50KB
下载 相关 举报
精编软件技术基础项目实战任务书指导书.doc_第1页
第1页 / 共41页
精编软件技术基础项目实战任务书指导书.doc_第2页
第2页 / 共41页
精编软件技术基础项目实战任务书指导书.doc_第3页
第3页 / 共41页
精编软件技术基础项目实战任务书指导书.doc_第4页
第4页 / 共41页
精编软件技术基础项目实战任务书指导书.doc_第5页
第5页 / 共41页
精编软件技术基础项目实战任务书指导书.doc_第6页
第6页 / 共41页
精编软件技术基础项目实战任务书指导书.doc_第7页
第7页 / 共41页
精编软件技术基础项目实战任务书指导书.doc_第8页
第8页 / 共41页
精编软件技术基础项目实战任务书指导书.doc_第9页
第9页 / 共41页
精编软件技术基础项目实战任务书指导书.doc_第10页
第10页 / 共41页
精编软件技术基础项目实战任务书指导书.doc_第11页
第11页 / 共41页
精编软件技术基础项目实战任务书指导书.doc_第12页
第12页 / 共41页
精编软件技术基础项目实战任务书指导书.doc_第13页
第13页 / 共41页
精编软件技术基础项目实战任务书指导书.doc_第14页
第14页 / 共41页
精编软件技术基础项目实战任务书指导书.doc_第15页
第15页 / 共41页
精编软件技术基础项目实战任务书指导书.doc_第16页
第16页 / 共41页
精编软件技术基础项目实战任务书指导书.doc_第17页
第17页 / 共41页
精编软件技术基础项目实战任务书指导书.doc_第18页
第18页 / 共41页
精编软件技术基础项目实战任务书指导书.doc_第19页
第19页 / 共41页
精编软件技术基础项目实战任务书指导书.doc_第20页
第20页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

精编软件技术基础项目实战任务书指导书.doc

《精编软件技术基础项目实战任务书指导书.doc》由会员分享,可在线阅读,更多相关《精编软件技术基础项目实战任务书指导书.doc(41页珍藏版)》请在冰点文库上搜索。

精编软件技术基础项目实战任务书指导书.doc

《软件技术基础》

课程设计项目实战

任务书指导书

胡永祥编

江苏财经职业技术学院

2011年5月

前言

《软件技术基础》是高职高专计算机软件技术、计算机应用技术、计算机网络技术、应用电子技术等专业的一门专业基础课,其特点是应用广泛,实践性较强。

通过课程设计,可使学生进一步掌握C语言程序设计的基本知识,增强学生利用C语言进行程序设计的实践技能,培养学生综合运用相关知识的能力。

一、项目实战的任务和性质

1、巩固对所学C语言程序设计基本知识的掌握

2、增强学生利用C语言程序设计的实践技能

3、培养学生独立分析和解决问题的能力

4、培养学生综合运用所学知识解决实际问题的能力

二、项目实战的基本要求

1、进一步掌握C语言程序设计方法和组织实现的基本技能

2、学会分析解决问题的方法,对设计中出现的问题,能通过独立思考、查阅资料等手段寻找解决问题的途径

3、熟悉C语言程序调试的方法,对程序中出现的错误能够独立调试解决

4、对设计结果能独立进行分析、评价

5、培养严肃认真、实事求是的科学作风

三、项目实战内容

1、选择、熟悉并适应编程编译、调试环境

2、选择并确定设计课题

3、审阅所选课题、明确实现的具体方法,确定基本算法和编程方法

4、编写程序

5、上机调试程序,查错、纠错

6、撰写课程设计报告

7、准备答辩

说明:

阅读、分析课程设计实例,有助于理解和把握C语言程序设计的一些基本方法、过程和技巧

项目实战任务书

一、项目实战题目

学生成绩管理系统

二、项目实战目的

1.进一步掌握和利用C语言进行行程设计的能力

2.进一步理解和运用结构化程序设计的思想和方法

3.初步掌握开发一个小型实用系统的基本方法

4.学会调试一个较长程序的基本方法

5.学会利用流程图表示算法

6.掌握书写程序设计开发文档的能力(书写课程设计报告)

三、项目实战具体内容

1.每一条记录包括一个学生的学号、姓名、3门课成绩、平均成绩

2.输入功能:

可以一次完成若干条记录的输入

3.显示功能:

完成全部学生记录的显示

4.查找功能:

完成按学号查找学生记录并显示

5.排序功能:

按学生总分进行排序

6.插入功能:

按学号插入一条学生记录

7.将学生记录保存在文件中

8.应提供一个菜单来调用各个功能,调用菜单的界面应尽可能清晰美观

四、项目实战要求

1、用C语言实现系统

2、利用结构体链表实现学生成绩的数据结构设计

3、系统具有追加,查询,插入,排序等基本功能

4、系统的各个功能要求用函数的形式实现

5、完成设计任务并书写课程设计报告

6、将学生成绩信息存在文件中

五、项目实战报告的要求

1、目录

2、前言

3、设计目标

4、设计概要(设计思路)

5、程序设计(要求一并提交源程序清单及电子文挡)

6、测试结果

7、结论或体会

8、参考文献

项目实战指导书

一、概要设计

1.制作这样的一个数据库需要实现以下功能:

(1)数据库的安全性。

进入数据库需要输入用户的密码,不同的用户可以有不同的权限。

(2)数据库的操作界面设计为菜单显示方式。

用户通过菜单进行选择。

如下图所示:

图1主菜单界面

程序的输出格式:

图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()函数

(16)classscore()函数

二、详细设计:

按照概要设计列出的功能模块,设计出与这些模块一一对应的功能函数,以供主函数使用。

(1)函数原型:

menu_select()

函数功能:

主菜单。

用户通过菜单进行选择。

调用各功能函数。

(2)函数原型:

student*creat()

函数功能:

该函数是用来创建单链表。

当在主函数中输入1时,即进入创建链表函数,即开始输入学生信息,按照提示信息输入学号、三门课程的成绩,每输入完一个数就按一下回车键,当输入学号为0时结束输入,返回主函数,显示主菜单界面。

(3)函数原型:

student*del(student*head)

函数功能:

该函数的作用是删除指定学号的学生记录。

首先根据提示信息输入要删除结点的学号,输入后根据学号顺序查找结点,如果没有找到,则输出没有找到的信息;否则,显示找到的信息,然后删除。

调用结束返回主函数,显示主菜单。

(4)函数原型:

voiddisplay(student*head)

函数功能:

该函数的作用是显示单链表。

本函数以二维表的形式输出,直观漂亮。

调整格式,对齐表格线。

(5)函数原型:

voidsearch(student*head)

函数功能:

该函数的作用是查找指定学号的学生记录。

根据提示信息输入要查找结点的学号,输入后根据学号顺序查找,如果没有找到,则输出没有找到的信息;否则,显示找到的信息。

调用结束返回主函数,显示主菜单。

(6)函数原型:

voidsave(student*head)

函数功能:

该函数的作用是将学生记录保存到指定文件中。

在访问链表的过程中将记录写入文件。

(7)函数原型:

student*load()

函数功能:

该函数的作用是将学生记录从文件中取出放到链表中。

Load和creat函数算法相同,不同点在于creat是从键盘上接受数据,而Load函数是从文件中读数据。

(8)函数原型:

student*computer(student*head)

函数功能:

该函数作用是计算每个学生成绩的总分和平均分。

(9)函数原型:

voidcopynew(student*head)

函数功能:

该函数的作用是把学生记录从原来的文件中复制到新文件中。

(10)函数原型:

voidsort(student*head)

函数功能:

排序。

是对链表上的结点按照总分的由大到小的顺序进行排序。

(11)函数原型:

voidmodify(student*head)

函数功能:

修改数据。

根据提示信息输入要查找结点的学号,输入后根据学号顺序查找,如果没有找到,则输出没有找到的信息;否则,修改找到的信息。

调用结束返回主函数,显示主菜单。

(12)函数原型:

student*append(student*head)

函数功能:

添加记录。

在链表最后添加一个结点记录,返回主函数。

(13)函数原型:

voidindex()

函数功能:

建立索引。

设置索引是为了分类合计。

(14)函数原型:

voidfail(student*head)

函数功能:

查找不及格学生的信息。

顺序查找各结点只要有一门学科分数低于60分就显示该学生的全部信息,返回索引函数。

(15)函数原型:

voidfive(student*head)

函数功能:

查找全年级前五名的学生,并显示他们的全部信息。

返回索引函数。

(16)函数原型:

voidaverage(student*head)

函数功能:

求各班的平均分。

通过学号字段来区分班级,在这个字段内的记录的总分相加,除以人数,算出各班的平均分并显示。

完毕后返回索引函数。

(17)函数原型:

voidclassscore(student*head)

函数功能:

显示一个班的学生信息。

输入班级号,通过学号控制顺序查找并显示该班全部学生信息。

(18)函数原型:

voidmain()

函数功能:

有机调用各个子函数。

使用switch()函数进行菜单的选择。

三、调试报告:

1.在调试菜单函数时,由于文本大小控制不当而出现了乱码,通过几次改正尝试,消除了这个现象。

2.在调试时经常出现语法错误,一些分号和大括号经常被遗漏,导致产生错误。

四、程序清单:

#include

#include

#include

#include

#include

#include

typedefstructs1

{

longno;

charname[10];

floatscore[3];

floatsum;

floataverage;

intorder;

structs1*next;

}STUDENT;

intmenu_select()

{

char*menu[]={"**************MENU**************",

"1.Enterlist",

"2.Deletearecordfromlist",

"3.Printlist",

"4.Searchrecordonnumber",

"5.Savethefile",

"6.Loadthefile",

"7.Computerthescore",

"8.Copythefiletonewfile",

"9.Sortdata",

"10.modifydata",

"11.Appendrecordtofile",

"12.Indexonnumber",

"13.totalonnumber",

"14.Quit"

};

chars[3];

intc,i;

clrscr();

gotoxy(2,2);

printf("Pressanykeyentermenu......\n");

clrscr();

gotoxy(1,1);

textcolor

(1);

textbackground(0);

gotoxy(10,2);

putch(0xc9);

for(i=1;i<54;i++)

putch(0xcd);

putch(0xbb);

for(i=3;i<20;i++)

{

gotoxy(10,i);

putch(0xba);

gotoxy(64,i);

putch(0xba);

}

gotoxy(10,20);

putch(0xc8);

for(i=1;i<54;i++)

putch(0xcd);

putch(0xbc);

window(11,3,63,19);

clrscr();

for(i=0;i<15;i++)

{

gotoxy(10,i+1);

cprintf("%s",menu[i]);

}

textbackground(0);

window(1,1,80,50);

gotoxy(20,21);

do

{

printf("Enteryourchoice(0-14):

");

scanf("%s",s);

c=atoi(s);

}

while(c<0||c>14);

returnc;

}

intmenu_select2()

{

char*menu[]={"**************MENU**************",

"1.Thestudentwhofailintest",

"2.Thefirsttofifthingrade",

"3.Classaverageonsubject",

"4.Classtotalrecord",

"5.Quit"};

chars[3];

intc,i;

clrscr();

gotoxy(2,2);

printf("Pressanykeyentermenu\n");

clrscr();

gotoxy(1,1);

textcolor

(1);

textbackground(0);

gotoxy(10,2);

putch(0xc9);

for(i=1;i<54;i++)

putch(0xcd);

putch(0xbb);

for(i=3;i<12;i++)

{

gotoxy(10,i);

putch(0xba);

gotoxy(64,i);

putch(0xba);

}

gotoxy(10,12);

putch(0xc8);

for(i=1;i<54;i++)

putch(0xcd);

putch(0xbc);

window(11,3,63,11);

clrscr();

for(i=0;i<6;i++)

{

gotoxy(10,i+1);

cprintf("%s",menu[i]);

}

textbackground(0);

window(1,1,80,50);

gotoxy(20,13);

do

{

printf("Enteryourchoice(1-5):

");

scanf("%s",s);

c=atoi(s);

}

while(c<0||c>14);

returnc;

}

STUDENT*creat()

{

STUDENT*head,*p,*s;floaty,z,w;

longx;inti;

charna[15];

head=NULL;

clrscr();

printf("Pleaseinputstudent'snumber:

");

scanf("%ld",&x);

printf("Pleaseinputname:

");

scanf("%s",na);

printf("Pleaseinputsc1:

");

scanf("%f",&y);

printf("Pleaseinputsc2:

");

scanf("%f",&z);

printf("Pleaseinputsc3:

");

scanf("%f",&w);

while(x!

=0)

{

s=(STUDENT*)malloc(sizeof(STUDENT));

s->no=x;

for(i=0;i<10;i++)

{

s->name[i]=na[i];}

s->score[0]=y;

s->score[1]=z;

s->score[2]=w;

s->sum=0;

s->average=0;

s->order=0;

if(head==NULL)

{

head=s;p=head;

}

else

{

p->next=s;

p=s;

}

printf("Pleaseinputstudent'snumber:

");

scanf("%ld",&x);

if(x==0)

break;

printf("Pleaseinputname:

");

scanf("%s",na);

printf("Pleaseinputsc1:

");

scanf("%f",&y);

printf("Pleaseinputsc2:

");

scanf("%f",&z);

printf("Pleaseinputsc3:

");

scanf("%f",&w);

}

p->next=NULL;

return(head);

}

voidshowTable1()

{

clrscr();

gotoxy(10,3);

printf("***************STUDENTINFORMATION***************");

gotoxy(1,4);

printf("-----------------------------------------------------------------------------\n");

gotoxy(1,5);

printf("|rec|no|Name|sc1|sc2|sc3|sum|average|order|\n");

}

voidshowTable2()

{

printf("-----------------------------------------------------------------------------\n");

}

STUDENT*del(STUDENT*head)

{

STUDENT*p,*q;

longn;intflag=0;

clrscr();

p=head;

q=p;p=p->next;

printf("Pleaseinputthenumberyouwanttodelete:

");

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("Notfind!

!

!

\n");

printf("Pressanykeytoreturn......\n");

getch();

return(head);

}

voiddisplay(STUDENT*head)

{

STUDENT*p;inti=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->score[0],p->score[1],p->score[2],p->sum,p->average,p->order);

p=p->next;

i++;

}

showTable2();

printf("Pressanykeytoreturn......\n");

getch();

}

voidsearch(STUDENT*head)

{

longstr;inti;intrec=1;

STUDENT*p;p=head;

clrscr();

printf("Pleaseinputthenumberyouwanttoget:

");

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->score[0],p->score[1],p->score[2],p->sum,p->average,p->order);

showTable2();

}

else

printf("Notfind!

");

printf("Pressanykeytoreturn!

");

getch();

}

voidsave(STUDENT*head)

{

FILE*fp;STUDENT*p;

clrscr();

if((fp=fopen("e:

kesheyyp","wb"))==NULL)

{

printf("Can'topenthefile!

\n");

exit

(1);

}

printf("\n********Savingfile********\n");

p=head;

while(p!

=NULL)

{

fwrite(p,sizeof(STUDENT),1,fp);

p=p->next;

}

fclose(fp);

printf("Savesuccess!

!

!

\n");

}

STUDENT *load()

{

STUDENT *p,*q,*head;

FILE*fp;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2