大二软件课程设计.docx
- 文档编号:3666895
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:14
- 大小:179.34KB
大二软件课程设计.docx
《大二软件课程设计.docx》由会员分享,可在线阅读,更多相关《大二软件课程设计.docx(14页珍藏版)》请在冰豆网上搜索。
大二软件课程设计
学生成绩管理系统
课程设计报告
编写人:
同组成员:
(课程设计负责人)
完成日期:
辅导教师:
批阅日期:
分数:
一、建立与该商品管理系统有关的程序,其中包括:
添加记录、显示记录、降序排列、修改记录、插入记录、删除记录、查找记录、统计信息、存储记录
二、建立与该模块相关的以上信息的界面。
(一)、功能描述
此成绩管理系统主要利用主函数在C++语言下实现,由如下五个功能模块实现
1、添加模块。
主要完成将商品记录存入商品结构体组的工作。
2、修改模块。
主要完成通过输入商品的编号来修改商品的所有记录。
3、删除模块。
主要完成通过输入商品的编号来删除商品的所有记录。
4、查询模块。
主要完成通过输入商品的编号来查询商品的所有记录。
5、降序模块。
主要完成通过输入商品的编号来降序排列商品的所有记录。
6、插入模块。
主要完成通过输入商品编号来完成插入商品的记录。
7、存储模块。
主要完成存储商品记录。
8、退出模块。
主要完成退出界面的任务。
(二)、总体设计
1、主函数执行流程
本系统提供了10个选项供用户选择,先显示目录菜单,提示用户输入选择。
有效值为0到9,输入1则进入键盘添加商品信息功能模块,系统将会循环调用ADD()函数键盘添加员工信息。
输入2进入删除记录模块,主要工作是在单链表中查找商品代码找到相应的商品信息然后删除。
输入3进入查询模块,主要工作是循环调用QUR()函数找到相应商品信息。
输入4进入修改模块主要工作是先调用查询函数找到商品,然后调用Modify()进行商品信息的修改.输入5进入插入模块,主要工作是在单链表中通过调用ADD()函数来插入商品信息.输入6进入统计函数,系统通过While循环来输出商品件数.输入7进入降序排列模块,主函数运用冒泡排序的方法对商品代码进行排序.(排序是对链表节点的修改而不修改商品信息)。
输入8存储模块进入:
通过save函数将商品信息存到D盘上.输入9进入显示数据模块.其功能是将所有商品的所有信息输出到屏幕中,输出在屏幕上的为表格形式,以便读取方便。
输入0退出本系统,操作结束
2、功能描述
(1)主函数——voidmain()
算法描述:
利用无限次循环for(;;)和switch()实现对各函数的调用,系统根据输入的数字选项来调用相应的函数,实现相应的功能。
(2)菜单函数——intmenu_select()
函数功能:
使用者通过输入数字选项实现对各功能的使用。
当运行完任一功能,返回运行界面时,也要用到该函数。
算法描述:
使用do-while循环进行菜单选择,在循环内用switch读如所选择的序号,并且每次运行都运用system("cls")进行清屏。
(3建立记录函数——voidsetData(linklistp)
函数功能:
输入商品编号,名称,单价,数量。
输入后有一个提示语句——是否继续输入。
根据需要选择Y:
继续输入记录;选择N:
停止输入。
(4)显示所有记录函数——voidDisp()
函数功能:
将输入的所有记录显示在运行界面,或将排序后的记录显示在界面。
算法描述:
使用while进行循环输出,循环内运用if语句使十条数据可以实现暂停功能。
其中还包含了一些辅助的使界面更简洁、清晰的语句
(5)排序函数——voidsort_()
函数功能:
按商品编号由高到底的顺序进行排序。
算法描述:
运用简单冒泡法排序,排序后通过显示记录功能将排序后的记录显示在界面。
(6)插入记录函数——intInsert_()
函数功能:
插入商品信息,包括商品编号、名称单价和数量插入。
算法描述:
使用标准的输入函数输入一条商品记录,带到返回值中,并调用排序函数将该商品记录插入到排好序的记录中。
(7)删除记录函数—intDelete_()
函数功能:
按编号将需要删除的记录删除。
首先输入编号,判断是否存在该商品记录:
如果存在,回车后,显示“删除成功”;如果不存在,显示“无法找到该信息”。
算法描述:
运用标准输入函数输入需要删除记录的商品的编号,通过用while循环查找该商品信息,再运用if语句看是否存在该商品,无则返回“无法找到该信息”,有则运用while进行删除操作,即找到记录后用后面记录覆盖前面的记录。
这种方法虽不是直接将记录删除,只是将后边的商品记录复制到要删除的商品记录,但实现的功能是相同的。
执行完删除命令后返回“删除成功”。
(8)查询函数——voidQur()
函数功能:
定义该函数为无返回值的的有参函数,根据输入的编号查找并显示商品的编号,名称单价和数量。
算法描述:
运用标准的输入函数输入要查找的商品编号,然后进行while循环,用if语句进行判断是否存在该商品信息,无则显示“无法找到该信息”,有则将该商品信息运用标准输出函数输出。
(9)统计系统信息函数——voidtongji()
函数功能:
统计输入的商品信息,包括记录总数。
算法描述:
统计记录的条数输出总共的记录条数,运用while循环统计商品信息。
(10)修改信息函数——intModify()
先查找到要修改的商品信息,再进行修改。
算法描述:
运用if语句判断,如果存在进行修改。
11)存储信息函数——voidsave()
函数功能:
该函数定义为无返回值的有参函数,可以把学生记录保存D盘。
算法描述:
运用while循环进行存储,并使用fprintf,存储完成之后显示“操作成功”,可以使用读取功能读取此文件的内容。
。
(三)、数据结构设计
简单商品管理信息结构体
#include
#include
#include
#include
#include"stdlib.h"/*其它说明*/
typedefstruct
{
charnum[10];
charname[20];
floatprice;
intamount;
}Product;
typedefstructnode
{
Productp;
structnode*pre;
structnode*next;
}node,*linklist;
linklisthead,last;
voidsetData(linklistp)
{
printf("产品编号:
");
scanf("%s",&p->p.num);
printf("产品名称:
");
scanf("%s",&p->p.name);
printf("产品单价:
");
scanf("%f",&p->p.price);
printf("产品数量:
");
scanf("%d",&p->p.amount);
}
voidInsert(linklistp)
{
setData(p);
p->next=last;
last->pre->next=p;
p->pre=last->pre;
last->pre=p;
}
voidAdd()
{
charch;
do
{
linklistp=(linklist)malloc(sizeof(node));
system("pause");
Insert(p);
printf("是否继续?
");
scanf("%c",&ch);
}while(ch=='y'||ch=='Y');
}
linklistQur()
{
charnum[10];
linklistp=head->next;
printf("输入产品编号:
");
scanf("%s",num);
while(p!
=last)
{
if(strcmp(num,p->p.num)==0)break;
p=p->next;
}
if(p==last){printf("未找到\n");system("pause");}
returnp;
}
voidDel()
{
linklistp=Qur();
if(p==last)return;
p->pre->next=p->next;
p->next->pre=p->pre;
free(p);
printf("删除成功\n");
system("pause");
}
voidModify()
{
linklistp=Qur();
if(p==last)return;
setData(p);
}
voidprintTitle()
{
printf("编号\t名称\t单价\t数量\n");
}
voidshow(linklistp)
{
printf("%s\t%s\t%.2f\t%d\n",p->p.num,p->p.name,p->p.price,p->p.amount);
}
voidTongji()
{
linklistp=head->next;
inti=0;
printTitle();
while(p!
=last)
{
show(p);
p=p->next;
i++;
}
printf("共%d项商品\n",i);
system("pause");
}
voidSort()
{
linklistp,q;
for(p=head->next;p!
=last;p=p->next)
{
for(q=p->next;q!
=last;q=q->next)
{
if(strcmp(p->p.num,q->p.num)<0)
{
Producttemp=p->p;
p->p=q->p;
q->p=temp;
}
}
}
printf("完成\n");
system("pause");
}
voidSave()
{
linklistp=head->next;
FILE*fp=fopen("d:
\\record.txt","w");
if(fp==NULL)
{
printf("保存失败\n");
return;
}
fprintf(fp,"编号\t名称\t单价\t数量\n");
while(p!
=last)
{
fprintf(fp,"%s\t%s\t%.2f\t%d\n",p->p.num,p->p.name,p->p.price,p->p.amount);
p=p->next;
}
fclose(fp);
printf("完成\n");
system("pause");
}
voidDisp()
{
linklistp=head->next;
printTitle();
while(p!
=last)
{
show(p);
p=p->next;
}
system("pause");
}
voidWrong()
{
printf("输入错误!
\n");
system("pause");
}
voidmenu(void)
{
system("cls");|*系统清屏*|
printf("********商品销售管理系统*******\n");
printf("**\n");
printf("*1:
添加*\n");
printf("*2:
删除*\n");
printf("*3:
查询*\n");
printf("*4:
修改*\n");
printf("*5:
插入*\n");
printf("*6:
统计*\n");
printf("*7:
降序排列*\n");
printf("*8:
存储*\n");
printf("*9:
显示数据*\n");
printf("*0:
退出*\n");
printf("**\n");
printf("*******************************\n");
}
intselect()
{
intchoose;
scanf("%d",&choose);
switch(choose)
{
case1:
Add();break;
case2:
Del();break;
case3:
{
linklistp=Qur();
if(p!
=last){show(p);system("pause");}break;
}
case4:
Modify();break;
case5:
{
linklistp=(linklist)malloc(sizeof(node));
Insert(p);break;
}
case6:
Tongji();break;
case7:
Sort();break;
case8:
Save();break;
case9:
Disp();break;
case0:
break;
default:
Wrong();break;
}
returnchoose;
}
voiddestroy()
{
linklistp=head->next;
while(p!
=last)
{
head->next=p->next;
free(p);
p=head->next;
}
free(head);
free(last);
}
intmain(void)
{
head=(linklist)malloc(sizeof(node));
last=(linklist)malloc(sizeof(node));
head->next=last;
last->next=NULL;
last->pre=head;
head->pre=NULL;
do
{
menu();
}while(select()!
=0);
destroy();
return0;
}
(四)、运行结果
1、主界面
2、输入商品记录
3、显示数据记录
4、删除记录
(五)、设计小结
优点:
(1)程序没有错误,没有警告,程序逻辑结构紧密。
(2)该程序包含内容较全面,操作较方便。
不足:
(1)此程序的创建商品函数一旦执行之前建立的通讯录将清空,一切从新头开始建立通讯录,所以若想连续在已有信息的通讯录中增加多个成员信息,只能多次选择voidADD(Linklist(p))函数来进行。
(2)输入太多个商品信息时,屏幕不能一页一页显示。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大二 软件 课程设计