西安郵電學院
数据库系统原理与应用
课程设计报告
题 目: 资产管理系统
院系名称: 理学院
专业名称:班 级:
学生姓名:学号(8位):
指导教师: 孙家泽
设计起止时间:20xx年12月19日~20xx年12月30日
一. 设计目的
资产设备管理是高效管理工作中一项非常重要的组成部分,应用于设备及相关业务部门。资产管理系统旨在计算机上实现设备变更、设备应用监控、设备统计查询等需要大量协调的工作,从而减轻工作量。实际应用中的资产系统主要包括采购管理、资产设备管理、房屋管理等几个子系统,实现设备从申报、采购、库存到领用全过程的计算机化、信息化与智能化。本系统是以资产设备管理为核心的资产管理系统。
二. 设计内容
根据对系统进行需求分析,本系统将分为六个模块:系统管理、资产信息管理、人员信息管理、资产领用、资产归还、资产报废。
三.概要设计
1. 功能模块图;
2. 各个模块详细的功能描述。
1、系统管理
主要包含资产类别的维护,包括资产类别信息的添加、修改、删除、查询。 2、资产信息管理
维护资产设备的相关信息,包括增加、修改、删除、查询资产信息。 3、人员信息管理
维护人员的相关信息,包括增加、修改、删除、查询人员信息。 4、资产领用
维护资产的领用信息,提供资产领用历史记录的查询。 5、资产归还
维护资产的归还信息,提供资产领用历史记录的查询。 6、资产报废
维护资产的报废信息,提供资产报废历史纪录的查询。
四.详细设计
1、资产管理系统主界面模块
资产管理系统主界面模块包括AssetsMS.java和AssetsMain.java两个文件。AssetsMS是资产管理系统的主运行类,其中有运行整个程序的main方法,该文件生成了AssetsMain类的一个实例,从而生成了资产管理系统界面,如下图所示。
2、系统管理模块
系统管理模块主要有资产类别管理和退出系统两个功能,如下图所示。其中退出功能在主界面实现,而资产类别管理通过TypeInfo.java文件实现。
该类继承自JFrame,提供了资产类别的增加、修改、删除、查询等功能。它实现了ActionListener与ListSelectionListener接口,因此必须覆写actionPerformed(ActionEvent e)与valueChanged(ListSelectionEvent e)方法,以实现基本事件处理与JTable列被选择时的时间处理,其实现效果如图所示。
3、资产信息管理模块
资产信息管理模块主要由AssetsInfo.java、AddAssets.java、ModifyAssets.java、DeleteAssets.java和ModifyAssetsSearch.java五个文件组成,其构成关系如图所示。
另外,资产信息管理模块中还有资产信息查询的功能,该功能和其他查询功能均通过 ResultInfo.java和SearchIDInfo.java两个文件实现。实现效果如图所示。
4、人员信息管理模块
该模块的实现类似资产信息管理模块,实现功能如下。
5、资产操作管理模块
本系统对资产的操作主要有:资产领用、资产归还、资产报废三种操作。资产操作管理模块主要由UseAssets.java、BackAssets.java和InvalidAssets.java三个文文件组成,分别实现了资产的领用、归还、报废的管理界面。
6、信息查询模块
该模块主要提供了资产信息、人员信息、资产归还信息和资产报废信息的查询功能。
7、数据库操作模块
该模块执行对数据库进行操作的功能,包括连接数据库、执行SQL语句、关闭数据库连接等。 数据库中包含的4个表分别为:
资产信息表(Assets)
人员信息表(Person) 资产操作流水表(AssetsTrjn) 资产类别管理表(AssetsType)
五.测试数据及运行结果
查询所有和按编号查询:
删除信息:
资产领用管理:
六.调试情况,设计技巧及体会
1.改进方案
由于知识有限,本系统主要针对信息的添加、修改、删除、插入等,本系统可以建立一个连接数据库的登陆界面,不同的用户设置不同的操作权限。另外对界面的美观也可进一步的修改。
2.体会
根据需求分析,本系统建立了资产信息查询、人员信息查询、资产领用,资产报废等几个模块,虽然有些不足但通过这次实习,增强了我的自学和上机操作的能力,对SQL和Myeclipse有了更深刻的了解。掌握了SQL数据库的链接以及建数据库及表等。
七.参考文献
Java课程设计案例精编 Java开发技术与工程实践
Java语言程序设计教程 程序设计与应用开发
数据库项目开发实例 Java课程设计
学生成绩管理系统设计报告
一、 需求分析:
用数组或链表数据结构完成一个学生成绩管理系统,此系统的具体功能要求如下:
(1)学生信息录入功能
1)用户从键盘输入每个学生的信息:学号、姓名、性别、数学、英语、政治、程序设计基础、物理五门课成绩。
2)可插入一个或多个学生信息到当前编辑的班级数据中。
3) 可删除一个或多个学生信息。
(2)文件保存功能
1)学生信息每一班存为一个数据文件,数据文件可在程序中打开、编辑和重新保存。
2)用户输入学生信息可随时保存数据文件。
(3)文件打开功能
1)程序只能对当前打开的数据文件进行编辑。
(4)查询功能
1)浏览所有学生信息;
2)按学号查询学生信息;
3)按姓名查询学生信息;
4) 查询一个班总成绩和平均成绩;
5) 查询一个班某一门课总成绩和平均成绩;
6)查询某一门课分数段( <60,60-69,70-79,80-89,>90)学生数。
(5)报表输出功能
1) 按学号输出一个班学生信息:学号、姓名、性别、数学、英语、政治、程序设计基础、物理成绩和总成绩,到屏幕和文件。
2) 按总成绩输出从高到低输出学号、姓名信息。
注:以上功能以菜单形式供用户使用,并有一定的容错功能。
二、 概要设计
整体框架:
整个学生成绩管理系统采用链表作为基本数据结构,创建一个类student用于保存学生的数据且是链表中的一个节点。类list作为保存整个链表之用。主函数通过switch语句来根据用户的需要连接各个模块,以实现用户的需要。
模块基本介绍:
1. 用户输入模块
在此模块中,用户将根据菜单提示结合自己的需求输入一个0~11的值,来实现一定的功能。
2. 学生信息录入模块
此模块可以让用户从键盘输入每个学生的信息:学号、姓名、性别、数学、英语、政治、程序设计基础、物理五门课成绩。用户可插入一个或多个学生信息到当前编辑的班级数据中。 用户可删除一个或多个学生信息。
3. 文件保存功能模块
用户在确定以录入的成绩无误之后,可以将学生信息以每一班为单位存为一个数据文件。用户输入的学生信息可随时保存数据文件。
4. 文件打开功能模块
用户可以用此模块将数据文件在程序中打开、编辑,程序只能对当前打开的数据文件进行编辑。
5. 查询功能模块
在此模块里,用户可实现以下操作:1.浏览所有学生信息;2.按学号查询学生信息;3.按姓名查询学生信息;4.查询一个班每个人的总成绩和平均成绩; 5.查询一个班某一门课每个人的总成绩和平均成绩;6)进行成绩的统计分析:包括总人数,每门课的最高成绩、最低成绩、平均成绩、各个分数段的人数(100-90、89-80、79-70、69-60、59-50、50以下)、及格人数。
6. 报表输出功能模块
在此模块中,用户可以浏览所有学生的信息,或者可以按学号输出一个班学生信息:学号、姓名、性别、数学、英语、政治、程序设计基础、物理成绩和总成绩,到屏幕和文件。也可以按总成绩输出从高到低输出学号、姓名信息。
模块图:
三、 详细设计
主要功能模块的算法设计思路:
1. 用户输入模块设计
提示用户输入一个0~11的值,并存储在一个整型变量m中。
2. 学生信息录入模块设计
通过应用list中的instu()函数,来新建一个链表中的节点,即一个新的学生信息,来进行成绩的录入功能。成绩修改功能,可以根据姓名或学号进行查询并修改相应的课程的成绩,使用了void search(char s[10],int)和void search1(char s[20],int)函数进行操作。search函数根据姓名查找,search1函数根据学号进行查找。因为学号和姓名,都是存储在字符数组中的,所以都是通过字符串的比较进行查找的。然后根据整形参数进行对应的课程成绩的修改。成绩删除功能,也是可以根据姓名或学号进行删除,查询的算法和成绩修改功能的查询方法是一样的,当找到要删除的节点时,因为节点都是在堆内存中保存的,所以可以直接delete掉,并将前一个节点的next指针指向被删掉的节点的next指针所指向的节点。
3. 文件保存功能模块
先提示用户输入保存文件的文件名及班级名称。文件的前两行分别是班级名称和成绩单的开头,然后通过ofstream变量output来进行学生信息的输出,一项一项的输出,并设定格式,直到输出节点为NULL为止,之后关闭output。
4. 文件打开功能模块
先提示用户输入要打开的数据文件的名称,然后通过一个ifstream变量input来进行文件操作。首先判断文件是否存在,如果不存在则输出"File does not exist",并跳出switch语句。文件存在的话,则可以进行数据的存入了。因为数据文件具有固定的格式,即开头两行是班级名称和表头,则可以先用两次input.getline(temp,80);语句来将input设置到第三行,此时可以将数据通过input读入链表中。先用input.eof()判断文件中是否有数据,若有数据,则进行数据的读入,直到文件结束。
5. 查询功能模块
可以根据姓名或学号进行查找,搜索方法和前几个模块相同。通过outstu1(char *n)和outstu(char *n)来进行输出。总成绩和平均成绩的查询通过函数void outsum(char *)和void outsum1(char *)来完成。通过函数scanall()来浏览所有学生的信息。通过函数think()来进行成绩的统计分析。
6. 报表输出功能模块
通过建立一个新的类class stucopy用于拷贝student的数据,并实现排序功能。创建一个stucopy stu[M]数组,将原链表的数据拷贝与数组中,然后用选择排序方法将数组排序,然后用output按照标准的格式输出或保存为数据文件。
四、 程序结构
源代码:
#include<iostream.h>
#include<string.h>
#include<iomanip.h>
#include<fstream.h>
const int M = 20;
class stucopy//此类用于拷贝student的数据,用于排序功能的实现
{
public:
char id[20];
char sex[10];
char name[10];
double grade[5];
double sumsum;//总成绩
double average;//平均成绩
};
class student//用于保存学生信息的类
{
friend class list;
public:
char id[20];//保存学号
char sex[10];//保存性别
char name[10];//保存名字
double grade[5];//保存成绩
student()
{
next=0;
for (int i=0;i<20;i++) id[i]=0;
for (i=0;i<10;i++) sex[i]=0;
for (i=0;i<10;i++) name[i]=0;
}
void s();
void setid(char id1[20])
{
for(int i=0;i<20;i++)
id[i]=id1[i];
}
void setsex(char sex1[10])
{
for(int i=0;i<10;i++)
sex[i]=sex1[i];
}
void setname(char name1[10])
{
for(int i=0;i<10;i++)
name[i]=name1[i];
}
void setgrade(double grade1[5])
{
for(int i=0;i<5;i++)
grade[i]=grade1[i];
}
student *next;//next指向下一个学生,构成链表
char * outid(){return id;};
char * outsex(){return sex;};
char * outname(){return name;};
double outsum()
{
double sum=0;
for(int i=0;i<5;i++)
sum+=this->outgrade(i);
return sum;
}
double outav(){return this->outsum()/5;}
double outgrade(int i){return grade[i];};
void intgrade(int);
};
void student::intgrade(int j)//用于修改学生的成绩
{
switch (j)
{
case 1:
cout<<" 请输入数学成绩:\n";
cin>>grade[0];break;
case 2:
cout<<"请输入英语成绩:\n";
cin>>grade[1];break;
case 3:
cout<<"请输入政治成绩:\n";
cin>>grade[2];break;
case 4:
cout<<"请输入程序设计基础成绩:\n";
cin>>grade[3];break;
case 5:
cout<<"请输入物理成绩:\n";
cin>>grade[4];break;
}
}
void student::s()//用于录入学生的信息
{
cout<<"请输入学号:\n";
cin>>id;
cout<<"请输入姓名:\n";
cin>>name;
cout<<"请输入性别:\n";
cin>>sex;
cout<<"请输入数学成绩:\n";
cin>>grade[0];
cout<<"请输入英语成绩:\n";
cin>>grade[1];
cout<<"请输入政治成绩:\n";
cin>>grade[2];
cout<<"请输入程序设计基础成绩:\n";
cin>>grade[3];
cout<<"请输入物理成绩:\n";
cin>>grade[4];
}
class list//此类为链表
{
private:
double high[5],low[5];
public:
student *last,*first;//链表的开头和结尾
double totoal;
list(){last=0;first=0;};
~list();
void instu();//新建一个学生的数据
void outstu(char *);//根据姓名输出一个学生的信息
int delstu(char *n);//根据姓名删除一个学生的信息
void outstu1(char *);//根据学号输出一个学生的信息
int delstu1(char *n);//根据学号删除一个学生的信息
void outsum(char *);//根据姓名输出一个学生的总成绩和平均成绩
void outsum1(char *);//根据学号输出一个学生的总成绩和平均成绩
void think();//用于输出班级成绩的统计分析
void search(char s[10],int);//根据姓名修改一个学生的成绩
void search1(char s[20],int);//根据学号修改一个学生的成绩
double hi(int i);//求某门课的最高分
double lo(int i);//求某门课的最低分
void av(int i);//求某门课的平均分
void ev(int i);//用于班级成绩统计分析的人数分布输出
void scanall();//输出所有学生的信息
};
list::~list()//析构函数,将所有创建的学生对象删掉
{
if(first!=0)
{
student *p=first,*temp;
while(p!=NULL){
temp=p;
p=p->next;
delete temp;
cout<<"ok\n";
}}}
void list::instu()
{ student *p=new student();
p->s();
if(first==0){first=last=p;}else{last->next=p;last=p;}
}
void list::outstu(char *n)
{
if(first==0) {cout<<"班级无成员!查无此人!"<<endl;return;}
student *temp=first;for(;temp!=NULL;temp=temp->next)
if(strcmp(temp->outname(),n)==0)
{
cout<<setw(8)<<"学号"<<setw(8)<<"姓名"<<setw(6)<<"性别"<<setw(6)<<"数学"<<setw(6)
<<"英语"<<setw(6)<<"政治"<<setw(14)<<"程序设计基础"<<setw(6)<<"物理"<<endl;
cout<<setw(8)<<temp->outid()<<setw(8)<<temp->outname()<<setw(6)<<temp->outsex()<<setw(6)
<<temp->outgrade(0)<<setw(6)<<temp->outgrade(1)<<setw(6)<<temp->outgrade(2)<<setw(14)
<<temp->outgrade(3)<<setw(6)<<temp->outgrade(4);return;}
cout<<"查无此人!"<<endl;
return;
}
void list::outstu1(char *n)
{
if(first==0) {cout<<"班级无成员!查无此人!"<<endl;return;}
student *temp=first;for(;temp!=NULL;temp=temp->next)
if(strcmp(temp->outid(),n)==0)
{
cout<<setw(8)<<"学号"<<setw(8)<<"姓名"<<setw(6)<<"性别"<<setw(6)<<"数学"<<setw(6)
<<"英语"<<setw(6)<<"政治"<<setw(14)<<"程序设计基础"<<setw(6)<<"物理"<<endl;
cout<<setw(8)<<temp->outid()<<setw(8)<<temp->outname()<<setw(6)<<temp->outsex()<<setw(6)
<<temp->outgrade(0)<<setw(6)<<temp->outgrade(1)<<setw(6)<<temp->outgrade(2)<<setw(14)
<<temp->outgrade(3)<<setw(6)<<temp->outgrade(4);return;}
cout<<"查无此人!"<<endl;
return;
}
int list::delstu(char *n)
{
if(first==0) {cout<<"无数据!"<<endl;return 0;}
student *temp=first;
student *p;
if(strcmp(first->outname(),n)==0)
{ first=first->next;delete temp;
cout<<"\n删除成功\n";return 0;}
else for(;temp->next!=NULL;temp=temp->next)
{if(strcmp(temp->next->outname(),n)==0)
{p=temp->next;temp->next=temp->next->next;delete p;
cout<<"\n删除成功\n";return 0;}}
cout<<"\n查无此人,删除失败\n";
return 0;
}
int list::delstu1(char *n)
{
if(first==0) {cout<<"无数据!"<<endl;return 0;}
student *temp=first;
student *p;
if(strcmp(first->outid(),n)==0)
{ first=first->next;delete temp;
cout<<"\n删除成功\n";return 0;}
else while(temp->next!=NULL)
{if(strcmp(temp->next->outid(),n)==0)
{p=temp->next;temp->next=temp->next->next;delete p;
cout<<"\n删除成功\n";return 0;}
else temp=temp->next;}
cout<<"\n查无此人,删除失败\n";
return 0;
}
void list::think()
{
if(first==0) {cout<<"无数据!"<<endl;return;}
int i=0;
student *p=first;
while (p!=NULL)
{
p=p->next;
i++;
}
totoal=i;
cout<<"人数:"<<i<<endl;
cout<<"数学\n";
cout<<"最高分:"<<hi(0)<<" "<<"最低分:"<<lo(0)<<" "<<"平均分:";
av(0);
ev(0);
cout<<"英语\n";
cout<<"最高分:"<<hi(1)<<" "<<"最低分:"<<lo(1)<<" "<<"平均分:";
av(1);
ev(1);
cout<<"政治\n";
cout<<"最高分:"<<hi(2)<<" "<<"最低分:"<<lo(2)<<" "<<"平均分:";
av(2);
ev(2);
cout<<"程序设计基础\n";
cout<<"最高分:"<<hi(3)<<" "<<"最低分:"<<lo(3)<<" "<<"平均分:";
av(3);
ev(3);
cout<<"物理\n";
cout<<"最高分:"<<hi(4)<<" "<<"最低分:"<<lo(4)<<" "<<"平均分:";
av(4);
ev(4);
}
double list::hi(int i)
{
high[i]=0.00;
student *temp=first;
while(temp!=0)
{if(temp->outgrade(i)>high[i])
high[i]=temp->outgrade(i);
temp=temp->next;
}
return high[i];
}
double list::lo(int i)
{
low[i]=100;
student *temp=first;while(temp!=0)
{if(temp->outgrade(i)<low[i])
low[i]=temp->outgrade(i);
temp=temp->next;
}
return low[i];
}
void list::av(int i)
{
double aver=0;
student *temp=first;
while(temp!=NULL)
{
aver+=temp->outgrade(i);
temp=temp->next;
}
cout<<aver/totoal<<endl;
}
void list::ev(int i)
{ int a=0,b=0,c=0,d=0,e=0,f=0;
student *temp=first;while(temp!=0)
{switch((int)temp->outgrade(i)/10)
{
case 10:a++;break;case 9:a++;break;
case 8:b++;break;case 7:c++;break;
case 6:d++;break;case 5:e++;break;
default:f++;
}
temp=temp->next;
}
cout<<"100-90的人数:"<<a<<" 89-80的人数:"<<b<<" 79-70的人数:"<<c
<<" 69-60的人数:"<<d<<" 59-50的人数:"<<e<<" 50以下的人数:"<<f
<<" 及格的人数:"<<(a+b+c+d)<<" 不及格的人数:"<<(e+f)<<endl;
}
void list::search(char s[10],int n)
{
student *temp=first;for(;temp!=NULL;temp=temp->next)
if(strcmp(temp->outname(),s)==0)temp->intgrade(n);
}
void list::search1(char s[20],int n)
{
student *temp=first;for(;temp!=NULL;temp=temp->next)
if(strcmp(temp->outid(),s)==0)temp->intgrade(n);
}
void list::outsum(char *n)
{
if(first==0) {cout<<"无数据!"<<endl;return;}
student *temp=first;for(;temp!=NULL;temp=temp->next)
if(strcmp(temp->outname(),n)==0)
{
cout<<setw(8)<<"学号"<<setw(8)<<"姓名"<<setw(8)<<"性别"<<setw(8)<<"总成绩"<<
setw(10)<<"平均成绩"<<"\n";
cout<<setw(8)<<temp->outid()<<setw(8)<<temp->outname()<<setw(8)
<<temp->outsex()<<setw(8)<<temp->outsum()<<setw(10)<<temp->outav();
return;
}
cout<<"查无此人!"<<endl;
return;
}
void list::outsum1(char *n)
{
double sum=0;
int i=0;
double av=0;
if(first==0) {cout<<"无数据!"<<endl;return;}
student *temp=first;for(;temp!=NULL;temp=temp->next)
if(strcmp(temp->outid(),n)==0)
{
cout<<setw(8)<<"学号"<<setw(8)<<"姓名"<<setw(8)<<"性别"<<setw(8)<<"总成绩"<<
setw(10)<<"平均成绩"<<"\n";
cout<<setw(8)<<temp->outid()<<setw(8)<<temp->outname()<<setw(8)
<<temp->outsex()<<setw(8)<<temp->outsum()<<setw(10)<<temp->outav();
return;
}
cout<<"查无此人!"<<endl;
return;
}
void list::scanall()
{
student *temp;
for(temp = first;temp!=NULL;temp=temp->next)
cout<<setw(8)<<temp->outid()<<setw(8)<<temp->outname()<<setw(6)
<<temp->outsex()<<setw(6)<<temp->outgrade(0)<<setw(6)<<temp->outgrade(1)
<<setw(6)<<temp->outgrade(2)<<setw(14)<<temp->outgrade(3)<<setw(6)
<<temp->outgrade(4)<<setw(8)<<temp->outsum()<<setw(10)<<temp->outav()<<endl;
}
void main()
{
stucopy stu[M];//复制整个链表的数据于数组,用于排序
stucopy stutemp;//临时变量
list will;//整个链表
student *p, *p1=new student(),*q;//临时变量
ifstream input;//输入
ofstream output;//输出
char file[20],classname[20],temp[80],id[20],name[9],sex1[10];//临时变量
int m=0,n=0,j=0,i=0;//临时变量
double grade1[5];//临时变量
for(i=0;i<20;i++) id[i]=0;
for(i=0;i<9;i++) name[i]=0;//初始化
do{
cout<<"//----------------------------------------------------------\\\n"
<<" 0、 退出系统。\n"
<<" 1、 成绩的录入:包括学生学号、姓名、性别和各门课程成绩的录入。\n"
<<" 2、 成绩的查询:可以根据学号或姓名查询某个学生的成绩。\n"
<<" 3、 成绩的修改:可以根据学号或姓名来修改相应的学生的成绩。\n"
<<" 4、 数据的删除:可以根据学号或姓名指定删除某个学生的数据。\n"
<<" 5、 成绩的统计分析:包括总人数、最高成绩、最低成绩、平均成绩、\n"
<<" 各个分数段的人数(100-90、89-80、79-70、69-60、59-50、50以下)、及格率。\n"
<<" 6、 总成绩和平均成绩的查询:可以根据学号或姓名查询。\n"
<<" 7、 浏览所有学生信息。\n"
<<" 8、 将所有学生信息保存成文件。\n"
<<" 9、 打开指定的数据文件。\n"
<<" 10、 按总成绩排序输出学生信息。\n"
<<" 11、 按学号顺序输出学生信息,并可保存成文件。\n"
<<"//----------------------------------------------------------\\\n";
cout<<endl<<"请输入:";
cin>>m;
switch(m)
{
case 1:
will.instu();
break;
case 2:
cout<<"1.根据学号查询 2.根据姓名查询"<<endl<<"请输入:";
cin>>n;
switch(n){
case 1:
cout<<"请输入学号\n";
cin>>id;
will.outstu1(id);
cout<<"\n";break;
case 2:
cout<<"请输入姓名\n";
cin>>name;
will.outstu(name);
cout<<"\n";break;}break;
case 3:
cout<<"1.根据学号查询 2.根据姓名查询"<<endl<<"请输入:";
cin>>n;
switch(n){
case 1:
cout<<"请输入学号\n";
cin>>id;
will.outstu1(id);
cout<<"\n";
cout<<setw(6)<<"1.数学"<<
setw(6)<<"2.英语"<<setw(6)<<"3.政治 "<<
setw(14)<<"4.程序设计基础"<<setw(6)<<"5.物理"<<endl;
cout<<"请输入要修改的课程编号:";
cin>>j;
will.search1(id,j);break;
case 2:
cout<<"请输入姓名\n";
cin>>name;
will.outstu(name);
cout<<"\n";
cout<<setw(6)<<"1.数学"<<
setw(6)<<"2.英语"<<setw(6)<<"3.政治 "<<
setw(14)<<"4.程序设计基础"<<setw(6)<<"5.物理"<<endl;
cout<<"请输入课程编号:";
cin>>j;
will.search(name,j);break;}break;
case 4:
cout<<"1.根据学号删除 2.根据姓名删除"<<endl<<"请输入:";
cin>>n;
switch(n){
case 1:
cout<<"请输入学号\n";
cin>>id;
will.outstu1(id);
will.delstu1(id);break;
case 2:
cout<<"请输入姓名\n";
cin>>name;
will.outstu(name);
will.delstu(name);break;}break;
case 5:
will.think();
break;
case 6:
cout<<"1.根据学号查询 2.根据姓名查询"<<endl<<"请输入:";
cin>>n;
switch(n){
case 1:
cout<<"请输入学号\n";
cin>>id;
will.outsum1(id);break;
case 2:
cout<<"请输入姓名\n";
cin>>name;
will.outsum(name);break;}break;
case 7:
cout<<setw(8)<<"学号"<<setw(8)<<"姓名"<<setw(6)<<"性别"<<setw(6)<<"数学"<<
setw(6)<<"英语"<<setw(6)<<"政治"<<
setw(14)<<"程序设计基础"<<setw(6)<<"物理"<<setw(8)<<"总成绩"<<
setw(10)<<"平均成绩"<<"\n";
will.scanall();
break;
case 8:
cout<<"请输入文件名:"<<endl;
cin>>file;
cout<<"请输入班级名称:"<<endl;
cin>>classname;
output.open(file);
p = will.first;
output<<classname<<"成绩单"<<endl<<setw(8)<<"学号"<<setw(8)<<"姓名"<<setw(6)<<"性别"<<setw(6)<<"数学"<<
setw(6)<<"英语"<<setw(6)<<"政治"<<
setw(14)<<"程序设计基础"<<setw(6)<<"物理"<<setw(8)<<"总成绩"<<
setw(10)<<"平均成绩"<<endl;
for(;p!=NULL;p=p->next)
output<<setw(8)<<p->outid()<<setw(8)<<p->outname()<<setw(6)
<<p->outsex()<<setw(6)<<p->outgrade(0)<<setw(6)<<p->outgrade(1)
<<setw(6)<<p->outgrade(2)<<setw(14)<<p->outgrade(3)<<setw(6)
<<p->outgrade(4)<<setw(8)<<p->outsum()<<setw(10)<<p->outav()<<endl;
output.close();
break;
case 9:
cout<<"请输入文件名:"<<endl;
cin>>file;
input.open(file);
if (input.fail())
{
cout<<"File does not exist"<<endl;
break;
}
input.getline(temp,80);
input.getline(temp,80);
if(input.eof()) {cout<<"文件中无数据!"<<endl;break;}
input>>id>>name>>sex1>>grade1[0]>>grade1[1]>>grade1[2]>>
grade1[3]>>grade1[4];
input>>temp;
input>>temp;//将总成绩和平均成绩输入进临时变量
p1->setid(id);
p1->setname(name);
p1->setsex(sex1);
p1->setgrade(grade1);
will.first=p1;
will.last=will.first;
while(!input.eof())
{
p=new student();
q=will.last;
will.last->next=p;
will.last=p;
input>>id>>name>>sex1>>grade1[0]>>grade1[1]>>grade1[2]>>
grade1[3]>>grade1[4];
will.last->setid(id);
will.last->setname(name);
will.last->setsex(sex1);
will.last->setgrade(grade1);
input>>temp;
input>>temp;//将总成绩和平均成绩输入进临时变量
}
will.last=q;
will.last->next=NULL;
input.close();break;
case 10:
p=will.first;
for(i=0;i<20&&p!=NULL;i++,p=p->next)
{
for (j=0;j<20;j++)
{
stu[i].id[j]=p->id[j];
}
for (j=0;j<10;j++)
{
stu[i].name[j]=p->name[j];
}
for (j=0;j<10;j++)
{
stu[i].sex[j]=p->sex[j];
}
stu[i].sumsum=p->outsum();
stu[i].average=p->outav();
}
for(n=0;n<i-1;n++)
for(j=1;j<i;j++)
{
if (stu[n].sumsum<stu[j].sumsum)
{
stutemp=stu[j];
stu[j]=stu[n];
stu[n]=stutemp;
}
}
cout<<setw(8)<<"学号"<<setw(8)<<"姓名"<<setw(6)<<"性别"<<setw(8)<<"总成绩"<<
setw(10)<<"平均成绩"<<"\n";
for (j=0;j<i;j++)
cout<<setw(8)<<stu[j].id<<setw(8)<<stu[j].name<<setw(6)
<<stu[j].sex<<setw(8)<<stu[j].sumsum<<setw(10)<<stu[j].average<<endl;break;
case 11:
p=will.first;
for(i=0;i<20&&p!=NULL;i++,p=p->next)
{
for (j=0;j<20;j++)
{
stu[i].id[j]=p->id[j];
}
for (j=0;j<10;j++)
{
stu[i].name[j]=p->name[j];
}
for (j=0;j<10;j++)
{
stu[i].sex[j]=p->sex[j];
}
stu[i].sumsum=p->outsum();
stu[i].average=p->outav();
for(j=0;j<5;j++)
stu[i].grade[j]=p->grade[j];
}
for(n=0;n<i-1;n++)
for(j=1;j<i;j++)
{
if (stu[n].id>stu[j].id)
{
stutemp=stu[j];
stu[j]=stu[n];
stu[n]=stutemp;
}
}
cout<<setw(8)<<"学号"<<setw(8)<<"姓名"<<setw(6)<<"性别"<<setw(6)<<"数学"
<<setw(6)<<"英语"<<setw(6)<<"政治"<<setw(14)<<"程序设计基础"<<setw(6)
<<"物理"<<setw(8)<<"总成绩"<<setw(10)<<"平均成绩"<<endl;
for (j=0;j<i;j++)
cout<<setw(8)<<stu[j].id<<setw(8)<<stu[j].name<<setw(6)<<stu[j].sex<<setw(6)
<<stu[j].grade[0]<<setw(6)<<stu[j].grade[1]<<setw(6)<<stu[j].grade[2]<<setw(14)
<<stu[j].grade[3]<<setw(6)<<stu[j].grade[4]<<setw(8)<<stu[j].sumsum<<setw(10)
<<stu[j].average<<endl;
cout<<"\n 输入1.将上述信息保存成文件; 输入0:返回"<<endl;
cin>>m;
if (m==1)
{
cout<<"请输入文件名:"<<endl;
cin>>file;
cout<<"请输入班级名称:"<<endl;
cin>>classname;
output.open(file);
output<<classname<<"成绩单"<<endl<<setw(8)<<"学号"<<setw(8)<<"姓名"<<setw(6)<<"性别"<<setw(6)<<"数学"<<
setw(6)<<"英语"<<setw(6)<<"政治"<<
setw(14)<<"程序设计基础"<<setw(6)<<"物理"<<setw(8)<<"总成绩"<<
setw(10)<<"平均成绩"<<endl;
for(j=0;j<i;j++)
output<<setw(8)<<stu[j].id<<setw(8)<<stu[j].name<<setw(6)<<stu[j].sex<<setw(6)
<<stu[j].grade[0]<<setw(6)<<stu[j].grade[1]<<setw(6)<<stu[j].grade[2]<<setw(14)
<<stu[j].grade[3]<<setw(6)<<stu[j].grade[4]<<setw(8)<<stu[j].sumsum<<setw(10)
<<stu[j].average<<endl;
output.close();
}break;
}
cout<<"\n 输入1: 继续; 输入0: 退出\n";
cin>>m;
}while(m==1);
}
齐鲁工业大学实验报告成绩课程名称会计电算化指导教师实验日期20xx59院系商学院专业班级会计3班实验地点商学院机房学生姓名学号20…
数据库原理课程设计实验报告中国计量学院数据库系统原理课程设计报告书学生姓名陈飞飞学号0630332325专业计算机科学与技术班级0…
序号云南师范大学商学院实验报告册学期20xx20xx学年下学期课程名称EXCEL在会计核算中的应用实验名称固定资产管理班级学号姓名…
固定资产作为公司资产的重要组成部分,一个好的固定资产管理是为了确保公司资产的安全与完整,提高固定资产的使用效益。一、公司目前固定资…
行政事业单位固定资产管理分析随着行政事业单位办公条件的日益改善,大量现代办公设备的添置,行政事业单位的固定资产日趋增加,有的还相当…
固定资产管理现状分析报告制度原因现行关于固定资产管理的制度是20xx年颁布的文:《财产管理制度修订》,该文件就公司财产包括固定资产…
XXX管理局资产管理调研报告一、资产管理现状行政事业单位国有资产管理是公共财政管理的重要组成部分。规范和加强行政事业单位国有资产管…
国有资产管理情况分析报告XXXX小学XXXX小学国有资产管理情况分析报告为了加强对国有资产管理的监督推进国有资产管理体制改革的深化…
20xx年资产管理部全年工作总结述职报告尊敬的杜董事长、林总、各位领导、各位同事:大家好!20xx年,资产管理部在集团公司杜董事长…