資源簡介
使用下面的數(shù)據(jù),用C++設計一個簡單的學籍管理系統(tǒng),實現(xiàn)出最基本的功能。
學生基本信息文件(A.TXT)及其內容:A.TXT文件不需要編程錄入數(shù)據(jù),可用文本編輯工具直接生成:
學號 姓名 性別 宿舍號碼 電話號碼
01 張成成 男 501 87732111
02 李成華 女 101 87723112
03 王成鳳 女 101 87723112
04 張明明 男 502 87734333
05 陳東 男 501 87732111
06 李果 男 502 87734333
07 張園園 女 102 87756122
… …. .. … ………..
學生成績基本信息文件(B.TXT)及其內容:
學號 課程編號 課程名稱 學分 平時成績 實驗成績 卷面成績 綜合成績 實得學分
01 A01 大學物理 3 66 78 82
02 B03 高等數(shù)學 4 78 -1 90
01 B03 高等數(shù)學 4 45 -1 88
02 C01 VF 3 65 76 66
… …. ………. .. .. …
(一) 功能要求及說明:
(1) 數(shù)據(jù)錄入功能: 對B.TXT進行數(shù)據(jù)錄入,只錄入每個學生的學號、課程編號、課程名稱、學分、平時成績、實驗成績、卷面成績共7個數(shù)據(jù). 綜合成績、學分由程序根據(jù)條件自動運算。
綜合成績的計算:如果本課程的實驗成績?yōu)?1,則表示無實驗,綜合成績=平時成績*30%+卷面成績*70%; 如果實驗成績不為-1,表示本課程有實驗,綜合成績=平時成績*15%+實驗成績*.15%+卷面成績*70% .
實得學分的計算: 采用等級學分制.
綜合成績在90-100之間 ,應得學分=學分*100%
綜合成績在80-90之間 ,應得學分=學分*80%
綜合成績在70-80之間 ,應得學分=學分*75%
綜合成績在60-70之間 ,應得學分=學分*60%
綜合成績在60以下 ,應得學分=學分*0%
(2)查詢功能:分為學生基本情況查詢和成績查詢兩種
A:學生基本情況查詢:
A1----輸入一個學號或姓名(可實現(xiàn)選擇),查出此生的基本信息并顯示輸出。
A2---輸入一個宿舍號碼,可查詢出本室所有的學生的基本信息并顯示輸出。
B:成績查詢:
B1:輸入一個學號時,查詢出此生的所有課程情況,格式如下:
學 號:xx 姓 名:xxxxx
課程編號:xxx 課程名稱:xxxxx 綜合成績:xxxx 實得學分: xx
課程編號:xxx 課程名稱:xxxxx 綜合成績:xxxx 實得學分: xx
課程編號:xxx 課程名稱:xxxxx 綜合成績:xxxx 實得學分: xx
… … … … ……… … …
共修:xx科,實得總學分為: xxx
(3)刪除功能:當在A.TXT中刪除一個學生時,自動地在B.TXT中刪除此人所有信息。
(4 ) 排序功能:能實現(xiàn)選擇按綜合成績或實得學分升序或降序排序并顯示數(shù)據(jù)。
代碼片段和文件信息
#include“iostream“
#include“fstream“
#include“iomanip“
#define?STUDENT_H
#include
using?namespace?std;
struct?student1
{
string?id;??????//學號
string?name;?????//姓名
string?sex;??????//性別
string?susheid;?//宿舍號碼
string?phone;?//電話號碼
};
struct?student2
{
string?number;//定義學號?
char?cnum[5];//課程號
char?cname[15];//課程名
int?xuefen;//學分
int?pingshif;//平時成績
int?shiyanf;//實驗成績
int?juanmianf;//卷面成績
double?totalxuefen;//綜合分
double?score;//總學分
};
student1?s1[100];
student2?s2[100];
class?student
{
public:?
int?length1?=?0;
int?length2?=?0;
void?menue()//菜單
{
cout?<“?????????????*******************學生管理系統(tǒng)*************************??????“?< cout?<“?????????????*??????????????????????????????????????????????????????*“?< cout?<“?????????????*??????????????1、?查詢文檔A信息???????????????????????*“?< cout?<“?????????????*??????????????2、?添加學生成績????????????????????????*?“?< cout?<“?????????????*??????????????3、?查詢學生信息????????????????????????*“?< cout?<“?????????????*??????????????4、?查詢學生成績????????????????????????*“?< cout?<“?????????????*??????????????5、?刪除學生信息????????????????????????*“?< cout?<“?????????????*??????????????6、?學生成績排序????????????????????????*“?< cout?<“?????????????*??????????????7、?退出系統(tǒng)????????????????????????????*“?< cout?<“?????????????*??????????????????????????????????????????????????????*“?< cout?<“?????????????********************************************************???????“?< }
void?open()//讀取A
{
char?a[100];
ifstream?ifile;
ifile.open(“C:\\A.txt“);
int?i?=?0;
while?(ifile.get(a[i])){
if?(a[i]?==?‘\n‘)break;
i++;
}
a[i]?=?‘\0‘;
cout?< while?(1){
ifile?>>?s1[length1].id?>>?s1[length1].name?>>?s1[length1].sex?>>?s1[length1].susheid?>>?s1[length1].phone;
if?(ifile.eof()?!=?0)break;
cout?< length1++;
}
ifile.close();
cout?<“A中共有的學生數(shù)為:“?< }
void?grade()//錄入B
{
ofstream?outf;
outf.open(“C:\\B.txt“);
cout?<“*******************************錄入學生成績*******************************“?< outf?< < for?(int?i?=?0;?i?100;?i++)
{
cout?<“請輸入第“?< cout?<“請輸入學號:?“;
cin?>>?s2[i].number;
cout?< cout?<“請輸入課程號:?“;
cin?>>?s2[i].cnum;
cout?< cout?<“請輸入課程名:?“;
cin?>>?s2[i].cname;
cout?< cout?<“請輸入學分:?“;
cin?>>?s2[i].xuefen;
cout?< cout?<“請輸入平時成績:?“;
cin?>>?s2[i].pingshif;
- 上一篇:SIFT檢測特征點及特征點描述
- 下一篇:lbm模擬液滴從壁面滑落
評論
共有 條評論