課堂源碼
⑴ c語言課程設計—教師工作量管理系統源代碼
#include<stdio.h> //標准輸入、輸出頭文件
#include<string.h> //包含字元串函數處理頭文件
#include<stdlib.h> //包含動態存儲與釋放函數頭文件
#include<iostream> // system
#define TEALEN sizeof(teanode) //教師信息結構體長度
#define LEN sizeof(Lnode) //鏈表罩和旁節點長度
#define MAX 10
int SAME[MAX];
typedef struct teanode
{
char name[10]; //教師姓名
int lesson; //授課工作量
int exper; //實驗工作量
int cdesign; //課程設計工作量
int gdesign; //物橡畢業設計工作量
int total; //總工作量
int pos; //排序位置
}teanode,*linknode;//教師信息結構體
typedef struct Lnode
{
char no[20]; //教師編號
linknode info; //節點信息詳細指針指向教師信息結構體
struct Lnode *prior,*next; //雙向鏈表指針域
}Lnode,*linklist;//鏈表節點
void newLnode();
void initlist();
void prin();
void initlist(linklist *T)
{
*T=(linklist)malloc(LEN);
(*T)->info=(linknode)malloc(TEALEN);//為頭結點申請空間
(*T)->prior=*T;//設置頭結點的前驅指針
(*T)->next=*T;//設置頭結點的後繼指針
}//初始化雙向循環鏈表
void newLnode(linklist*p)
{
*p=(linklist)malloc(LEN);//新節點
if(!p)
{
printf("申請節點失敗");
exit(0);
}
(*p)->info=(linknode)malloc(TEALEN);
}
void prin(linklist * L)
{
if(L==NULL)
{
printf("沒有可以顯示的信息棚宴\n");
return;
}
linklist p=(*L)->next;
// printf("********************************************************************************\n");
printf("教師編號 教師姓名 工作量排名 工作總量\n\n");
while (p!=*L)
{
printf("%7s%9s%10d%10d\n",p->no,p->info->name,p->info->pos,p->info->total);
p=p->next;
}
}
void main()
{
linklist input(linklist L);
linklist sort(linklist L);
int j;//用來判斷是否結束
linklist L;
initlist(&L);
do{
system("cls");//清屏函數
printf(" ★--- 您好,歡迎進入教師工作量統計系統! ---★\n");
printf("================================================================================\n");
printf( " -------- ☆ 1.輸入教師工作量信息 ☆-------- \n\n"
" -------- ☆ 2.進行教師工作量排序 ☆-------- \n\n"
" -------- ☆ 3.顯示教師工作量情況 ☆-------- \n\n"
" -------- ☆ 0.退出 ☆-------- \n\n");
printf("================================================================================\n");
printf("請在0-3中選擇以回車鍵結束:\n\n");
scanf("%d",&j);
switch(j) {
case 1:
L=input(L);
prin(&L);
printf("錄入結束\n");
system("pause");
break;
case 2:
L=sort(L);
printf("排序成功\n");
system("pause");
break;
case 3:
prin(&L);
system("pause");
break;
case 0:;
break;
}
}while(j!=0);
printf("謝謝使用,再見!\n");
}//主函數結束
linklist input(linklist L)
{
linklist workload(linklist p);
linklist adworkload(linklist p);
linklist searinsert(linklist L,linklist p);
linklist sort(linklist L);
int flag=0;
char no[10];
linklist p;
p=L->next;
for(;;)
{
if(flag==1)
break;
printf("請輸入教師編號輸入@結束:\n\n");
scanf("%s",no);
if(no[0]=='@')
{
flag=1;
break;
}
while (p!=L)//當鏈表不空時
{
if (strcmp(p->no,no)==0)
{
printf("該教師編號已存在,輸入需要增加的工作量\n\n");
p->prior->next=p->next;
p->next->prior=p->prior;//刪除P,
p=adworkload(p);//修改P中的詳細信息info指針域的內容
L=searinsert(L,p);//重新查找P的位置插入鏈表L中
return L;
}
p=p->next;
}//跳出循環則該教師編號第一次輸入
newLnode(&p);
strcpy(p->no,no);
printf("請輸入教師姓名:\n");
scanf("%s",p->info->name);
p=workload(p);
L=searinsert(L,p);
}
return L;
}
linklist adworkload(linklist p)
{
int a;
printf("請輸入增加的授課工作量:\n");
scanf("%d",&a);
p->info->lesson+=a;
printf("請輸入增加的實驗工作量:\n");
scanf("%d",&a);
p->info->exper+=a;
printf("請輸入增加的課程設計工作量:\n");
scanf("%d",&a);
p->info->cdesign+=a;
printf("請輸入增加的畢業設計工作量:\n");
scanf("%d",&a);
p->info->gdesign+=a;
//p->info->pos=0;
p->info->total=p->info->lesson+p->info->exper+p->info->cdesign+p->info->gdesign;//求總工作量
return p;
}
linklist workload(linklist p)
{
printf("請輸入該教師的授課工作量:\n");
scanf("%d",&(p->info->lesson));
printf("請輸入該教師的實驗工作量:\n");
scanf("%d",&(p->info->exper));
printf("請輸入該教師的課程設計工作量:\n");
scanf("%d",&(p->info->cdesign));
printf("請輸入該教師的畢業設計工作量:\n");
scanf("%d",&(p->info->gdesign));
p->info->pos=0;
p->info->total=p->info->lesson+p->info->exper+p->info->cdesign+p->info->gdesign;//求總工作量
return p;
}
linklist searinsert(linklist L,linklist p)
{//將P放置L中合適的位置
linklist tra;//遍歷指針
linklist x;//P插入位置的前一個節點指針
tra=L->next;//指向第一個節點
if ((L->next==L)||(p->info->total>tra->info->total)) //第一次插入或者大於表頭的情況
{
x=L;//插入表頭
}
else if (p->info->total<L->prior->info->total) //小於表尾的情況
{
x=L->prior;//插入表尾
}
else
{ while (p->info->total<tra->info->total)
tra=tra->next;
x=tra->prior;//正常查找情況
}
//將P接到X後面
p->next=x->next;
p->prior=x;
x->next=p;
p->next->prior=p;
return L;
}
linklist sort(linklist L)
{
linklist sortfisrtlast(linklist L,linklist first,linklist last,int n);
int i;
for(i=0;i<MAX;i++)
SAME[i]=0;//初始化數組SAME[MAX]
linklist p,first,last;
int x,n=1,k;
p=L->next;
while (p!=L)
{
x=1;
while ((p->next->info->total!=p->info->total)&&p!=L)
{
p->info->pos=n;
p=p->next;
n++;
}
if (p==L)
return L;
else
while ((p->next->info->total==p->info->total)&&p!=L)
{
k=n;
if (x==1)
{
//k=n;
first=p;
}
p->info->pos=k;
x++;
p=p->next;
p->info->pos=k;
//保存X
SAME[k]=x;
}
n+=x-1;
if (p==L)
return L;
else
{
last=p;
p=last->next;
L=sortfisrtlast(L,first,last,k);//調用fisrt last函數
}
}
}
linklist sortfisrtlast(linklist L,linklist first,linklist last,int n)
{
if (first==last)
return L;
linklist head,posa,posb,p,t;
linklist tra;//遍歷指針
linklist x;//P插入位置的前一個節點指針
posa=first->prior;//接入位置a
posb=last->next;//接入位置b
posa->next=last->next;
last->next->prior=posa;
last->next=NULL;
first->prior=NULL;//刪除這段
initlist(&head);
p=first;
while (p!=NULL)
{
tra=head->next;
if ((head->next==head)||strcmp(p->no,tra->no)<0)//第一次插入或者小於當前節點
x=head;
else if (strcmp(p->no,head->prior->no)>0)
x=head->prior;
else
{
while(strcmp(p->no,tra->no)>0)
tra=tra->next;
x=tra->prior;
}
t=p;//將P接到X後
p=p->next;
t->next=x->next;
t->prior=x;
x->next=t;
t->next->prior=t;
}
printf("********************************************************************************\n");
// printf("================================================================================\n");
printf("工作量名次相同的教師名單:(按編號排序)\n\n");
printf("名次為%d教師共有%d名\n\n",n,SAME[n]);
prin(&head);
first=head->next;
last=head->prior;
posa->next=first;
first->prior=posa;
posb->prior=last;
last->next=posb;
return L;
}
⑵ 怎樣導出購買的千聊課
需要先 結 束你 這 個 課 程才能 導出語音 , 結束 的路 徑為 在 直 播頁面點 擊操毀肢作 > > >結 束直蔽返 播, 然後再 點擊一次操作 > > >導出語音就 可以了 值得一 提的是 ,導出語 音 需 要用電腦 網 頁版 才宏余飢 能 操 作 。
⑶ 授課模式:黑馬採取的是全程看直播上課,源碼全程面授
這個兩邊都是有的,但是還是要體驗一下,有的班主任管理的很鬆散的,黑馬的班主任一個人要帶兩三個班,一個班的班級人數有80人以上,有時候管不過來,源碼標配的是一個班主任一個班,這樣班級學習氛圍更好一些吧,反正沒有自製力的還是要報班學習,不要自學
1.授課模式:黑馬採取的是全程看直播上課,源碼全程面授;
2.班級人數:黑馬採取的是大班教學每個班級人數達數百人,源碼採取小班制最多人數不超過60人;
3.源碼每個班級都配備有3位導師
4.就業率:源碼的就業率達到百分之99,黑馬的就業率相對比較低;
5.源碼課程緊貼市場,實時調整市場需要的技術,能保證學員學完之後都能找到一份高薪的工作,黑馬課程
⑷ 新閣教育 喜課堂 上位機課程 花了4000元 但源碼加密了怎麼辦
騰訊課堂花4000元買的課,通訊源碼卻是加密碼的,
那你的毀如錢交給誰了?那就應寬余讓該問他要密碼啊。
如果是他不肯給你,那就是騙慎局子啊,
那就應該趕緊報警,讓警察幫助你了。
⑸ 想要做一個直播系統,哪家的直播系統源碼好
【濟南教育APP開發設計前景】
一.教育直播APP開發設計發展前途淺談。
1、課堂教學參與性強:
孩子們的教學方式不盡相同,而通常傳統式的文化教育方法只適用一部分大學生,這都是為何大部分大學生客戶考試成績止步不前的緣故,而教育直播APP的課堂教學參與性強,老師教學特點不盡相同,客戶徹底能夠依照自身的學習培訓要求挑選適合的老師。而一部分老師的教學課堂設計風格幽默搞笑,讓小孩可以在趣味的氣氛中充足學知識,促使小孩針對學習培訓造成必須的激情。
2、宣傳策劃實際效果優良:
近些年教育直播類APP也剛開始導入一部分新科技原素,比如,VR文化教育等作用特性,吸引住客戶免費下載APP。而這正巧表明了文化教育網路直播平台搞好了宣傳策劃營銷推廣工作中,而且有關APP還感受了優良的宣傳策劃營銷推廣實際效果。
二.教育直播APP開發設計有哪些方式種類?
1、逗或1對1直播間文化教育:
教育直播APP大量是協助小孩提升學業成績,而一對一教育直播間方法能讓老師充足和大學生客戶開展交流學習,而且老師也可以立即改正大學生不正確的教學方式及其協助大學生創建恰當的學習培訓意識,對於小孩的學習培訓特性1對1開展指導。
2、在線課程直播間文化教育:
這類教育直播方法大量的是應對眾多大學生,客戶根據選購課程培訓,隨後在特性時間進到文化教育課堂直播就能收看網上課程,大夥兒一塊兒課程學習,而且老師還會在課後練習創建1個微信群,讓相同課程內容的客戶之中學習交流工作經驗,共同奮斗。
教育直播APP開發設計大量的是以便協助小孩塑造學習培訓喜好,終究學習培訓是長期的事兒,要想在朝夕之間獲得挺大的發展基礎不大可能,因此長期性應用教育直播APP也許能讓客戶受益匪淺。
【安全教育APP開發的重要性】
一、為什麼要開發安全教育app?
1、增加自救技巧:俗話說:不怕一萬就怕萬一。當安全事故發生的時候,擁有自巧可能在第一時間扭轉局面,使自己處於一個更加有利的地步。
2、增強安全意識:通過安全教育app可以通過線上宣傳的方式,快速提高安全教育的傳播速度與傳播范圍,讓更多的人可以了解與學習到更多的安全知識,從而培養自身的安全意識。
3、增加防範意識:縱觀當下發生的安全事故,十有八九都是人為因素引起的,而這些人為因素就是因為缺少基本的安全防範意識。所以說通過app增加人們的安全防範意識很有必要。
了解完安全教育app被開發的原因之後,我們再來看看安全教育app都有哪些功能。
二、安全教育app有哪些功能?
1、安全宣傳:通過app可以快速傳播安全知識,讓安全宣傳進入一個全新的階段。
2、教育視頻:通過以幽默有趣的視頻形式,可以讓用戶以更加容易接受的方式學習豐富安全教育知識的內容。
3、安全隱患:為了保證人們日常生活的安全,app上會有相應的安全隱患介紹,讓每一位用戶都可以注意到這些隱患從而更好的進行避免。
4、安全通知:通過安全教育app,可以提前對一些安全情況進行通知,例如:雷雨、台風、地震、洪水、泥石流等。
【教育app開發的優勢】
01塑造企業專業的形象,節省企業成本,提高企業競爭力
企業可以通過教育APP展示自身雄厚的師資力量、課程和品牌等,從而節省大量宣傳費用,同時也可以減少教育設備投入,大大節約成本。
02精準定位潛在客戶,吸引不同類型客戶。
線教育app開發能通過虛擬現實、大數據等技術,在線捕獲商機,自動搜索潛在學員,輕松定製全套教學流程,根據地域、課程、學員自身情況滿足任何形式的學習要求。
二、教育app開發的前景
01學生需求
首先,在線教育軟體的可視性、趣味性以及靈活多變的學習方式,無論是等候間歇,還是片斷時間,用戶可以最大化利用碎片時間來學習。
其次,教育app在學習中加入許多分享互動環節,學員可以與老師深度互動,有針對性解決問題,還能根據自身情況定製個性化學習方案。
因此,在線學習成為新一代學生學習途徑的首選。
02教師需求
傳統的教學模式中,紙質作業在布置、收集、批改的過程中存在著低效的問題;如果學生過多,水平參差不齊更是導致教學難度增加。而教育app卻可以輕易解決這些問題,而且還可以通過數據統計,精準地了解到學員學習的成效,及時反饋學生情況,教師然後根據反饋的各項情況定製更有針對性的教育方案。這樣大大地提高了老師的工作效率和職業幸福感。
03家長需求
現代社會,家長工作繁忙,往往騰不簡察出時間和精力來了解自己孩子攔指茄的學習。如何孩子通過教育app學習,家長不僅能通過app隨時查看孩子的學習情況,了解孩子的學習興趣,還可以在其中瀏覽各種與教育、學習相關的知識,提高自身水平,更好地教導孩子。
⑹ 微信在線考試小程序源碼是什麼
IT實戰課堂
關注
微信小程序項目源碼在線考試系統+後台含論文+PPT+源碼 原創
2022-08-24 10:20:45
IT實戰課堂
碼齡8年
關注
💖💖更多項目資源,最下方聯系我們✨✨✨✨✨✨
計算機畢業設計微信小程序畢設項目之小程序在線考試+後台管理系統_嗶哩嗶哩_bilibili
計算機畢業設計微信小程序畢設項目之小程序在線考試+後台管理系統共計2條視頻,包括:E39 366-微信小程序在線考試+後台管理系統、項目資源獲取等,UP主更多精彩視頻,請關注UP賬號。
https://www.bilibili.com/video/BV1gr4y1v7Dp
4.1系統架構設計
微信在線考試系統的系統項目的概述設計分析,主要內容有學習平台的具體分析,進行資料庫的是設計,數據採用mysql資料庫,並且對於系統的設計採用比較人性化的操作設計,對於系統出現的錯誤信息可以及時做出處理及反饋。
基於微信在線考試系統的設計基於現有的手機,可以實現管理員;首頁、個人中心、學生管理、教師管理、學校公告管理、個人目標管理、在線學習管理、提問管理、疑問解答管理、試卷管理、試題管理、系統管理、考試管理,教師;首頁、個人中心、在線學習管理、提問管理、疑問解答管理、試卷管理、試題管理、考試管理等功能。方便學生客戶端對首頁、教師、學校公告、在線學習、我的等詳細的了解及統計分析。根據系統功能需求建立的模塊關系圖如下圖:
4.2開發流程設計
微信在線考試系統的開發對管理模塊和系統使用的資料庫進行分析,編寫代開發,規劃和操作是構建信息管理應用程序的必要三步曲,它決定了系統是否能夠真正實現預設功能以及是否可以在成功設計後實施。在開發過程中,每個階段必須嚴格按照線性順序進行開發,並且在相應階段生成的每個工作都可以通過技術進行驗證和檢查。確保一個階段完成後是正確的,不會造成下一階段拖拽現象,使系統完成設計功能後得到保證。
從微信在線考試系統的成功開發經驗來看,上述方法效果最為明顯,最大程度地降低了系統開發的復雜性。如圖4-2所示。
⑺ java課程設計源代碼(急!!!!)
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.SwingConstants;
import javax.swing.border.LineBorder;
public class game21 extends JFrame {
private JLabel label_2;
private int number;
private int sum;
final JLabel label = new JLabel();
final JLabel label_1 = new JLabel();
public static void main(String[] args) {
new game21();
}
public game21() {
super("21點?!");
getContentPane().setLayout(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JButton button = new JButton();
button.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent arg0) {
onClick();
}
});
button.setText("出牌");
button.setBounds(170, 350, 106, 28);
getContentPane().add(button);
label.setBorder(new LineBorder(Color.black, 1, false));
label.setHorizontalAlignment(SwingConstants.CENTER);
label.setFont(new Font("", Font.BOLD, 26));
label.setText("背面");
label.setBounds(158, 81, 137, 153);
getContentPane().add(label);
label_1.setText("你已經擁有的牌:");
label_1.setBounds(109, 22, 270, 45);
getContentPane().add(label_1);
this.setBounds(200, 300, 501, 528);
this.setVisible(true);
getContentPane().add(getLabel_2());
}
public int randNumber() {
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
return (int) (Math.random() * 10 + 1);
}
public void onClick() {
number = this.randNumber();
this.sum += number;
label.setText("" + number);
String strTemp = this.label_1.getText();
strTemp += "" + number + " ";
label_1.setText(strTemp);
String temp = "合計:" + sum;
label_2.setText(temp);
isWin();
}
public void isWin() {
if (sum > 21) {
JOptionPane.showMessageDialog(this, "你輸了");
clear();
return;
} else if (sum == 21) {
JOptionPane.showMessageDialog(this, "你贏了");
clear();
return;
} else {
int i = JOptionPane.showOptionDialog(this, "是否繼續?", "提示",
JOptionPane.OK_CANCEL_OPTION,
JOptionPane.INFORMATION_MESSAGE, null, null, null);
if (i == JOptionPane.OK_OPTION) {
onClick();
} else
return;
}
}
private void clear() {
label_2.setText("合計:");
sum = 0;
number = 0;
label_1.setText("你已經擁有的牌:");
}
/**
* @return
*/
protected JLabel getLabel_2() {
if (label_2 == null) {
label_2 = new JLabel();
label_2.setText("合計:");
label_2.setBounds(313, 35, 66, 18);
}
return label_2;
}
}
真好無聊中。。
⑻ 誰求楊中科老師教學視頻的源碼,或者沒有公開的視頻教學!
dfd
⑼ 達內是面授教學嗎源碼是不是也是面授教學。
達內是在線直播上課,源碼是面授教學,兄弟,IT路比較長,你想好學的話,一定要選個靠譜的面授地方。
⑽ c++課程設計源代碼
c++課程設計 學生管理系統源代碼
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
using namespace std;
typedef struct stu
{
char name[20];
long int number;
int snum;
char sex[20];
char add[30] ;
char time[20];
char tel[20];
struct stu *next;
}stu,*student;
int init(student &s);
void insert(student &s);
void print(student &s);
int delete(student &s);
void find (student &s);
void findname(student &s);
void findnum(student &s);
void modifay(student &s);
void putfile(student &s);
void getfile(student &s);
void main()
{
student s;
init(s);
cout<<"歡迎使用學生管理系統."<<endl;
cout<<" "<<endl;
cout<<endl;
while(1)
{
int i;
mainint:
cout<<"請選擇相關操作:"<<endl<<"1.建立學生資料文件."<<endl<<"2.瀏覽."<<endl<<"3.刪除."<<endl;
cout<<"4.查詢."<<endl<<"5.修改."<<endl<<"6.打開學生文件."<<endl<<"7.退出管理系統." <<endl<<"請選擇:";
cin>>i;
if(i<0||i>7)
{
cout<<"輸入了錯誤的數字,Again!"<<endl<<endl;
goto mainint;
}
switch(i)
{
case 1: insert(s);break;
case 2: print(s);
putfile(s);
break;
case 3: ldelete(s);break;
case 4: find(s);break;
case 5: modifay(s);
break;
case 6: getfile(s);break;
case 7: exit(0);
}
}
}
int init(student &s)
{
s=(student)malloc(sizeof(stu));
if (s)
{
s->next=NULL;
return 0;
}
else return -1;
}
void insert(student &s) //insert
{
cout<<endl;
student p,q;
p=(student)malloc(sizeof(stu));
cout<<"請輸入學生信息:"<<endl;
cout<<"姓名:";
cin>>p->name;
cout<<endl;
cout<<"學號:";
cin>>p->number;
cout<<endl;
cout<<"性別:";
cin>>p->sex;
cout<<endl;
cout<<"家庭住址:" ;
cin>>p->add;
cout<<endl;
cout<<"出生年月:" ;
cin>>p->time;
cout<<endl;
cout<<"宿舍號:";
cin>>p->snum;
cout<<endl;
cout<<"宿舍號碼:";
cin>>p->tel;
q=s;
while(!(q->next==NULL)&&(q->next->number<p->number))
q=q->next;
p->next=q->next;
q->next=p;
//if()p->next=NULL;
//free(p);
}
int ldelete(student &s) //delete
{
cout<<endl;
student p,a;
p=s ;
cout<<"請輸入刪除的學號:";
long int number;
cin>>number;
while(p)
{ if (p->number==number)
{
a->next=p->next;
free(p); return(0);}
else
{ a=p;
p=p->next;} }
cout<<"沒有找到你要刪除的選項!"<<endl<<endl;return(-1);
}
void print(student &s)
{
int a;
a=0;
student p;
p=s->next;
cout<<"姓名 "<<"學號 " <<"性別 "<<"家庭住址 "<<"出生年月 "<<"宿舍號"<<"宿舍號碼"<<endl;
while(p)
{
a++;
cout<<p->name<<" "<<p->number<<" "<<p->sex<<" "<<p->add<<" "<<p->time<<" "<<p->snum<<" "<<p->tel<<" "<<endl;
p=p->next;
}
cout<<endl;
if (a==0)
cout<<"還沒有學生信息!"<<endl<<endl ;
}
void find (student &s) //find
{
findl:
cout<<"請選擇查找方法:"<<endl<<"1.按姓名查找."<<endl<<"2.按學號查找."<<endl;
cout<<"請選擇:";
int k;
cin>>k;
if(k<0||k>3)
{
cout<<"輸了入錯誤數字,Again!"<<endl<<endl;
goto findl;
}
switch(k)
{
case 1: findname(s);break;
case 2: findnum(s);break;
}
}
void findname(student &s) //find by name
{
student p;
p=s->next;
cout<<"請輸入姓名:";
char name[20];
int j;
j=0;
cin>>name;
cout<<"你要查找的資料是:"<<endl;
cout<<"姓名 "<<"學號 " <<"性別 "<<"家庭住址 "<<"出生日期 "<<"宿舍號 "<<"宿舍號碼"<<endl;
while(p)
{
if (strcmp(p->name,name)==0)
{
cout<<p->name<<" "<<p->number<<" "<<p->sex<<" "<<p->add<<" "<<p->time<<" "<<p->snum<<" "<<p->tel<<" "<<endl;
j++;
}
p=p->next;
}
cout<<endl;
if(j==0)
cout<<"對不起,沒找到你要的信息!"<<endl<<endl ;
}
void findnum(student &s) //find by number
{
student p;
p=s->next;
cout<<"請輸入學號:";
long int number;
int j;
j=0;
cin>>number;
cout<<"你要查找的資料是:"<<endl;
cout<<"姓名 "<<"學號 "<<"性別 "<<"家庭住址 "<<"出生日期 "<<"宿舍號 "<<"宿舍電話"<<endl;
while(p)
{
if (p->number==number)
{
cout<<p->name<<" "<<p->number<<" "<<p->sex<<" "<<p->add<<" "<<p->time<<" "<<p->snum<<" "<<p->tel<<" "<<endl;
j++;
}
p=p->next;
}
cout<<endl;
if(j==0)
cout<<"對不起,沒找到你要的信息"<<endl<<endl ;
}
void modifay(student &s) //modifay
{
student q,p,l,m;
int j;
j=0;
q=s->next;
l=s;
m=s;
cout<<"請輸入要修改的學號:" ;
long int num;
cin>>num;
cout<<"姓名 "<<"學號 "<<"性別 "<<"家庭住址 "<<"入學時間 "<<"宿舍號 "<<"電話號碼"<<endl;
while(q)
{
if (q->number==num)
{
cout<<"你要修改的信息是:"<<endl;
cout<<q->name<<" "<<q->number<<" "<<q->sex<<" "<<q->add<<" "<<q->time<<" "<<q->snum<<" "<<q->tel<<" "<<endl;
j++;
p=(student)malloc(sizeof(stu));
cout<<"請輸入新的學生信息:"<<endl;
cout<<"姓名:";
cin>>p->name;
cout<<endl;
cout<<"學號:";
cin>>p->number;
cout<<endl;
cout<<"年齡:";
cin>>p->age;
cout<<endl;
cout<<"性別:";
cin>>p->sex;
cout<<endl;
cout<<"家庭住址:" ;
cin>>p->add;
cout<<endl;
cout<<"入學時間:" ;
cin>>p->time;
cout<<endl;
cout<<"電話號碼:";
cin>>p->tel;
l->next=q->next;
free(q);
goto tt;
}
else
{
l=q;
q=q->next;
}
}
cout<<endl;
if (j==0) cout<<"沒找到你要的數據!"<<endl<<endl ;
tt:
while(!(m->next==NULL)&&(m->next->number<p->number))
m=m->next;
p->next=m->next;
m->next=p;
}
void putfile(student &s)
{
student p;
p=s->next;
FILE *fp;
if((fp=fopen("information.txt","w"))==NULL)
{
cout<<"打不開文件"<<endl<<endl;
exit(0);
}
while(p)
{
if(fwrite(p,sizeof(struct stu),1,fp)!=1 )
{
cout<<"文件寫入錯誤"<<endl<<endl;
return;
}
p=p->next;
}
fclose(fp) ;
}
void getfile(student &s)
{
student p,q;
q=s;
FILE *fp1 ;
if((fp1=fopen("information.txt","r"))==NULL)
{
cout<<"打不開文件"<<endl;
exit(0);
}
cout<<"姓名 "<<"學號 "<<"性別 "<<"家庭住址 "<<"入學時間 "<<"宿舍號 "<<"電話號碼"<<endl;
p=(student)malloc(sizeof(stu));
while(fread(p,sizeof(struct stu),1,fp1)!=0)
{
cout<<p->name<<" "<<p->number<<" "<<p->sex<<" "<<p->add<<" "<<p->time<<" "<<p->age<<" "<<p->tel<<endl;
while(!(q->next==NULL)&&(q->next->number<p->number))
q=q->next;
p->next=q->next;
q->next=p;
p=(student)malloc(sizeof(stu));
}
fclose(fp1);
cout<<endl;
}