软件体系结构实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

南京信息工程大学实验(实习)报告

实验(实习)名称软件体系结构设计实验(实习)日期11.9.2010 得分指导教师潘锦基

系计算机专业软件工程年级2009 班次 1 姓名武奎俊学号20092344022 1实验目的.

(1)熟练使用环境进行小规模软件体系结构设计。

(2)进一步掌握软件体系结构的描述。

(3)掌握常用的软件体系结构风格。

(4)培养团队协作精神。

2.实验内容

学生成绩管理系统用于学生成绩的管理和查询,该系统能完成成绩的录入、修改、查询、统计等基本功能以及用户的管理。

根据具体情况,选择合适的软件体系结构风格,设计该系统的软件体系结构。

3.实验准备

(1)合理分组,确定负责人。

(2)熟悉常用的软件体系结构风格及其优缺点。

(3)熟悉软件体系结构描述方法。

(4)熟悉学生成绩管理系统的需求。

4.实验步骤

现有学生成绩信息,内容如下:

姓名学号语文数学英语

张明明 01 67 78 82

李成友 02 78 91 88

张辉灿 03 68 82 56

王露 04 56 45 77

陈东明 05 67 38 47

设计要求:(1) 信息维护:要求学生信息数据要以文件的形式保存,能实现学生信息数据的维护。此模块包括子模块有:增加学生信息、删除学生信息、修改学生信息

(2) 信息查询:要求查询时可实现按姓名查询、按学号查询

(3) 成绩统计:要求输入任意的一个课程名(如数学)和一个分数段(如60--70),统计出在此分数段的学生情况。

(4) 排序:能对用户指定的任意课程名,按成绩升序或降序排列学生数据并显示排序结果(使用表格的形式显示排序后的输出结果)(使用多种方法排序者,加分)

(5) 至少采用文本菜单界面(如果能采用图形菜单界面更好)

(6) 学生可自动增加新功能模块(视情况可另外加分)

主要技术指标及特点

程序流程图如下:

登录界面显示

此登录界面是预先设定好作为菜单来显示的,在主函数中以menu()来实现的,在函数中,是通过switch……case来实现选择功能的,用户可以通过需要进行选择,方便了用户的使用,非常人性化。

登记学生资料

当系统中没有保存学生信息时,就会提示没有学生记录!也就是说不能从文件中导出,这时就需要用户进行学生资料的导入,当输入的学号已经存在时,系统会提示用户重新输入一个未被占用的学号信息,否则就重新分配内存空间。

保存学生资料

该操作是将用户输入的学生信息进行保存,用文件的方法进行调试,当用户输入对象的个数超过0时,显示保存成功,否则提示,系统连接为空。

删除学生资料

删除后结果紧随其后

这里又是通过switch……case函数的调用,让用户进行选择,共有两种方法:1.按照学号2.按照姓名,操作完成后,系统会自动提示,该学生已经成功删除,当再次显示的时候,函数中的链表就不再指向该学号,从而起到删除的作用。删除完成后,再次保存一下学生资料,不然系统仍然默认为原始人数。

修改学生资料

通过选择到达修改界面:此时将呈现出现有的学生资料,按照要求将新的信息输入其中,再保存资料,如果输入的学号系统中未显示,那么系统则提示没有资料可以修改。

这个为修改完的图片查询学生资料

按照选择,则会呈现出用户需要查找的所有信息,每次呈现出来的时候都要用之前定义的printheader()函数,这个很好地将数据按照格式化的形式显现出来。此为按照学号查找的例子,按照姓名查找是同样道理。

统计学生资料

统计学生资料主要还是用的switch……case函数,通过选择,用printheader(),printdata(r),printf(END)等函数用表格的形式将符合条件的学生信息全部显示出来,不过唯一不足的就是所有的学生信息没有能够连贯起来,每个学生信息前面都有表头,没处理好。

对学生资料进行排序

该图显示的是按照语文成绩排序完的结果,用链表将数据进行一个接一个的比较,按照降序将学生信息排列下来,最后提示排序已经完成,并将所有结果按照用户要求显示出来。

程序主要代码

#include "stdio.h" /*标准输入输出函数库*/

#include "stdlib.h" /*标准函数库*/

#include "string.h" /*字符串函数库*/

#include "conio.h" /*屏幕操作函数库*/

#define HEADER1 " ----------------------------学生成绩---------------------------- \n"

#define HEADER2 " | 学号| 姓名|语文|数学|英语| 总分| 均分| \n"

#define HEADER3 " |---------------|---------------|----|----|----|--------|-------|"

#define FORMA T " | %-10s |%-15s|%4d|%4d|%4d| %4d | %.2f |\n"

#define DA TA p->data.num,p->,p->data.egrade,p->data.mgrade,p->data.cgrade,p->data.total,p->data.a ve

#define END " -------------------------------------------------------------- \n"

int shoudsave=0; /* */

struct student

{

char num[10];/* 学号*/

char name[20];

char sex[4];

int cgrade;

int mgrade;

int egrade;

int total;

float ave;

char neartime[10];/* 最近更新时间*/

};

typedef struct node

{

struct student data;

struct node *next;

}Node,*Link;

void menu()

{

system("cls"); /*调用DOS命令,清屏.与clrscr()功能相同*/

cprintf("\n");

cprintf(" 学生成绩管理系统\n\n");

cprintf(" *************************菜单**************************\n");

相关文档
最新文档