打字练习软件源代码

打字练习软件源代码
打字练习软件源代码

打字练习软件源代码

1

2

import javax.swing.*;

3

import java.awt.*;

4

5

6

/**

7

* This code was edited or generated using CloudGarden's Jigloo

8

* SWT/Swing GUI Builder, which is free for non-commercial

9

* use. If Jigloo is being used commercially (ie, by a corporation,

10

* company or business for any purpose whatever) then you

11

* should purchase a license for each developer using Jigloo.

12

* Please visit https://www.360docs.net/doc/b53500182.html, for details.

13

* Use of Jigloo implies acceptance of these licensing terms.

14

* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR

15

* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED

16

* LEGALL Y FOR ANY CORPORATE OR COMMERCIAL PURPOSE.

*/

17

18

public class Chat extends JInternalFrame{

19

MainFrame parent;

private JTextPane jtp;

20

21

private JTextField txtData;

22

23

public Chat(MainFrame parent){

24

this.parent=parent;

25

26

setLayer(4);

27

setBounds(1,326,0,0);

28

this.setPreferredSize(new java.awt.Dimension(140, 223));

29

((javax.swing.plaf.basic.BasicInternalFrameUI) this.getUI()).setNorthPane(null);

30

this.putClientProperty("JInternalFrame.isPalette", Boolean.TRUE);

31

GridBagLayout thisLayout = new GridBagLayout();

32

thisLayout.rowWeights = new double[] {0.1, 0.1, 0.0, 0.0};

thisLayout.rowHeights = new int[] {7, 7, 49, 56};

33

34

thisLayout.columnWeights = new double[] {0.0, 0.0, 0.0, 0.0};

35

thisLayout.columnWidths = new int[] {0, 45, 45, 48};

getContentPane().setLayout(thisLayout);

36

37

setVisible(true);

38

pack();

39

{

40

jtp = new JTextPane();

41

getContentPane().add(jtp, new GridBagConstraints(1, 0, 4, 5, 0.0, 0.0,

42

GridBagConstraints.NORTH, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));

43

jtp.setPreferredSize(new Dimension(140, 160));

44

jtp.setEditable(false);

45

}

46

{

47

txtData = new JTextField();

48

getContentPane().add(txtData, new GridBagConstraints(1, 7, 3, 1, 0.0, 0.0, 49

GridBagConstraints.SOUTH, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0));

txtData.setColumns(10);

50

51

}

52

}

53

}

54

55

import java.io.*;

56

public class DistillText {

57

public static String getData(String fileName,int segment){

58

int i=0;

59

if((fileName==null) || (fileName.length()==0))

60

return"";

61

File f;

62

FileReader in=null;

63

String s="";

64

try{

65

f=new File(fileName);

66

in=new FileReader(f);

67

char[] buffer=new char[312];

68

int len;

69

if(https://www.360docs.net/doc/b53500182.html,ng.equals("English")){

70

if(segment>=(int)(f.length()/312))

71

PublicData.textTag=0;

72

}

73

if(https://www.360docs.net/doc/b53500182.html,ng.equals("Chinese")){

74

if(segment>=(int)(f.length()/312-1)+1)

75

PublicData.textTag=0;

76

}

77

while((len=in.read(buffer))!=-1){

78

s=new String(buffer,0,len);

79

i++;

80

if(i==segment){

81

PublicData.textTag++;

82

break;

83

}

84

}

85

}

86

catch(IOException e){

87

System.out.println(e);

88

}

89

finally{

90

try{

91

if(in!=null)

92

in.close();

93

}

94

catch(IOException e){}

95

}

96

return s;

97

}

98

}

99

100

import java.awt.FlowLayout;

101

import java.awt.GridBagConstraints;

102

import java.awt.GridLayout;

103

import java.awt.Insets;

import java.awt.event.ActionEvent;

104

105

import java.awt.event.ActionListener;

106

import javax.swing.text.*;

107

import javax.swing.*;

108

import java.awt.*;

109

110

import javax.swing.event.*;

111

112

public class Editor extends JInternalFrame implements DocumentListener,Runnable{ 113

114

Runtime r=Runtime.getRuntime();

115

Hint parent;

116

117

Document doc;

118

StyledDocument styledDoc = new DefaultStyledDocument();

119

Thread th;

120

121

private int hour=0;//时

private int minute=0;//分

122

123

private int second=0;//秒

124

private JLabel lblTime;

125

126

private JTextField txtCount;

127

private JLabel lblError;

private JCheckBox on_off_Hint;

128

129

private JButton btnRight;

private JButton btnError;

130

131

private JCheckBox faze;

132

private JCheckBox grade;

private JCheckBox on_off_Assistant;

133

134

private JPanel pCollocate;

135

private JTextPane txtOriginal;

136

private JTextPane txtNewText;

137

private JPanel pShowData;

138

private JButton btnClose;

139

private JLabel lblWord;

140

private JTextField txtMW;

141

private JLabel lblM;

142

private JTextField txtError;

143

private JTextField txtRight;

144

private JLabel lblRight;

private JLabel lblCount;

145

146

private JTextField txtTime;

147

private JPanel pAttrib;

148

149

//记录输入的正确和错误的个数据

150

private int rightWord=0;

151

private int errorWord=0;

152

private int rightCount=0;

153

private int errorCount=0;

154

private int wordCount=0;

155

//临时

156

private boolean temp=true;

157

158

159

public Editor(Hint parent){

160

161

this.parent=parent;

162

th=new Thread(this);

163

164

165

//组建Editor用户界面....

166

167

setLayer(4);

168

setBounds(142,0,0,0);

169

this.setPreferredSize(new java.awt.Dimension(657, 325));//内部窗体大小

170

((javax.swing.plaf.basic.BasicInternalFrameUI) this.getUI()).setNorthPane(null); 171

this.putClientProperty("JInternalFrame.isPalette", Boolean.TRUE);

getContentPane().setLayout(null);

172

173

this.setVisible(true);

{

174

175

pAttrib = new JPanel();

176

getContentPane().add(pAttrib, new GridBagConstraints(1, 0, 12, 3, 0.0, 0.0, 177

GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0)); 178

FlowLayout pAttribLayout = new FlowLayout();

179

pAttrib.setBorder(BorderFactory.createTitledBorder(""));

pAttrib.setLayout(pAttribLayout);

180

181

pAttrib.setBounds(-2, 33, 658, 42);

182

{

lblTime = new JLabel();

183

184

pAttrib.add(lblTime);

185

lblTime.setText("\u7528\u65f6:");

186

lblTime.setFont(new java.awt.Font("新宋体", 0, 12));

187

}

188

{

189

txtTime = new JTextField(8);

190

pAttrib.add(txtTime);

191

txtTime.setText("00:00:00");

192

txtTime.setEditable(false);

txtTime.setHorizontalAlignment(SwingConstants.CENTER);

193

194

}

195

{

196

lblCount = new JLabel();

197

pAttrib.add(lblCount);

198

lblCount.setText("\u603b\u5b57\u6570:");

199

lblCount.setFont(new java.awt.Font("新宋体", 0, 12));

200

}

201

{

202

txtCount = new JTextField();

203

pAttrib.add(txtCount);

txtCount.setColumns(6);

204

205

txtCount.setText("0");

206

txtCount.setEditable(false);

207

txtCount.setHorizontalAlignment(SwingConstants.CENTER);

208

}

209

{

lblRight = new JLabel();

210

211

pAttrib.add(lblRight);

212

lblRight.setText("\u6b63\u786e:");

lblRight.setFont(new java.awt.Font("新宋体", 0, 12));

213

214

}

215

{

txtRight = new JTextField();

216

217

pAttrib.add(txtRight);

txtRight.setColumns(4);

218

219

txtRight.setText("0");

220

txtRight.setEditable(false);

221

txtRight.setHorizontalAlignment(SwingConstants.CENTER); 222

}

223

{

lblError = new JLabel();

224

225

pAttrib.add(lblError);

226

lblError.setText("\u9519\u8bef:");

lblError.setFont(new java.awt.Font("新宋体", 0, 12));

227

228

}

229

{

230

txtError = new JTextField();

231

pAttrib.add(txtError);

232

txtError.setColumns(4);

233

txtError.setText("0");

234

txtError.setEditable(false);

235

txtError.setHorizontalAlignment(SwingConstants.CENTER); 236

}

{

237

238

lblM = new JLabel();

239

pAttrib.add(lblM);

240

lblM.setText("\u6bcf\u5206\u949f");

241

lblM.setFont(new java.awt.Font("新宋体", 0, 12));

242

}

243

{

244

txtMW = new JTextField();

245

pAttrib.add(txtMW);

246

txtMW.setColumns(4);

247

txtMW.setText("0");

txtMW.setEditable(false);

248

249

txtMW.setHorizontalAlignment(SwingConstants.CENTER); 250

}

251

{

252

lblWord = new JLabel();

253

pAttrib.add(lblWord);

lblWord.setText("\u4e2a\u5b57");

254

255

lblWord.setFont(new java.awt.Font("新宋体", 0, 12));

256

}

{

257

258

btnClose = new JButton();

259

pAttrib.add(btnClose);

btnClose.setText("\u79bb\u5f00");

260

261

btnClose.setIcon(new ImageIcon(getClass().getClassLoader()

.getResource("Image/leave.gif")));

262

263

btnClose.setFont(new java.awt.Font("新宋体", 0, 12));

264

btnClose.addActionListener(new ActionListener() {

265

public void actionPerformed(ActionEvent evt) {

266

exitFram();

267

}

});

268

269

}

270

}

{

271

272

pShowData = new JPanel();

273

getContentPane().add(

274

pShowData,

275

new GridBagConstraints(

276

1,

277

1,

278

12,

279

10,

280

0.0,

0.0,

281

282

GridBagConstraints.CENTER,

283

GridBagConstraints.BOTH,

284

new Insets(0, 0, 0, 0),

285

0,

286

0));

287

GridLayout pShowDataLayout = new GridLayout(2, 1);

288

pShowDataLayout.setHgap(5);

289

pShowDataLayout.setVgap(5);

290

pShowDataLayout.setColumns(1);

291

pShowDataLayout.setRows(2);

pShowData.setLayout(pShowDataLayout);

292

293

pShowData.setBounds(5, 82, 644, 231);

294

{

295

txtOriginal = new JTextPane(styledDoc);

296

pShowData.add(txtOriginal);

297

txtOriginal.setPreferredSize(new java.awt.Dimension(600, 0));

txtOriginal.setEditable(false);

298

299

}

300

{

txtNewText = new JTextPane();

301

302

pShowData.add(txtNewText);

303

txtNewText.setPreferredSize(new java.awt.Dimension(600, 0));

Document doc=txtNewText.getDocument();

304

305

doc.addDocumentListener(this);

306

307

}

308

}

309

{

310

pCollocate = new JPanel();

311

getContentPane().add(

312

pCollocate,

313

new GridBagConstraints(

314

1,

315

11,

316

12,

317

2,

318

0.0,

319

0.0,

320

GridBagConstraints.SOUTH,

321

GridBagConstraints.BOTH,

322

new Insets(0, 0, 0, 0),

323

0,

324

0));

FlowLayout pCollocateLayout = new FlowLayout();

325

326

pCollocate.setBorder(BorderFactory.createTitledBorder(""));

327

pCollocate.setLayout(pCollocateLayout);

328

pCollocate.setBounds(-2, -2, 658, 35);

329

{

330

on_off_Hint = new JCheckBox();

331

pCollocate.add(on_off_Hint);

332

on_off_Hint.setText("\u5173\u95ed\u5b57\u6bcd\u63d0\u793a"); 333

on_off_Hint.setSelected(true);

334

on_off_Hint.setFont(new java.awt.Font("新宋体",0,12));

335

}

{

336

337

on_off_Assistant = new JCheckBox();

338

pCollocate.add(on_off_Assistant);

on_off_Assistant.setText("\u5173\u95ed\u6c49\u5b57\u52a9\u624b"); 339

340

on_off_Assistant.setSelected(true);

341

on_off_Assistant.setFont(new java.awt.Font("新宋体",0,12));

342

}

343

{

344

grade = new JCheckBox();

pCollocate.add(grade);

345

346

347

grade.setText("\u79bb\u5f00\u65f6\u662f\u5426\u663e\u793a\u6210\u7ee9");

348

grade.setSelected(true);

349

grade.setFont(new java.awt.Font("新宋体",0,12));

}

350

351

{

352

faze = new JCheckBox();

pCollocate.add(faze);

353

354

355

faze.setText("\u804a\u5929\u7cfb\u7edf\u5f00\u542f\u65f6\u663e\u793a\u81ea\u5df1\u768 4\u72b6\u6001");

356

357

faze.setSelected(true);

358

faze.setFont(new java.awt.Font("新宋体",0,12));

}

359

360

{

361

btnError = new JButton();

362

pCollocate.add(btnError);

363

//btnError.setIcon(new

364

ImageIcon(getClass().getClassLoader().getResource("Image/Error.gif")));

365

btnError.setBackground(new java.awt.Color(255,255,255));

366

367

btnError.setToolTipText("\u9519\u8bef\u6587\u5b57\u7528\u7ea2\u8272\u8868\u793a"); 368

btnError.setText("×");

btnError.setPreferredSize(new java.awt.Dimension(47, 17));

369

370

btnError.setFont(new java.awt.Font("新宋体",1,12));

371

btnError.setForeground(new java.awt.Color(219,32,36));

372

}

373

{

374

btnRight = new JButton();

375

pCollocate.add(btnRight);

376

//btnRight.setIcon(new

ImageIcon(getClass().getClassLoader().getResource("Image/Right.gif")));

377

378

btnRight.setBackground(new java.awt.Color(255,255,255));

379

btnRight.setToolTipText("\u6b63\u786e\u6587\u5b57\u7528\u84dd\u8272\u8868\u793a"); 380

381

btnRight.setText("\u221a");

382

btnRight.setFont(new java.awt.Font("新宋体",1,12));

383

btnRight.setPreferredSize(new java.awt.Dimension(47, 17));

384

btnRight.setForeground(new java.awt.Color(0,0,255));

385

}

386

387

txtOriginal.setText(DistillText.getData(PublicData.Text,PublicData.textTag)); 388

//PublicData.key=txtOriginal.getText().substring(0,1);

Empty empty=new Empty();

389

390

empty.start();

391

if(txtOriginal.getText().length()!=0)

{

392

393

if(https://www.360docs.net/doc/b53500182.html,ng.equals("English")){

PublicData.key=txtOriginal.getText().substring(0,1); 394

395

this.parent.repaint();

396

}

397

if(https://www.360docs.net/doc/b53500182.html,ng.equals("Chinese")){

398

PublicData.key="";

399

}

}

400

401

}

402

this.pack();

txtNewText.requestFocus();

403

404

th.start();

}

405

406

407

//判断正确和错误的字.并改变它们的颜色

408

public void chDocs(int xLen,int yLen,String xStr,String yStr)

409

{

410

SimpleAttributeSet attrSet=new SimpleAttributeSet();

411

rightWord=0;

412

errorWord=0;

413

for(int i=1;i<=xLen;i++)

414

{

415

if(i<=yLen){//数据验证

416

if(xStr.substring(i-1,i).equals(yStr.substring(i-1,i))){

417

rightWord++;

418

StyleConstants.setForeground(attrSet,Color.BLUE); 419

}

420

else{

421

errorWord++;

422

StyleConstants.setForeground(attrSet,Color.RED); 423

}

StyleConstants.setUnderline(attrSet,true);

424

425

}

426

else{

StyleConstants.setForeground(attrSet,Color.BLACK); 427

428

StyleConstants.setUnderline(attrSet,false);

429

}

styledDoc.setCharacterAttributes(i-1,1,attrSet,true);

430

431

}

432

txtRight.setText((rightWord+rightCount)+"");

433

434

txtError.setText((errorWord+errorCount)+"");

435

int c=0;

for(int i=0;i

436

437

c=c+60;

438

}

439

c=c+second;

440

double s=(double)c/60;

441

txtMW.setText(""+Math.round(((double)Integer.parseInt(txtRight.getText()))/s)); 442

}

443

444

//实现DocumentListener所有的方法..用于监听输入文本...

445

public void changedUpdate(DocumentEvent e){

446

if(https://www.360docs.net/doc/b53500182.html,ng.equals("English")){

447

PublicData.key=txtOriginal.getText().substring(txtNewText.getText().length(), 448

txtNewText.getText().length()+1);

449

this.parent.repaint();

450

}

451

if(https://www.360docs.net/doc/b53500182.html,ng.equals("Chinese")){

452

PublicData.key="";

453

}

454

}

455

public void insertUpdate(DocumentEvent e){

456

if(https://www.360docs.net/doc/b53500182.html,ng.equals("English")){

457

try{

458

459

PublicData.key=txtOriginal.getText().substring(txtNewText.getText().length(),

460

txtNewText.getText().length()+1);

461

}catch(StringIndexOutOfBoundsException str){}

462

this.parent.repaint();

463

}

464

if(https://www.360docs.net/doc/b53500182.html,ng.equals("Chinese")){

PublicData.key="";

465

466

}

467

}

468

469

public void removeUpdate(DocumentEvent e){

470

if(https://www.360docs.net/doc/b53500182.html,ng.equals("English")){

471

PublicData.key=txtOriginal.getText().substring(txtNewText.getText().length(), 472

txtNewText.getText().length()+1);

473

this.parent.repaint();

474

}

475

if(https://www.360docs.net/doc/b53500182.html,ng.equals("Chinese")){

476

PublicData.key="";

477

}

478

}

479

480

//数据验证

481

private void dataValidate(){

chDocs(txtOriginal.getText().length(),txtNewText.getText()

482

483

.length(),txtOriginal.getText(),txtNewText.getText());

484

if(txtOriginal.getText().length()>txtNewText.getText().length()){

if(https://www.360docs.net/doc/b53500182.html,ng.equals("English")){

485

486

487

PublicData.key=txtOriginal.getText().substring(txtNewText.getText().length(),

txtNewText.getText().length()+1);

488

489

}

490

if(https://www.360docs.net/doc/b53500182.html,ng.equals("Chinese")){

PublicData.key="";

491

492

}

493

txtCount.setText((txtNewText.getText().length()+wordCount)+"");

494

}

495

else{

496

wordCount=wordCount+txtOriginal.getText().length();

497

rightCount=rightCount+rightWord;

498

errorCount=errorCount+errorWord;

499

txtOriginal.setText(DistillText.getData(PublicData.Text,PublicData.textTag)); 500

501

if(https://www.360docs.net/doc/b53500182.html,ng.equals("English")){

502

PublicData.key=txtOriginal.getText().substring(0,1);

503

this.parent.repaint();

504

}

505

if(https://www.360docs.net/doc/b53500182.html,ng.equals("Chinese")){

506

PublicData.key="";

507

this.parent.repaint();

508

}

}

509

510

}

511

//退出时所要关闭的窗体

512

513

private void exitFram(){

514

PublicData.key="";

515

PublicData.Text="";

516

this.parent.repaint();

517

this.parent.doDefaultCloseAction();

518

this.doDefaultCloseAction();

519

PublicData.onChoice=true;

520

PublicData.textTag=1;

521

r.gc();

522

System.gc();

523

}

524

525

//计时器

526

public void run(){

527

try{

528

while(true){

529

Thread.sleep(1000);

530

second++;

531

if(second==60){

532

second=0;

533

minute++;

if(minute==60){

534

535

minute=0;

536

hour++;

537

if(hour==1000){

538

second=0;

539

minute=0;

540

hour=0;

541

}

542

}

543

}

544

txtTime.setText(((hour<=9)?"0":"")+hour+":"+((minute<=9)?"0":"")

+minute+":"+((second<=9)?"0":"")+second);

545

546

}

547

}

catch (InterruptedException e){}

548

549

}

550

class Empty extends Thread{

551

552

public void run(){

553

while(true){

554

try{

555

Thread.sleep(100);

556

dataValidate();

557

if(txtNewText.getText().length()>=txtOriginal.getText().length()){ 558

txtNewText.setText("");

559

}

560

}

561

catch(InterruptedException e){}

562

}

563

}

564

}

565

}

566

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

567

568

import javax.swing.*;

569

570

571

572

/**

573

* This code was edited or generated using CloudGarden's Jigloo

* SWT/Swing GUI Builder, which is free for non-commercial

574

575

* use. If Jigloo is being used commercially (ie, by a corporation,

576

* company or business for any purpose whatever) then you

577

* should purchase a license for each developer using Jigloo.

578

* Please visit https://www.360docs.net/doc/b53500182.html, for details.

579

* Use of Jigloo implies acceptance of these licensing terms.

580

* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR

581

* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED

582

* LEGALL Y FOR ANY CORPORATE OR COMMERCIAL PURPOSE.

583

*/

584

public class Etymon extends JInternalFrame{

585

private Hint parent;

586

587

private JButton btnCelean;

588

private JLabel lblword;

private JPanel p4;

589

590

private JPanel p3;

591

private JPanel p2;

592

private JTextField txtMSword;

593

private JLabel lblRight;

594

private JTextField txtRight;

595

private JLabel lblM;

596

private JTextField txtError;

597

private JLabel lblError;

598

private JTextField txtCountWord;

599

private JLabel countWord;

600

private JTextField txtTime;

601

private JLabel lblTime;

602

private JPanel p1;

603

private JLabel lblt;

604

605

private JLabel[] ShowWord;

606

public Etymon(Hint parent){

607

608

this.parent=parent;

609

setLayer(7);

610

611

setBounds(142,0,0,0);

this.setPreferredSize(new java.awt.Dimension(657, 325));//内部窗体大小

612

613

((javax.swing.plaf.basic.BasicInternalFrameUI) this.getUI()).setNorthPane(null);

this.putClientProperty("JInternalFrame.isPalette", Boolean.TRUE);

614

615

getContentPane().setLayout(null);

616

this.setVisible(true);

617

{

618

lblt = new JLabel();

619

getContentPane().add(lblt);

lblt.setIcon(new ImageIcon(getClass().getClassLoader().getResource( 620

621

"Image/zgt.gif")));

622

lblt.setBounds(26, 40, 602, 189);

}

623

624

{

625

p1 = new JPanel();

626

getContentPane().add(p1);

627

p1.setBounds(-2, -2, 658, 42);

628

p1.setBorder(BorderFactory.createTitledBorder(""));

629

{

630

lblTime = new JLabel();

631

p1.add(lblTime);

632

lblTime.setText("\u7528\u65f6:");

lblTime.setPreferredSize(new java.awt.Dimension(30, 14));

633

634

lblTime.setFont(new java.awt.Font("新宋体",0,12));

635

}

636

{

637

txtTime = new JTextField();

638

p1.add(txtTime);

639

txtTime.setText("00:00:00");

640

txtTime.setEditable(false);

641

txtTime.setPreferredSize(new java.awt.Dimension(69, 20));

642

txtTime.setFont(new java.awt.Font("新宋体",0,12));

643

txtTime.setHorizontalAlignment(SwingConstants.CENTER);

}

644

645

{

646

countWord = new JLabel();

647

p1.add(countWord);

648

countWord.setText("\u603b\u5b57\u6570:");

649

countWord.setFont(new java.awt.Font("新宋体",0,12));

}

650

651

{

652

txtCountWord = new JTextField();

p1.add(txtCountWord);

653

654

txtCountWord.setText("0");

655

txtCountWord.setPreferredSize(new java.awt.Dimension(69, 20));

txtCountWord.setFont(new java.awt.Font("新宋体",0,12));

656

657

txtCountWord.setHorizontalAlignment(SwingConstants.CENTER);

659

}

660

{

661

lblRight = new JLabel();

662

p1.add(lblRight);

663

lblRight.setText("\u6b63\u786e:");

664

lblRight.setFont(new java.awt.Font("新宋体",0,12));

665

}

666

{

txtRight = new JTextField();

667

668

p1.add(txtRight);

669

txtRight.setText("0");

670

txtRight.setPreferredSize(new java.awt.Dimension(69, 20)); 671

txtRight.setFont(new java.awt.Font("新宋体",0,12));

672

txtRight.setEditable(false);

673

txtRight.setHorizontalAlignment(SwingConstants.CENTER); 674

}

675

{

676

lblError = new JLabel();

677

p1.add(lblError);

lblError.setText("\u9519\u8bef:");

678

679

lblError.setFont(new java.awt.Font("新宋体",0,12));

680

}

{

681

682

txtError = new JTextField();

683

p1.add(txtError);

684

txtError.setText("0");

685

txtError.setPreferredSize(new java.awt.Dimension(69, 20)); 686

txtError.setFont(new java.awt.Font("新宋体", 0, 12));

txtError.setEditable(false);

687

688

txtError.setHorizontalAlignment(SwingConstants.CENTER); 689

}

{

690

691

lblM = new JLabel();

692

p1.add(lblM);

693

lblM.setText("\u6bcf\u5206\u949f");

694

lblM.setFont(new java.awt.Font("新宋体",0,12));

695

}

696

{

697

txtMSword = new JTextField();

698

p1.add(txtMSword);

699

txtMSword.setText("0");

txtMSword.setPreferredSize(new java.awt.Dimension(69, 20)); 700

701

txtMSword.setFont(new java.awt.Font("新宋体",0,12));

703

txtMSword.setHorizontalAlignment(SwingConstants.CENTER); 704

}

705

{

706

lblword = new JLabel();

707

p1.add(lblword);

708

lblword.setText("\u5b57");

709

lblword.setFont(new java.awt.Font("新宋体",0,12));

710

}

{

711

712

btnCelean = new JButton();

713

p1.add(btnCelean);

714

btnCelean.setText("\u79bb\u5f00");

715

btnCelean.setFont(new java.awt.Font("新宋体", 0, 12));

716

btnCelean.setBounds(579, 236, 63, 21);

717

btnCelean.setBackground(new java.awt.Color(255, 255, 255)); 718

btnCelean.addActionListener(new ActionListener() {

719

public void actionPerformed(ActionEvent evt) {

720

exit();

721

}

});

722

723

}

724

}

{

725

726

p2 = new JPanel();

727

getContentPane().add(p2);

728

p2.setBounds(-2, 229, 658, 28);

729

p2.setBorder(BorderFactory.createTitledBorder(""));

730

}

{

731

732

p3 = new JPanel();

733

getContentPane().add(p3);

p3.setBounds(-2, 290, 658, 35);

734

735

p3.setBorder(BorderFactory.createTitledBorder(""));

736

}

737

{

738

//ShowWord=new JLabel[20];

739

//for(int i=0;i<20;i++){

740

//ShowWord[i].setText("熊");

741

//}

742

p4 = new JPanel();

743

p4.setLayout(null);

getContentPane().add(p4);

744

745

p4.setBounds(-2, 257, 658, 35);

p4.setBorder(BorderFactory.createTitledBorder(""));

746

747

}

748

this.pack();

749

}

750

private void exit(){

751

this.parent.doDefaultCloseAction();

this.doDefaultCloseAction();

752

753

PublicData.onChoice=true;

754

PublicData.textTag=1;

System.gc();

755

756

}

}

757

758

759

import javax.swing.*;

760

import javax.swing.event.*;

761

import javax.swing.text.html.*;

762

import java.awt.*;

763

import java.awt.event.ActionEvent;

764

import java.awt.event.ActionListener;

765

import java.io.*;

766

import https://www.360docs.net/doc/b53500182.html,.*;

767

768

769

/**

770

* This code was edited or generated using CloudGarden's Jigloo

771

* SWT/Swing GUI Builder, which is free for non-commercial

772

* use. If Jigloo is being used commercially (ie, by a corporation,

773

* company or business for any purpose whatever) then you

774

* should purchase a license for each developer using Jigloo.

775

* Please visit https://www.360docs.net/doc/b53500182.html, for details.

776

* Use of Jigloo implies acceptance of these licensing terms.

777

* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR 778

* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED 779

* LEGALL Y FOR ANY CORPORATE OR COMMERCIAL PURPOSE. 780

*/

781

public class Help extends JInternalFrame{

782

783

JEditorPane html;

784

private JPanel p;

private JButton btnCencel;

785

786

787

public Help(){

788

try {

789

URL url = null;

// System.getProperty("user.dir") +

790

791

// System.getProperty("file.separator");

792

String path = null;

793

try {

794

path = "/help/index.html";

795

url = getClass().getResource(path);

} catch (Exception e) {

796

797

System.err.println("Failed to open " + path);

798

url = null;

}

799

800

801

if(url != null) {

html = new JEditorPane(url);

802

803

html.setEditable(false);

804

html.addHyperlinkListener(createHyperLinkListener()); 805

JScrollPane scroller = new JScrollPane();

806

JViewport vp = scroller.getViewport();

807

vp.add(html);

add(scroller, BorderLayout.CENTER);

808

809

}

810

{

p = new JPanel();

811

812

getContentPane().add(p, BorderLayout.NORTH);

p.setPreferredSize(new java.awt.Dimension(651, 28));

813

814

p.setLayout(null);

815

{

816

btnCencel = new JButton();

817

p.add(btnCencel);

818

btnCencel.setText("\u79bb\u5f00");

btnCencel.setIcon(new

819

820

ImageIcon(getClass().getClassLoader().getResource("Image/leave.gif")));

821

btnCencel.setBounds(574, 3, 77, 21);

btnCencel.setFont(new java.awt.Font("新宋体",0,12)); 822

823

btnCencel.addActionListener(new ActionListener() { 824

public void actionPerformed(ActionEvent evt) { 825

PublicData.onChoice=true;

826

exit();

827

}

828

});

829

}

830

}

831

}catch (MalformedURLException e) {

System.out.println("Malformed URL: " + e);

832

833

} catch (IOException e) {

System.out.println("IOException: " + e);

834

835

}

836

setLayer(4);

837

838

setBounds(142,0,0,0);

839

this.setPreferredSize(new java.awt.Dimension(657, 549));//内部窗体大小

((javax.swing.plaf.basic.BasicInternalFrameUI) this.getUI()).setNorthPane(null); 840

841

this.putClientProperty("JInternalFrame.isPalette", Boolean.TRUE);

842

this.setVisible(true);

this.pack();

843

844

}

845

public HyperlinkListener createHyperLinkListener() {

846

return new HyperlinkListener() {

847

public void hyperlinkUpdate(HyperlinkEvent e) {

848

if (e.getEventType() == HyperlinkEvent.EventType.ACTIV ATED) {

849

if (e instanceof HTMLFrameHyperlinkEvent) {

850

851

((HTMLDocument)html.getDocument()).processHTMLFrameHyperlinkEvent((HTMLFra 852

meHyperlinkEvent)e);

}

853

854

else{

855

try {

856

html.setPage(e.getURL());

857

} catch (IOException ioe) {

858

System.out.println("IOE: " + ioe);

859

}

860

}

861

}

862

}

863

};

}

864

865

866

private void exit(){

867

PublicData.onChoice=true;

868

System.gc();

869

this.doDefaultCloseAction();

870

}

871

}

872

873

import javax.swing.*;

874

875

public class Hint extends JInternalFrame{

876

Tool parent;

877

public Hint(Tool parent){

雨课堂考试系统操作流程(学生端)

雨课堂考试系统操作手册(学生端) 2020年5月

目录 1. 基本介绍 (1) 2. 手机微信端作答 (1) 2.1 作答入口 (1) 2.2 考试过程 (2) 2.3 查看成绩及答案 (3) 3. 电脑网页端作答 (3) 3.1 作答入口 (3) 3.2 身份验证 (4) 3.3 在线考试 (5) 3.4 查看成绩及答案 (6)

1.基本介绍 雨课堂为师生提供在线考试功能,老师发布试卷后,学生可在手机微信端或电脑网页端作答。如老师在发布设置中勾选了【在线监考】的选项,学生不可使用手机微信端作答,只能使用电脑网页端作答。 雨课堂为考试系统提供了本地的缓存机制,如学生在考试过程中因网络中断而掉线,不会丢失已作答的记录。但为保证考试的正常进行,不影响作答时间,请学生尽量确保自己的网络环境处于良好的状态。 2.手机微信端作答 2.1作答入口 (1)作业提交提醒 老师发布试卷后,学生将在雨课堂微信公众号中收到【作业提交提醒】。如老师在发布设置中未勾选【在线监考】,学生可直接点击该提醒进入作答页面。如老师勾选了【在线监考】,学生将无法用手机作答,【作业提交提醒】的备注中将有提示。 图1 无在线监考时的提醒有在线监考时的提醒 (2)学习日志—试卷 如错过了作业提醒,也可在雨课堂微信小程序中找到试卷并进入。进入雨课堂微信小程序(请使用长江雨课堂和荷塘雨课堂的同学进入对应的小程序),在【我听的课】列表找到对应课程,找到标签为【试卷】的考试,点击进入即可答题。

图2 学生手机端试卷入口 2.2考试过程 雨课堂为在线考试提供单选题、多选题、投票题、判断题、填空题、主观题6种题型,其中主观题可以以文字和图片形式作答,网页版可上传附件。 在考试过程中,学生每填答一道题系统将自动缓存答案,但学生必须点击试卷最后的【去交卷】,才能顺利提交试卷。 考试时长结束或考试截止时间到了以后,试卷将被自动提交,逾时无法再进 行作答。 图3 主观题作答页面

学生管理系统源代码

#include #include #include #include #define INIT_SIZE 10 #define INCRE_SIZE 10 #define SUBJECT_NUM 3 #define LEN 3 void show_Start(); void show_Table(); void addRecord(); void Info_delete(); void deleteRecord(); void delete_Num(int); void delete_Name(char tarName[]); void Info_modify(); void modifyRecord(); void modify_Num(int); void modify_Name(char[]); void Info_query(); void queryRecord(); void query_Num(int); void query_Name(char[]); void display(); void quit(); void menu_CMD(); char *subject[SUBJECT_NUM] = struct STUDENT

{ int num; char name[20]; char sex; float score[SUBJECT_NUM]; }; //struct STUDENT stu[LEN + 1]; //STUDENT *record = (STUDENT*)malloc(sizeof(STUDENT)*INIT_SIZE); int static stuNum = 0; // STUDENT *record = (STUDENT*)malloc(sizeof(STUDENT)*INIT_SIZE);; int main() { //record = (STUDENT*)malloc(sizeof(STUDENT)*INIT_SIZE); //STUDENT *record = (STUDENT*)malloc(sizeof(STUDENT)*INIT_SIZE); /* record[1].num = 1001; strcpy(record[1].name,"Jason"); record[1].sex = 'M'; record[1].score[0] = 85.0; record[1].score[1] = 90.0; record[1].score[2] = 95.0; record[2].num = 1002; strcpy(record[2].name,"Jerry"); record[2].sex = 'M'; record[2].score[0] = 85.0; record[2].score[1] = 90.0; record[2].score[2] = 95.0; record[3].num = 1003; strcpy(record[3].name,"Jessie");

银行系统软件工程课程设计

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. 目录 第一章概述.................................................. 错误!未定义书签。 1.1目的................................................. 错误!未定义书签。 1.2背景................................................. 错误!未定义书签。 1.3定义................................................. 错误!未定义书签。第二章需求分析.............................................. 错误!未定义书签。 2.1功能需求............................................. 错误!未定义书签。 2.2性能需求............................................. 错误!未定义书签。 2.3运行需要............................................. 错误!未定义书签。 2.4输入要求............................................. 错误!未定义书签。 2.5输出要求............................................. 错误!未定义书签。第三章系统E_R图............................................ 错误!未定义书签。第四章系统流程和数据流图.................................... 错误!未定义书签。 4.1系统流程图........................................... 错误!未定义书签。 4.2数据流图............................................. 错误!未定义书签。第五章存取款状态图.......................................... 错误!未定义书签。第六章数据字典.............................................. 错误!未定义书签。 6.1数据元素............................................. 错误!未定义书签。 6.2数据流............................................... 错误!未定义书签。 6.3数据存储:........................................... 错误!未定义书签。 6.4加工逻辑:........................................... 错误!未定义书签。第七章结论.................................................. 错误!未定义书签。

学生成绩单管理系统源代码

学生成绩单管理系统 利用面向对象编程方法设计一个学生成绩单管理系统,要求实现以下功能: ●录入(添加)学生信息:学号、姓名、平时成绩和考试成绩,系统自动计算总评成 绩(平时成绩占20%,考试成绩占80%)。可以一次录入多名学生的信息。 ●查询学生成绩:输入要查询的学生的学号,查询该学生的信息并显示。 ●显示学生成绩单:按学号顺序显示学生成绩单。 ●删除学生信息:输入要删除的学生的学号,得到用户确认后,删除该学生的信息。 ●修改学生信息:输入要修改的学生的学号,显示该学生的原有信息,用户输入修改 后的信息。 ●对成绩进行统计分析:可以对总成绩进行统计分析,分别统计出各个成绩段的人数 和比例, 本课程班级平均成绩等。 实验步骤如下: 1. 创建项目 创建一个Win32 Console Application,项目名为“StudentScore”。 2. 定义学生类CStudent (1)新建一个“C/C++ Header File”,文件名为“student.h”,代码如下: // student.h 学生类的定义 class CStudent { public: CStudent( char * id="", char *na="",int us=0, int ts=0 ); // 构造函数 CStudent( const CStudent &s ); // 拷贝构造函数 ~CStudent(); char* GetID(); // 获取学生的学号 double GetTotalScore(); // 获取总评成绩 static void TableHead( ); // 输出表头 void Display( ); // 显示学生信息 private: c har ID[5]; // 学号 c har name[10]; // 姓名 i nt UsualScore; // 平时成绩 i nt TestScore; // 考试成绩 d oubl e TotalScore; // 总评成绩 v oid CalcTotalScore(); // 计算总评成绩 }; (2)新建一个“C++ Source File”,文件名为“student.cpp”,代码如下: // student.cpp 学生类的成员函数实现 #include #include #include "student.h" CStudent::CStudent( char * id, char *na,int us, int ts ) // 构造函数 { strcpy(ID,id); strcpy(name,na);

学生信息管理系统系统源代码

系统源代码 一、登录界面代码 using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Data.SqlClient; public partial class login : System.Web.UI.Page { protected void txtid_Click(object sender, EventArgs e) { txtid.Text = ""; txtpassword.Text = ""; } protected void Button1_Click(object sender, EventArgs e) { string strconn = ConfigurationManager.AppSettings["connStr"]; SqlConnection conn = new SqlConnection(strconn); conn.Open(); DataSet ds=new DataSet () ; SqlDataAdapter da = new SqlDataAdapter("select * from users where userid='" + txtid.Text + "' and userpwd='" + txtpassword.Text + "'", conn);

银行计算机储蓄系统

银行计算机储蓄系统 题目:银行帐户管理,储蓄业务管理处理系统 班级:计算机科学与技术(3)班设计者:易华丽 1 引言 1.1 编写目的 本报告的目的是规范化本软件的编写,旨在于提高软件开发过程中的能见度,便于对软件开发过程中的控制与管理,同时提出了本银行储蓄系统的软件开发过程,便于程序员与客户之间的交流、协作,并作为工作成果的原始依据,同时也表明了本软件的共性,以期能够获得更大范围的应用 此文档进一步定制软件开发的细节问题,明确软件需求、安排项目规划与进度、组织软件开发与测试,便于用户与开发商协调工作。经过对该银行储蓄系统项目进行详细调查研究,初拟系统实现报告,对软件开发中将要面临的问题及其解决方案进行需求分析。 1.2 背景 项目名称:银行计算机储蓄系统 用户:××银行 说明:现在的银行储蓄系统工作效率低,越来越不能满足广大人民群众的需要,人们希望能更方便更省时就可以办理储蓄业务;随着拥有多种银行卡的人群不断增长,人们急切希望有一种通用的银行卡以便随时随地在哪家银行都可以存款提款;现在计算机网络的高速发现使越来越多的人更喜欢在网购物、在家存款取款。在这样的背景下,很明显现在的银行储蓄系统已经不能满足人们越益增长的需求,急切需要建立一个新的、高效的、方便的、互联的计算机储蓄系统。 1.3定义 银行储蓄应用系统软件:基本元素为构成银行储蓄及相关行为所必须的各种部分。 需求:用户解决问题或达到目标所需的条件或功能;系统或系统部件要满足合同、标准,规范或其它正式规定文档所需具有的条件或权能。 需求分析:包括提炼,分析和仔细审查已收集到的需求,以确保所有的风险承担者都明其含义并找出其中的错误,遗憾或其它不足的地方。 模块的独立性:是指软件系统中每个模块只涉及软件要求的具体的子功能,而

学生成绩管理系统源代码

学生成绩管理系统源代码-标准化文件发布号:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

#include #include #include #include #include #include #include #include #define PRINT1 textcolor(12); cprintf("\r 请按任意键返回主菜单 \n\r");textcolor(10); getch();clrscr(); break; int shoudsave=0; struct student /* 学生信息结构体定义*/ { char num[10],name[20],cla[4]; int score1,score2,score3,total,ave; }; typedef struct node { struct student data; struct node *next; }Node,*L; void print1() { cprintf("\r============================================================= ==================="); } void print2() { cprintf("\n\r 1.输入学生成绩信息在这里你可以按照提示输入学生的班级,学号,姓名及各科成绩.\n"); cprintf("\n\r 2.注销学生成绩信息在这里你可以按照学号或姓名将某名学生的信息从本系统中删除.\n"); cprintf("\n\r 3.查询学生成绩信息在这里你可以按照学号或姓名查询某一名学生的信息.\n"); cprintf("\n\r 4.修改学生成绩信息在这里你可以按照提示修改某一名学生的学号,姓名及各科成绩."); cprintf("\n\r 5.学生成绩信息排序在这里你可以看到所有学生的各科成绩.\n"); cprintf("\n\r 6.学生成绩信息统计在这里本系统将为你显示所有科目的最高分及最低分所得学生.\n"); cprintf("\n\r 7.显示学生成绩信息在这里你可以看到系统中所有学生的信 息.\n"); cprintf("\n\r 8.保存学生成绩信息在这里你可以将学生你信息保存到内存 中.\n");

银行管理系统—软件工程

银行存储管理系统设计 专业:信息与计算科学 课程:软件工程 一、问题定义

银行存储管理系统工作繁琐,包含大量数据信息数据,因此就需要一个完善的银行管理系统来实现这些数据的有效管理。但是,随着经济和科学技术的飞速发展,传统的银行存储管理系统已经不能满足广大客户的需求,也不能及时跟上计算机网络发展的步调,故而我们急需开发一个高效、安全、便捷、互联的银行存储管理系统,该系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。系统分为三大模块,分别为存款模块、取款模块、用户管理模块,用来实现用户的开户、销户、存款以及取款等业务。该系统在功能上不断完善和加强,也使得存储管理规范化、程序化、科学化,满足了客户的需求。 二、可行性研究 1、对现有系统的分析 当前大多数系统所思用的银行存储系统办理业务时手续繁多,例如要填写存取款表,然后再交由业务员输入资料,最后还要在存取款单上签名确认,人工业务操作过多,需要大量的业务工作人员,同时严重影响了工作效率,以致客户在等待办理手续的搞到不耐烦,且出错率高。 2、系统可行性研究 2.1、技术可行性: 技术可行性包括以下几个方面:硬件,系统软件,应用软件,技术人员。针对这四个方面可行性都是没有问题的,本系统采用java编程语言和Access数据库。目前,数据库产品较多,每种产品都具有各自的特点和适用范围,因此,在选择数据库时,应考虑数据库应用的特点及适用范围,选择最合适的。 2.2、经济可行性: 本银行管理系统能使银行业务员便捷的处理银行信息数据;能够促进银行的体制改革,提高工作效率,减少手工工作人员及费用等,这些都是使用系统所带来的间接收益。同时也促进了银行信息化的进程,提高银行的管理效率。 2.3、操作可行性: 本银行管理系统的操作简单,且界面友好,系统的操作流程是银行业务员所熟悉的。系统能够实现其各个功能,在当前操作环境下也能够很好的运行。 3、开发的新系统

学生考试系统数据库

第一节数据库设计 一、数据库总体设计 本系统采用关系型数据库模式,因此数据库由若干个二维表(即数据文件)构成。本系统的数据文件全为数据数据。数据的保存方法有很多种,最长用的方式是使用DBMS(数据库管理系统)。 市场上流行的 DBMS 主要有 Oracle、SYBASE、MS SQL Server、DB2、Informix 等,而 MS SQL Server 可作为中小型数据管理系统的首选。根据以上分析,本系统后台数据库决定采用 MS SQL Server 为后台数据库。 本系统的数据表主要由两个部分组成:系统表和功能表。 系统表是该系统中存储基本数据信息表,例如:考生信息表(tb_Student)、管理员信息表(tb_manager)。 功能表是系统为了完成一定的功能,要求把一定的数据信息存储在数据库中,这就需要专门新建表来存储相应信息。例如:、课程信息表(tb_Lesson)、试题信息表(tb_Questions)、考生成绩表(tb_StuResult)、套题表(tb_TaoTi)等。 二、数据库概念设计 根据对系统所做的需求分析和总体设计,可以规划出要使用的数据库实体分别为考生信息实体、管理员信息实体、课程信息实体、套题实体、考试题目实体和考生成绩实体。 1、考生信息实体: 考生信息实体包括编号、姓名、密码、性别、注册时间、提示问题、问题答案、专业和身份证属性。

2、套题实体: 套题实体包括编号、名称、所属课程和添加时间等属性。 3、考试题目实体: 考试题目实体包括编号、问题类型、所属课程、所属套题、选项A、选项B、选项C、选项D、添加时间、正确答案和备注等属性。

学生信息管理系统(Java)+代码

学生信息管理系统设计 1、系统简介 本系统提供了学生信息管理中常见的基本功能,主要包括管理员和学生两大模块。 管理员的主要功能有对学生信息和课程信息进行增加、删除、修改、查找等操作,对选课信息进行管理,对成绩信息和用户信息进行修改、查找等操作。学生的主要功能有对学生信息和成绩信息进行查看,对个人的密码信息进行修改等。 2、功能设计 2.1 需求分析 本系统需要实现的功能: (1)、管理员对学生信息和课程信息进行增加、删除、修改、查找等操作,对选课信息进行管理,对成绩信息和用户信息进行修改、查找等操作。 (2)、学生对学生信息和成绩信息进行查看,对个人的密码信息进行修改等。 2.2 总体设计 学生信息管理系统主要包括管理员和学生两大模块。管理员模块包括:学生信息管理、课程信息管理、选课信息管理、成绩信息管理、用户信息管理等。用户模块包括:学生信息查看、成绩信息查看、个人信息管理等。系统总体结构如图所示。 总体结构图 2.3 模块详细设计 1、学生信息管理模块 学生信息管理模块包括增加、删除、修改、查询、显示全部等。具体的结构图如图所示。

学生信息管理模块结构图 2、课程信息管理模块 课程信息管理模块包括增加、删除、修改、查询、显示全部等。具体的结构图如图所示。 课程信息管理模块结构图 3、选课信息管理模块 选课信息管理模块包括查询、显示全部等。具体的结构图如图所示。 选课信息管理模块结构图 4、成绩信息管理模块 成绩信息管理模块包括修改成绩、查询、显示全部等。具体的结构图如图所示。

成绩信息管理模块结构图 5、用户信息管理模块 用户信息管理模块包括修改、查询、显示全部等。具体的结构图如图所示。 用户信息管理模块结构图 3、数据库设计 在数据库student中共有4张数据表:s(学生信息表)、c(课程信息表)、sc(选课信息表)、unpw(用户信息表),下面定义每张表的字段名称和数据类型。

软件工程-银行储蓄管理系统源代码

package src.day01; public class ACC { //父类,以下是共有属性和方法 //卡号 protected static long id; // 名字 protected static String name; // 身份证 protected static String personId; //电子邮件 protected static String email; // 密码 protected static long password; //余额 protected static double balance; public ACC(){ } public ACC(long id,String name,String personId,String email,long password,double balance ){ this.id = id; https://www.360docs.net/doc/b53500182.html, = name; this.personId = personId; this.email = email; this.password = password; this.balance = balance; } // 存款方法 public static void deposit(double money){ balance += money; System.out.println("存款成功,你存入的金额为:" + money); } public long getId() { return id; } public void setId(long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { https://www.360docs.net/doc/b53500182.html, = name; } public String getPersonId() {

学生在线考试系统需求分析设计

学生在线考试系统需求分析报告 1.引言 随着Internet的迅速发展和广泛普及,网络化教育代表了教育改革的一个发展方向,已经成为现代教育的一个特征,并对教育的发展形成新的推动力。远程教育成为现代教育技术未来发展的重要方向之一,考试测试作为远程教育的一个子系统也成为一个重要的研究领域。 Internet技术的发展使得考试的技术手段和载体发生了革命性的变化,Internet的开放性、分布性的特点和基于Internet的巨大的计算能力使得考试突破了时间和空间的限制。与传统考试模式相比,在线考试具有无可比拟的优越性,它可以将传统考试过程中的试卷组织、审定印制、传送收集、登记发放、评判归档各个环节缩小到一至两个环节,几乎屏蔽了所有人工直接干预考试活动的可能性,不但能够节约大量的时日、人力、物力与财力,而且还可以大幅度增加考试成绩的客观性和公正性。 传统的考试方式一般要经过人工出卷、考生考试、人工阅卷等过程。对于一些课程来说,随着考生数量的增加,教师出卷阅卷的工作量将会越来越大,并且其工作十分烦琐

和非常容易出错。在线考试系统课题产生的背景是当今教育信息化的趋势及我国高校教育信息化系统的建设,目的是充分利用学校现有的计算机软、硬件和网络资源实现无纸化考试以避免传统手工考试的不足。与传统考试模式相比,网上考试渗入了更多的技术环节,对实现安全性的途径、方法也提出了更高的技术要求。通过Internet来实现网上考试,是现代教育技术的一个具体实现,具有很重要的现实意义。可以实现教考分离以及考务工作的全自动化管理,可以有效利用校园网的软硬件资源,使其发挥最大效力,更好的为学校的教学、科研、管理服务,可以大规模的实行考试,实现考试的客观性、公证性,自动化组卷、阅卷可以减轻教师的工作强度。传统考试要求老师刻试卷、印试卷、安排考试、监考、收集试卷、评改试卷、讲评试卷和分析试卷。这是一个漫长而复杂的过程,已经越来越不适应现代教学的需要。在线考试系统是传统考场的延伸,它可以利用网络的无限广阔空间,随时随地的对学生进行考试,加上Web数据库技术的利用,大大简化了传统考试的过程。 本文以Internet为平台,研究了基于Web考试系统的设计与开发,包括系统需求分析和系统功能设计以及数据库设计。重点阐述了用户注册模块、用户登录模块、在线考试模

学生管理系统程序源代码

#include <> #include <> struct student { long int num; char name[20]; int age; char sex[4]; int e; char m[20]; char b[30]; char p[15]; }; int n=0; struct student stu[100]; struct student *p; void lr(); void ll(); void cx(); void xg(); void sc(); void bc(); void dq(); void px(); void main() { int z; printf("+---------------------------+\n"); printf("| 欢迎使用学生档案管理系统 |\n"); printf("+---------------------------+\n"); printf("提示:为保证您的操作得到保存,请按正常顺序退出系统^_^\n"); do { printf("\n\t\t\t--------------------------------\n"); printf("\t\t\t+ 主菜单 |\n"); printf("\t\t\t--------------------------------\n"); printf("\t\t\t+ [1]----录入学生信息 |\n"); printf("\t\t\t+ [2]----浏览学生信息 |\n"); printf("\t\t\t+ [3]----查询学生信息 |\n"); printf("\t\t\t+ [4]----删除学生信息 |\n"); printf("\t\t\t+ [5]----修改学生信息 |\n");

毕业设计论文 基于JSP的在线考试系统源代码

目录 绪论 (2) 第1章系统开发背景及意义 (3) 1.1系统开发背景 (3) 1.2系统开发意义 (3) 第2章网上考试系统需求分析 (4) 2.1现状分析 (4) 2.2可行性分析 (5) 2.2.1经济可行性 (5) 2.2.2技术可行性 (5) 2.3设计目标 (6) 2.4功能要求 (6) 2.5系统开发环境配置 (7) 2.6系统开发工具 (7) 2.6.1开发语言—JSP(Java Server Page) (7) 2.6.2数据库—MySQL5.0 (8) 第3章网上考试系统设计 (9) 3.1数据库设计 (9) 3.1.1数据库需求分析 (9) 3.1.2数据库概念结构设计 (10) 3.1.3数据库逻辑结构设计 (11) 3.1.4数据库表设计 (13) 3.2系统结构设计 (15) 3.2.1页面模块化设计 (15) 3.2.2 MVC模式设计(Jsp+Servlet+JavaBean) (16) 第4章网上考试系统实现 (17) 4.1系统各部分的实现方法 (17) 4.1.1创建与数据库的连接 (17)

4.1.2访问数据库的JavaBean (18) 4.1.3用户及管理员登录模块页面 (19) 4.1.4系统主要模块页面 (23) 4.1.5学生考试模块的实现页面 (25) 4.1.6教师添加试题制作试卷模块的实现 (27) 第5章系统测试 (30) 5.1什么是软件测试 (30) 5.2软件测试的目标与方法 (30) 5.3系统的不足和展望 (30) 结束语 (31) 致谢.......................................... 错误!未定义书签。 参考文献 (32) 绪论 考试是检验教学效果的重要手段,也是促进学生学习的重要手段,是教学过程中的一个重要环节。学生考试成绩的优劣,不但反映其对教学内容和应掌握知识的分析、理解、吸收、运用的能力,更反映教师对教学内容的把握和熟练程度。 传统的学校教学中,进行一场考试,要求老师编写试卷、印试卷、安排考试、监考、收集试卷、评改试卷、讲评试卷和分析试卷,这是一个繁杂的过程,需要大量人力、物力与时间的投入,已经越来越不适应学校信息化建设与现代教学的需要。尤其在远程网络教学中,学生分布广,不易统一集中安排考试,给校方和学生带来了众多的不便。 而网上考试系统不仅减轻了在组织考试、评卷、成绩统计等方面所花费的人力和物力,并且突破了时间与空间的限制,不仅节省了资源,而且提高了评分的客观性、公正性和准确度,大大改善了考试工作的效率。加上数据库技术的利用,大大简化了传统考试的过程,因此在线考试是电子化教学的不可缺少的辅助手段。在当今信息时代,计算机技术与网络技术越来越广地应用于各个领域,改变着人们的学习、工作、生活乃至思维方式,也引起了教育领域的重大变革。将计算机与网

学生成绩管理系统代码c语言编写

学生成绩管理系统代码 c语言编写 集团文件发布号:(9816-UATWW-MWUB-WUNN-INNUL-DQQTY-

C程序学生管理系统 /* Note:Your choice is C IDE */ #include"stdio.h" #include"stdlib.h" #include"string.h" typedef struct student//定义学生{ char name[10]; int number; char sex[2]; int math; int eglish; int clanguge; int average; }student; typedef struct unit//定义接点 { student date; struct unit *next; }unit; unit* build()//建立链表并返回指针

{ unit *p; if((p=(unit*)malloc(sizeof(unit)))==NULL) { printf("=>初始化失败!"); return 0; } else {p->next=NULL; p->date.number=0;//头结点存放学生人数 printf("初始化成功!\n"); return p; } } void add(unit *head)//增加学生 { unit *p,*q; int m,n=0; q=head->next; p=(unit*)malloc(sizeof(unit)); printf("=>请输入新生姓名!\n"); gets(p->https://www.360docs.net/doc/b53500182.html,);fflush(stdin); printf("=>请输入学号!\n");

软件工程课程设计银行储蓄管理系统

(芙蓉学院) (芙蓉学院) 软件工程实验报告 课题: 银行储蓄管理系统姓名:谭斌 学号: 同组姓名: 专业班级:芙蓉计科0701 指导教师:周学清 设计时间:2011/3/20

银行储蓄管理系统 目录 1.需求分析 1.1系统的功能性需求 1.2系统需求分析规格说明书 1.3系统实体联系(ER)图 1.4系统数据流(DFD)图 1.5系统数据字典 1.6面向数据流的设计方法

1.需求分析 系统中要求每个人银行管理者都有一个系统帐号,并每个帐号都有密码,系统的一切操作(如:增加存储用户,提高利率等)都由管理者执行,而不是由存诸用户执行,也主是说存储用户并不直接与系统交互,而是通过管理员与系统交互。该系统主要有两部份业务功能,存款与取款。 储户填写的存款单或取款单由业务员输入系统,如果是存款则系统记录存款人姓名,住址(或电话号码),身份证号码,存款类型,存款日期,到期日期,利率及密码(可选)等信息,并打印存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算得利息并打印出利息清单给储户。1.1系统的功能性需求 系统为管理者提供主功能界面 系统在启动时要求管理者输入登录帐号与密码 系统要通过管理员执行一系操作(如:添加用户,修改,查询,删除等) 管理员代用户实现存款,取款,查询等操作 储户的一切信息,存储在数据库表中 1.2系统需求分析规格说明书 ●实现储户开户登记 ●办理定期存款帐 ●办理定期存款手续 ●办理活期取款帐 ●办理活期取款手续 ●实现利息计算 ●输出明细表 ●数据备份和数据恢复功能 ●查看帐户信息

C++学生考勤系统(含源代码)

C++语言程序设计 课程设计报告书 题目: 班级: 学号: 姓名: 指导教师: 周期: ·················以下由验收老师填写································ 成绩: 年月日

一、课程设计的目的与要求 (一)课程设计目的与任务 C++作为一门程序设计语言,其学习的最终目的是应用,作课程设计可以让我们更好的理解C++语言的精髓,学习掌握C++的语言流程,初步了解编程的思路,并且有重点的练习我们C++中的类、对象等模块的,使我们对这些重中之重的语言模块掌握的更加灵活可以实现我们的一些初步的程序设计要求也可以提高我们的实践能力;在课程设计中我们也应该就产生的实际开发问题象老师请教学习,以最好的最高的水准完成设计任务。 (二)题目要求 考勤信息记录了学生的缺课情况,它包括:缺课日期、第几节课、课程名称、学生姓名、缺课类型(迟到、早退、请假及旷课)。试设计一考勤管理系统,使之能提供以下功能: (1).录入学生的缺课记录; (2).修改某个学生的缺课记录; (3).查询某个学生的缺课情况; (4).统计某段时间内,旷课学生姓名及旷课次数,按旷课次数由多到少排序; (5).统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序; (6).系统以菜单方式工作。 二、设计正文 1、系统分析 考勤信息记录了学生的缺课情况,它包括:缺课日期、第几节课、学生姓名、缺课类型(迟到、早退、请假及旷课)。设计一考勤管理系统,使之能提供以下功能: (1).录入学生的缺课记录:从键盘输入数据,输入格式为:学生姓名、缺课日期、第几节课、课程名称、缺课类型。 例如:

(完整版)JAVA学生管理系统源代码

JA V A学生管理系统源代码 一、程序 import java.util.*; public class Test {//主程序 public static void main(String[] args){ Scanner in = new Scanner(System.in); System.out.println("------请定义学生的人数:------"); Student[] stuArr = new Student[in.nextInt()]; Admin adminStu = new Admin(); while(true){ System.out.println("-----请选择你要执行的功能-----"); System.out.println("10:添加一个学生"); System.out.println("11:查找一个学生"); System.out.println("12:根据学生编号更新学生基本信息"); System.out.println("13:根据学生编号删除学生"); System.out.println("14:根据编号输入学生各门成绩"); System.out.println("15:根据某门成绩进行排序"); System.out.println("16:根据总分进行排序"); System.out.println("99:退出系统"); String number = in.next(); if(number.equals("10")){ System.out.println("请输入学生的编号:"); int num = in.nextInt(); System.out.println("请输入学生的姓名:"); String name = in.next(); System.out.println("请输入学生的年龄:"); int age = in.nextInt(); adminStu.Create(num,name,age,stuArr);//添加学生}else if(number.equals("11")){ System.out.println("执行查找学生基本信息的操作"); System.out.println("请输入学生的编号进行查找:"); int num = in.nextInt(); adminStu.find(num,stuArr);//查找学生 }else if(number.equals("12")){ System.out.println("执行更新学员的基本信息操作"); System.out.println("请输入学生的编号:"); int num = in.nextInt(); System.out.println("请输入学生的姓名:"); String name = in.next();

软件工程银行系统可行性分析

软件工程银行系统可行性分析

1 引言 (2) 1.1编写目的 (2) 1.2项目背景 (2) 1.3参考资料 (2) 2 可行性研究的前提 (3) 2.1 要求 (3) 2.1.1 功能 (3) 2.1.2 性能 (3) 2.1.3 接口要求 (3) 2.1.4 输入要求 (3) 2.1.5 输出要求 (4) 2.2 目标 (4) 2.3 条件、假定和限制 (4) 2.3.1 开发时间(只限于近期目标) 4 2.3.2 使用寿命 (4) 2.3.3 经费来源和使用限制 (5) 2.3.4 硬件、软件、运行环境和开发环 境的条件和限制 (5) 2.4 进行可行性研究的方法 (5) 2.5 决定可行性的主要因素 (5) 3对现有系统的分析 (5) 3.1当前系统的处理流程和数据流程(系统

流程图) (5) 4 所建议技术可行性分析 (6) 4.1 对新系统的描述 (6) 4.2 新系统的数据流程和处理流程 (7) 4.2.1 数据对象 E-R图 (7) 4.2.2 数据流程图 (7) 4.2.2.2 取款流程图 (8) 4.2.3 数据字典 (9) 4.3 优越性 (10) 4.4 采用建议系统可能带来的影响 (11) 4.4.1 对设备的影响 (11) 4.4.2 对现有软件的影响 (11) 4.4.3对用户的影响 (11) 4.4.4对系统运行的影响 (11) 4.4.5对开发环境的影响 (11) 4.4.6对运行环境的影响 (12) 4.4.7对经费支出的影响 (12) 4.5 技术条件方面的可行性评价 (12) 5 所建议系统经济可行性分析 (12) 5.1支出 (12) 5.1.1基建投资 (12) 5.1.2其他一次性支出 (12)

在线考试系统的设计与实现

南京理工大学泰州科技学院 计算机科学与技术系计算机科学与技术专业11(1)班级 课程名:数据库原理及应用课程设计课程设计说明书 姓名:任琰学号:1109030135指导老师:王云 设计地点:四号楼4301教室 起讫时间:2013.07.01—2013.07.05 完成报告书时间:2013年7月5日 计算机科学与技术系编印 2013年1月

课程设计要求 各专业学生应根据课程任教老师的要求,做出选题计划,并按下列要求完成课程设计任务。 一、学生应按照老师的要求完成规定的课程设计任务量。 二、课程设计报告书要求格式统一,字迹工整,语言简练,文字通顺,按课程设计格式要求书写。程序清单不够填写时统一用A4纸补充并粘贴。对不按格式要求书写或打印的报告书一律不收,也不得进行答辩和评分。 三、必须独立完成课程设计,不得相互抄袭。在答辩和批阅过程中发现源程序相同或有大面积抄袭现象,课程任教老师有权通知学生重做,不得给予评分,并通知相关系部做出处理。 四、学生课程设计结束后应提交的材料: (1)课程设计说明书(3000字以上); (2)包含完整的、正确的源程序代码(含电子文档); (3)答辨材料(介绍课程设计要点)。

参考文献情况 序号名称编著者出版社 1《数据库系统原理与设计实验教程》吴京慧清华大学出版社2《SQL SERVER2000数据库原理及应用》徐人凤北京高等教育出版社3《数据库系统概论》萨师煊高等教育出版社4《在线考试系统的设计与实现》崔小军襄樊职业技术学院报5《考试分析系统和题库的设计与实现》李大可四川师范大学出版社

课程设计考核情况 教师评价情况 指导老师评语: 指导老师:_____________(签名) 日期:年月日 学生答辩情况 答辩(组)评语: 主答辩老师:____________(签名) 答辩日期:年月日 综合成绩评定情况 综合评价等级:__________________ 注:共分五个等级(1.优秀2、良好3、中等4、及格5、不合格)

相关文档
最新文档