信息記錄材料課程設計
❶ C++課程設計。學生基本信息管理的設計與實現。簡單點的。不要成績管理系統~沒分
《C++程序設計》
課程設計報告
設計題目:學生成績管理系統
專業:智能終端
班級:
學號:
姓名:
指導老師:
日期:
目錄
一、設計任務與要求…………………………………………3
1.設計內容………………………………………………3
2.課程設計的要求………………………………………3
二、系統分析(需求分析)…………………………………3
1.需求分析…………………………………………3
2.系統性能要求……………………………………3
3.系統的功能分析……………………………………3
4.系統功能模塊……………………………………3
5.模塊框架圖…………………………………………3
三、系統設計與實現……………………………………4
1.界面設計…………………………………………4
2.功能設計與實現………………………………4
四、測試結果……………………………………4
五、總結…………………………………………5
六、參考資料……………………………………5
附錄:源程序……………………………………5
一、設計任務與要求
1.設計內容:
a.設計四個類;學生類(描述學生基本信息);成績類:班級類;課程類(描述課程信息:課程編號,科目名稱(如高等數學,大學英語等);學生成績及課程信息用文件保存,每個類一個文件,程序執行時從文件讀入;
b.能按學期,按班級完成對學生成績的錄入,修改,能按班級統計學生的成績;求學生的總分及平均分;並能根據學生的平均成績進行排序,能查詢學生成績,不及格科目及學生名單;能按班級輸出學生的成績單。
– 設置學生的成績信息:學生學號、姓名、所選課程名稱、平時成績、期末成績、平時成績所佔百分比
– 計算學生總評成績:總評成績=平時成績*平時成績所佔百分比+期末成績*(1-平時成績所佔百分比)
– 顯示學生的姓名、所選課程名稱以及平時成績、期末成績和總評成績信息。分單人顯示和以班輸出(班成績單格式輸出到文件)
– 注意,至少一個班,30人三門課
2.課程設計的要求:
根據C++課程所學的概念、理論和方法,按照C++程序設計的基本步驟,設計出一個適當規模的程序來實現設計課程內容中的全部功能;設計主控模塊程序.對給出的程序源代碼要給出各部分的詳細注釋.自己根據能力及需要添加相應功能模塊,增強模擬系統功能。包括系統的功能分析、系統的功能模塊設計、程序流程圖或結構框圖、邏輯結構設計,資料庫中的表、視圖(如果使用)、索引的結構和定義、觸發器、存儲過程、課程設計體會。
二、系統分析(需求分析)
1.需求分析:
a.能對學生各科成績進行錄入:。
b.能對學生的成績進行增加。
c.能對學生的成績進行刪除。
d.能對學生的成績進行修改。
e.能對學生的成績按總成績,姓名,進行查詢。
f.能輸出學生的所有數據。
g.能進行成績統計
h能進行總分查詢排名。
2.系統性能要求:
a.系統安全、可靠;
b.功能齊全;
c.操作方便、界面友好;
d易於維護和擴充。
3.系統的功能分析:
資料維護:系統維護包括對學生信息的錄入操作及數據表中的信息進行瀏覽。
系統功能:可以對數據表中的信息進行瀏覽。
系統查詢:可以對學生的信息進行查詢。
4.系統功能模塊
學生成績查詢系統有:成績錄入、增加、刪除、修改,數據查詢,排序顯示構成。
5.模塊框架圖
三、系統設計與實現
1.界面設計
程序運行後會出現一個簡捷的窗口,便於用戶查詢數據。
2.功能設計與實現
通過主窗體調用其他窗體,具體實現可以參照系統分析相關內容。應用系統主控界麵包括記錄編輯和記錄查詢等功能模塊。記錄編輯功能完成學生成績記錄編輯和記錄查詢功能。記錄查詢功能可以對數據各分類的記錄進行查詢
四、測試結果
每一個case都能執行,但是有很多的地方都不夠完善,例如:在總成績排序中,只能輸出總成績,不能單獨的輸出學生的相應的信息;每次進行別的操作之前都要在進行一次數據的錄入,不能直接對原有的文件進行讀取。
五、總結
此次c++課程設計,在指導教師的精心教導下,我們學會了如何用C++編寫一個簡單的應用程序。首先要對程序的設計要求有一個比較明確的認識,然後系統分析與系統設計,最後是代碼設計與調試。程序實現上,設計了簡單的查詢界面,將各個功能集中出來按照程序編寫原則,便於查詢。
根據C++課程所學的概念、理論和方法,按照C++程序設計的基本步驟,設計出一個適當規模的程序;進一步加深對C++語言的理解和掌握。理論聯系實際,加深和鞏固所學的理論知識,提高實踐能力和計算機的綜合運用能力。我們編寫程序的過程是辛苦與快樂的,程序的編寫原則很重要,只要我們在編程,就必須不斷改進,才能更好提高編程能力。
六、參考資料
C++程序設計 譚浩強 清華大學出版社
附錄:源程序
#include<iostream>
#include<string>
#include<fstream>
#include<sstream>
#include<iomanip>
using namespace std;
class Tstu //通過定義一個類來定義數據錄入的函數
{
char name[20];
int number;
float math,cpp,english,average,sum;
public:
Tstu()
{};
Tstu ( char n[20], int num,float ma,float cj,float eng ) ;
float getsum();//得到總分的函數
float getaver(); //得到平均分的函數
friend void main(); //將主函數定義為友元函數,方便訪問類中的成員
};
Tstu::Tstu ( char n[20], int num,float ma,float cj,float eng )
{
strcpy(name,n); //得到姓名
number=num; //得到學號
math=ma; //得到數學成績
cpp=cj; //得到c++成績
english=eng; //得到英語成績
}
float Tstu::getsum() //得到總分的函數
{
sum=cpp+english+math;
return sum;
}
float Tstu::getaver() //得到平均分的函數
{
average=getsum()/3;
return average;
}
void main()
{
cout<<"*****************歡迎來到學生成績查詢系統*****************"<<endl;
cout<<"請選擇您需要的操作!"<<endl; //菜單的輸出
cout<<"操作:"<<endl;
cout<<"(1)數據錄入"<<endl;
cout<<"(2)增加學生"<<endl;
cout<<"(3)刪除學生"<<endl;
cout<<"(4)修改數據"<<endl;
cout<<"查詢:"<<endl;
cout<<"(5)按總成績查詢"<<endl;
cout<<"(6)按姓名查詢"<<endl;
cout<<"(7)輸出所有學生的數據"<<endl;
cout<<"成績統計:"<<endl;
cout<<"(8)每個學生的平均成績"<<endl;
cout<<"(9)各科不及格人數"<<endl;
cout<<"排名:"<<endl;
cout<<"(10)按總分查詢排名"<<endl;
cout<<"(11)退出"<<endl;
cout<<"選擇相關操作請輸入相對的括弧里的阿拉伯數字及字母!"<<endl;
int p=0; //全局變數,用於選擇菜單時的輸入
char w;//全局變數,用於在大項中選擇是否繼續操作
Tstu *s[100]; //類定義的指針將所錄入的數據按類中的形式分別存儲
ofstream *file[100];
int i=0; //全局變數,用於做每個錄入數據的下標
int j=0;
int chris1=0; //用於判斷do—while語句
do //判斷輸入是否正確
{
cin>>p;
if((p>=1&&p<=11))
chris1=1;
else
cout<<"指令錯誤!請重新輸入:"<<endl;
}while(chris1==0);
do{
switch(p)
{
case 1: //數據的錄入
{
char c; //用於在小項中選擇是否繼續操作
char name[20];
int number;
float math,cpp,english;
do{
cout<<"請輸入姓名:"<<endl;
cin>>name;
cout<<"請輸入學號:"<<endl;
cin>>number;
cout<<"請輸入數學成績:"<<endl;
cin>>math;
cout<<"請輸入C++成績:"<<endl;
cin>>cpp;
cout<<"請輸入英語成績:"<<endl;
cin>>english;
fstream outfile,infile; //作一個文本文檔在文件夾中用於顯示所錄入的數據
outfile.open("f1.txt",ios::out|ios::app);
if(!file)
{ cout<<"f1.txt can not open.\n";
return;
}
outfile<<name<<" "<<"學號:"<<number<<" "<<"數學成績:"<<math<<" "<<"C++成績:"<<cpp<<" "<<"外語成績:"<<english<<endl;
outfile.close();
infile.open("f1.txt",ios::in);
if(!file) //判斷文件是否打開
{ cout<<"f1.txt can not open.\n";
return;
}
char ch;
while(infile.get(ch))
cout<<ch;
cout<<endl;
infile.close();
j++;
s[i]=new Tstu(name, number,math, cpp, english);
i++;
cout<<"數據錄入成功,想繼續錄入嗎(y/n)"<<endl;
cin>>c;
chris1=0;
do{
if(c!='y'&&c!='n')
{ cout<<"指令錯誤!請重新輸入!"<<endl;
cin>>c;
}
else
chris1=1;
}while(chris1==0);
}while(c=='y'); //重復輸入
break;
}
case 2: //增加學生數據
{
char name[20];
int number;
float math,cpp,english;
char c;
do
{
cout<<"請輸入您要增加的學生的姓名:"<<endl;
cin>>name;
cout<<"請輸入你要增加的學生的學號:"<<endl;
cin>>number;
cout<<"請輸入數學成績:"<<endl;
cin>>math;
cout<<"請輸入C++成績:"<<endl;
cin>>cpp;
cout<<"請輸入英語成績:"<<endl;
cin>>english;
fstream outfile,infile;
outfile.open("f1.txt",ios::out|ios::app);
if(!file)
{
cout<<"f1.txt can not open.\n";
return;
}
outfile<<name<<" "<<"學號:"<<number<<" "<<"數學成績:"<<math<<" "<<"C++成績:"<<cpp<<" "<<"外語成績:"<<english<<endl;
outfile.close();
infile.open("f1.txt",ios::in);
if(!file)
{
cout<<"f1.txt can not open.\n";
return;
}
char h;
while(infile.get(h))
cout<<h;
cout<<endl;
infile.close();
j++;
s[i]=new Tstu(name,number, math, cpp, english);
i++;
cout<<"數據錄入成功,想繼續錄入嗎(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令錯誤!請重新輸入!"<<endl;
cin>>c;
}
}while(c=='y');
break;
}
case 3://刪除學生信息
{
char c;
string xingming,line,str,name;
do
{ ifstream fin("f1.txt");
fstream outfile("f2.txt",ios::trunc|ios::out); //作一個文本文檔在文件夾中用於顯示所錄入的數據
cout<<"請輸入您要刪除的學生的姓名:"<<endl;
cin>>xingming;
while(!fin.eof() )
{
getline(fin,line);
istringstream stream(line);
name = line.substr(0,line.find(" ",0));//找到名字,判斷是否相等
if(name != xingming)
outfile<<line<<endl;
}
outfile.close();
fin.close();
fstream f("f1.txt",ios::trunc|ios::out);
ifstream outf("f2.txt");
f<<outf.rdbuf();
outf.close();
f.close();
cout<<"數據刪除成功,想繼續刪除嗎(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令錯誤!請重新輸入!"<<endl;
cin>>c;
}
}while(c=='y');
break;
}
case 4://修改數據
{
string sname,line,str,name;
int nu;float eng,ma,com;int flag;char c;
if(i==0)
{
cout<<"系統中沒有輸入數據,請先輸入數據!"<<endl;break;
}
do
{
flag=0;
cout<<"請輸入您要修改的學生的姓名:";
cin>>name;
fstream fin("f1.txt",ios::in);
ofstream outfile("f.txt",ios::trunc|ios::out);
cout<<endl;
while(!fin.eof() ) //在文件中查找
{
getline(fin,line);
istringstream stream(line);
sname = line.substr(0,line.find(" ",0));
if(name!=sname)
{
outfile<<line<<endl;
}
else flag=1;
}
fin.close();
if(flag=1)
{
cout<<"請輸入修改學生姓名及其新學號,數學,c++和英語成績:";
cin>>name>>nu>>ma>>com>>eng;
cout<<endl;
outfile<<name<<" "<<"學號:"<<nu<<" "<<"數學成績:"<<ma<<" "<<"C++成績:"<<com<<" "<<"外語成績:"<<eng<<endl;
outfile.close();
fstream outf("f1.txt",ios::trunc|ios::out);
fstream inf("f.txt",ios::in);
outf<<inf.rdbuf()<<endl;
outf.close();
inf.close();
}
if(flag=0)cout<<"對不起,您要修改的學生不存在!請查證後輸入!"<<endl;
cout<<"想繼續修改嗎(y/n):";
cin>>c;
cout<<endl;
if(c!='y'&&c!='n')
{
cout<<" 指令錯誤!請重新輸入!"<<endl<<" ";
cin>>c;
}
}while(c=='y');
break;
}
case 5://按總分查詢
{
int j=0;float SUM;char c;int flag;
if(i==0)
{
cout<<"系統中沒有輸入數據,請先輸入數據!"<<endl;break;
}
do
{
flag=0;
cout<<"請輸入您要查詢的學生的總成績:"<<endl;
cin>>SUM;
for(int j=0;j<i;j++)
{
if(s[j]->getsum()==SUM)
{
flag=1;
cout<<"您要查詢的學生是:"<<(*s[j]).name<<endl;
cout<<"該生的信息為:"<<endl;
cout<<" 學號:"<<(*s[j]).number<<" 數學分數:"<<(*s[j]).math<<" c++分數:"<<(*s[j]).cpp<<" 英語分數"<<(*s[j]).english<<endl;
}
}
if(flag==0)cout<<"對不起!您要查詢的學生不存在!"<<endl;
cout<<"是否繼續查?(y/n):";
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令錯誤!請重新輸入!"<<endl;
cin>>c;
};
}while(c=='y');
break;
}
case 6://按姓名查詢
{
char n[20];char c;int j=0;int flag;
if(i==0)
{
cout<<"系統中沒有輸入數據,請先輸入數據!"<<endl;break;
}
do
{
flag=0;
cout<<"請輸入要查詢的名字: "<<endl;
cin>>n;
for(int j=0;j<i;j++)
{
if(strcmp(n,(*s[j]).name)==0)
{
flag=1;
cout<<"您要查詢的學生是:"<<(*s[j]).name<<endl;
cout<<"該生的信息是:學號:"<<(*s[j]).number<<" 數學分數:"<<(*s[j]).math<<"c++分數:"<<(*s[j]).cpp<<"英語分數:"<<(*s[j]).english<<endl;
}
}
if(flag==0)
cout<<"對不起您要查詢的學生不存在,請查證後再輸入!"<<endl;
cout<<"您想繼續查詢嗎?(y/n):";
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令錯誤!請重新輸入:"<<endl;
cin>>c;
}
}while(c=='y');
break;
}
case 7://輸出所有學生數據
{
cout<<"所有學生數據如下:"<<endl;
ifstream file;
file.open("f1.txt",ios::in);
cout<<file.rdbuf();
file.close();
break;
}
case 8://統計每個學生的平均成績
{
if(i==0)
{
cout<<"系統中沒有輸入數據,請先輸入數據!"<<endl;break;
}
for(int m=0;m<i;m++)
{
cout<<(*s[m]).name<<" 學號:"<<(*s[m]).number<<" 總分:"<<(*s[m]).getsum()<<" 均分:"<<(*s[m]).getaver()<<endl;
}
break;
}
case 9://統計各學科不及格人數
{
if(i==0)
{
cout<<"系統中沒有輸入數據,請先輸入數據!"<<endl;break;
}
int m,n,k,j;m=0;n=0;k=0;
for(j=0;j<i;j++)
{
if(s[j]->math<60)m++;
if(s[j]->cpp<60)n++;
if(s[j]->english<60)k++;
}
cout<<"數學不及格人數為:"<<m<<endl;
cout<<"c++不及格人數為:"<<n<<endl;
cout<<"英語不及格人數為:"<<k<<endl;
break;
}
case 10://按總分排名
{
if(i==0)
{
cout<<"系統中沒有輸入數據,請先輸入數據!"<<endl;break;
}
int h,g,n;int j=0;float a[100],temp;
for(g=0;g<i;g++)
{
a[j]=(*s[g]).getsum();j++;
}
for(h=0;h<i;h++)
{for(n=0;n<i-h;n++)
if(a[n]>a[n+1])
{
temp=a[n];a[n]=a[n+1];a[n+1]=temp;
}
}
for(n=1;n<=i;n++)
cout<<a[n]<<endl;
break;
}
}
cout<<" 您想繼續進行其他操作嗎?(y/n):";
int flag=0;
do
{
cin>>w;
cout<<endl;
if(w!='y'&&w!='n')
cout<<" 指令錯誤!請重新輸入!"<<endl;
else
flag=1;
}while(flag==0);
if(w=='y')
{
cout<<"*****************歡迎來到學生成績查詢系統*****************"<<endl;
cout<<"請選擇您需要的操作!"<<endl; //菜單的輸出
cout<<"操作:"<<endl;
cout<<"(1)數據錄入"<<endl;
cout<<"(2)增加學生"<<endl;
cout<<"(3)刪除學生"<<endl;
cout<<"(4)修改數據"<<endl;
cout<<"查詢:"<<endl;
cout<<"(5)按總成績查詢"<<endl;
cout<<"(6)按姓名查詢"<<endl;
cout<<"(7)輸出所有學生的數據"<<endl;
cout<<"成績統計:"<<endl;
cout<<"(8)每個學生的平均成績"<<endl;
cout<<"(9)各科不及格人數"<<endl;
cout<<"排名:"<<endl;
cout<<"(10)按總分查詢排名"<<endl;
cout<<"(11)退出"<<endl;
cout<<"選擇相關操作請輸入相對的括弧里的阿拉伯數字及字母!"<<endl;
cin>>p;
}
}while(w=='y');
}
另外,站長團上有產品團購,便宜有保證
❷ 學生籍貫信息管理的c語言課程設計
#include<iostream.h>
#include<string.h>
#include<fstream.h>
#include<stdlib.h>
class stu
{
char name[20];
int number;
char bornplace[50];
public:
stu()
{
}
stu(char n[20],int num,char born[50])
{
strcpy(name,n);
number=num;
strcpy(bornplace,born);
}
friend void main();
};
void main()
{
cout<<"請選擇您需要的操作!"<<endl;
cout<<" 操作:"<<endl;
cout<<"(0)數據錄入"<<endl;
cout<<"(1)增加人員"<<endl;
cout<<"(2)刪除人員"<<endl;
cout<<"(3)修改數據"<<endl;
cout<<" 查詢:"<<endl;
cout<<"(4)按姓名查詢"<<endl;
cout<<"(5)按學號查詢"<<endl;
cout<<"(6)輸出所有學生的籍貫信息"<<endl;
cout<<"(7)按籍貫查詢"<<endl;
cout<<"選擇相關操作請輸入相對的括弧里的阿拉伯數字!"<<endl;
char p;char w;
stu *s[50];
ofstream *file[50];
int i=0;
int j=0;
bool flag2=0;
do
{
cin>>p;
if((p>='0'&&p<='6'))
flag2=1;
else
cout<<"指令錯誤!請重新輸入:"<<endl;
}while(flag2==0);
do{
switch(p)
{
case '0':
{
char c;
char name[20],bornplace[50];int number;
do{
cout<<"請輸入姓名"<<endl;
cin>>name;
cout<<"請輸入學號:"<<endl;
cin>>number;
cout<<"請輸入籍貫:"<<endl;
cin>>bornplace;
file[j]=new ofstream("d:\\document.txt",ios::ate);
*file[j]<<"姓名"<<name<<"學號"<<number<<"籍貫"<<bornplace <<endl;
j++;
s[i]=new stu(name,number,bornplace);
i++;
cout<<"數據錄入成功,想繼續錄入嗎(y/n)"<<endl;
cin>>c;
flag2=0;
do
{
if(c!='y'&&c!='n')
{
cout<<"指令錯誤!請重新輸入!"<<endl;
cin>>c;
}
else
flag2=1;
}
while(flag2==0);
}
while(c=='y');
break;
}
case '4':
{
char t[20];
char c;
do
{
int flag1=0;
cout<<"請輸入你要查詢學生的姓名"<<endl;
cin>>t;
for(int q=0;q<i;q++)
{
if(strcmp((*s[q]).name,t)==0)
{
flag1=1;
cout<<"您要查詢的學生是:"<<(*s[q]).name<<"學號是:"<<(*s[q]).number<<"籍貫是:"<<(*s[q]).bornplace<<endl;
}
}
if(flag1==0)
cout<<"對不起!您要查詢的學生不存在!"<<endl;
cout<<"您想繼續查詢嗎?(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令錯誤!請重新輸入!"<<endl;
cin>>c;
}
}
while(c=='y');
break;
}
case '5':
{
int n ;int j=0;char c;
do{
int flag=0;
cout<<"請輸入你要查詢的學生學號:"<<endl;
cin>>n;
for(int j=0;j<i;j++)
{ int no=((*s[j]).number);
if(no==n)
{
flag=1;
cout<<"您要查詢的學生是:"<<(*s[j]).name<<endl;
cout<<"籍貫是:"<<(*s[j]).bornplace<<endl;
}
}
if(flag==0)
cout<<"對不起!您要查詢的學生不存在!"<<endl;
cout<<"您想繼續查詢嗎?(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令錯誤!請重新輸入!"<<endl;
cin>>c;
}
}
while(c=='y');
break;
}
case '7':
{
char m[20];int j=0;char c;
do{
int flag=0;
cout<<"請輸入你要查詢籍貫:"<<endl;
cin>>m;
for(int w=0;w<i;w++)
{
if(strcmp((*s[w]).bornplace,m)==0)
{
flag=1;
cout<<"您要查詢的學生是:"<<(*s[w]).name<<endl;
cout<<"學號是:"<<(*s[w]).number<<endl;
}
}
if(flag==0)
cout<<"對不起!您要查詢的學生不存在!"<<endl;
cout<<"您想繼續查詢嗎?(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令錯誤!請重新輸入!"<<endl;
cin>>c;
}
}
while(c=='y');
break;
}
case '1':
{
char name[20],bornplace[50];int number;
char c;
do
{
cout<<"請輸入您要增加的學生的姓名:"<<endl;
cin>>name;
cout<<"請輸入學號:"<<endl;
cin>>number;
cout<<"請輸入籍貫:"<<endl;
cin>>bornplace;
file[j]=new ofstream("d:\\document",ios::ate);
*file[j]<<"姓名"<<name<<"學號"<<number<<"籍貫"<<bornplace<<endl;
j++;
s[i]=new stu(name,number,bornplace);
i++;
cout<<"數據錄入成功,想繼續錄入嗎(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令錯誤!請重新輸入!"<<endl;
cin>>c;
}
}while(c=='y');
break;
}
case '2':
{
char name[20];bool flag3=0;char c;
do{
cout<<"請輸入您要刪除的學生姓名:"<<endl;
cin>>name;
for(int h=0;h<i;h++)
{
if(strcmp(name,s[h]->name)==0)
{
flag3=1;
i--;
do{
s[h]=s[h+1];
h++;
}while(h<=i);
}
}
if(flag3==0)
cout<<"您要求刪除的對象本來就不存在!請檢查輸入的正確性!";
cout<<"要繼續刪除嗎?(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令錯誤!請重新輸入!"<<endl;
cin>>c;
}
}while(c=='y');
break;
}
case '3':
{
char name[20],born[50];int num;;flag2=0;
char c;
do
{
cout<<"請輸入您要修改的學生的姓名:"<<endl;
cin>>name;
for(int h=0;h<i;h++)
{
if(strcmp(name,s[h]->name)==0)
{
flag2=1;
cout<<"請輸入新的學號:"<<endl;
cin>>num;
cout<<"請輸入新的籍貫:"<<endl;
cin>>born;
s[h]->number=num;
strcpy(s[h]->bornplace,born);
cout<<"數據修改成功!";
}
}
if(flag2==0)
{
cout<<"您要修改的學生本來就不存在!請檢查重新輸入!"<<endl;
}
cout<<"想繼續修改嗎(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令錯誤!請重新輸入!"<<endl;
cin>>c;
}
}while(c=='y');
break;
}
case '6':
{
cout<<"本系統所有學生的籍貫信息如下:"<<endl;
if(i==0)
cout<<"管理系統中沒有錄入數據或者數據已經被刪除!"<<endl;
for(int k=0;k<i;k++)
{
cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<<" "<<
"學號:"<<" "<<s[k]->number<<" "<<"籍貫:"<<" "<<s[k]->bornplace
<<endl;
}
break;
}
}
cout<<"您想繼續進行其他操作嗎?(y/n)"<<endl;
bool flag4=0;
do
{
cin>>w;
if(w!='y'&&w!='n')
cout<<"指令錯誤!請重新輸入!"<<endl;
else
flag4=1;
}while(flag4==0);
if(w=='y')
{cout<<"請選擇您需要的操作!"<<endl;
cout<<" 操作:"<<endl;
cout<<"(0)數據錄入"<<endl;
cout<<"(1)增加人員"<<endl;
cout<<"(2)刪除人員"<<endl;
cout<<"(3)修改數據"<<endl;
cout<<" 查詢:"<<endl;
cout<<"(4)按姓名查詢"<<endl;
cout<<"(5)按學號查詢"<<endl;
cout<<"(6)輸出所有學生的籍貫信息"<<endl;
cout<<"(7)按籍貫查詢"<<endl;
cout<<"選擇相關操作請輸入相對的括弧里的阿拉伯數字!"<<endl;
}
cin>>p;
}while(w=='y');
for(int x=0;x<i;x++)
{
delete s[x];
cout<<"delete all members!"<<endl;
}
}
❸ 課程設計倉庫管理系統的資料庫製作
資料庫原理及應用課程設計
一、課程設計的目的
《資料庫原理及應用》課程設計是計算機科學與技術專業集中實踐性環節之一,是學習完《資料庫原理及應用》課程後進行的一次全面的綜合練習。本課程設計主要在於加深學生對資料庫基礎理論和基本知識的理解,掌握資料庫應用系統設計開發的基本方法,達到進一步使學生綜合運用所學知識和增強實際動手能力的目的。
二、課程設計的任務與要求
要求學生根據自身對題目的理解情況,從給定的設計題目中選擇一個,以MS SQL Server作為後台資料庫平台,以PowerBuilder作為前台開發工具,完成一個小型資料庫應用系統的系統的分析、設計和開發。
三、課程設計說明書
倉儲管理系統
對於一個以生產或經營產品為主要業務的單位來說,倉庫管理系統至關重要。高效方便的倉庫管理系統,可以為生產經營提供堅強的後盾和有力的支持。效率低下甚至是混亂不堪的倉庫管理系統,無疑會成為企業健康發展的拖累甚至是枷鎖。使企業發展動力不足。本次資料庫設計實現了倉庫管理的高效化、電子化。通過本系統可以方便地實現倉庫管理中的貨物登記、出庫入庫等操作,使倉庫管理井井有條。
1系統需求分析
1.1系統功能需求分析
倉庫管理系統主要實現對庫存商品的管理,對商品出庫、入庫的管理,和對倉庫管理系統維護的功能。具體要實現的功能包括:
1)庫存商品管理
查看資料庫中商品的名稱、編號、單價等信息。
2)商品出庫、入庫管理
入庫、出庫單紀錄本次入庫、出庫的貨物名稱、數量,入庫、出庫的時間、商品單價以及總價,入庫、出庫的經手人等。
3)商品的查詢
輸入商品的編號或者商品的名稱查詢信息
4)用戶管理
用戶可以修改登錄密碼
1. 2數據需求分析
1.員工(ID ,姓名,密碼,許可權)
2.商品(商品名,商品編號,所屬類,單價)
3.出貨表(商品名,商品編號,數量,總價,經手人)
4.入貨表(商品名,商品編號,數量,總價,經手人)
5.查詢(商品名,商品編號,數量,單價)
根據上面的關系我們需要的數據基本上就上面所列出的數據。
2 系統總體設計
1)庫存商品管理
查看資料庫中商品的名稱、編號、單價等信息。
2)商品出庫、入庫管理
入庫、出庫單紀錄本次入庫、出庫的貨物名稱、數量,入庫、出庫的時間、商品單價以及總價,入庫、出庫的經手人等。
3)商品的查詢
輸入商品的編號或者商品的名稱查詢信息
4)用戶管理
用戶可以修改登錄密碼
2.1系統總體結構設計
2.2.1 E-R圖
2.2.2 關系模式
1.員工(ID ,姓名,密碼,許可權)
2.商品(商品名,商品編號,所屬類,單價)
3.出貨表(商品名,商品編號,數量,總價,經手人)
4.入貨表(商品名,商品編號,數量,總價,經手人)
5.查詢(商品名,商品編號,數量,單價)
2.2.3 數據表
「員工信息表」「商品信息表」「出貨單」「進貨單」的主鍵分別是:ID、商品編號、商品編號、商品編號。
員工信息表
商品信息表
出貨單
進貨單
3.系統實施
工作界面PB9.0,以下是我製作過程和運行中的一些截圖:
首先建立PB與SQL的數據鏈接:如果鏈接不成功,返回對以話框「資料庫連接錯誤,經檢查後再試!」
然後點Preview選項會彈出如下窗口:
一、 工作界面截圖:
分別建有:workspace、application、windows、dw_、da_等。
工作時檢測連接資料庫是否正常的程序代碼:
// Profile q
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=倉庫;UID=;PWD='"
connect;
open(w_enter)
二、 運行結果的截圖:
這個是我運行後的第一個用戶界面,在界面中輸入管理員ID和密碼。我的管理員ID 和密碼分別為 1,123.點擊確定進入menu下一界面。
若ID和密碼分別輸入1,1234,則跳出以下界面:
確定按鈕所對應的代碼如下:
//定義兩個變數
string password,userid
password=sle_2.text
//檢索用戶名和密碼記錄
SELECT "員工信息表". "ID",
"員工信息表"."密碼"
INTO :userid,
:password
FROM "員工信息表"
WHERE "員工信息表"."ID" =:sle_1.text and "員工信息表"."密碼" =:sle_2.text;
//判斷用戶輸入的用戶名是否正確
if sqlca.sqlcode<>0 then
messagebox("錯誤!","ID或密碼錯誤,請重新輸入!",exclamation!,ok!,2)
else
messagebox("通過驗證!","ID和密碼正確,歡迎您使用本系統!",Information!,ok!,2)
open(w_main)
close(w_enter)
end if
取消按鈕所對應的代碼如下:
close(parent)
//關閉登錄窗口
三、 menu界面的截圖:
在本界面中我們通過點擊菜單欄上的不同管理按鈕來實現管理和操作的功能。
進貨—進貨單
出貨—出貨單
庫存—蔬菜類
—水產類
—肉類
系統維護—修改密碼
查詢
四、 進貨的截圖如下:
在本界面中,操作員可以輸入進貨信息
五、 進貨的截圖如下:
在本界面中,操作員可以輸入出貨信息
六、本界面是實現用戶更改自己的密碼的界面
用戶在登陸後根據上面的提示可以更改自己的密碼。
程序代碼如下:
string oldid
string oldp
string newp1
string newp2
oldid=trim(sle_1.text)
oldp=trim(sle_2.text)
newp1=trim(sle_3.text)
newp2=trim(sle_4.text)
if len(oldp)=0 or isnull(oldp) then
oldp=space(10)
end if
if len(newp1)=0 or isnull(newp1) then
newp1=space(10)
end if
if len(newp2)=0 or isnull(newp2) then
newp2=space(10)
end if
select "operator"."password"
into :oldp
from "operator"
where "operator"."password"=:oldp;
if sqlca.sqlcode<>0 then
messagebox("提示","原密碼不正確!")
sle_2.text=""
sle_2.setfocus()
return
end if
if newp1<>newp2 then
messagebox("提示","兩次新密碼輸入不同!")
sle_4.text=""
sle_4.setfocus()
return
end if
Update "operator"
set "password"=:newp1
where "operator"."operator_id"=:oldid;
if sqlca.sqlcode<>0 then
rollback;
messagebox("提示","密碼更正錯誤! 請重設!")
return
end if
gs_password=newp1
commit;
messagebox("提示","密碼修改成功!")
七、本操作可以看倉庫里的商品並可對其進行插入和刪除
八、從倉庫查詢所需要的商品
4 系統評價
系統的功能基本上已經實現,但是還是不夠完善。但是在使用的時候還是能給用戶帶來一定的方便的。倉庫的進貨和出貨在本系統中能直觀的以表格形式反映出來,便於操作員的使用和決策者的管理。
4.1 系統特色
本系統要求用戶進行驗證之後才能進入相應的界面。有利於保護資料庫的安全,不被非法登陸使用。對於倉庫內貨物的進出管理要求嚴格,即進出貨時必須填寫相應的進出貨單據。便於企業管理查看賬目,保障了企業的穩定運行。通過本系統可以方便地實現倉庫管理中的貨物登記、出庫入庫等操作,使倉庫管理井井有條。在查看資料庫時可以方便的刪除資料庫中冗餘的信息和添加新的信息。
4.2 系統不足及改進
這個系統基本上實現了一些簡單的對系統所涉及表的更新、增加和刪除的功能。也實現對用戶登陸的安全上有了一定的限制,只有在正確輸入ID和密碼的時候才能進入系統。遠沒有達到大型公司的倉儲物資管理的要求,所創建的資料庫框架比較簡單,各表之間的聯系也過於簡單,沒有添加外鍵相互約束,用POWER BUILDER做出來的系統過於簡單、單調,需要進一步深入的調整優化,將各表之間的關系緊密聯系起來,相互制約,保證資料庫中數據的添加、刪除、更新,安全有序。操作窗口還需要進一步的進行美化,使用戶在使用中更賞心悅目。
5 課程設計心得
這次課程設計的主要目的是掌握資料庫應用系統分析設計的基本方法,基本掌握PowerBuilder,進一步提高分析解決問題的綜合能力。通過這次課程設計,我基本掌握了以上要求。但只有兩周的課程設計時間,時間比較倉促,所以開發的系統不是很完善,有一些功能未實現,但是倉庫管理的基本功能均已實現。以前對資料庫的很多知識認識都不深刻,做過這次課程設計之後,我對資料庫的知識有了一個比較系統的了解;比如:對表內一些欄位的約束,關系等的運用已經比較熟練。這個課程設計使我鞏固了資料庫的知識。
對於PowerBuilder也有了一定的了解,由於用的不多,所以運用的不是很熟練。剛開始的時候,對於PowerBuilder的語法,用法等一系列知識都不熟悉。當我基本完成此系統開發的時候,我發現其實也沒有那麼難,在未做之前我還害怕做不出來。經過對這個系統的開發,在開發過程中遇到但也解決了很多問題,所以說我們不能懼怕有困難而不去接觸認識它,我們要知難而上,只有這樣我們才能成長,才能有所發展。
這認為最難的一部分是用戶查看資料庫時通過插入刪除按鈕對資料庫的更改,因為我們在文本框中輸入的數字是被默認為字元型的,我在其中使用了integer(string)這個函數把字元型的進行了轉換,但是在使用的過程中並不能像我所想像的那樣有用。因為時間有限,所以這個問題還沒有完全的解決。
通過這次資料庫課程設計加深我對資料庫基礎理論和基本知識的理解,掌握資料庫應用系統設計開發的基本方法,達到進一步使我綜合運用所學知識和增強實際動手能力的目的。
我會繼續學習資料庫的知識,學習PowerBuilder的知識,只有通過不斷的學習充實自己,才能讓自己有所得。只有了知識的積淀,才能為自己的發展鋪平道路!
可以參考一下啊,最終還是要自己做的吧。。僅供參考。
❹ 論述題 1.試設計一個圖書信息數據表的結構 2.設計一個原材料倉庫管理中存儲原材料的數據表的基本結構
1 對每個題目要有需求分析
在需求分析中,將題目中要求的功能進行敘述分析,並且設計解決此問題的數據存儲結構,(有些題目已經指定了數據存儲的,按照指定的設計),設計或敘述解決此問題的演算法,描述演算法建議使用流程圖,進行演算法分析指明關鍵語句的時間復雜度。
給出實現功能的一組或多組測試數據,程序調試後,將按照此測試數據進行測試的結果列出來 。
對有些題目提出演算法改進方案,比較不同演算法的優缺點。
如果程序不能正常運行,寫出實現此演算法中遇到的問題,和改進方法;
2 對每個題目要有相應的源程序(可以是一組源程序,即詳細設計部分):
源程序要按照寫程序的規則來編寫。要結構清晰,重點函數的重點變數,重點功能部分要加上清晰的程序注釋。
程序能夠運行,要有基本的容錯功能。盡量避免出現操作錯誤時出現死循環;
3 最後提供的主程序可以象一個應用系統一樣有主窗口,通過主菜單和分級菜單調用課程設計中要求完成的各個功能模塊,調用後可以返回到主菜單,繼續選擇其他功能進行其他功能的選擇。最好有窗口展示部分。
4 課程設計報告:(保存在word 文檔中,文件名要求 按照"姓名-學號-課程設計報告"起名,如文件名為"張三-001-課程設計報告".doc )按照課程設計的具體要求建立的功能模塊,每個模塊要求按照如下幾個內容認真完成;
其中包括:
a)需求分析:
在該部分中敘述,每個模塊的功能要求
b)概要設計
在此說明每個部分的演算法設計說明(可以是描述演算法的流程圖),每個程序中使用的存儲結構設計說明(如果指定存儲結構請寫出該存儲結構的定義。
c)詳細設計
各個演算法實現的源程序,對每個題目要有相應的源程序(可以是一組源程序,每個功能模塊採用不同的函數實現)
源程序要按照寫程序的規則來編寫。要結構清晰,重點函數的重點變數,重點功能部分要加上清晰的程序注釋。
d)調試分析
測試數據,測試輸出的結果,時間復雜度分析,和每個模塊設計和調試時存在問題的思考(問題是哪些?問題如何解決?),演算法的改進設想。
5. 課設總結: (保存在word 文檔中)總結可以包括 : 課程設計 過程的收獲、遇到問題、遇到問題解決問題過程的思考、程序調試能力的思考、對數據結構這門課程的思考、在課程設計過程中對C課程的認識等內容;
6.實驗報告的首頁請參考如下格式:
課程設計實驗
起止日期:20 -20 學年 學期
系別 班級 學號 姓名
實驗題目 □設計性 □綜合性
自我評價
教師評語 能夠實現實驗要求的功能 □全部 □部分演算法有新意 □有 □一般程序運行通過 □全部 □部分 演算法注釋說明 □完善 □僅有功能說明介面參數說明 □有 □無按期上交列印文檔資料及源程序 □所有 □部分綜合設計說明報告結構 □合理 □不合理用戶使用說明 □完整 □不全現場演示操作有準備 □有 □無問題解答流暢 □流暢 □不流暢獨立完成實驗 □能 □不能體現團隊合作精神。 □能夠 □不能
成績
這是張表格,過來時沒調整好,不過應該看得明白。我們是這樣寫的,你可以參考一下。
❺ 課程設計 學生成績管理程序
主要復看你系統作的靈和程度了,如制果系統作得比較死,直接幾張表就OK了。
學生基本信息表,班級成績表基本就可以了
學生基本信息表:序號,名稱,身份證號,學號,入學時間等基本信息,該表存儲所有學生信息。
班級成績表:以不同學院不同專業不同年級創建表,比如:信息學院計算機系一年級一張表:序號,學員ID,語文,高數,計算機基礎等。
這樣一個學生從一到四年級的所有學習成績都能檢查到,但是這裡面有很多問題比如:1.學生畢業以後信息處理問題,如果學生畢業以後信息一直存儲則學生基本信息表將越來越大,可能會影響後期的查詢效率,那麼是否存在分表的問題。
2.學生中途轉專業,留學,留級等特殊信息是否需要記錄。
3.課程改變等問題。等等,會有很多額外的問題,如果做一個成績管理系統可以很簡單也可以很復雜,主要看我們要作到什麼程度,多考慮一些以後變化的情況對整個系統今後的維護非常重要,當然如果要完成你說的上面情況,這幾張表已經可以滿足了。
至於增加、刪除、修改,查詢和統計不及格的情況是你業務層應該作的事情。
❻ 印刷工程專業的課程設置
主幹學科:印刷工程、計算機科學與技術、信息與通信工程、材料科學與工程、機械工程。
核心知識領域:顏色科學與技術、信息獲取與輸出技術、印前處理原理與技術、印刷原理與工藝、信息記錄材料與技術、顯示材料與技術、印刷材料與適性、計算機圖形學、數字圖像處理、數字內容管理、頁面描述語言、計算機集成印刷系統、印刷設備、信息與信息編碼、通信與信息系統等。
核心課程:印刷概論、色彩學、色彩管理原理與應用、信息獲取與輸出技術、印前處理原理與技術、印刷原理與工藝、材料科學基礎、信息記錄材料與技術、顯示材料與技術、印刷材料與適性、數字圖像處理、計算機圖形學、數字內容管理、頁面描述語言、印刷設備、計算機集成印刷系統、信息與信息編碼、通信與信息系統。主要實踐性教學環節:實驗課程、課程設計、專業實習、畢業設計;以及項目研究、學科競賽、科技講座和社會實踐等八個環節。其中,專業實習包括認知實習、綜合實習和生產實習。
❼ 課程設計 汽車零部件查詢系統設計
這個太難了吧
如今市場上各個4S店都有自店的查詢系統,可以去學習學習
❽ C++課程設計 學校教職工信息表
學校教職工信息表設計網上可以搜索一下,稍微修改一下就可以了,關鍵論文要寫好,不能抄,內容要新,有自己的觀點,我寫過兩篇能給與你參考的。