打字练习软件源代码
打字练习软件源代码
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 { 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 系统源代码 一、登录界面代码 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 银行存储管理系统设计 专业:信息与计算科学 课程:软件工程 一、问题定义 银行存储管理系统工作繁琐,包含大量数据信息数据,因此就需要一个完善的银行管理系统来实现这些数据的有效管理。但是,随着经济和科学技术的飞速发展,传统的银行存储管理系统已经不能满足广大客户的需求,也不能及时跟上计算机网络发展的步调,故而我们急需开发一个高效、安全、便捷、互联的银行存储管理系统,该系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。系统分为三大模块,分别为存款模块、取款模块、用户管理模块,用来实现用户的开户、销户、存款以及取款等业务。该系统在功能上不断完善和加强,也使得存储管理规范化、程序化、科学化,满足了客户的需求。 二、可行性研究 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、添加时间、正确答案和备注等属性。 学生信息管理系统设计 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"); 目录 绪论 (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语言编写 集团文件发布号:(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++中的类、对象等模块的,使我们对这些重中之重的语言模块掌握的更加灵活可以实现我们的一些初步的程序设计要求也可以提高我们的实践能力;在课程设计中我们也应该就产生的实际开发问题象老师请教学习,以最好的最高的水准完成设计任务。 (二)题目要求 考勤信息记录了学生的缺课情况,它包括:缺课日期、第几节课、课程名称、学生姓名、缺课类型(迟到、早退、请假及旷课)。试设计一考勤管理系统,使之能提供以下功能: (1).录入学生的缺课记录; (2).修改某个学生的缺课记录; (3).查询某个学生的缺课情况; (4).统计某段时间内,旷课学生姓名及旷课次数,按旷课次数由多到少排序; (5).统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序; (6).系统以菜单方式工作。 二、设计正文 1、系统分析 考勤信息记录了学生的缺课情况,它包括:缺课日期、第几节课、学生姓名、缺课类型(迟到、早退、请假及旷课)。设计一考勤管理系统,使之能提供以下功能: (1).录入学生的缺课记录:从键盘输入数据,输入格式为:学生姓名、缺课日期、第几节课、课程名称、缺课类型。 例如: 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、不合格)雨课堂考试系统操作流程(学生端)
学生管理系统源代码
银行系统软件工程课程设计
学生成绩单管理系统源代码
学生信息管理系统系统源代码
银行计算机储蓄系统
学生成绩管理系统源代码
银行管理系统—软件工程
学生考试系统数据库
学生信息管理系统(Java)+代码
软件工程-银行储蓄管理系统源代码
学生在线考试系统需求分析设计
学生管理系统程序源代码
毕业设计论文 基于JSP的在线考试系统源代码
学生成绩管理系统代码c语言编写
软件工程课程设计银行储蓄管理系统
C++学生考勤系统(含源代码)
(完整版)JAVA学生管理系统源代码
软件工程银行系统可行性分析
在线考试系统的设计与实现