資料庫學生管理
A. 如何製作一個資料庫學生管理系統
首先,進行系統需求分析!
學生管理系統,顧名思義,就是用來管理的,具體管理什麼呢?選課管理、成績管理、信息管理等等!
然後,進行概念設計,主要是畫E-R圖模型。
E-R圖模型是為了展現系統中出現的各個實體相互之間的聯系的。此外,實體的各個屬性也要寫得很明確!總的來說,概念設計就是把需求分析階段得出的成果用一個很簡潔明了的圖來表示!讓用戶一看就能明白該系統都有什麼,是做什麼用的!
其次呢,進行邏輯設計。
簡單的說就是把實體和聯系都轉化為關系模式,即與關系表要一一對應~
最後呢。。。。當然就實地製作啦·`~Over~
B. 如何製作一個資料庫學生管理系統
還真不想再寫代碼了啊。。。。。
直接跟你說下思路吧。。。。
首先創建一個結構體,如——
struct student
{
char num[10]; //學號
char name[20]; //姓名
char sex[4]; //性別
int age; //年齡
int flag; //一個標示符(下面會說用法)
};
然後就定義一個student類型的數組stu[max],在前面#define max 1000000,你也可以把max定義得小一點,這是用來表示最大能容納多少個學生信息。。。。
說到flag的用處,我不清楚你了不了解,還是先跟你說下吧。。。。
先考一下你,知道怎樣把一個數組裡面的某一個元素清空嗎?清空就表示能在那個位置再次賦值,沒清空的位置就不能重復賦值。把那個元素設為a[x],可能你會想著把a[x]=0不就得啦,那好,如果用這種方法,那麼如果你想尋找數組a中可以再次賦值的元素,然後進行賦值,你是不是要通過一個判別式來對數組a的每一個元素進行判斷,看看它是否能被再賦值,對吧,那這個判別式肯定就是判斷a中的數值是否為零了。但是你想一下,如果一開始a中某個元素的值就是等於0,並不表示清空狀態,那你這樣的判別式能成立嗎,所以我們要用到一個標示符flag。。。。
當flag=1時,表示該數組的元素已存在,當flag=0時,表示該數組的元素是無效的,這樣的話就不需要對數組中的每個元素進行什麼清空操作了,就像上面的數組stu,這么多元素,你怎麼清空。。。。
然後有一個最重要的是怎樣存儲數據,因為沒用到資料庫,所以就用txt文件來存儲吧,給你一個相關的代碼——
int load_student() //把已存在的儲存數據的txt文件打開
{
FILE *fp;
if((fp=fopen("student.txt","rb"))==NULL) //判斷文件是否存在
{
printf("不能打開此文件.\n");
exit(0);
}
for(int i=0;i<SIZE;i++) //存在的話就打開它
{
fread(&stu[i],sizeof(struct student),1,fp);
}
fclose(fp);
return 0;
}
int save_student() //把數據存放進txt文件中
{
FILE *fp;
if((fp=fopen("student.txt","wb"))==NULL)
{
printf("不能打開此文件.\n");
exit(0);
}
for(int i=0;i<SIZE;i++)
{
fwrite(&stu[i],sizeof(struct student),1,fp);
}
fclose(fp);
return 0;
}
這是一個比較基本的代碼,你可以靈活的修改一下,實現讀寫過程的代碼也就是這樣了。。。。
然後是功能的實現,這方面就得看你的要求了,不過我建議你把每個界面做成一個函數,實現模塊化,如——
int shouye() //首頁
{
system("cls"); //清屏
int num1;
printf("**********************************\n");
printf(" 學生信息管理系統 \n");
printf("**********************************\n");
printf("\n\n");
printf("1、更改學生信息\n\n");
printf("2、查看學生信息\n\n");
printf("3、退出系統\n\n");
scanf("%d",&num1); //輸入操作
if(num1==1)
update(); //進入學生信息更改模塊
else if(num1==2)
check(); //進入學生信息查看模塊
else
exit(0); //退出系統
return 0;
}
在給多你一個界面函數的代碼吧——
int update()
{
system("cls");
int num2;
printf("**********************************\n");
printf(" 更改成績 \n");
printf("**********************************\n");
printf("\n\n");
printf("1、增加學生信息\n\n");
printf("2、修改學生信息\n\n");
printf("3、返回上一層\n\n");
scanf("%d",&num2);
if(num2==1)
add();
else if(num2==2)
correct();
else
shouye();
return 0;
}
大概就是這種模式,我就不多弄了,你自己開拓一下吧,可能你會問我主函數怎麼實現,大概就是這樣吧——
int main()
{
load_student(); //讀取txt裡面的內容
shouye();
return 0;
}
這里要說明一下,我給你這代碼還不怎麼完善的,只是簡單跟你說下思路罷了,如果你招著復制的話,要記住,在你第一次運行之前,要先在你這工程目錄低下創建一個名字為student的txt文件,不然會顯示錯誤,因為load_student()那裡就會判斷是否存在student.txt文件,沒的話就會顯示錯誤的。。。。
我建議你簡單地畫下流程圖,這樣可以讓你的編程思路更清晰,如果還有什麼不清楚的地方可以Q我,410430209。。。。
希望這些對你有所幫助。。。。
C. 如何用資料庫建立學生成績管理系統
首先,資料庫只是存放數據的,像你說的學生成績管理系統分四大模塊,還有具體功能實現,這些跟資料庫沒關系,或者說這不是資料庫能乾的事,你需要相應的程序頁面來實現,資料庫是存儲數據和配合程序操作數據的。
D. 如何建立「學生管理」資料庫,並在「學生管理」資料庫中分別建立「學生基本情況表」求高手教一下
USE [master]
GO
CREATE DATABASE StudentManage ON PRIMARY
( NAME = N'StudentManage', FILENAME = N'D:\StudentManage.mdf' , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
LOG ON
( NAME = N'StudentManage_log', FILENAME = N'D:\StudentManage_log.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
GO
/*學生管理資料庫(StudentManage)創建完成,下面創建學生表(Student):*/
USE [Jinlong]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Student](
[學號C9] [char](7) NOT NULL,
[姓名C10] [char](6) NULL,
[性別C2] [char](2) NULL,
CONSTRAINT [PK_Student] PRIMARY KEY CLUSTERED
(
[SID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
E. 請問資料庫設學生管理系統需要哪些表
看你要管理哪些方面了,
一般會有學生表,成績表,課程表,許可權表,班級表等
F. 如何用sql建立一個學生信息管理系統資料庫
首先在SQL中利用企業管理器或向導建立一個資料庫,命名為學生管理系統,啟動SQL Sever服務,運行企業管理器,單擊要創建資料庫的伺服器左邊的加號圖標,展開樹形目錄,在「資料庫」節點上右擊滑鼠,在彈出的快捷菜單中選則「新建資料庫」命令,然後按照提示一步步建立資料庫,不再詳細敘述。假設學生管理系統下有三個表,分別為學生表、課程表、修課表,表的結構分別如下:學生表(student) (學號(sno) 普通編碼定長字元類型,長度7,主碼,姓名(sname) 普通編碼定長字元類型,長度8,非空,性別(ssex) 統一編碼定長字元類型,長度1,年齡(sage) 微整型,所在系(sdept) 統一編碼可變長字元類型,長度20)課程表(course) (課程號(cno) 普通編碼定長字元類型,長度6,主碼,課程名(cname) 統一編碼定長字元類型,長度10,非空,學分(credit) 小整型,學期(semester) 小整型)修課表(sc)(學號(sno) 普通編碼定長字元類型,長度7,主碼,外碼課程號(cno) 普通編碼定長字元類型,長度6,主碼,外碼成績(grade) 小整型,修課類別(type)普通編碼定長字元類型,長度4)則創建表的語句分別為:create table Student(Sno char(7) primary key,Sname char(8) not null,Ssex nchar(1),Sage tinyint,Sdept nvarchar(20))create table Course(Cno char(6) primary key,Cname nchar(10) not null,Credit smallint,Semester smallint)create table SC(Sno char(7),Cno char(6),Grade smallint,Type char(4),primary key(Sno,Cno),Foreign key(Sno) References Student (Sno),Foreign key(Cno) References Course (Cno))各表的結構大體如此,如有變化可自行修改。 以上資料庫和表就基本建立好了,然後就可以通過數據導入或SQL語句等向資料庫中添加學生的各項具體數據了。
SQL語言,是結構化查詢語言(Structured Query Language)的簡稱。SQL語言是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統;同時也是資料庫腳本文件的擴展名。
G. 在資料庫 學生管理系統 中使用SQL語句編寫:查看所有女學生的學號,姓名,
語句如下:
SELECT學號,姓名,性別,出生日期
FROM學生管理系統資料庫
WHERE性別='女'
ORDERBY學號asc
H. 實驗報告題目:使用SQL語句創建一個名為"學生管理"的學生資料庫
以SQLServer為例
create database 學生管理
on primary -- 默認就是屬於primary文件組的,可省略
(
/*--數據文件的具體描述--*/
name='studb_data', -- 主數據文件的邏輯名稱
filename='D:\studb_data.mdf', -- 主數據文件的物理名稱
size=5mb, --主數據文件的初始大小
maxsize=100mb, -- 主數據文件增長的最大值
filegrowth=15%--主數據文件的增長率
)
log on
(
/*--日誌文件的具體描述,各參數含義同上--*/
name='studb_log',
filename='D:\studb_log.ldf',
size=2mb,
filegrowth=1mb
)